diff options
| author | mryouse | 2022-07-11 01:55:21 +0000 |
|---|---|---|
| committer | mryouse | 2022-07-11 01:55:21 +0000 |
| commit | 2006ac2b87d8af1c9df93cacdd1cb8c7b9307779 (patch) | |
| tree | 2418fd6bbb23dd28b3341cde7d45d2ddb2c07029 /neb.py | |
| parent | 9226c0221e603668346676fffa8dc49e934882d3 (diff) | |
implement tab completion
Diffstat (limited to 'neb.py')
| -rw-r--r-- | neb.py | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -4,6 +4,16 @@ import sys import readline +class NebCompleter: + + def __init__(self, syntax): + self.syntax = syntax + + def complete(self, text, state): + results = [x for x in self.syntax if x.startswith(text)] + [None] + return results[state] + + def build_std(repl=False): GLOBALS = Environment() global_dict = { **BOOLEAN.environment, @@ -34,6 +44,11 @@ def debug(prev_lexed, prev_parsed): def repl(): env = build_std(True) + + readline.parse_and_bind("tab: complete") + cmp = NebCompleter(env.environment.keys()) + readline.set_completer(cmp.complete) + print("### neb :)(:") print("version: < 0") idx = 1 @@ -65,6 +80,11 @@ def repl(): def run_file(filename): env = build_std(True) + + readline.parse_and_bind("tab: complete") + cmp = NebCompleter(env.environment.keys()) + readline.set_completer(cmp.complete) + with open(filename, "r") as fil: data = fil.read() |
