diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-06-06 15:09:32 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-06-06 15:09:32 -0700 |
commit | 11162888713dfbec6509c6c460c99f396f474ef0 (patch) | |
tree | 1dc8f3008ac4c855f85c14791e2b139379bda4e1 | |
parent | c1fff5ec143a3fb658357ec3f312ca7fcd40ef01 (diff) | |
download | mu-11162888713dfbec6509c6c460c99f396f474ef0.tar.gz |
hacky Vim syntax highlighting for Mu Lisp
-rw-r--r-- | editor/mulisp.vim | 33 | ||||
-rw-r--r-- | vimrc.vim | 2 |
2 files changed, 34 insertions, 1 deletions
diff --git a/editor/mulisp.vim b/editor/mulisp.vim new file mode 100644 index 00000000..0f57cc90 --- /dev/null +++ b/editor/mulisp.vim @@ -0,0 +1,33 @@ +" Vim syntax file +" Language: Mu Lisp +" Maintainer: Kartik Agaram <mu@akkartik.com> +" URL: http://github.com/akkartik/mu +" License: public domain +" +" Copy this file into your ftplugin directory, and add the following to your +" vimrc or to .vim/ftdetect/mulisp.vim: +" autocmd BufReadPost,BufNewFile *.limg set filetype=mulisp + +let s:save_cpo = &cpo +set cpo&vim + +setlocal iskeyword=@,48-57,?,!,_,$ + +" Hack: I define new syntax groups here, and I don't know how to distribute +" colorscheme-independent color suggestions for them. +highlight Normal ctermfg=245 +highlight MuLispNormal ctermfg=0 +highlight muLispKeyword ctermfg=2 + +syntax region String start=+"+ skip=+\\"+ end=+"+ + +syntax region muLispNormal matchgroup=Normal start=/\[/ end=/\]/ contains=muLispLiteral,muLispComment,muLispDelimiter + +syntax match muLispComment /#.*/ contained | highlight link muLispComment Comment +syntax match muLispLiteral /\<[0-9]\+\>/ contained | highlight link muLispLiteral Constant +syntax match muLispLiteral /\[[^\]]*\]/ contained +syntax match muLispDelimiter /[(),@`]/ contained | highlight link muLispDelimiter Delimiter + +syntax keyword muLispKeyword globals sandbox + +let &cpo = s:save_cpo diff --git a/vimrc.vim b/vimrc.vim index b8b17a8c..73ece60c 100644 --- a/vimrc.vim +++ b/vimrc.vim @@ -97,4 +97,4 @@ inoremap <Leader>o <Esc>F<Space>a(offset <Esc>A) inoremap ,- <- inoremap -. -> -autocmd BufReadPost,BufNewFile *.limg call matchadd('String', '\[\([^\]]*\_$\_s\)*[^\]]*\]') +autocmd BufReadPost,BufNewFile *.limg set filetype=mulisp |call matchadd('String', '\[\([^\]]*\_$\_s\)*[^\]]*\]') |