From eaeb43de2ebf4979cbb5e5afcb62b410e82715ab Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Fri, 28 Feb 2020 11:19:53 -0800 Subject: 6067 Missed the file. --- mu.vim | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 mu.vim diff --git a/mu.vim b/mu.vim new file mode 100644 index 00000000..c83b391b --- /dev/null +++ b/mu.vim @@ -0,0 +1,58 @@ +" Vim syntax file +" Language: mu +" Maintainer: Kartik Agaram +" URL: http://github.com/akkartik/mu +" License: public domain +" +" Copy this into your ftplugin directory, and add the following to your vimrc +" or to .vim/ftdetect/mu.vim: +" autocmd BufReadPost,BufNewFile *.mu set filetype=mu + +let s:save_cpo = &cpo +set cpo&vim + +" todo: why does this periodically lose syntax, like on file reload? +" $ vim x.mu +" :e +"? if exists("b:syntax") +"? finish +"? endif +"? let b:syntax = "mu" + +setlocal iskeyword=@,48-57,?,!,_,$,- +setlocal formatoptions-=t " Mu programs have long lines +setlocal formatoptions+=c " but comments should still wrap + +syntax match muComment /#.*$/ | highlight link muComment Comment +syntax match muSalientComment /##.*$/ | highlight link muSalientComment SalientComment +set comments+=n:# +syntax match muCommentedCode "#? .*" | highlight link muCommentedCode CommentedCode +let b:cmt_head = "#? " + +syntax match muDelimiter "[{}]" | highlight link muDelimiter Delimiter + +" Mu literals +syntax match muLiteral %\<[0-9-]\?[0-9]\+/[^ ,]*% +highlight link muLiteral Constant + +" sources of action at a distance +syntax match muAssign "<-" +highlight link muAssign SpecialChar + +" common keywords +" use regular expressions for common words that may come after '/' +syntax match muControl "^return\>\| return\>" +syntax match muControl "\\|\\|\\|\ " +syntax keyword muRecipe fn type +highlight link muRecipe PreProc + +syntax match muData "^type\>" +syntax match muData "\\|\\|\\|\\|\\|\" +highlight link muData Constant + +let &cpo = s:save_cpo -- cgit 1.4.1-2-gfad0