aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormryouse2022-07-11 01:55:21 +0000
committermryouse2022-07-11 01:55:21 +0000
commit2006ac2b87d8af1c9df93cacdd1cb8c7b9307779 (patch)
tree2418fd6bbb23dd28b3341cde7d45d2ddb2c07029
parent9226c0221e603668346676fffa8dc49e934882d3 (diff)
implement tab completion
-rw-r--r--neb.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/neb.py b/neb.py
index 7e3380f..86c96b1 100644
--- a/neb.py
+++ b/neb.py
@@ -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()