tooling: add syntax highlighting for Kakoune
Signed-off-by: Annwan <annwan@annwan.me>
This commit is contained in:
55
editors/kak/a48s.kak
Normal file
55
editors/kak/a48s.kak
Normal file
@ -0,0 +1,55 @@
|
||||
# ain48 assembly syntax highlighting
|
||||
# put this in your autoload folder in ~/.config/kak/autoload and it should work
|
||||
# note: if you are *creating* an autoload folder in that location,
|
||||
# the *default* autoload scripts in /usr/share/kak/autoload will not trigger,
|
||||
# so it might be a good idea to copy the contents of that directory.
|
||||
|
||||
hook global BufCreate .*\.(a|ain)48(s|asm) %{
|
||||
set-option buffer filetype a48s
|
||||
}
|
||||
|
||||
hook global WinSetOption filetype=a48s %{
|
||||
require-module a48s
|
||||
hook -once -always window WinSetOption filetype=.* %{
|
||||
remove-hooks window a48s-.+
|
||||
}
|
||||
}
|
||||
|
||||
hook -group a48s-highlight global WinSetOption filetype=a48s %{
|
||||
add-highlighter window/a48s ref a48s
|
||||
hook -once -always window WinSetOption filetype=.* %{
|
||||
remove-highlighter window/a48s
|
||||
}
|
||||
}
|
||||
|
||||
provide-module a48s %{
|
||||
|
||||
add-highlighter shared/a48s regions
|
||||
add-highlighter shared/a48s/ region ';' '\n' fill comment
|
||||
add-highlighter shared/a48s/dqstring region '"' '"' group
|
||||
add-highlighter shared/a48s/dqstring/ fill string
|
||||
add-highlighter shared/a48s/dqstring/ \
|
||||
regex (\\[\\abefhnrtv\n])|(\\.) 1:keyword 2:Error
|
||||
add-highlighter shared/a48s/code default-region group
|
||||
|
||||
# immediates
|
||||
add-highlighter shared/a48s/code/ regex \
|
||||
(?i)#-?(s[0-5]+|o[0-7]+|b[01]+|x[0-9]+)\b \
|
||||
0:value
|
||||
|
||||
# registers
|
||||
add-highlighter shared/a48s/code/ regex (?i)%([a-z0-7]+)\b 0:builtin
|
||||
|
||||
# directives
|
||||
add-highlighter shared/a48s/code/ regex \.[a-zA-Z]+ 0:type
|
||||
|
||||
# labels
|
||||
add-highlighter shared/a48s/code/ regex ^\h*[A-Za-z0-9_.-]+: 0:operator
|
||||
|
||||
# instructions
|
||||
add-highlighter shared/a48s/code/ regex \
|
||||
(?i)\b((p?(add|dem|dvd|i[mp]?lg|mpl|rsd|str))|(n?[enpu]?i)|(ir|nc)?rv|(nc)?ivc|aeq|an|aut|cess|cst|dem|dst|et|(p?[sbq])?(lg|sc)|nam|nec|sim|tsc|vel)\b \
|
||||
0:keyword
|
||||
# the regex is painfully long but i can't do anything about that so...
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user