summaryrefslogtreecommitdiff
path: root/test/completion
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2018-05-03 11:17:41 +0100
committerw0rp <devw0rp@gmail.com>2018-05-03 11:17:41 +0100
commite2c33f2f6c58c55395dda825321dbd18997391e1 (patch)
tree72fbf6de99ddd4e4060e27d92353845ee4f32938 /test/completion
parente59cd6b7c0ba91c6dcfac5a6ce411e23af7a6252 (diff)
downloadale-e2c33f2f6c58c55395dda825321dbd18997391e1.zip
Add g:ale_completion_excluded_words for completion filtering
Diffstat (limited to 'test/completion')
-rw-r--r--test/completion/test_completion_filtering.vader76
1 files changed, 74 insertions, 2 deletions
diff --git a/test/completion/test_completion_filtering.vader b/test/completion/test_completion_filtering.vader
index 3e461aef..ae91a952 100644
--- a/test/completion/test_completion_filtering.vader
+++ b/test/completion/test_completion_filtering.vader
@@ -1,15 +1,27 @@
+Before:
+ Save g:ale_completion_excluded_words
+
+ let g:ale_completion_excluded_words = []
+
+After:
+ Restore
+
+ unlet! b:ale_completion_excluded_words
+ unlet! b:suggestions
+
Execute(Prefix filtering should work for Lists of strings):
AssertEqual
\ ['FooBar', 'foo'],
- \ ale#completion#Filter(['FooBar', 'FongBar', 'baz', 'foo'], 'foo')
+ \ ale#completion#Filter(bufnr(''), ['FooBar', 'FongBar', 'baz', 'foo'], 'foo')
AssertEqual
\ ['FooBar', 'FongBar', 'baz', 'foo'],
- \ ale#completion#Filter(['FooBar', 'FongBar', 'baz', 'foo'], '.')
+ \ ale#completion#Filter(bufnr(''), ['FooBar', 'FongBar', 'baz', 'foo'], '.')
Execute(Prefix filtering should work for completion items):
AssertEqual
\ [{'word': 'FooBar'}, {'word': 'foo'}],
\ ale#completion#Filter(
+ \ bufnr(''),
\ [
\ {'word': 'FooBar'},
\ {'word': 'FongBar'},
@@ -18,6 +30,7 @@ Execute(Prefix filtering should work for completion items):
\ ],
\ 'foo'
\ )
+
AssertEqual
\ [
\ {'word': 'FooBar'},
@@ -26,6 +39,7 @@ Execute(Prefix filtering should work for completion items):
\ {'word': 'foo'},
\ ],
\ ale#completion#Filter(
+ \ bufnr(''),
\ [
\ {'word': 'FooBar'},
\ {'word': 'FongBar'},
@@ -34,3 +48,61 @@ Execute(Prefix filtering should work for completion items):
\ ],
\ '.'
\ )
+
+Execute(Excluding words from completion results should work):
+ let b:ale_completion_excluded_words = ['it', 'describe']
+
+ AssertEqual
+ \ [{'word': 'Italian'}],
+ \ ale#completion#Filter(
+ \ bufnr(''),
+ \ [
+ \ {'word': 'Italian'},
+ \ {'word': 'it'},
+ \ ],
+ \ 'it'
+ \ )
+
+ AssertEqual
+ \ [{'word': 'Deutsch'}],
+ \ ale#completion#Filter(
+ \ bufnr(''),
+ \ [
+ \ {'word': 'describe'},
+ \ {'word': 'Deutsch'},
+ \ ],
+ \ 'de'
+ \ )
+
+ AssertEqual
+ \ [{'word': 'Deutsch'}],
+ \ ale#completion#Filter(
+ \ bufnr(''),
+ \ [
+ \ {'word': 'describe'},
+ \ {'word': 'Deutsch'},
+ \ ],
+ \ '.'
+ \ )
+
+Execute(Excluding words from completion results should work with lists of Strings):
+ let b:ale_completion_excluded_words = ['it', 'describe']
+
+ AssertEqual
+ \ ['Italian'],
+ \ ale#completion#Filter(bufnr(''), ['Italian', 'it'], 'it')
+ AssertEqual
+ \ ['Deutsch'],
+ \ ale#completion#Filter(bufnr(''), ['describe', 'Deutsch'], 'de')
+ AssertEqual
+ \ ['Deutsch'],
+ \ ale#completion#Filter(bufnr(''), ['describe', 'Deutsch'], '.')
+
+Execute(Filtering shouldn't modify the original list):
+ let b:ale_completion_excluded_words = ['it', 'describe']
+ let b:suggestions = [{'word': 'describe'}]
+
+ AssertEqual [], ale#completion#Filter(bufnr(''), b:suggestions, '.')
+ AssertEqual b:suggestions, [{'word': 'describe'}]
+ AssertEqual [], ale#completion#Filter(bufnr(''), b:suggestions, 'de')
+ AssertEqual b:suggestions, [{'word': 'describe'}]