summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorD. Ben Knoble <ben.knoble+github@gmail.com>2022-11-05 03:47:59 -0400
committerGitHub <noreply@github.com>2022-11-05 16:47:59 +0900
commit07bd24d0fd767e9c584a45d43f23e8d5956665fe (patch)
tree1dfbe9f2caf5b2351bb5014c9af6e61c1ddfa396
parent121fbefeaef165191820aa72858228921bee4416 (diff)
downloadale-07bd24d0fd767e9c584a45d43f23e8d5956665fe.zip
omni: racket should complete at end of keywords (#4352)
Consider a file like ``` #lang racket (require racket/gui) ``` Type `Go(eventspace-`. Pressing <C-x><C-o> to trigger omnicomplete should suggest ``` eventspace-handler-thread eventspace-shutdown? eventspace-event-evt ``` It does not (instead producing "top-level" completions, as if `(eventspace-` wasn't even there). Debugging, place the cursor on a space _after_. Now `ale#completion#OmniFunc(1, '')` correctly returns `1`, but when given `(0, 'eventspace-')` it returns either the empty list or generic completion results as described above. I'm not entirely sure of the mechanism, but it seems that `b:ale_completion_info.prefix` is the key, and that this is set by `ale#completion#GetPrefix`. Calling `ale#completion#GetPrefix('racket', line('.'), col('.'))` returned `''`! Now, it returns `eventspace-` and the completions work correctly again. Ref #4293, #4186, #3870
-rw-r--r--autoload/ale/completion.vim1
1 files changed, 1 insertions, 0 deletions
diff --git a/autoload/ale/completion.vim b/autoload/ale/completion.vim
index 920c03cc..c05ca53d 100644
--- a/autoload/ale/completion.vim
+++ b/autoload/ale/completion.vim
@@ -130,6 +130,7 @@ let s:should_complete_map = {
\ '<default>': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$|\.$',
\ 'clojure': s:lisp_regex,
\ 'lisp': s:lisp_regex,
+\ 'racket': '\k\+$',
\ 'typescript': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$|\.$|''$|"$',
\ 'rust': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$|\.$|::$',
\ 'cpp': '\v[a-zA-Z$_][a-zA-Z$_0-9]*$|\.$|::$|-\>$',