py/repl: Filter private methods from tab completion.
Anything beginning with "_" will now only be tab-completed if there is already a partial match for such an entry. In other words, entering foo.<tab> will no longer complete/list anything beginning with "_". Originally at adafruit#1850 Signed-off-by: Kathryn Lingel <kathryn@lingel.net>
This commit is contained in:
parent
aa061ae391
commit
1f1a54d0b1
@ -197,6 +197,11 @@ size_t mp_repl_autocomplete(const char *str, size_t len, const mp_print_t *print
|
||||
for (qstr q = MP_QSTR_ + 1; q < nqstr; ++q) {
|
||||
size_t d_len;
|
||||
const char *d_str = (const char *)qstr_data(q, &d_len);
|
||||
// special case; filter out words that begin with underscore
|
||||
// unless there's already a partial match
|
||||
if (s_len == 0 && d_str[0] == '_') {
|
||||
continue;
|
||||
}
|
||||
if (s_len <= d_len && strncmp(s_start, d_str, s_len) == 0) {
|
||||
mp_load_method_protected(obj, q, dest, true);
|
||||
if (dest[0] != MP_OBJ_NULL) {
|
||||
|
@ -28,11 +28,11 @@ RuntimeError:
|
||||
# repl
|
||||
ame__
|
||||
|
||||
__class__ __name__ argv atexit
|
||||
byteorder exc_info exit getsizeof
|
||||
implementation maxsize modules path
|
||||
platform print_exception stderr
|
||||
stdin stdout version version_info
|
||||
argv atexit byteorder exc_info
|
||||
exit getsizeof implementation maxsize
|
||||
modules path platform print_exception
|
||||
stderr stdin stdout version
|
||||
version_info
|
||||
ementation
|
||||
# attrtuple
|
||||
(start=1, stop=2, step=3)
|
||||
|
Loading…
Reference in New Issue
Block a user