Mercurial > vim
view runtime/syntax/j.vim @ 5425:9521463d4fc1
Update runtime files.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Sun, 03 Nov 2013 21:14:31 +0100 |
parents | ab1508486b12 |
children | 657ade71d395 |
line wrap: on
line source
" Vim syntax file " Language: J " Maintainer: David Bürgin <676c7473@gmail.com> " Last Change: 2013-10-06 if exists("b:current_syntax") finish endif syntax case match syntax sync minlines=50 syn match jControl /\<\%(assert\|break\|case\|catch[dt]\=\|continue\|do\|else\%(if\)\=\|end\|fcase\|for\|if\|return\|select\|throw\|try\|whil\%(e\|st\)\)\./ syn match jControl /\<\%(for\|goto\|label\)_\a\k*\./ syn region jString oneline start=/'/ skip=/''/ end=/'/ " Patterns for numbers in general, rational numbers, numbers with explicit " base, infinities, and numbers with extended precision. " " Matching J numbers is difficult. The regular expression used for the general " case roughly embodies this grammar sketch: " " EXP := /_?\d+(\.\d*)?([eE]_?\d+)?/ " COMP := EXP | EXP (j|a[dr]) EXP " PIEU := COMP | COMP [px] COMP " " For the rest, a compromise between correctness and practicality was made. " See http://www.jsoftware.com/help/dictionary/dcons.htm for reference. syn match jNumber /\<_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\%(\%(j\|a[dr]\)_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\)\=\%([px]_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\%(\%(j\|a[dr]\)_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=\)\=\)\=/ syn match jNumber /\<_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=r_\=\d\+\%(\.\d*\)\=\%([eE]_\=\d\+\)\=/ syn match jNumber /\<_\=\d\+\%([eE]\d\+\)\=b_\=[0-9a-z]\+/ syn match jNumber /\<__\=\>/ syn match jNumber /\<_\=\d\+x\>/ syn match jComment /NB\..*$/ contains=jTodo,@Spell syn keyword jTodo TODO FIXME XXX contained hi def link jControl Statement hi def link jString String hi def link jNumber Number hi def link jComment Comment hi def link jTodo Todo let b:current_syntax = "j"