2018-07-01 04:40:14 +00:00
|
|
|
" SubX syntax file
|
|
|
|
" Language: SubX
|
|
|
|
" Maintainer: Kartik Agaram <mu@akkartik.com>
|
2018-11-30 18:33:34 +00:00
|
|
|
" URL: https://github.com/akkartik/mu
|
2018-07-01 04:40:14 +00:00
|
|
|
" License: public domain
|
|
|
|
"
|
2020-05-25 05:47:09 +00:00
|
|
|
" Copy this file into your ftplugin directory, and add the following to your
|
|
|
|
" vimrc or to .vim/ftdetect/subx.vim:
|
2018-07-01 04:40:14 +00:00
|
|
|
" autocmd BufReadPost,BufNewFile *.subx set filetype=subx
|
2020-05-10 20:18:13 +00:00
|
|
|
"
|
|
|
|
" Some highlight groups you might want to select colors for in your vimrc:
|
|
|
|
" subxFunction
|
|
|
|
" subxMinorFunction
|
|
|
|
" subxTest
|
|
|
|
"
|
|
|
|
" Optionally, devote more colors to different kinds of comments. Some suggestions
|
|
|
|
" for 256-color terminals to add to your vimrc:
|
|
|
|
" blue tones:
|
|
|
|
" highlight subxH1Comment cterm=underline ctermfg=27
|
|
|
|
" highlight subxComment ctermfg=27
|
|
|
|
" highlight subxS1Comment ctermfg=19
|
|
|
|
" highlight subxS2Comment ctermfg=245
|
|
|
|
" blue-green tones
|
|
|
|
" highlight subxH1Comment cterm=underline ctermfg=25
|
|
|
|
" highlight subxComment ctermfg=25
|
|
|
|
" highlight subxS1Comment ctermfg=19
|
|
|
|
" highlight subxS2Comment ctermfg=245
|
|
|
|
" grey tones
|
|
|
|
" highlight subxH1Comment cterm=bold,underline
|
|
|
|
" highlight subxComment cterm=bold ctermfg=236
|
|
|
|
" highlight subxS1Comment cterm=bold ctermfg=242
|
|
|
|
" highlight subxS2Comment ctermfg=242
|
2018-07-01 04:40:14 +00:00
|
|
|
|
|
|
|
let s:save_cpo = &cpo
|
|
|
|
set cpo&vim
|
|
|
|
|
|
|
|
" setlocal iskeyword=@,48-57,?,!,_,$,-
|
|
|
|
setlocal formatoptions-=t " allow long lines
|
|
|
|
setlocal formatoptions+=c " but comments should still wrap
|
|
|
|
|
2020-05-10 23:55:03 +00:00
|
|
|
setlocal iskeyword+=-,?,<,>,$,@
|
2018-10-06 02:49:47 +00:00
|
|
|
|
2020-05-10 20:18:13 +00:00
|
|
|
syntax match subxH1Comment /# - .*/ | highlight link subxH1Comment Comment
|
|
|
|
syntax match subxComment /#\( \.\| - \|? \)\@!.*/ | highlight link subxComment Comment
|
|
|
|
syntax match subxS1Comment /# \..*/ | highlight link subxS1Comment Comment
|
|
|
|
syntax match subxS2Comment /# \. \..*/ | highlight link subxS2Comment Comment
|
2018-11-30 17:43:49 +00:00
|
|
|
|
2018-07-01 06:05:10 +00:00
|
|
|
set comments-=:#
|
2018-07-01 04:40:14 +00:00
|
|
|
set comments+=n:#
|
2020-05-10 20:18:13 +00:00
|
|
|
syntax match subxCommentedCode "#? .*" | highlight link subxCommentedCode CommentedCode | highlight link CommentedCode Comment
|
2018-07-01 04:40:14 +00:00
|
|
|
let b:cmt_head = "#? "
|
2018-08-04 23:28:22 +00:00
|
|
|
|
2018-08-05 04:21:19 +00:00
|
|
|
" comment token
|
2018-12-29 05:08:17 +00:00
|
|
|
syntax match subxDelimiter / \. / | highlight link subxDelimiter Normal
|
2018-08-11 18:09:22 +00:00
|
|
|
|
2018-11-21 03:37:00 +00:00
|
|
|
syntax match subxString %"[^"]*"% | highlight link subxString Constant
|
2018-12-02 20:49:15 +00:00
|
|
|
|
|
|
|
"" definitions
|
2018-11-25 04:54:56 +00:00
|
|
|
" match globals but not registers like 'EAX'
|
2018-12-01 04:01:41 +00:00
|
|
|
" don't match capitalized words in metadata
|
|
|
|
" don't match inside strings
|
|
|
|
syntax match subxGlobal %\(/\)\@<!\<[A-Z][a-z0-9_-]*\>% | highlight link subxGlobal SpecialChar
|
2018-11-21 03:37:00 +00:00
|
|
|
|
2018-12-02 20:49:15 +00:00
|
|
|
" functions but not tests, globals or internal functions
|
2020-05-10 20:18:13 +00:00
|
|
|
syntax match subxFunction "^\(test_\)\@<![a-z][^ ]*\(:\)\@=" | highlight link subxFunction Function
|
2018-12-15 07:44:59 +00:00
|
|
|
" tests starting with 'test-'; dark:34 light:64
|
2020-05-10 20:18:13 +00:00
|
|
|
syntax match subxTest "^test-[^ ]*\(:\)\@=" | highlight link subxTest Typedef
|
2018-12-02 20:49:15 +00:00
|
|
|
" internal functions starting with '_'
|
2020-05-10 20:18:13 +00:00
|
|
|
syntax match subxMinorFunction "^_[^ ]*\(:\)\@=" | highlight link subxMinorFunction Ignore
|
2018-12-02 20:49:15 +00:00
|
|
|
" other internal labels starting with '$'
|
2018-12-06 07:15:13 +00:00
|
|
|
syntax match subxLabel "^\$[^ ]*\(:\)\@=" | highlight link subxLabel Constant
|
2018-12-02 20:49:15 +00:00
|
|
|
|
2019-09-20 18:08:18 +00:00
|
|
|
syntax keyword subxControl break loop | highlight link subxControl Constant
|
|
|
|
|
2018-08-13 03:26:53 +00:00
|
|
|
let &cpo = s:save_cpo
|