diff options
author | Kathryn Lingel <kathryn@lingel.net> | 2019-05-06 12:16:29 -0700 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2021-05-02 23:11:03 +1000 |
commit | 1f1a54d0b1371efcfec6ca1b03d21b07a908c70d (patch) | |
tree | 9ffd727418a9934ae9aaa0e5f0b72fbce14f7f13 /py/repl.c | |
parent | aa061ae391f2a8fbb16ace31ae0e4ae35b6ad5e9 (diff) |
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>
Diffstat (limited to 'py/repl.c')
-rw-r--r-- | py/repl.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -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) { |