diff options
-rw-r--r-- | example.snug (renamed from example.txt) | 0 | ||||
-rw-r--r-- | vim-snug/ftdetect/snug.vim | 1 | ||||
-rw-r--r-- | vim-snug/ftplugin/snug.vim | 26 | ||||
-rw-r--r-- | vim-snug/syntax/snug.vim | 39 |
4 files changed, 66 insertions, 0 deletions
diff --git a/example.txt b/example.snug index 33d4dab..33d4dab 100644 --- a/example.txt +++ b/example.snug diff --git a/vim-snug/ftdetect/snug.vim b/vim-snug/ftdetect/snug.vim new file mode 100644 index 0000000..07343d1 --- /dev/null +++ b/vim-snug/ftdetect/snug.vim @@ -0,0 +1 @@ +au BufNewFile,BufRead *.snug set filetype=snug diff --git a/vim-snug/ftplugin/snug.vim b/vim-snug/ftplugin/snug.vim new file mode 100644 index 0000000..c385573 --- /dev/null +++ b/vim-snug/ftplugin/snug.vim @@ -0,0 +1,26 @@ +" Vim plugin for snug development +" Language: Snug functional programing language +" Maintainer: Camil Staps <info@camilstaps.nl> +" License: This file is placed in the public domain. + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let b:undo_ftplugin = "setlocal com< cms< fo< sua<" + +setlocal comments=sr:(#,m:\ ,ex:#) +setlocal commentstring=(#\ %s\ #) + +setlocal formatoptions-=t formatoptions+=cro + +setlocal suffixesadd=.snug + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: expandtab shiftwidth=2 tabstop=2 diff --git a/vim-snug/syntax/snug.vim b/vim-snug/syntax/snug.vim new file mode 100644 index 0000000..0353f63 --- /dev/null +++ b/vim-snug/syntax/snug.vim @@ -0,0 +1,39 @@ +" Snug syntax file +" Language: Snug functional programing language +" Maintainer: Camil Staps <info@camilstaps.nl> +" License: This file is placed in the public domain. + +if exists("b:current_syntax") + finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword snugKeyword case data fun type + +syn keyword snugTodo TODO FIXME XXX BUG NB contained containedin=snugComment + +syn match snugChar /'[^'\\]'/ display +syn match snugInt /\d\+/ display + +syn match snugDelimiter /\v[\[\]\(\):;=,]/ display + +syn match snugIdentifier /^[_a-zA-Z]\+/ display + +syn region snugComment start="(#" end="#)" contains=@Spell,snugComment display + +hi def link snugKeyword Keyword +hi def link snugChar Character +hi def link snugInt Number +hi def link snugDelimiter Delimiter +hi def link snugIdentifier Identifier +hi def link snugTodo Todo +hi def link snugComment Comment + +syntax sync ccomment snugComment + +let b:current_syntax = 'snug' + +let &cpo = s:cpo_save +unlet s:cpo_save |