summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonnie West <me@donniewest.com>2019-10-18 12:44:47 -0500
committerDonnie West <me@donniewest.com>2019-11-08 16:41:37 -0600
commitdb5fe5659f260f63cc777ea7c42575fd0e44bcde (patch)
tree25116417c7c436aa729e2b789eb428d3e1b41972
parentdb6b1b5ecc17558f87f55b159f90ebf36677b6b3 (diff)
downloadale-db5fe5659f260f63cc777ea7c42575fd0e44bcde.zip
Allow the user to remove warnings from completions
-rw-r--r--autoload/ale/completion.vim11
-rw-r--r--doc/ale.txt4
-rw-r--r--test/completion/test_tsserver_completion_parsing.vader45
3 files changed, 55 insertions, 5 deletions
diff --git a/autoload/ale/completion.vim b/autoload/ale/completion.vim
index fb87f1bb..654279b8 100644
--- a/autoload/ale/completion.vim
+++ b/autoload/ale/completion.vim
@@ -16,6 +16,7 @@ let g:ale_completion_delay = get(g:, 'ale_completion_delay', 100)
let g:ale_completion_excluded_words = get(g:, 'ale_completion_excluded_words', [])
let g:ale_completion_max_suggestions = get(g:, 'ale_completion_max_suggestions', 50)
let g:ale_completion_tsserver_autoimport = get(g:, 'ale_completion_tsserver_autoimport', 0)
+let g:ale_completion_tsserver_remove_warnings = get(g:, 'ale_completion_tsserver_remove_warnings', 0)
let s:timer_id = -1
let s:last_done_pos = []
@@ -297,10 +298,12 @@ function! ale#completion#ParseTSServerCompletions(response) abort
let l:names = []
for l:suggestion in a:response.body
- call add(l:names, {
- \ 'word': l:suggestion.name,
- \ 'source': get(l:suggestion, 'source', ''),
- \})
+ if g:ale_completion_tsserver_remove_warnings == 0 || l:suggestion.kind isnot# 'warning'
+ call add(l:names, {
+ \ 'word': l:suggestion.name,
+ \ 'source': get(l:suggestion, 'source', ''),
+ \})
+ endif
endfor
return l:names
diff --git a/doc/ale.txt b/doc/ale.txt
index f1c2efbb..173b2185 100644
--- a/doc/ale.txt
+++ b/doc/ale.txt
@@ -420,7 +420,9 @@ completion information with Deoplete, consult Deoplete's documentation.
When working with TypeScript files, ALE by can support automatic imports
from external modules. This behavior can be enabled by setting the
-|g:ale_completion_tsserver_autoimport| variable to `1`.
+|g:ale_completion_tsserver_autoimport| variable to `1`. ALE can also remove
+warnings from your completions by setting the
+|g:ale_completion_tsserver_remove_warnings| variable to 1.
*ale-completion-completeopt-bug*
diff --git a/test/completion/test_tsserver_completion_parsing.vader b/test/completion/test_tsserver_completion_parsing.vader
index dbb8de32..5dfef531 100644
--- a/test/completion/test_tsserver_completion_parsing.vader
+++ b/test/completion/test_tsserver_completion_parsing.vader
@@ -29,6 +29,51 @@ Execute(TypeScript completions responses should be parsed correctly):
\ ],
\})
+Execute(TypeScript completions responses should include warnings):
+ AssertEqual
+ \ [
+ \ {
+ \ 'word': 'foo',
+ \ 'source': '/path/to/foo.ts',
+ \ },
+ \ {
+ \ 'word': 'bar',
+ \ 'source': '',
+ \ },
+ \ {
+ \ 'word': 'baz',
+ \ 'source': '',
+ \ }
+ \ ],
+ \ ale#completion#ParseTSServerCompletions({
+ \ 'body': [
+ \ {'name': 'foo', 'source': '/path/to/foo.ts'},
+ \ {'name': 'bar', 'kind': 'warning'},
+ \ {'name': 'baz'},
+ \ ],
+ \})
+
+Execute(TypeScript completions responses should not include warnings if excluded):
+ let g:ale_completion_tsserver_remove_warnings = 1
+ AssertEqual
+ \ [
+ \ {
+ \ 'word': 'foo',
+ \ 'source': '/path/to/foo.ts',
+ \ },
+ \ {
+ \ 'word': 'baz',
+ \ 'source': '',
+ \ }
+ \ ],
+ \ ale#completion#ParseTSServerCompletions({
+ \ 'body': [
+ \ {'name': 'foo', 'source': '/path/to/foo.ts'},
+ \ {'name': 'bar', 'kind': 'warning'},
+ \ {'name': 'baz'},
+ \ ],
+ \})
+
Execute(TypeScript completion details responses should be parsed correctly):
AssertEqual
\ [