Some syntaxwork done
This commit is contained in:
parent
5eaddba1dd
commit
00a6e2e4ea
5 changed files with 138 additions and 38 deletions
|
|
@ -25,6 +25,7 @@ Attempt at writing an async outline/structure listing/navigator for files/module
|
|||
|
||||
# TODO For advanced
|
||||
- [ ] Syntax with nim compiler highlight using matchaddpos ??
|
||||
- [ ] Highlight variable names semantically
|
||||
- [ ] Outline with unite
|
||||
- [ ] Outline with proper tagbar
|
||||
- [ ] Usages with unite
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ endfunction
|
|||
|
||||
|
||||
function! highlighter#guard()
|
||||
if line("$") + 0 < 500
|
||||
call highlighter#New()
|
||||
endif
|
||||
" if line("$") + 0 < 500
|
||||
" call highlighter#New()
|
||||
" endif
|
||||
endfunction
|
||||
|
|
|
|||
0
compiler/nim.vim
Normal file
0
compiler/nim.vim
Normal file
|
|
@ -1,3 +1,12 @@
|
|||
" if exists("b:loaded")
|
||||
" finish
|
||||
" endif
|
||||
let b:loaded = 1
|
||||
|
||||
setlocal formatoptions-=t formatoptions+=l
|
||||
setlocal comments=s1:#[,mb:#,ex:]#,:#
|
||||
setlocal commentstring=#\ %s
|
||||
setlocal expandtab
|
||||
|
||||
command! NimDefinition :call features#definition#run()
|
||||
command! NimInfo :call features#info#run()
|
||||
|
|
|
|||
160
syntax/nim.vim
160
syntax/nim.vim
|
|
@ -1,37 +1,127 @@
|
|||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax keyword nimKeyword let const var
|
||||
syntax keyword nimKeyword addr and as asm atomic
|
||||
syntax keyword nimKeyword bind block break
|
||||
syntax keyword nimKeyword case cast concept const continue converter
|
||||
syntax keyword nimKeyword defer discard distinct div do
|
||||
syntax keyword nimKeyword elif else end enum except export
|
||||
syntax keyword nimKeyword finally for from func
|
||||
syntax keyword nimKeyword generic
|
||||
syntax keyword nimKeyword if import in include interface is isnot iterator
|
||||
syntax keyword nimKeyword let
|
||||
syntax keyword nimKeyword macro method mixin mod
|
||||
syntax keyword nimKeyword nil not notin
|
||||
syntax keyword nimKeyword object of or out
|
||||
syntax keyword nimKeyword proc ptr
|
||||
syntax keyword nimKeyword raise ref return
|
||||
syntax keyword nimKeyword shl shr static
|
||||
syntax keyword nimKeyword template try tuple type
|
||||
syntax keyword nimKeyword using
|
||||
syntax keyword nimKeyword var
|
||||
syntax keyword nimKeyword when while with without
|
||||
syntax keyword nimKeyword xor
|
||||
syntax keyword nimKeyword yield
|
||||
|
||||
syntax keyword nimBuiltinFunction echo
|
||||
|
||||
syntax keyword nimOperator and or not xor shl shr div mod in notin is isnot of.
|
||||
" syntax keyword nimOperator =+-*/<>@$~&%|!?^.:\
|
||||
|
||||
highlight link nimOperator Operator
|
||||
highlight link nimKeyword Keyword
|
||||
highlight link nimBuiltinFunction Function
|
||||
" if exists("b:current_syntax")
|
||||
" finish
|
||||
" endif
|
||||
" if version < 600
|
||||
" syntax
|
||||
" endif
|
||||
|
||||
let b:current_syntax = "nim"
|
||||
|
||||
|
||||
" Keywords
|
||||
syntax keyword nimKeyword let const var static
|
||||
syntax keyword nimKeyword addr asm atomic bind cast converter
|
||||
syntax keyword nimKeyword defer discard distinct do end generic iterator
|
||||
syntax keyword nimKeyword typedesc out ptr raise ref return using with without yield
|
||||
|
||||
" syntax keyword nimOperator for while
|
||||
syntax keyword nimBoolean true false
|
||||
syntax keyword nimConditional if elif else case continue break
|
||||
syntax keyword nimDefine from as
|
||||
syntax keyword nimException try except finally
|
||||
syntax keyword nimInclude import include export
|
||||
syntax keyword nimLabel of
|
||||
syntax keyword nimMacro macro
|
||||
syntax keyword nimPreCondit when block
|
||||
syntax keyword nimPreProc nil
|
||||
syntax keyword nimRepeat for while
|
||||
syntax keyword nimStorage tuple enum object interface concept mixin
|
||||
syntax keyword nimStorageClass type
|
||||
syntax keyword nimTypedef func proc method template
|
||||
|
||||
syntax keyword nimTodo TODO FIXME
|
||||
|
||||
|
||||
" Operators
|
||||
syntax match nimOperatorAll "[&:?!@<>\|\~\.\^\=\/\+\-\*\$%]\+"
|
||||
syntax keyword nimOperator and or not xor shl shr div mod in notin is isnot of.
|
||||
syntax keyword nimOP9 div mod shl shr
|
||||
syntax keyword nimOP5 in notin is isnot not of
|
||||
syntax keyword nimOP4 and
|
||||
syntax keyword nimOP3 or xor
|
||||
syntax match nimOP10 "[\$\^]"
|
||||
syntax match nimOP9 "[\*\%\\\/]"
|
||||
syntax match nimOP6 "\."
|
||||
syntax match nimOP5 "[=|<|>]"
|
||||
syntax match nimOP5 "\v([!<>]\=)"
|
||||
syntax match nimOP2 "[@:?]"
|
||||
syntax match nimOP1 "[\*+\/%&]="
|
||||
syntax match nimOP0 "=>"
|
||||
syntax match nimOP0 "\->"
|
||||
|
||||
|
||||
" Comments
|
||||
syntax match nimComment "\v#.*$" contains=nimTodo
|
||||
|
||||
|
||||
" Builtin
|
||||
syntax keyword nimBuiltinFunction echo debugEcho
|
||||
|
||||
syntax keyword nimBuiltinType seq
|
||||
|
||||
|
||||
" Numbers
|
||||
syntax match nimNumber "\v[0-9_]+((i|I|u|U)(8|16|32|64))?>"
|
||||
syntax match nimFloat "\v[0-9_]+(f|d|F|D)>"
|
||||
syntax match nimFloat "\v[0-9_]+\.[0-9]+(f|d|F|D)>"
|
||||
syntax match nimFloat "\v[0-9_]+((f|F)(32|64|128))>"
|
||||
syntax match nimFloat "\v[0-9_]+\.[0-9]+((f|F)(32|64|128))?>"
|
||||
|
||||
|
||||
" Tokens
|
||||
syntax match nimToken "`"
|
||||
syntax match nimToken "("
|
||||
syntax match nimToken ")"
|
||||
syntax match nimToken "{"
|
||||
syntax match nimToken "}"
|
||||
syntax match nimToken "\["
|
||||
syntax match nimToken "\]"
|
||||
syntax match nimToken ","
|
||||
syntax match nimToken ";"
|
||||
syntax match nimToken "\[\."
|
||||
syntax match nimToken "\.\]"
|
||||
syntax match nimToken "{\."
|
||||
syntax match nimToken "\.}"
|
||||
syntax match nimToken "(\."
|
||||
syntax match nimToken "\.)"
|
||||
|
||||
|
||||
" Linking
|
||||
highlight link nimBuiltinFunction Function
|
||||
highlight link nimBuiltinType Type
|
||||
highlight link nimComment Comment
|
||||
highlight link nimKeyword Keyword
|
||||
highlight link nimTodo Todo
|
||||
highlight link nimOperatorAll Operator
|
||||
highlight link nimOP10 Operator10
|
||||
highlight link nimOP9 Operator9
|
||||
highlight link nimOP8 Operator8
|
||||
highlight link nimOP7 Operator7
|
||||
highlight link nimOP6 Operator6
|
||||
highlight link nimOP5 Operator5
|
||||
highlight link nimOP4 Operator4
|
||||
highlight link nimOP3 Operator3
|
||||
highlight link nimOP2 Operator2
|
||||
highlight link nimOP1 Operator1
|
||||
highlight link nimOP0 Operator0
|
||||
highlight link nimToken Delimiter
|
||||
highlight link nimSuffix SpecialChar
|
||||
highlight link nimBoolean Boolean
|
||||
highlight link nimFloat Float
|
||||
highlight link nimString String
|
||||
highlight link nimChar Char
|
||||
highlight link nimNumber Number
|
||||
|
||||
highlight link nimConditional Conditional
|
||||
highlight link nimConstant Constant
|
||||
highlight link nimDefine Define
|
||||
highlight link nimException Exception
|
||||
highlight link nimInclude Include
|
||||
highlight link nimLabel Label
|
||||
highlight link nimMacro Macro
|
||||
highlight link nimPreCondit PreCondit
|
||||
highlight link nimPreProc PreProc
|
||||
highlight link nimRepeat Repeat
|
||||
highlight link nimStorage Structure
|
||||
highlight link nimStorageClass StorageClass
|
||||
highlight link nimTypedef Typedef
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue