diff options
| author | Maxime Coste <mawww@kakoune.org> | 2018-03-04 10:59:31 +1100 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2018-03-04 10:59:31 +1100 |
| commit | 8acedacf7c18109dc28ae2d93cd514d78fbe8d2e (patch) | |
| tree | 7e048a362b2908a8b98a530f39473ec02ae510e9 | |
| parent | 65258934d3990d0119e1b407de59d802fa56b6ba (diff) | |
| parent | f6a3fd2e4ed8857ffb1900fbb17370eaab277500 (diff) | |
Merge remote-tracking branch 'marcesquerra/racer-tweaks'
| -rw-r--r-- | rc/extra/racer.kak | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/rc/extra/racer.kak b/rc/extra/racer.kak index a1bb4866..06bed711 100644 --- a/rc/extra/racer.kak +++ b/rc/extra/racer.kak @@ -29,13 +29,40 @@ define-command racer-complete -docstring "Complete the current selection with ra gsub(/\|/, "\\|", menu) if (type == "Function") { sub(word, "{default+e}" word "{default+d}", menu) + gsub(/^fn /, " fn ", menu) # The extra spaces are there to vertically align + # the type of element on the menu to make it easy + # to read menu = "{default+d}" menu - word = word "(" } else if (type == "Enum") { menu = substr(menu, 0, length(menu) - 2) sub(word, "{default+e}" word "{default+d}", menu) - menu = "{default+d}" menu - word = word "::" + gsub(/^enum /, " enum ", menu) # The extra spaces are there to vertically align + # the type of element on the menu to make it easy + # to read + } else if (type == "Module") { + if (length(menu) > 30) { # The "menu" bit (as returned by racer), + # contains the path to the source file + # containing the module... + + menu = substr(menu, length(menu) - 29, 30) # ... trimming it, so the completion menu + # doesn''t get distorted if it''s too long + } + menu = " mod {default+e}" word "{default+d} .." menu # The extra spaces are there to vertically align + # the type of element on the menu to make it easy + # to read + } else if (type == "Trait") { + sub(word, "{default+e}" word "{default+d}", menu) + gsub(/^trait /, " trait ", menu) # The extra spaces are there to vertically align + # the type of element on the menu to make it easy + # to read + } else if (type == "Type") { + sub(word, "{default+e}" word "{default+d}", menu) + gsub(/^type /, " type ", menu) # The extra spaces are there to vertically align + # the type of element on the menu to make it easy + # to read + } else if (type == "Struct") { + sub(word, "{default+e}" word "{default+d}", menu) # Struct doesn''t have extra spaces because it''s + # the longest keyword } else { menu = "{default+e}" word "{default+d} " menu } @@ -45,7 +72,7 @@ define-command racer-complete -docstring "Complete the current selection with ra }' ) printf %s\\n "evaluate-commands -client '${kak_client}' %{ - set-option buffer=${kak_bufname} racer_completions %@${compl}@ + set-option buffer=${kak_bufname} racer_completions %@${compl: : -1}@ }" | kak -p ${kak_session} rm -r ${dir} ) > /dev/null 2>&1 < /dev/null & |
