kak: reindent filetypes
This commit is contained in:
parent
08e449a059
commit
ce02271526
|
@ -62,61 +62,129 @@ hook global WinSetOption filetype=jsonc %[
|
|||
|
||||
|
||||
hook global WinSetOption filetype=blade %[
|
||||
set buffer formatcmd 'blade-formatter --stdin'
|
||||
set buffer formatcmd 'blade-formatter --stdin'
|
||||
|
||||
set-option buffer filetype blade
|
||||
hook window ModeChange pop:insert:.* -group blade-trim-indent blade-trim-indent
|
||||
hook window InsertChar .* -group blade-indent blade-indent-on-char
|
||||
hook window InsertChar \n -group blade-indent blade-indent-on-new-line
|
||||
|
||||
require-module php
|
||||
add-highlighter buffer/blade regions
|
||||
add-highlighter buffer/blade/base default-region group
|
||||
add-highlighter buffer/blade/base/ ref html
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window blade-.+ }
|
||||
|
||||
add-highlighter buffer/blade/expression region '\{\{ ' ' \}\}' ref php
|
||||
add-highlighter buffer/blade/statement region -recurse '\(' '@(if|foreach|include)\s*\(' '\)' ref php
|
||||
add-highlighter buffer/blade/base/ regex '@(if|else|endif|foreach|endforeach|include)' 1:keyword
|
||||
require-module php
|
||||
|
||||
add-highlighter buffer/blade/comment region '\{\{--' '--\}\}' fill comment
|
||||
set-option buffer comment_block_begin '{{-- '
|
||||
set-option buffer comment_block_end ' --}}'
|
||||
add-highlighter buffer/blade regions
|
||||
add-highlighter buffer/blade/base default-region group
|
||||
add-highlighter buffer/blade/base/ ref html
|
||||
|
||||
add-highlighter buffer/blade/expression region '\{\{ ' ' \}\}' ref php
|
||||
add-highlighter buffer/blade/statement region -recurse '\(' '@(if|foreach|include)\s*\(' '\)' ref php
|
||||
add-highlighter buffer/blade/base/ regex '@(if|else|endif|foreach|endforeach|include)' 1:keyword
|
||||
|
||||
add-highlighter buffer/blade/comment region '\{\{--' '--\}\}' fill comment
|
||||
set-option buffer comment_block_begin '{{-- '
|
||||
set-option buffer comment_block_end ' --}}'
|
||||
|
||||
|
||||
|
||||
]
|
||||
|
||||
try %§
|
||||
|
||||
define-command -hidden blade-trim-indent %{
|
||||
# remove trailing white spaces
|
||||
try %{ execute-keys -draft -itersel <a-x> s \h+$ <ret> d }
|
||||
}
|
||||
|
||||
define-command -hidden blade-indent-on-char %<
|
||||
evaluate-commands -draft -itersel %<
|
||||
# align closer token to its opener when alone on a line
|
||||
try %/ execute-keys -draft <a-h> <a-k> ^\h+[\]}]$ <ret> m s \A|.\z <ret> 1<a-&> /
|
||||
>
|
||||
>
|
||||
|
||||
define-command -hidden blade-indent-on-new-line %<
|
||||
evaluate-commands -draft -itersel %<
|
||||
# copy // comments or docblock * prefix and following white spaces
|
||||
try %{ execute-keys -draft s [^/] <ret> k <a-x> s ^\h*\K(?://|[*][^/])\h* <ret> y gh j P }
|
||||
# preserve previous line indent
|
||||
try %{ execute-keys -draft <semicolon> K <a-&> }
|
||||
# filter previous line
|
||||
try %{ execute-keys -draft k : blade-trim-indent <ret> }
|
||||
# indent after lines beginning / ending with opener token
|
||||
try %_ execute-keys -draft k <a-x> <a-k> ^\h*[[{]|[[{]$ <ret> j <a-gt> _
|
||||
# append " * " on lines starting a multiline /** or /* comment
|
||||
try %{ execute-keys -draft k <a-x> s ^\h*/[*][* ]? <ret> j gi i <space>*<space> }
|
||||
# deindent closer token(s) when after cursor
|
||||
try %_ execute-keys -draft <a-x> <a-k> ^\h*[})] <ret> gh / [})] <ret> m <a-S> 1<a-&> _
|
||||
>
|
||||
>
|
||||
§
|
||||
|
||||
hook global WinSetOption filetype=less %[
|
||||
set buffer formatcmd 'prettier --parser less'
|
||||
set buffer formatcmd 'prettier --parser less'
|
||||
|
||||
set buffer extra_word_chars '_'
|
||||
set -add buffer extra_word_chars '-'
|
||||
set-option buffer extra_word_chars '_' '-'
|
||||
|
||||
set buffer comment_line '//'
|
||||
set buffer comment_block_begin '/*'
|
||||
set buffer comment_block_end '*/'
|
||||
set buffer comment_line '//'
|
||||
set buffer comment_block_begin '/*'
|
||||
set buffer comment_block_end '*/'
|
||||
|
||||
require-module css
|
||||
hook window ModeChange pop:insert:.* -group less-trim-indent less-trim-indent
|
||||
hook window InsertChar \n -group less-indent less-indent-on-new-line
|
||||
hook window InsertChar \} -group less-indent less-indent-on-closing-curly-brace
|
||||
|
||||
add-highlighter buffer/less regions
|
||||
add-highlighter buffer/less/code default-region group
|
||||
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window less-.+ }
|
||||
|
||||
add-highlighter buffer/less/line-comment region // $ fill comment
|
||||
add-highlighter buffer/less/comment region /[*] [*]/ fill comment
|
||||
add-highlighter buffer/less/double_string region ["] ["] fill string
|
||||
add-highlighter buffer/less/single_string region ['] ['] fill string
|
||||
add-highlighter buffer/less regions
|
||||
add-highlighter buffer/less/code default-region group
|
||||
|
||||
add-highlighter buffer/less/code/ regex ([A-Za-z][A-Za-z0-9_-]*)\h*: 1:keyword
|
||||
add-highlighter buffer/less/code/ regex :(before|after) 0:attribute
|
||||
add-highlighter buffer/less/code/ regex !important 0:keyword
|
||||
add-highlighter buffer/less/line-comment region // $ fill comment
|
||||
add-highlighter buffer/less/comment region /[*] [*]/ fill comment
|
||||
add-highlighter buffer/less/double_string region ["] ["] fill string
|
||||
add-highlighter buffer/less/single_string region ['] ['] fill string
|
||||
|
||||
add-highlighter buffer/less/code/selector group
|
||||
add-highlighter buffer/less/code/selector/ regex [A-Za-z][A-Za-z0-9_-]* 0:keyword
|
||||
add-highlighter buffer/less/code/selector/ regex [*]|[#.][A-Za-z][A-Za-z0-9_-]* 0:variable
|
||||
add-highlighter buffer/less/code/ regex ([A-Za-z][A-Za-z0-9_-]*)\h*: 1:keyword
|
||||
add-highlighter buffer/less/code/ regex :(before|after) 0:attribute
|
||||
add-highlighter buffer/less/code/ regex !important 0:keyword
|
||||
|
||||
add-highlighter buffer/less/code/ regex (#[0-9A-Fa-f]+)|(\b(\d*\.)?\d+(ch|cm|em|ex|mm|pc|pt|px|rem|vh|vmax|vmin|vw|%)?) 0:value 4:type
|
||||
add-highlighter buffer/less/code/selector group
|
||||
add-highlighter buffer/less/code/selector/ regex [A-Za-z][A-Za-z0-9_-]* 0:keyword
|
||||
add-highlighter buffer/less/code/selector/ regex [*]|[#.][A-Za-z][A-Za-z0-9_-]* 0:variable
|
||||
|
||||
add-highlighter buffer/less/code/ regex (?i)\b(AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGray|DarkGrey|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGray|DarkSlateGrey|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGray|DimGrey|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gray|Grey|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGray|LightGrey|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGray|LightSlateGrey|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGray|SlateGrey|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b 0:value
|
||||
add-highlighter buffer/less/code/ regex (#[0-9A-Fa-f]{3,8})|(\b(\d*\.)?\d+(ch|cm|em|ex|mm|pc|pt|px|rem|vh|vmax|vmin|vw|%)?) 0:value 4:type
|
||||
|
||||
add-highlighter buffer/less/code/ regex ([\w-_]+)\s*: 1:attribute
|
||||
add-highlighter buffer/less/code/ regex @[\w\d-_]+ 0:variable
|
||||
add-highlighter buffer/less/code/ regex (?i)\b(AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGray|DarkGrey|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGray|DarkSlateGrey|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGray|DimGrey|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gray|Grey|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGray|LightGrey|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGray|LightSlateGrey|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGray|SlateGrey|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b 0:value
|
||||
|
||||
add-highlighter buffer/less/code/ regex ([\w-_]+)\s*: 1:attribute
|
||||
add-highlighter buffer/less/code/ regex @[\w\d-_]+ 0:variable
|
||||
|
||||
]
|
||||
|
||||
try %§
|
||||
|
||||
define-command -hidden less-trim-indent %{
|
||||
# remove trailing white spaces
|
||||
try %{ execute-keys -draft -itersel <a-x> s \h+$ <ret> d }
|
||||
}
|
||||
|
||||
define-command -hidden less-indent-on-new-line %[
|
||||
evaluate-commands -draft -itersel %[
|
||||
# preserve previous line indent
|
||||
try %[ execute-keys -draft <semicolon> K <a-&> ]
|
||||
# filter previous line
|
||||
try %[ execute-keys -draft k : less-trim-indent <ret> ]
|
||||
# indent after lines ending with with {
|
||||
try %[ execute-keys -draft k <a-x> <a-k> \{$ <ret> j <a-gt> ]
|
||||
# deindent closing brace when after cursor
|
||||
try %[ execute-keys -draft <a-x> <a-k> ^\h*\} <ret> gh / \} <ret> m <a-S> 1<a-&> ]
|
||||
]
|
||||
]
|
||||
|
||||
define-command -hidden less-indent-on-closing-curly-brace %[
|
||||
evaluate-commands -draft -itersel %[
|
||||
# align to opening curly brace when alone on a line
|
||||
try %[ execute-keys -draft <a-h> <a-k> ^\h+\}$ <ret> m s \A|.\z <ret> 1<a-&> ]
|
||||
]
|
||||
]
|
||||
|
||||
§
|
||||
|
|
Reference in New Issue