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:
committed by
Damien George
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) {
|
||||
|
||||
Reference in New Issue
Block a user