diff options
| -rw-r--r-- | README.md | 2 | ||||
| -rwxr-xr-x | build | 3 | ||||
| -rw-r--r-- | extras/flow.vim | 46 | ||||
| -rw-r--r-- | extras/jsdoc.vim | 43 | ||||
| -rw-r--r-- | extras/ngdoc.vim | 7 | 
5 files changed, 99 insertions, 2 deletions
| @@ -56,7 +56,7 @@ Optionally download one of the [releases](https://github.com/sheerun/vim-polyglo  - [haxe](https://github.com/yaymukund/vim-haxe) (syntax, ftdetect)  - [html5](https://github.com/othree/html5.vim) (syntax, indent, autoload, ftplugin)  - [jasmine](https://github.com/glanotte/vim-jasmine) (syntax, ftdetect) -- [javascript](https://github.com/pangloss/vim-javascript) (syntax, indent, ftplugin, ftdetect) +- [javascript](https://github.com/pangloss/vim-javascript) (syntax, indent, ftplugin, ftdetect, extras)  - [json](https://github.com/elzr/vim-json) (syntax, indent, ftplugin, ftdetect)  - [jst](https://github.com/briancollins/vim-jst) (syntax, indent, ftdetect)  - [jsx](https://github.com/mxw/vim-jsx) (ftdetect, after) @@ -6,6 +6,7 @@ DIRS="syntax indent compiler autoload ftplugin ftdetect after/syntax after/inden  DIRS_BASIC="syntax compiler indent ftdetect after/syntax after/indent after/ftdetect"  DIRS_ALL="syntax indent compiler autoload ftplugin ftdetect after"  DIRS_SYNTAX="syntax ftdetect after/syntax after/ftdetect" +DIRS_JAVASCRIPT="${DIRS} extras"  OUTPUT="" @@ -129,7 +130,7 @@ PACKS="    haxe:yaymukund/vim-haxe    html5:othree/html5.vim    jasmine:glanotte/vim-jasmine -  javascript:pangloss/vim-javascript +  javascript:pangloss/vim-javascript:_JAVASCRIPT    json:elzr/vim-json    jst:briancollins/vim-jst    jsx:mxw/vim-jsx:_ALL diff --git a/extras/flow.vim b/extras/flow.vim new file mode 100644 index 00000000..a18c8825 --- /dev/null +++ b/extras/flow.vim @@ -0,0 +1,46 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1 +   +syntax region  jsFlowTypeStatement            start=/type/    end=/=/     oneline skipwhite skipempty nextgroup=jsFlowTypeObject +syntax region  jsFlowDeclareBlock             start=/declare/ end=/[;\n]/ oneline contains=jsFlow,jsFlowDeclareKeyword,jsFlowStorageClass +syntax region  jsFlow                         start=/:/       end=/\%(\%([),=;\n]\|{\%(.*}\)\@!\|\%({.*}\)\@<=\s*{\)\@=\|void\)/ contains=@jsFlowCluster oneline skipwhite skipempty nextgroup=jsFuncBlock +syntax region  jsFlowReturn         contained start=/:/       end=/\%(\S\s*\%({\%(.*}\)\@!\)\@=\|\n\)/ contains=@jsFlowCluster oneline skipwhite skipempty nextgroup=jsFuncBlock keepend +syntax region  jsFlowTypeObject     contained start=/{/       end=/}/ contains=jsFlowTypeKey skipwhite skipempty nextgroup=jsFunctionBlock extend +syntax match   jsFlowTypeKey        contained /\<[0-9a-zA-Z_$?]*\>\(\s*:\)\@=/ skipwhite skipempty nextgroup=jsFlowTypeValue +syntax region  jsFlowTypeValue      contained matchgroup=jsFlowNoise start=/:/       end=/[,}]/ contains=@jsFlowCluster +syntax region  jsFlowObject         contained matchgroup=jsFlowNoise start=/{/       end=/}/     oneline contains=@jsFlowCluster +syntax region  jsFlowArray          contained matchgroup=jsFlowNoise start=/\[/      end=/\]/    oneline contains=@jsFlowCluster +syntax region  jsFlowArrow          contained matchgroup=jsFlowNoise start=/(/       end=/)\s*=>/     oneline contains=@jsFlowCluster +syntax keyword jsFlowDeclareKeyword contained declare +syntax keyword jsFlowType           contained boolean number string null void any mixed JSON array function object Array +syntax match   jsFlowClassProperty  contained /\<[0-9a-zA-Z_$]*\>:\@=/ skipwhite skipempty nextgroup=jsFlow +syntax match   jsFlowNoise          contained /[:;,<>]/ +syntax cluster jsFlowCluster        contains=jsFlowType,jsFlowArray,jsFlowObject,jsFlowNoise,jsFlowArrow +syntax keyword jsFlowStorageClass   contained const var let +syntax region  jsFlowParenRegion    contained start=/:\s*(/ end=/)\%(\s*:\)\@=/ oneline contains=@jsFlowCluster skipwhite skipempty nextgroup=jsObjectValue +syntax region  jsFlowClass          contained matchgroup=jsFlowNoise start=/</ end=/>/ oneline contains=@jsFlowCluster skipwhite skipempty nextgroup=jsClassBlock + +if version >= 508 || !exists("did_javascript_syn_inits") +  if version < 508 +    let did_javascript_syn_inits = 1 +    command -nargs=+ HiLink hi link <args> +  else +    command -nargs=+ HiLink hi def link <args> +  endif +  HiLink jsFlow                   PreProc +  HiLink jsFlowReturn             PreProc +  HiLink jsFlowArray              PreProc +  HiLink jsFlowDeclareBlock       PreProc +  HiLink jsFlowObject             PreProc +  HiLink jsFlowParenRegion        PreProc +  HiLink jsFlowClass              PreProc +  HiLink jsFlowTypeObject         PreProc +  HiLink jsFlowTypeKey            PreProc +  HiLink jsFlowTypeValue          PreProc +  HiLink jsFlowClassProperty      jsClassProperty +  HiLink jsFlowType               Type +  HiLink jsFlowDeclareKeyword     Type +  HiLink jsFlowNoise              Noise +  delcommand HiLink +endif + +endif diff --git a/extras/jsdoc.vim b/extras/jsdoc.vim new file mode 100644 index 00000000..c5d7a572 --- /dev/null +++ b/extras/jsdoc.vim @@ -0,0 +1,43 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1 +   +"" syntax coloring for javadoc comments (HTML) +syntax region jsComment    matchgroup=jsComment start="/\*\s*"  end="\*/" contains=jsDocTags,jsCommentTodo,jsCvsTag,@jsHtml,@Spell fold + +" tags containing a param +syntax match  jsDocTags         contained "@\(alias\|api\|augments\|borrows\|class\|constructs\|default\|defaultvalue\|emits\|exception\|exports\|extends\|fires\|kind\|link\|listens\|member\|member[oO]f\|mixes\|module\|name\|namespace\|requires\|template\|throws\|var\|variation\|version\)\>" skipwhite nextgroup=jsDocParam +" tags containing type and param +syntax match  jsDocTags         contained "@\(arg\|argument\|cfg\|param\|property\|prop\)\>" skipwhite nextgroup=jsDocType +" tags containing type but no param +syntax match  jsDocTags         contained "@\(callback\|define\|enum\|external\|implements\|this\|type\|typedef\|return\|returns\)\>" skipwhite nextgroup=jsDocTypeNoParam +" tags containing references +syntax match  jsDocTags         contained "@\(lends\|see\|tutorial\)\>" skipwhite nextgroup=jsDocSeeTag +" other tags (no extra syntax) +syntax match  jsDocTags         contained "@\(abstract\|access\|accessor\|author\|classdesc\|constant\|const\|constructor\|copyright\|deprecated\|desc\|description\|dict\|event\|example\|file\|file[oO]verview\|final\|function\|global\|ignore\|inheritDoc\|inner\|instance\|interface\|license\|localdoc\|method\|mixin\|nosideeffects\|override\|overview\|preserve\|private\|protected\|public\|readonly\|since\|static\|struct\|todo\|summary\|undocumented\|virtual\)\>" + +syntax region jsDocType         contained matchgroup=jsDocTypeBrackets start="{" end="}" contains=jsDocTypeRecord oneline skipwhite nextgroup=jsDocParam +syntax match  jsDocType         contained "\%(#\|\"\|\w\|\.\|:\|\/\)\+" skipwhite nextgroup=jsDocParam +syntax region jsDocTypeRecord   contained start=/{/ end=/}/ contains=jsDocTypeRecord extend +syntax region jsDocTypeRecord   contained start=/\[/ end=/\]/ contains=jsDocTypeRecord extend +syntax region jsDocTypeNoParam  contained start="{" end="}" oneline +syntax match  jsDocTypeNoParam  contained "\%(#\|\"\|\w\|\.\|:\|\/\)\+" +syntax match  jsDocParam        contained "\%(#\|\$\|-\|'\|\"\|{.\{-}}\|\w\|\.\|:\|\/\|\[.{-}]\|=\)\+" +syntax region jsDocSeeTag       contained matchgroup=jsDocSeeTag start="{" end="}" contains=jsDocTags + +if version >= 508 || !exists("did_javascript_syn_inits") +  if version < 508 +    let did_javascript_syn_inits = 1 +    command -nargs=+ HiLink hi link <args> +  else +    command -nargs=+ HiLink hi def link <args> +  endif +  HiLink jsDocTags              Special +  HiLink jsDocSeeTag            Function +  HiLink jsDocType              Type +  HiLink jsDocTypeBrackets      jsDocType +  HiLink jsDocTypeRecord        jsDocType +  HiLink jsDocTypeNoParam       Type +  HiLink jsDocParam             Label +  delcommand HiLink +endif + +endif diff --git a/extras/ngdoc.vim b/extras/ngdoc.vim new file mode 100644 index 00000000..be314a80 --- /dev/null +++ b/extras/ngdoc.vim @@ -0,0 +1,7 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1 +   +syntax match  jsDocTags         contained /@\(link\|method[oO]f\|ngdoc\|ng[iI]nject\|restrict\)/ nextgroup=jsDocParam skipwhite +syntax match  jsDocType         contained "\%(#\|\$\|\w\|\"\|-\|\.\|:\|\/\)\+" nextgroup=jsDocParam skipwhite +syntax match  jsDocParam        contained "\%(#\|\$\|\w\|\"\|-\|\.\|:\|{\|}\|\/\|\[\|]\|=\)\+" + +endif | 
