aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMarvin Borner2022-08-08 11:31:07 +0200
committerMarvin Borner2022-08-08 11:46:02 +0200
commitf6fe760b2dc2abd91812d55a8120911e5d744e66 (patch)
tree40d961818270efd3832df7377b197ee069314a55
parent9563b2cb9e58403877445a9c9964b5ee9e946075 (diff)
Better syntax highlighting
-rw-r--r--editors/vim/syntax/bruijn.vim53
1 files changed, 20 insertions, 33 deletions
diff --git a/editors/vim/syntax/bruijn.vim b/editors/vim/syntax/bruijn.vim
index 4782f1f..d11cccc 100644
--- a/editors/vim/syntax/bruijn.vim
+++ b/editors/vim/syntax/bruijn.vim
@@ -5,38 +5,25 @@ if exists("b:current_syntax")
finish
endif
-let s:bruijn_syntax_keywords = {
- \ 'bruijnInstruction' :[":test "
- \ , ":import "
- \ , ":print "
- \ , ]
- \ , }
-
-function! s:syntax_keyword(dict)
- for key in keys(a:dict)
- execute 'syntax keyword' key join(a:dict[key], ' ')
- endfor
-endfunction
-
-call s:syntax_keyword(s:bruijn_syntax_keywords)
-
-syntax match bruijnApplication /[()]/
-syntax match bruijnAbstraction /[[\]]/
-syntax match bruijnIndex display "\d"
-syntax match bruijnDefinition /^\S\+/
-
-syntax region bruijnCommentLine start="# " end="$"
-
-" this might be weird but because of bruijn's limited
-" functionality it's okay to use the wrong constants
-" for better looks
-highlight default link bruijnIndex Special
-highlight default link bruijnDefinition Function
-highlight default link bruijnInstruction Keyword
-highlight default link bruijnAbstraction Boolean
-highlight default link bruijnApplication String
-highlight default link bruijnCommentLine Comment
-
-delfunction s:syntax_keyword
+syn match bruijnApplication /[()]/
+syn match bruijnAbstraction /[[\]]/
+syn match bruijnIndex display "\d"
+syn match bruijnNumber /[+-]\d\+/
+syn match bruijnDefinition /^\t*\S\+/
+syn match bruijnKeyword /:test\|:import\|:print/
+syn match bruijnNamespace /[A-Z][a-z]*\(\.\)\@=/
+syn match bruijnNamespaceDelim /\([A-Z][a-z]*\)\@<=\./
+
+syn region bruijnCommentLine start="^# " end="$"
+
+hi def link bruijnIndex Special
+hi def link bruijnNumber Number
+hi def link bruijnDefinition Define
+hi def link bruijnKeyword Macro
+hi def link bruijnNamespace Type
+hi def link bruijnNamespaceDelim Special
+hi def link bruijnAbstraction Function
+hi def link bruijnApplication String
+hi def link bruijnCommentLine Comment
let b:current_syntax = "bruijn"