From 591329b9ec120941bf2852c5e794e5bc2b0d8f22 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 5 Sep 2015 23:23:46 -0700 Subject: linenoise completion for txr symbols Implement basic tab completion. * lib.c (package_alist, package_name, package_symbols): New functions. * lib.h (package_alist, package_name, package_symbols): Declared. * parser.c (find_matching_syms, provide_completions): New static functions. (repl): Register provide_completions as completion callback with linenoise. --- lib.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'lib.c') diff --git a/lib.c b/lib.c index 597a5f81..a3f0c6fb 100644 --- a/lib.c +++ b/lib.c @@ -3784,6 +3784,23 @@ val delete_package(val package) return nil; } +val package_alist(void) +{ + return packages; +} + +val package_name(val package) +{ + type_check (package, PKG); + return package->pk.name; +} + +val package_symbols(val package) +{ + type_check (package, PKG); + return hash_values(package->pk.symhash); +} + val intern(val str, val package) { val new_p; -- cgit v1.2.3