From 4b7d7aed1c4eefda59e85c976f929869e0f29a36 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Thu, 26 Jul 2012 18:57:40 -0700 Subject: [PATCH] ui.tools.listener.completion: fix complete-vocab? check (also its faster now). --- .../ui/tools/listener/completion/completion-tests.factor | 6 +++++- basis/ui/tools/listener/completion/completion.factor | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/basis/ui/tools/listener/completion/completion-tests.factor b/basis/ui/tools/listener/completion/completion-tests.factor index 5b79e918b5..b26555df6d 100644 --- a/basis/ui/tools/listener/completion/completion-tests.factor +++ b/basis/ui/tools/listener/completion/completion-tests.factor @@ -5,8 +5,12 @@ IN: ui.tools.listener.completion.tests [ f ] [ { "USE:" "A" "B" "C" } complete-vocab? ] unit-test +[ f ] [ { "USE:" "A" "B" } complete-vocab? ] unit-test + [ t ] [ { "USE:" "A" } complete-vocab? ] unit-test +[ t ] [ { "USE:" } complete-vocab? ] unit-test + [ t ] [ { "UNUSE:" "A" } complete-vocab? ] unit-test [ t ] [ { "QUALIFIED:" "A" } complete-vocab? ] unit-test @@ -17,4 +21,4 @@ IN: ui.tools.listener.completion.tests [ f ] [ { "USING:" "A" "B" "C" ";" } complete-vocab-list? ] unit-test -[ t ] [ { "X" ";" "USING:" "A" "B" "C" } complete-vocab-list? ] unit-test \ No newline at end of file +[ t ] [ { "X" ";" "USING:" "A" "B" "C" } complete-vocab-list? ] unit-test diff --git a/basis/ui/tools/listener/completion/completion.factor b/basis/ui/tools/listener/completion/completion.factor index c303c1f34c..c63680b188 100644 --- a/basis/ui/tools/listener/completion/completion.factor +++ b/basis/ui/tools/listener/completion/completion.factor @@ -76,8 +76,12 @@ M: vocab-completion row-color drop vocab? COLOR: black COLOR: dark-gray ? ; : complete-vocab? ( tokens -- ? ) - 1 short head* 2 short tail* - { "IN:" "USE:" "UNUSE:" "QUALIFIED:" "QUALIFIED-WITH:" } intersects? ; + harvest 2 short tail* [ f ] [ + [ + { "IN:" "USE:" "UNUSE:" "QUALIFIED:" "QUALIFIED-WITH:" } + member? + ] any? + ] if-empty ; : chop-; ( seq -- seq' ) { ";" } split1-last [ ] [ ] ?if ;