diff options
| author | Frank LENORMAND <lenormf@gmail.com> | 2016-03-14 14:08:51 +0200 |
|---|---|---|
| committer | Frank LENORMAND <lenormf@gmail.com> | 2016-03-14 14:10:49 +0200 |
| commit | 98594cf6df600eefe4fc5913685f6a43aeb76055 (patch) | |
| tree | 6d1f6433a498b653617d81da9d037e4144adb1f9 /rc/core/python.kak | |
| parent | 22109ce677cfff597ee1462d8b3a042b054ba833 (diff) | |
Add static completion suggestions to several languages, set `autopep8` as default python formatter
Diffstat (limited to 'rc/core/python.kak')
| -rw-r--r-- | rc/core/python.kak | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/rc/core/python.kak b/rc/core/python.kak index 4891f200..8f482f4d 100644 --- a/rc/core/python.kak +++ b/rc/core/python.kak @@ -12,8 +12,8 @@ hook global BufCreate .*[.](py) %{ set buffer filetype python } -# Highlighters -# ‾‾‾‾‾‾‾‾‾‾‾‾ +# Highlighters & Completion +# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ addhl -group / regions -default code python \ double_string '"""' '"""' '' \ @@ -26,22 +26,36 @@ addhl -group /python/double_string fill string addhl -group /python/single_string fill string addhl -group /python/comment fill comment -addhl -group /python/code regex \<(True|False|None)\> 0:value -addhl -group /python/code regex \<(import|from)\> 0:meta +%sh{ + # Grammar + values="True:False:None" + meta="import:from" + # Keyword list is collected using `keyword.kwlist` from `keyword` + keywords="and:as:assert:break:class:continue:def:del:elif:else:except:exec:finally:for:global:if:in:is:lambda:not:or:pass:print:raise:return:try:while:with:yield" + types="bool:buffer:bytearray:complex:dict:file:float:frozenset:int:list:long:memoryview:object:set:str:tuple:unicode:xrange" -# Keyword list is collected using `keyword.kwlist` from `keyword` -addhl -group /python/code regex \<(and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|global|if|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield)\> 0:keyword -# Highlight types, when they are not used as constructors -addhl -group /python/code regex \<(bool|buffer|bytearray|complex|dict|file|float|frozenset|int|list|long|memoryview|object|set|str|tuple|unicode|xrange)\>[^(] 1:type + # Add the language's grammar to the static completion list + echo "hook global WinSetOption filetype=python %{ + set window static_words '${values}' + set -add window static_words '${meta}' + set -add window static_words '${keywords}' + set -add window static_words '${types}' + }" -# Commands -# ‾‾‾‾‾‾‾‾ + # Highlight keywords + echo " + addhl -group /python/code regex '\<(${values//:/|})\>' 0:value + addhl -group /python/code regex '\<(${meta//:/|})\>' 0:meta + addhl -group /python/code regex '\<(${keywords//:/|})\>' 0:keyword + " -def -hidden _python_filter_around_selections %{ - # remove trailing white spaces - try %{ exec -draft -itersel <a-x> s \h+$ <ret> d } + # Highlight types, when they are not used as constructors + echo "addhl -group /python/code regex '\<(${types//:/|})\>[^(]' 1:type" } +# Commands +# ‾‾‾‾‾‾‾‾ + def -hidden _python_indent_on_new_line %{ eval -draft -itersel %{ # preserve previous line indent @@ -60,13 +74,12 @@ def -hidden _python_indent_on_new_line %{ hook global WinSetOption filetype=python %{ addhl ref python - - hook window InsertEnd .* -group python-hooks _python_filter_around_selections hook window InsertChar \n -group python-indent _python_indent_on_new_line + + set window formatcmd "autopep8 -" } hook global WinSetOption filetype=(?!python).* %{ rmhl python rmhooks window python-indent - rmhooks window python-hooks } |
