Initial commit.
This commit is contained in:
commit
1d66949046
5
ftdetect/nomsu.vim
Normal file
5
ftdetect/nomsu.vim
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
" Language: Nomsu
|
||||||
|
" Maintainer: Bruce Hill <bruce@bruce-hill.com>
|
||||||
|
" License: WTFPL
|
||||||
|
|
||||||
|
autocmd BufNewFile,BufRead *.nom set filetype=nomsu
|
14
ftplugin/nomsu.vim
Normal file
14
ftplugin/nomsu.vim
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
" Language: Nomsu
|
||||||
|
" Maintainer: Bruce Hill <bruce@bruce-hill.com>
|
||||||
|
" License: WTFPL
|
||||||
|
|
||||||
|
if exists("b:did_ftplugin")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
setlocal formatoptions-=t
|
||||||
|
setlocal iskeyword=46,58,44,40,41,34,91,92
|
||||||
|
|
||||||
|
|
||||||
|
let b:undo_ftplugin = "setlocal formatoptions<"
|
39
indent/nomsu.vim
Normal file
39
indent/nomsu.vim
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
" Language: Nomsu
|
||||||
|
" Maintainer: Bruce Hill <bruce@bruce-hill.com>
|
||||||
|
" License: WTFPL
|
||||||
|
|
||||||
|
if exists("b:did_indent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:did_indent = 1
|
||||||
|
|
||||||
|
setlocal autoindent
|
||||||
|
setlocal indentexpr=GetNomsuIndent()
|
||||||
|
setlocal indentkeys+=.
|
||||||
|
|
||||||
|
" Only define the function once.
|
||||||
|
if exists("*GetNomsuIndent")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
function! GetNomsuIndent()
|
||||||
|
let line = getline(v:lnum)
|
||||||
|
let current_ind = indent(v:lnum)
|
||||||
|
let previousNum = prevnonblank(v:lnum - 1)
|
||||||
|
let previous = getline(previousNum)
|
||||||
|
let ind = indent(previousNum)
|
||||||
|
|
||||||
|
if previous =~ ':$' || previous =~ '\.\.$' || previous =~ '(\.\.)$' || previous =~ '\[\.\.\]$' || previous =~ '"\.\."$'
|
||||||
|
let ind += &tabstop
|
||||||
|
endif
|
||||||
|
|
||||||
|
if line =~ '^\s*\.\.$'
|
||||||
|
let ind -= &tabstop
|
||||||
|
endif
|
||||||
|
|
||||||
|
if ind == indent(previousNum)
|
||||||
|
return current_ind
|
||||||
|
endif
|
||||||
|
return ind
|
||||||
|
endfunction
|
49
syntax/nomsu.vim
Normal file
49
syntax/nomsu.vim
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
" Language: Nomsu
|
||||||
|
" Maintainer: Bruce Hill <bruce@bruce-hill.com>
|
||||||
|
" License: WTFPL
|
||||||
|
|
||||||
|
" Bail if our syntax is already loaded.
|
||||||
|
if exists('b:current_syntax') && b:current_syntax == 'nomsu'
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Highlight long strings.
|
||||||
|
syn sync minlines=100
|
||||||
|
|
||||||
|
" Regular strings
|
||||||
|
|
||||||
|
syn region nomsuString1 start=/"/ skip=/\\\\\|\\"/ end=/"/
|
||||||
|
hi def link nomsuString1 String
|
||||||
|
syn region nomsuString2 start=/"\.\."/ end=/\(\n[ \t]*[^ \t|]\)\@=/
|
||||||
|
hi def link nomsuString2 String
|
||||||
|
syn region nomsuComment start=/(#/ end=/#)/ contains=nomsuComment
|
||||||
|
hi def link nomsuComment Comment
|
||||||
|
|
||||||
|
syn match nomsuVar /\v\%[a-zA-Z0-9_'+*/^&$@#-]*/
|
||||||
|
hi def link nomsuVar Identifier
|
||||||
|
|
||||||
|
syn match nomsuNumber /\v([a-zA-Z])@<!\d+\.\d+/
|
||||||
|
syn match nomsuNumber /\v([a-zA-Z])@<!\d+/
|
||||||
|
hi def link nomsuNumber Number
|
||||||
|
|
||||||
|
syn match nomsuIndentor /\[\.\.\]/
|
||||||
|
syn match nomsuIndentor /(\.\.)/
|
||||||
|
syn match nomsuIndentor /\.\.\s*$/
|
||||||
|
syn match nomsuIndentor /^\s*\.\./
|
||||||
|
hi def link nomsuIndentor Special
|
||||||
|
|
||||||
|
syn match nomsuIndentor /\.\./
|
||||||
|
hi def link nomsuIndentor Delimiter
|
||||||
|
|
||||||
|
syn match nomsuComma /,/
|
||||||
|
hi def link nomsuComma Delimiter
|
||||||
|
|
||||||
|
syn match nomsuThunk /:/
|
||||||
|
hi def link nomsuThunk Structure
|
||||||
|
|
||||||
|
syn match nomsuToken /\v(\%)@<!\%[a-zA-Z_'+*/^&$@#-][a-zA-Z0-9_'+*/^&$@#-]*/
|
||||||
|
hi def link nomsuToken Function
|
||||||
|
|
||||||
|
if !exists('b:current_syntax')
|
||||||
|
let b:current_syntax = 'nomsu'
|
||||||
|
endif
|
Loading…
Reference in New Issue
Block a user