diff --git a/resources/japl.vim/ftdetect/japl.vim b/resources/japl.vim/ftdetect/japl.vim new file mode 100644 index 0000000..2456525 --- /dev/null +++ b/resources/japl.vim/ftdetect/japl.vim @@ -0,0 +1 @@ +autocmd BufNewFile,BufRead *.jpl setfiletype japl diff --git a/resources/japl.vim/ftplugin/japl.vim b/resources/japl.vim/ftplugin/japl.vim new file mode 100644 index 0000000..979bff2 --- /dev/null +++ b/resources/japl.vim/ftplugin/japl.vim @@ -0,0 +1,8 @@ + +augroup japl + setlocal commentstring=//\ %s + setlocal tabstop=4 + setlocal softtabstop=4 + setlocal shiftwidth=4 +augroup END + diff --git a/resources/japl.vim/indent/japl.vim b/resources/japl.vim/indent/japl.vim new file mode 100644 index 0000000..d4d6e9e --- /dev/null +++ b/resources/japl.vim/indent/japl.vim @@ -0,0 +1,20 @@ +setlocal indentexpr=JaplIndent() + +function! JaplIndent() + let line = getline(v:lnum) + let previousNum = prevnonblank(v:lnum-1) + let previous = getline(previousNum) + + if previous =~ "{" && previous !~ "}" && line !~ "}" + return indent(previousNum) + &tabstop + endif + + + if line =~ "}" + return indent(previousNum) - &tabstop + endif + + return indent(previousNum) + + +endfunction diff --git a/resources/japl.vim/syntax/japl.vim b/resources/japl.vim/syntax/japl.vim new file mode 100644 index 0000000..bfb60b4 --- /dev/null +++ b/resources/japl.vim/syntax/japl.vim @@ -0,0 +1,34 @@ +syntax keyword japlTodos TODO XXX FIXME NOTE + +syntax keyword japlKeywords + \ if + \ var + \ fun + +syntax keyword japlBooleans + \ true + \ false + +syntax match japlNumber "\v<\d+>" +syntax match japlNumber "\v<\d+.\d+>" +syntax match japlComment "//.*$" +syntax match japlBlock "{" +syntax match japlBlock "}" + +syntax region japlString start=/"/ end=/"/ + +highlight default link japlTodos Todo +highlight default link japlComment Comment +highlight default link japlString String +highlight default link japlNumber Number +highlight default link japlBoolean Keyword +highlight default link japlKeywords Keyword +highlight default link japlBlock Keyword + +" the following exist too: +" Operator +" PreProc (c macros e.g.) +" Delimeter +" Structure +" Type (user defined types) +" Include