mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e8454d66ab | ||
|
|
a60e299a3c | ||
|
|
b8a5504021 | ||
|
|
cea0d08a06 | ||
|
|
43085dc02f |
@@ -1,205 +0,0 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'markdown') == -1
|
|
||||||
|
|
||||||
" vim: ts=4 sw=4:
|
|
||||||
" folding for Markdown headers, both styles (atx- and setex-)
|
|
||||||
" http://daringfireball.net/projects/markdown/syntax#header
|
|
||||||
"
|
|
||||||
" this code can be placed in file
|
|
||||||
" $HOME/.vim/after/ftplugin/markdown.vim
|
|
||||||
"
|
|
||||||
" original version from Steve Losh's gist: https://gist.github.com/1038710
|
|
||||||
|
|
||||||
function! s:is_mkdCode(lnum)
|
|
||||||
let name = synIDattr(synID(a:lnum, 1, 0), 'name')
|
|
||||||
return (name =~ '^mkd\%(Code$\|Snippet\)' || name != '' && name !~ '^\%(mkd\|html\)')
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
if get(g:, "vim_markdown_folding_style_pythonic", 0)
|
|
||||||
function! Foldexpr_markdown(lnum)
|
|
||||||
let l1 = getline(a:lnum)
|
|
||||||
"~~~~~ keep track of fenced code blocks ~~~~~
|
|
||||||
"If we hit a code block fence
|
|
||||||
if l1 =~ '````*' || l1 =~ '\~\~\~\~*'
|
|
||||||
" toggle the variable that says if we're in a code block
|
|
||||||
if b:fenced_block == 0
|
|
||||||
let b:fenced_block = 1
|
|
||||||
elseif b:fenced_block == 1
|
|
||||||
let b:fenced_block = 0
|
|
||||||
endif
|
|
||||||
" else, if we're caring about front matter
|
|
||||||
elseif g:vim_markdown_frontmatter == 1
|
|
||||||
" if we're in front matter and not on line 1
|
|
||||||
if b:front_matter == 1 && a:lnum > 2
|
|
||||||
let l0 = getline(a:lnum-1)
|
|
||||||
" if the previous line fenced front matter
|
|
||||||
if l0 == '---'
|
|
||||||
" we must not be in front matter
|
|
||||||
let b:front_matter = 0
|
|
||||||
endif
|
|
||||||
" else, if we're on line one
|
|
||||||
elseif a:lnum == 1
|
|
||||||
" if we hit a front matter fence
|
|
||||||
if l1 == '---'
|
|
||||||
" we're in the front matter
|
|
||||||
let b:front_matter = 1
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" if we're in a code block or front matter
|
|
||||||
if b:fenced_block == 1 || b:front_matter == 1
|
|
||||||
if a:lnum == 1
|
|
||||||
" fold any 'preamble'
|
|
||||||
return '>1'
|
|
||||||
else
|
|
||||||
" keep previous foldlevel
|
|
||||||
return '='
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
let l2 = getline(a:lnum+1)
|
|
||||||
" if the next line starts with two or more '='
|
|
||||||
" and is not code
|
|
||||||
if l2 =~ '^==\+\s*' && !s:is_mkdCode(a:lnum+1)
|
|
||||||
" next line is underlined (level 1)
|
|
||||||
return '>0'
|
|
||||||
" else, if the nex line starts with two or more '-'
|
|
||||||
" and is not code
|
|
||||||
elseif l2 =~ '^--\+\s*' && !s:is_mkdCode(a:lnum+1)
|
|
||||||
" next line is underlined (level 2)
|
|
||||||
return '>1'
|
|
||||||
endif
|
|
||||||
|
|
||||||
"if we're on a non-code line starting with a pound sign
|
|
||||||
if l1 =~ '^#' && !s:is_mkdCode(a:lnum)
|
|
||||||
" set the fold level to the number of hashes -1
|
|
||||||
" return '>'.(matchend(l1, '^#\+') - 1)
|
|
||||||
" set the fold level to the number of hashes
|
|
||||||
return '>'.(matchend(l1, '^#\+'))
|
|
||||||
" else, if we're on line 1
|
|
||||||
elseif a:lnum == 1
|
|
||||||
" fold any 'preamble'
|
|
||||||
return '>1'
|
|
||||||
else
|
|
||||||
" keep previous foldlevel
|
|
||||||
return '='
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! Foldtext_markdown()
|
|
||||||
let line = getline(v:foldstart)
|
|
||||||
let has_numbers = &number || &relativenumber
|
|
||||||
let nucolwidth = &fdc + has_numbers * &numberwidth
|
|
||||||
let windowwidth = winwidth(0) - nucolwidth - 6
|
|
||||||
let foldedlinecount = v:foldend - v:foldstart
|
|
||||||
let line = strpart(line, 0, windowwidth - 2 -len(foldedlinecount))
|
|
||||||
let line = substitute(line, '\%("""\|''''''\)', '', '')
|
|
||||||
let fillcharcount = windowwidth - len(line) - len(foldedlinecount) + 1
|
|
||||||
return line . ' ' . repeat("-", fillcharcount) . ' ' . foldedlinecount
|
|
||||||
endfunction
|
|
||||||
else " vim_markdown_folding_style_pythonic == 0
|
|
||||||
function! Foldexpr_markdown(lnum)
|
|
||||||
if (a:lnum == 1)
|
|
||||||
let l0 = ''
|
|
||||||
else
|
|
||||||
let l0 = getline(a:lnum-1)
|
|
||||||
endif
|
|
||||||
|
|
||||||
" keep track of fenced code blocks
|
|
||||||
if l0 =~ '````*' || l0 =~ '\~\~\~\~*'
|
|
||||||
if b:fenced_block == 0
|
|
||||||
let b:fenced_block = 1
|
|
||||||
elseif b:fenced_block == 1
|
|
||||||
let b:fenced_block = 0
|
|
||||||
endif
|
|
||||||
elseif g:vim_markdown_frontmatter == 1
|
|
||||||
if b:front_matter == 1
|
|
||||||
if l0 == '---'
|
|
||||||
let b:front_matter = 0
|
|
||||||
endif
|
|
||||||
elseif a:lnum == 2
|
|
||||||
if l0 == '---'
|
|
||||||
let b:front_matter = 1
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if b:fenced_block == 1 || b:front_matter == 1
|
|
||||||
" keep previous foldlevel
|
|
||||||
return '='
|
|
||||||
endif
|
|
||||||
|
|
||||||
let l2 = getline(a:lnum+1)
|
|
||||||
if l2 =~ '^==\+\s*' && !s:is_mkdCode(a:lnum+1)
|
|
||||||
" next line is underlined (level 1)
|
|
||||||
return '>1'
|
|
||||||
elseif l2 =~ '^--\+\s*' && !s:is_mkdCode(a:lnum+1)
|
|
||||||
" next line is underlined (level 2)
|
|
||||||
if s:vim_markdown_folding_level >= 2
|
|
||||||
return '>1'
|
|
||||||
else
|
|
||||||
return '>2'
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
let l1 = getline(a:lnum)
|
|
||||||
if l1 =~ '^#' && !s:is_mkdCode(a:lnum)
|
|
||||||
" fold level according to option
|
|
||||||
if s:vim_markdown_folding_level == 1 || matchend(l1, '^#\+') > s:vim_markdown_folding_level
|
|
||||||
if a:lnum == line('$')
|
|
||||||
return matchend(l1, '^#\+') - 1
|
|
||||||
else
|
|
||||||
return -1
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
" headers are not folded
|
|
||||||
return 0
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if l0 =~ '^#' && !s:is_mkdCode(a:lnum-1)
|
|
||||||
" previous line starts with hashes
|
|
||||||
return '>'.matchend(l0, '^#\+')
|
|
||||||
else
|
|
||||||
" keep previous foldlevel
|
|
||||||
return '='
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
let b:fenced_block = 0
|
|
||||||
let b:front_matter = 0
|
|
||||||
let s:vim_markdown_folding_level = get(g:, "vim_markdown_folding_level", 1)
|
|
||||||
|
|
||||||
function! s:MarkdownSetupFolding()
|
|
||||||
if !get(g:, "vim_markdown_folding_disabled", 0)
|
|
||||||
if get(g:, "vim_markdown_folding_style_pythonic", 0)
|
|
||||||
if get(g:, "vim_markdown_override_foldtext", 1)
|
|
||||||
setlocal foldtext=Foldtext_markdown()
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
setlocal foldexpr=Foldexpr_markdown(v:lnum)
|
|
||||||
setlocal foldmethod=expr
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! s:MarkdownSetupFoldLevel()
|
|
||||||
if get(g:, "vim_markdown_folding_style_pythonic", 0)
|
|
||||||
" set default foldlevel
|
|
||||||
execute "setlocal foldlevel=".s:vim_markdown_folding_level
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
call s:MarkdownSetupFoldLevel()
|
|
||||||
call s:MarkdownSetupFolding()
|
|
||||||
|
|
||||||
augroup Mkd
|
|
||||||
" These autocmds need to be kept in sync with the autocmds calling
|
|
||||||
" s:MarkdownRefreshSyntax in ftplugin/markdown.vim.
|
|
||||||
autocmd BufWinEnter,BufWritePost <buffer> call s:MarkdownSetupFolding()
|
|
||||||
autocmd InsertEnter,InsertLeave <buffer> call s:MarkdownSetupFolding()
|
|
||||||
autocmd CursorHold,CursorHoldI <buffer> call s:MarkdownSetupFolding()
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
endif
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
||||||
|
|
||||||
source <sfile>:h/typescript.vim
|
source <sfile>:h/tsx.vim
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
||||||
|
|
||||||
source <sfile>:h/typescript.vim
|
source <sfile>:h/tsx.vim
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,5 +1,28 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||||
|
|
||||||
|
" Copyright (c) 2016-2019 Jon Parise <jon@indelible.org>
|
||||||
|
"
|
||||||
|
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
" of this software and associated documentation files (the "Software"), to
|
||||||
|
" deal in the Software without restriction, including without limitation the
|
||||||
|
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
" sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
" furnished to do so, subject to the following conditions:
|
||||||
|
"
|
||||||
|
" The above copyright notice and this permission notice shall be included in
|
||||||
|
" all copies or substantial portions of the Software.
|
||||||
|
"
|
||||||
|
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
" IN THE SOFTWARE.
|
||||||
|
"
|
||||||
|
" Language: GraphQL
|
||||||
|
" Maintainer: Jon Parise <jon@indelible.org>
|
||||||
|
|
||||||
if exists('b:current_syntax')
|
if exists('b:current_syntax')
|
||||||
let s:current_syntax = b:current_syntax
|
let s:current_syntax = b:current_syntax
|
||||||
unlet b:current_syntax
|
unlet b:current_syntax
|
||||||
@@ -11,17 +34,31 @@ endif
|
|||||||
|
|
||||||
let s:tags = '\%(' . join(graphql#javascript_tags(), '\|') . '\)'
|
let s:tags = '\%(' . join(graphql#javascript_tags(), '\|') . '\)'
|
||||||
|
|
||||||
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\`+ end=+`+ contains=@GraphQLSyntax,jsTemplateExpression,jsSpecial extend'
|
if graphql#has_syntax_group('jsTemplateExpression')
|
||||||
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
|
" pangloss/vim-javascript
|
||||||
|
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,jsTemplateExpression,jsSpecial extend'
|
||||||
|
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
|
||||||
|
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=jsTemplateExpression containedin=graphqlFold keepend
|
||||||
|
|
||||||
" Support expression interpolation ((${...})) inside template strings.
|
hi def link graphqlTemplateString jsTemplateString
|
||||||
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=jsTemplateExpression containedin=graphqlFold keepend
|
hi def link graphqlTaggedTemplate jsTaggedTemplate
|
||||||
|
hi def link graphqlTemplateExpression jsTemplateExpression
|
||||||
|
|
||||||
hi def link graphqlTemplateString jsTemplateString
|
syn cluster jsExpression add=graphqlTaggedTemplate
|
||||||
hi def link graphqlTaggedTemplate jsTaggedTemplate
|
syn cluster graphqlTaggedTemplate add=graphqlTemplateString
|
||||||
hi def link graphqlTemplateExpression jsTemplateExpression
|
elseif graphql#has_syntax_group('javaScriptStringT')
|
||||||
|
" runtime/syntax/javascript.vim
|
||||||
|
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\\\\|\\`+ end=+`+ contains=@GraphQLSyntax,javaScriptSpecial,javaScriptEmbed,@htmlPreproc extend'
|
||||||
|
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
|
||||||
|
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=@javaScriptEmbededExpr containedin=graphqlFold keepend
|
||||||
|
|
||||||
syn cluster jsExpression add=graphqlTaggedTemplate
|
hi def link graphqlTemplateString javaScriptStringT
|
||||||
syn cluster graphqlTaggedTemplate add=graphqlTemplateString
|
hi def link graphqlTaggedTemplate javaScriptEmbed
|
||||||
|
hi def link graphqlTemplateExpression javaScriptEmbed
|
||||||
|
|
||||||
|
syn cluster htmlJavaScript add=graphqlTaggedTemplate
|
||||||
|
syn cluster javaScriptEmbededExpr add=graphqlTaggedTemplate
|
||||||
|
syn cluster graphqlTaggedTemplate add=graphqlTemplateString
|
||||||
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
5
after/syntax/javascriptreact/graphql.vim
Normal file
5
after/syntax/javascriptreact/graphql.vim
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||||
|
|
||||||
|
runtime! after/syntax/javascript/graphql.vim
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -20,7 +20,7 @@ syntax region jsxTag
|
|||||||
\ matchgroup=NONE
|
\ matchgroup=NONE
|
||||||
\ end=+\%(/\_s*>\)\@=+
|
\ end=+\%(/\_s*>\)\@=+
|
||||||
\ contained
|
\ contained
|
||||||
\ contains=jsxOpenTag,jsxAttrib,jsxEscapeJs,jsxSpreadOperator,jsComment,@javascriptComments,javaScriptLineComment,javaScriptComment,typescriptLineComment,typescriptComment
|
\ contains=jsxOpenTag,jsxAttrib,jsxExpressionBlock,jsxSpreadOperator,jsComment,@javascriptComments,javaScriptLineComment,javaScriptComment,typescriptLineComment,typescriptComment
|
||||||
\ keepend
|
\ keepend
|
||||||
\ extend
|
\ extend
|
||||||
\ skipwhite
|
\ skipwhite
|
||||||
@@ -39,7 +39,7 @@ syntax region jsxElement
|
|||||||
\ start=+<\_s*\%(>\|\${\|\z(\<[-:._$A-Za-z0-9]\+\>\)\)+
|
\ start=+<\_s*\%(>\|\${\|\z(\<[-:._$A-Za-z0-9]\+\>\)\)+
|
||||||
\ end=+/\_s*>+
|
\ end=+/\_s*>+
|
||||||
\ end=+<\_s*/\_s*\z1\_s*>+
|
\ end=+<\_s*/\_s*\z1\_s*>+
|
||||||
\ contains=jsxElement,jsxTag,jsxEscapeJs,jsxComment,jsxCloseTag,@Spell
|
\ contains=jsxElement,jsxTag,jsxExpressionBlock,jsxComment,jsxCloseTag,@Spell
|
||||||
\ keepend
|
\ keepend
|
||||||
\ extend
|
\ extend
|
||||||
\ contained
|
\ contained
|
||||||
@@ -66,13 +66,13 @@ exe 'syntax region jsxOpenTag
|
|||||||
|
|
||||||
" <tag key={this.props.key}>
|
" <tag key={this.props.key}>
|
||||||
" ~~~~~~~~~~~~~~~~
|
" ~~~~~~~~~~~~~~~~
|
||||||
syntax region jsxEscapeJs
|
syntax region jsxExpressionBlock
|
||||||
\ matchgroup=jsxBraces
|
\ matchgroup=jsxBraces
|
||||||
\ start=+{+
|
\ start=+{+
|
||||||
\ end=+}+
|
\ end=+}+
|
||||||
\ contained
|
\ contained
|
||||||
\ extend
|
\ extend
|
||||||
\ contains=@jsExpression,jsSpreadExpression,@javascriptExpression,javascriptSpreadOp,@javaScriptEmbededExpr,@typescriptExpression,typescriptObjectSpread
|
\ contains=@jsExpression,jsSpreadExpression,@javascriptExpression,javascriptSpreadOp,@javaScriptEmbededExpr,@typescriptExpression,typescriptObjectSpread,jsComment,@javascriptComments,javaScriptLineComment,javaScriptComment,typescriptLineComment,typescriptComment
|
||||||
|
|
||||||
" <foo.bar>
|
" <foo.bar>
|
||||||
" ~
|
" ~
|
||||||
@@ -84,7 +84,7 @@ syntax match jsxNamespace +:+ contained
|
|||||||
|
|
||||||
" <tag id="sample">
|
" <tag id="sample">
|
||||||
" ~
|
" ~
|
||||||
syntax match jsxEqual +=+ contained skipwhite skipempty nextgroup=jsxString,jsxEscapeJs,jsxRegion
|
syntax match jsxEqual +=+ contained skipwhite skipempty nextgroup=jsxString,jsxExpressionBlock,jsxRegion
|
||||||
|
|
||||||
" <tag />
|
" <tag />
|
||||||
" ~~
|
" ~~
|
||||||
@@ -154,10 +154,10 @@ if s:enable_tagged_jsx
|
|||||||
\ end=+`+
|
\ end=+`+
|
||||||
\ extend
|
\ extend
|
||||||
\ contained
|
\ contained
|
||||||
\ contains=jsxElement,jsxEscapeJs
|
\ contains=jsxElement,jsxExpressionBlock
|
||||||
\ transparent
|
\ transparent
|
||||||
|
|
||||||
syntax region jsxEscapeJs
|
syntax region jsxExpressionBlock
|
||||||
\ matchgroup=jsxBraces
|
\ matchgroup=jsxBraces
|
||||||
\ start=+\${+
|
\ start=+\${+
|
||||||
\ end=+}+
|
\ end=+}+
|
||||||
@@ -171,14 +171,14 @@ if s:enable_tagged_jsx
|
|||||||
\ matchgroup=NONE
|
\ matchgroup=NONE
|
||||||
\ end=+}\@1<=+
|
\ end=+}\@1<=+
|
||||||
\ contained
|
\ contained
|
||||||
\ contains=jsxEscapeJs
|
\ contains=jsxExpressionBlock
|
||||||
\ skipwhite
|
\ skipwhite
|
||||||
\ skipempty
|
\ skipempty
|
||||||
\ nextgroup=jsxAttrib,jsxSpreadOperator
|
\ nextgroup=jsxAttrib,jsxSpreadOperator
|
||||||
|
|
||||||
syntax keyword jsxAttribKeyword class contained
|
syntax keyword jsxAttribKeyword class contained
|
||||||
|
|
||||||
syntax match jsxSpreadOperator +\.\.\.+ contained nextgroup=jsxEscapeJs skipwhite
|
syntax match jsxSpreadOperator +\.\.\.+ contained nextgroup=jsxExpressionBlock skipwhite
|
||||||
|
|
||||||
syntax match jsxCloseTag +<//>+ contained
|
syntax match jsxCloseTag +<//>+ contained
|
||||||
|
|
||||||
|
|||||||
@@ -1,28 +1,63 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" Vim syntax file
|
||||||
|
"
|
||||||
|
" Language: javascript.jsx
|
||||||
|
" Maintainer: MaxMellon <maxmellon1994@gmail.com>
|
||||||
|
" Depends: leafgarland/typescript-vim
|
||||||
|
"
|
||||||
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
if get(g:, 'vim_jsx_pretty_disable_tsx', 0)
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
let s:jsx_cpo = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
|
syntax case match
|
||||||
|
|
||||||
" GraphQL Support
|
|
||||||
if exists('b:current_syntax')
|
if exists('b:current_syntax')
|
||||||
let s:current_syntax = b:current_syntax
|
let s:current_syntax = b:current_syntax
|
||||||
unlet b:current_syntax
|
unlet b:current_syntax
|
||||||
endif
|
endif
|
||||||
syn include @GraphQLSyntax syntax/graphql.vim
|
|
||||||
if exists('s:current_syntax')
|
if exists('s:current_syntax')
|
||||||
let b:current_syntax = s:current_syntax
|
let b:current_syntax = s:current_syntax
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let s:tags = '\%(' . join(graphql#javascript_tags(), '\|') . '\)'
|
" refine the typescript line comment
|
||||||
|
syntax region typescriptLineComment start=+//+ end=/$/ contains=@Spell,typescriptCommentTodo,typescriptRef extend keepend
|
||||||
|
|
||||||
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\`+ end=+`+ contains=@GraphQLSyntax,typescriptTemplateSubstitution extend'
|
for syntax_name in ['tsxRegion', 'tsxFragment']
|
||||||
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
|
if hlexists(syntax_name)
|
||||||
|
exe 'syntax clear ' . syntax_name
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
|
||||||
" Support expression interpolation ((${...})) inside template strings.
|
if !hlexists('typescriptTypeCast')
|
||||||
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=typescriptTemplateSubstitution containedin=graphqlFold keepend
|
" add a typescriptBlock group for typescript
|
||||||
|
syntax region typescriptBlock
|
||||||
|
\ matchgroup=typescriptBraces
|
||||||
|
\ start="{"
|
||||||
|
\ end="}"
|
||||||
|
\ contained
|
||||||
|
\ extend
|
||||||
|
\ contains=@typescriptExpression,typescriptBlock
|
||||||
|
\ fold
|
||||||
|
hi def link typescriptTypeBrackets typescriptOpSymbols
|
||||||
|
endif
|
||||||
|
|
||||||
hi def link graphqlTemplateString typescriptTemplate
|
runtime syntax/jsx_pretty.vim
|
||||||
hi def link graphqlTemplateExpression typescriptTemplateSubstitution
|
syntax cluster typescriptExpression add=jsxRegion,typescriptParens
|
||||||
|
" Fix type casting ambiguity with JSX syntax
|
||||||
|
syntax match typescriptTypeBrackets +[<>]+ contained
|
||||||
|
syntax match typescriptTypeCast +<\([_$A-Za-z0-9]\+\)>\%(\s*\%([_$A-Za-z0-9]\+\s*;\?\|(\)\%(\_[^<]*</\1>\)\@!\)\@=+ contains=typescriptTypeBrackets,@typescriptType,typescriptType nextgroup=@typescriptExpression
|
||||||
|
|
||||||
syn cluster typescriptExpression add=graphqlTaggedTemplate
|
let b:current_syntax = 'typescript.tsx'
|
||||||
syn cluster graphqlTaggedTemplate add=graphqlTemplateString
|
|
||||||
|
|
||||||
|
let &cpo = s:jsx_cpo
|
||||||
|
unlet s:jsx_cpo
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
|
||||||
|
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
" Vim syntax file
|
|
||||||
"
|
|
||||||
" Language: javascript.jsx
|
|
||||||
" Maintainer: MaxMellon <maxmellon1994@gmail.com>
|
|
||||||
" Depends: leafgarland/typescript-vim
|
|
||||||
"
|
|
||||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
||||||
|
|
||||||
if get(g:, 'vim_jsx_pretty_disable_tsx', 0)
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
let s:jsx_cpo = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
syntax case match
|
|
||||||
|
|
||||||
if exists('b:current_syntax')
|
|
||||||
let s:current_syntax = b:current_syntax
|
|
||||||
unlet b:current_syntax
|
|
||||||
endif
|
|
||||||
|
|
||||||
if exists('s:current_syntax')
|
|
||||||
let b:current_syntax = s:current_syntax
|
|
||||||
endif
|
|
||||||
|
|
||||||
" refine the typescript line comment
|
|
||||||
syntax region typescriptLineComment start=+//+ end=/$/ contains=@Spell,typescriptCommentTodo,typescriptRef extend keepend
|
|
||||||
|
|
||||||
for syntax_name in ['tsxRegion', 'tsxFragment']
|
|
||||||
if hlexists(syntax_name)
|
|
||||||
exe 'syntax clear ' . syntax_name
|
|
||||||
endif
|
|
||||||
endfor
|
|
||||||
|
|
||||||
if !hlexists('typescriptTypeCast')
|
|
||||||
" add a typescriptBlock group for typescript
|
|
||||||
syntax region typescriptBlock
|
|
||||||
\ matchgroup=typescriptBraces
|
|
||||||
\ start="{"
|
|
||||||
\ end="}"
|
|
||||||
\ contained
|
|
||||||
\ extend
|
|
||||||
\ contains=@typescriptExpression,typescriptBlock
|
|
||||||
\ fold
|
|
||||||
endif
|
|
||||||
|
|
||||||
syntax cluster typescriptExpression add=jsxRegion,typescriptParens
|
|
||||||
|
|
||||||
runtime syntax/jsx_pretty.vim
|
|
||||||
|
|
||||||
let b:current_syntax = 'typescript.tsx'
|
|
||||||
|
|
||||||
let &cpo = s:jsx_cpo
|
|
||||||
unlet s:jsx_cpo
|
|
||||||
|
|
||||||
endif
|
|
||||||
@@ -1,5 +1,28 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||||
|
|
||||||
|
" Copyright (c) 2016-2019 Jon Parise <jon@indelible.org>
|
||||||
|
"
|
||||||
|
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
" of this software and associated documentation files (the "Software"), to
|
||||||
|
" deal in the Software without restriction, including without limitation the
|
||||||
|
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
" sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
" furnished to do so, subject to the following conditions:
|
||||||
|
"
|
||||||
|
" The above copyright notice and this permission notice shall be included in
|
||||||
|
" all copies or substantial portions of the Software.
|
||||||
|
"
|
||||||
|
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
" IN THE SOFTWARE.
|
||||||
|
"
|
||||||
|
" Language: GraphQL
|
||||||
|
" Maintainer: Jon Parise <jon@indelible.org>
|
||||||
|
|
||||||
if exists('b:current_syntax')
|
if exists('b:current_syntax')
|
||||||
let s:current_syntax = b:current_syntax
|
let s:current_syntax = b:current_syntax
|
||||||
unlet b:current_syntax
|
unlet b:current_syntax
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'typescript') != -1 || index(g:polyglot_disabled, 'jsx') != -1)
|
||||||
|
|
||||||
source <sfile>:h/typescript.vim
|
source <sfile>:h/tsx.vim
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
5
after/syntax/typescriptreact/graphql.vim
Normal file
5
after/syntax/typescriptreact/graphql.vim
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||||
|
|
||||||
|
runtime! after/syntax/typescript/graphql.vim
|
||||||
|
|
||||||
|
endif
|
||||||
5
after/syntax/vue/graphql.vim
Normal file
5
after/syntax/vue/graphql.vim
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||||
|
|
||||||
|
runtime! after/syntax/javascript/graphql.vim
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -122,7 +122,7 @@ fu! csv#Init(start, end, ...) "{{{3
|
|||||||
" Enable vartabs for tab delimited files
|
" Enable vartabs for tab delimited files
|
||||||
if b:delimiter=="\t" && has("vartabs")&& !exists("b:csv_fixed_width_cols")
|
if b:delimiter=="\t" && has("vartabs")&& !exists("b:csv_fixed_width_cols")
|
||||||
if get(b:, 'col_width', []) ==# []
|
if get(b:, 'col_width', []) ==# []
|
||||||
call csv#CalculateColumnWidth('')
|
call csv#CalculateColumnWidth(line('$'), 1)
|
||||||
endif
|
endif
|
||||||
let &l:vts=join(b:col_width, ',')
|
let &l:vts=join(b:col_width, ',')
|
||||||
let g:csv_no_conceal=1
|
let g:csv_no_conceal=1
|
||||||
@@ -574,7 +574,7 @@ fu! csv#MaxColumns(...) "{{{3
|
|||||||
return len(b:csv_fixed_width_cols)
|
return len(b:csv_fixed_width_cols)
|
||||||
endif
|
endif
|
||||||
endfu
|
endfu
|
||||||
fu! csv#ColWidth(colnr, ...) "{{{3
|
fu! csv#ColWidth(colnr, row, silent) "{{{3
|
||||||
" if a:1 is given, specifies the row, for which to calculate the width
|
" if a:1 is given, specifies the row, for which to calculate the width
|
||||||
"
|
"
|
||||||
" Return the width of a column
|
" Return the width of a column
|
||||||
@@ -586,14 +586,13 @@ fu! csv#ColWidth(colnr, ...) "{{{3
|
|||||||
if !exists("b:csv_fixed_width_cols")
|
if !exists("b:csv_fixed_width_cols")
|
||||||
if !exists("b:csv_list")
|
if !exists("b:csv_list")
|
||||||
" only check first 10000 lines, to be faster
|
" only check first 10000 lines, to be faster
|
||||||
let last = line('$')
|
let last = a:row
|
||||||
if exists("a:1") && !empty(a:1)
|
|
||||||
let last = a:1
|
|
||||||
endif
|
|
||||||
if !get(b:, 'csv_arrange_use_all_rows', 0)
|
if !get(b:, 'csv_arrange_use_all_rows', 0)
|
||||||
if last > 10000
|
if last > 10000
|
||||||
let last = 10000
|
let last = 10000
|
||||||
call csv#Warn('File too large, only checking the first 10000 rows for the width')
|
if !a:silent
|
||||||
|
call csv#Warn('File too large, only checking the first 10000 rows for the width')
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
let b:csv_list=getline(skipfirst+1,last)
|
let b:csv_list=getline(skipfirst+1,last)
|
||||||
@@ -637,7 +636,7 @@ fu! csv#ArrangeCol(first, last, bang, limit, ...) range "{{{3
|
|||||||
endif
|
endif
|
||||||
let cur=winsaveview()
|
let cur=winsaveview()
|
||||||
" Force recalculation of Column width
|
" Force recalculation of Column width
|
||||||
let row = exists("a:1") ? a:1 : ''
|
let row = exists("a:1") ? a:1 : line('$')
|
||||||
if a:bang || !empty(row)
|
if a:bang || !empty(row)
|
||||||
if a:bang && exists("b:col_width")
|
if a:bang && exists("b:col_width")
|
||||||
" Unarrange, so that if csv_arrange_align has changed
|
" Unarrange, so that if csv_arrange_align has changed
|
||||||
@@ -671,7 +670,7 @@ fu! csv#ArrangeCol(first, last, bang, limit, ...) range "{{{3
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if !exists("b:col_width")
|
if !exists("b:col_width")
|
||||||
call csv#CalculateColumnWidth(row)
|
call csv#CalculateColumnWidth(row, 1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" abort on empty file
|
" abort on empty file
|
||||||
@@ -750,7 +749,7 @@ fu! csv#UnArrangeCol(match) "{{{3
|
|||||||
" Strip leading white space, also trims empty recordcsv#
|
" Strip leading white space, also trims empty recordcsv#
|
||||||
return substitute(a:match, '\%(^ \+\)\|\%( \+\ze'.b:delimiter. '\?$\)', '', 'g')
|
return substitute(a:match, '\%(^ \+\)\|\%( \+\ze'.b:delimiter. '\?$\)', '', 'g')
|
||||||
endfu
|
endfu
|
||||||
fu! csv#CalculateColumnWidth(row) "{{{3
|
fu! csv#CalculateColumnWidth(row, silent) "{{{3
|
||||||
" Internal function, not called from external,
|
" Internal function, not called from external,
|
||||||
" does not work with fixed width columns
|
" does not work with fixed width columns
|
||||||
" row for the row for which to calculate the width
|
" row for the row for which to calculate the width
|
||||||
@@ -763,7 +762,7 @@ fu! csv#CalculateColumnWidth(row) "{{{3
|
|||||||
endif
|
endif
|
||||||
let s:max_cols=csv#MaxColumns(line('.'))
|
let s:max_cols=csv#MaxColumns(line('.'))
|
||||||
for i in range(1,s:max_cols)
|
for i in range(1,s:max_cols)
|
||||||
call add(b:col_width, csv#ColWidth(i, a:row))
|
call add(b:col_width, csv#ColWidth(i, a:row, a:silent))
|
||||||
endfor
|
endfor
|
||||||
catch /csv:no_col/
|
catch /csv:no_col/
|
||||||
call csv#Warn("Error: getting Column numbers, aborting!")
|
call csv#Warn("Error: getting Column numbers, aborting!")
|
||||||
@@ -1053,7 +1052,7 @@ fu! csv#MoveCol(forward, line, ...) "{{{3
|
|||||||
let maxcol=csv#MaxColumns(line('.'))
|
let maxcol=csv#MaxColumns(line('.'))
|
||||||
let cpos=getpos('.')[2]
|
let cpos=getpos('.')[2]
|
||||||
if !exists("b:csv_fixed_width_cols")
|
if !exists("b:csv_fixed_width_cols")
|
||||||
let curwidth=CSVWidth()
|
let curwidth=CSVWidth(1)
|
||||||
call search(b:col, 'bc', line('.'))
|
call search(b:col, 'bc', line('.'))
|
||||||
endif
|
endif
|
||||||
let spos=getpos('.')[2]
|
let spos=getpos('.')[2]
|
||||||
@@ -1146,7 +1145,7 @@ fu! csv#MoveCol(forward, line, ...) "{{{3
|
|||||||
" leave the column (if the next column is shorter)
|
" leave the column (if the next column is shorter)
|
||||||
if !exists("b:csv_fixed_width_cols")
|
if !exists("b:csv_fixed_width_cols")
|
||||||
let a = getpos('.')
|
let a = getpos('.')
|
||||||
if CSVWidth() == curwidth
|
if CSVWidth(1) == curwidth
|
||||||
let a[2]+= cpos-spos
|
let a[2]+= cpos-spos
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
@@ -1159,7 +1158,7 @@ fu! csv#MoveCol(forward, line, ...) "{{{3
|
|||||||
" Move to the correct screen column
|
" Move to the correct screen column
|
||||||
if !exists("b:csv_fixed_width_cols")
|
if !exists("b:csv_fixed_width_cols")
|
||||||
let a = getpos('.')
|
let a = getpos('.')
|
||||||
if CSVWidth() == curwidth
|
if CSVWidth(1) == curwidth
|
||||||
let a[2]+= cpos-spos
|
let a[2]+= cpos-spos
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
@@ -1835,7 +1834,7 @@ fu! csv#ProcessFieldValue(field) "{{{3
|
|||||||
|
|
||||||
if a == b:delimiter
|
if a == b:delimiter
|
||||||
try
|
try
|
||||||
let a=repeat(' ', csv#ColWidth(col))
|
let a=repeat(' ', csv#ColWidth(col, line('$'), 1))
|
||||||
catch
|
catch
|
||||||
" no-op
|
" no-op
|
||||||
endtry
|
endtry
|
||||||
@@ -2134,7 +2133,7 @@ fu! csv#NewRecord(line1, line2, count) "{{{3
|
|||||||
if !exists("b:col_width")
|
if !exists("b:col_width")
|
||||||
" Best guess width
|
" Best guess width
|
||||||
if exists("b:csv_fixed_width_cols")
|
if exists("b:csv_fixed_width_cols")
|
||||||
let record .= printf("%*s", csv#ColWidth(item),
|
let record .= printf("%*s", csv#ColWidth(item, line('$'), 1),
|
||||||
\ b:delimiter)
|
\ b:delimiter)
|
||||||
else
|
else
|
||||||
let record .= printf("%20s", b:delimiter)
|
let record .= printf("%20s", b:delimiter)
|
||||||
@@ -3145,7 +3144,9 @@ fu! CSVCount(col, fmt, first, last, ...) "{{{3
|
|||||||
unlet! s:additional['distinct']
|
unlet! s:additional['distinct']
|
||||||
return (empty(result) ? 0 : result)
|
return (empty(result) ? 0 : result)
|
||||||
endfu
|
endfu
|
||||||
fu! CSVWidth() "{{{3
|
fu! CSVWidth(...) "{{{3
|
||||||
|
" do not output any warning
|
||||||
|
let silent = get(a:000, 0, 1)
|
||||||
" does not work with fixed width columns
|
" does not work with fixed width columns
|
||||||
if exists("b:csv_fixed_width_cols")
|
if exists("b:csv_fixed_width_cols")
|
||||||
let c = getline(1,'$')
|
let c = getline(1,'$')
|
||||||
@@ -3164,7 +3165,7 @@ fu! CSVWidth() "{{{3
|
|||||||
" Add width for last column
|
" Add width for last column
|
||||||
call add(width, max-y+1)
|
call add(width, max-y+1)
|
||||||
else
|
else
|
||||||
call csv#CalculateColumnWidth('')
|
call csv#CalculateColumnWidth(line('$'), silent)
|
||||||
let width=map(copy(b:col_width), 'v:val-1')
|
let width=map(copy(b:col_width), 'v:val-1')
|
||||||
endif
|
endif
|
||||||
return width
|
return width
|
||||||
|
|||||||
@@ -84,7 +84,18 @@ function! go#config#StatuslineDuration() abort
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! go#config#SnippetEngine() abort
|
function! go#config#SnippetEngine() abort
|
||||||
return get(g:, 'go_snippet_engine', 'automatic')
|
let l:engine = get(g:, 'go_snippet_engine', 'automatic')
|
||||||
|
if l:engine is? "automatic"
|
||||||
|
if get(g:, 'did_plugin_ultisnips') is 1
|
||||||
|
let l:engine = 'ultisnips'
|
||||||
|
elseif get(g:, 'loaded_neosnippet') is 1
|
||||||
|
let l:engine = 'neosnippet'
|
||||||
|
elseif get(g:, 'loaded_minisnip') is 1
|
||||||
|
let l:engine = 'minisnip'
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
return l:engine
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! go#config#PlayBrowserCommand() abort
|
function! go#config#PlayBrowserCommand() abort
|
||||||
@@ -353,7 +364,7 @@ function! go#config#FmtCommand() abort
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! go#config#FmtOptions() abort
|
function! go#config#FmtOptions() abort
|
||||||
return get(g:, "go_fmt_options", {})
|
return get(b:, "go_fmt_options", get(g:, "go_fmt_options", {}))
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! go#config#FmtFailSilently() abort
|
function! go#config#FmtFailSilently() abort
|
||||||
@@ -368,9 +379,9 @@ function! go#config#PlayOpenBrowser() abort
|
|||||||
return get(g:, "go_play_open_browser", 1)
|
return get(g:, "go_play_open_browser", 1)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! go#config#GorenameCommand() abort
|
function! go#config#RenameCommand() abort
|
||||||
" delegate to go#config#GorenameBin for backwards compatability.
|
" delegate to go#config#GorenameBin for backwards compatability.
|
||||||
return get(g:, "go_gorename_command", go#config#GorenameBin())
|
return get(g:, "go_rename_command", go#config#GorenameBin())
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! go#config#GorenameBin() abort
|
function! go#config#GorenameBin() abort
|
||||||
@@ -516,6 +527,10 @@ function! go#config#GoplsFuzzyMatching() abort
|
|||||||
return get(g:, 'go_gopls_fuzzy_matching', 1)
|
return get(g:, 'go_gopls_fuzzy_matching', 1)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! go#config#GoplsStaticCheck() abort
|
||||||
|
return get(g:, 'go_gopls_staticcheck', 0)
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! go#config#GoplsUsePlaceholders() abort
|
function! go#config#GoplsUsePlaceholders() abort
|
||||||
return get(g:, 'go_gopls_use_placeholders', 0)
|
return get(g:, 'go_gopls_use_placeholders', 0)
|
||||||
endfunction
|
endfunction
|
||||||
@@ -524,6 +539,10 @@ function! go#config#GoplsEnabled() abort
|
|||||||
return get(g:, 'go_gopls_enabled', 1)
|
return get(g:, 'go_gopls_enabled', 1)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! go#config#DiagnosticsEnabled() abort
|
||||||
|
return get(g:, 'go_diagnostics_enabled', 0)
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Set the default value. A value of "1" is a shortcut for this, for
|
" Set the default value. A value of "1" is a shortcut for this, for
|
||||||
" compatibility reasons.
|
" compatibility reasons.
|
||||||
if exists("g:go_gorename_prefill") && g:go_gorename_prefill == 1
|
if exists("g:go_gorename_prefill") && g:go_gorename_prefill == 1
|
||||||
|
|||||||
@@ -1,13 +1,36 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||||
|
|
||||||
" Vim plugin
|
" Copyright (c) 2016-2019 Jon Parise <jon@indelible.org>
|
||||||
|
"
|
||||||
|
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
" of this software and associated documentation files (the "Software"), to
|
||||||
|
" deal in the Software without restriction, including without limitation the
|
||||||
|
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
" sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
" furnished to do so, subject to the following conditions:
|
||||||
|
"
|
||||||
|
" The above copyright notice and this permission notice shall be included in
|
||||||
|
" all copies or substantial portions of the Software.
|
||||||
|
"
|
||||||
|
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
" IN THE SOFTWARE.
|
||||||
|
"
|
||||||
" Language: GraphQL
|
" Language: GraphQL
|
||||||
" Maintainer: Jon Parise <jon@indelible.org>
|
" Maintainer: Jon Parise <jon@indelible.org>
|
||||||
|
|
||||||
if exists('g:autoloaded_graphql')
|
function! graphql#has_syntax_group(group) abort
|
||||||
finish
|
try
|
||||||
endif
|
silent execute 'silent highlight ' . a:group
|
||||||
let g:autoloaded_graphql = 1
|
catch
|
||||||
|
return v:false
|
||||||
|
endtry
|
||||||
|
return v:true
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! graphql#javascript_tags() abort
|
function! graphql#javascript_tags() abort
|
||||||
return get(g:, 'graphql_javascript_tags', ['gql', 'graphql', 'Relay.QL'])
|
return get(g:, 'graphql_javascript_tags', ['gql', 'graphql', 'Relay.QL'])
|
||||||
|
|||||||
@@ -70,9 +70,9 @@ function s:is_jsx_element(syntax)
|
|||||||
return a:syntax =~? 'jsxElement'
|
return a:syntax =~? 'jsxElement'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Whether the specified syntax group is the jsxEscapeJs
|
" Whether the specified syntax group is the jsxExpressionBlock
|
||||||
function s:is_jsx_escape(syntax)
|
function s:is_jsx_expression(syntax)
|
||||||
return a:syntax =~? 'jsxEscapeJs'
|
return a:syntax =~? 'jsxExpressionBlock'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Whether the specified syntax group is the jsxBraces
|
" Whether the specified syntax group is the jsxBraces
|
||||||
@@ -191,7 +191,7 @@ endfunction
|
|||||||
" - jsxRegion
|
" - jsxRegion
|
||||||
" - jsxTaggedRegion
|
" - jsxTaggedRegion
|
||||||
" - jsxElement
|
" - jsxElement
|
||||||
" - jsxEscapeJs
|
" - jsxExpressionBlock
|
||||||
" - Other
|
" - Other
|
||||||
function s:syntax_context(lnum)
|
function s:syntax_context(lnum)
|
||||||
let start_col = s:start_col(a:lnum)
|
let start_col = s:start_col(a:lnum)
|
||||||
@@ -201,9 +201,9 @@ function s:syntax_context(lnum)
|
|||||||
let i = 0
|
let i = 0
|
||||||
|
|
||||||
for syntax_name in reversed
|
for syntax_name in reversed
|
||||||
" If the current line is jsxEscapeJs and not starts with jsxBraces
|
" If the current line is jsxExpressionBlock and not starts with jsxBraces
|
||||||
if s:is_jsx_escape(syntax_name)
|
if s:is_jsx_expression(syntax_name)
|
||||||
return 'jsxEscapeJs'
|
return 'jsxExpressionBlock'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if s:is_jsx_region(syntax_name)
|
if s:is_jsx_region(syntax_name)
|
||||||
@@ -287,7 +287,7 @@ function! jsx_pretty#indent#get(js_indent)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
return s:jsx_indent_element(v:lnum)
|
return s:jsx_indent_element(v:lnum)
|
||||||
elseif syntax_context == 'jsxEscapeJs'
|
elseif syntax_context == 'jsxExpressionBlock'
|
||||||
let prev_lnum = s:prev_lnum(v:lnum)
|
let prev_lnum = s:prev_lnum(v:lnum)
|
||||||
let prev_line = s:trim(getline(prev_lnum))
|
let prev_line = s:trim(getline(prev_lnum))
|
||||||
|
|
||||||
|
|||||||
2
build
2
build
@@ -233,7 +233,7 @@ PACKS="
|
|||||||
log:MTDL9/vim-log-highlighting
|
log:MTDL9/vim-log-highlighting
|
||||||
lua:tbastos/vim-lua
|
lua:tbastos/vim-lua
|
||||||
mako:sophacles/vim-bundle-mako
|
mako:sophacles/vim-bundle-mako
|
||||||
markdown:plasticboy/vim-markdown
|
markdown:plasticboy/vim-markdown:_NOAFTER
|
||||||
mathematica:voldikss/vim-mma
|
mathematica:voldikss/vim-mma
|
||||||
mdx:jxnblk/vim-mdx-js
|
mdx:jxnblk/vim-mdx-js
|
||||||
meson:mesonbuild/meson:_ALL:/data/syntax-highlighting/vim/
|
meson:mesonbuild/meson:_ALL:/data/syntax-highlighting/vim/
|
||||||
|
|||||||
12
config.vim
12
config.vim
@@ -1,3 +1,15 @@
|
|||||||
|
if !exists('g:markdown_enable_spell_checking')
|
||||||
|
let g:markdown_enable_spell_checking = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
if !exists('g:markdown_enable_input_abbreviations')
|
||||||
|
let g:markdown_enable_input_abbreviations = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
if !exists('g:markdown_enable_mappings')
|
||||||
|
let g:markdown_enable_mappings = 0
|
||||||
|
end
|
||||||
|
|
||||||
" Enable jsx syntax by default
|
" Enable jsx syntax by default
|
||||||
if !exists('g:jsx_ext_required')
|
if !exists('g:jsx_ext_required')
|
||||||
let g:jsx_ext_required = 0
|
let g:jsx_ext_required = 0
|
||||||
|
|||||||
@@ -1,3 +1,15 @@
|
|||||||
|
if !exists('g:markdown_enable_spell_checking')
|
||||||
|
let g:markdown_enable_spell_checking = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
if !exists('g:markdown_enable_input_abbreviations')
|
||||||
|
let g:markdown_enable_input_abbreviations = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
if !exists('g:markdown_enable_mappings')
|
||||||
|
let g:markdown_enable_mappings = 0
|
||||||
|
end
|
||||||
|
|
||||||
" Enable jsx syntax by default
|
" Enable jsx syntax by default
|
||||||
if !exists('g:jsx_ext_required')
|
if !exists('g:jsx_ext_required')
|
||||||
let g:jsx_ext_required = 0
|
let g:jsx_ext_required = 0
|
||||||
@@ -507,6 +519,29 @@ endif
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||||
augroup filetypedetect
|
augroup filetypedetect
|
||||||
" graphql, from graphql.vim in jparise/vim-graphql:_ALL
|
" graphql, from graphql.vim in jparise/vim-graphql:_ALL
|
||||||
|
" Copyright (c) 2016-2019 Jon Parise <jon@indelible.org>
|
||||||
|
"
|
||||||
|
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
" of this software and associated documentation files (the "Software"), to
|
||||||
|
" deal in the Software without restriction, including without limitation the
|
||||||
|
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
" sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
" furnished to do so, subject to the following conditions:
|
||||||
|
"
|
||||||
|
" The above copyright notice and this permission notice shall be included in
|
||||||
|
" all copies or substantial portions of the Software.
|
||||||
|
"
|
||||||
|
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
" IN THE SOFTWARE.
|
||||||
|
"
|
||||||
|
" Language: GraphQL
|
||||||
|
" Maintainer: Jon Parise <jon@indelible.org>
|
||||||
|
|
||||||
" vint: -ProhibitAutocmdWithNoGroup
|
" vint: -ProhibitAutocmdWithNoGroup
|
||||||
au BufRead,BufNewFile *.graphql,*.graphqls,*.gql setfiletype graphql
|
au BufRead,BufNewFile *.graphql,*.graphqls,*.gql setfiletype graphql
|
||||||
augroup end
|
augroup end
|
||||||
@@ -781,7 +816,7 @@ endif
|
|||||||
|
|
||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'markdown') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'markdown') == -1
|
||||||
augroup filetypedetect
|
augroup filetypedetect
|
||||||
" markdown, from markdown.vim in plasticboy/vim-markdown
|
" markdown, from markdown.vim in plasticboy/vim-markdown:_NOAFTER
|
||||||
if !has('patch-7.4.480')
|
if !has('patch-7.4.480')
|
||||||
" Before this patch, vim used modula2 for .md.
|
" Before this patch, vim used modula2 for .md.
|
||||||
au! filetypedetect BufRead,BufNewFile *.md
|
au! filetypedetect BufRead,BufNewFile *.md
|
||||||
|
|||||||
@@ -32,6 +32,20 @@ if exists('g:dhall_strip_whitespace')
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
function! DhallFormat()
|
||||||
|
let cursor = getpos('.')
|
||||||
|
exec 'silent %!dhall format'
|
||||||
|
call setpos('.', cursor)
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
if exists('g:dhall_format')
|
||||||
|
if g:dhall_format == 1
|
||||||
|
augroup dhall
|
||||||
|
au BufWritePre *.dhall call DhallFormat()
|
||||||
|
augroup END
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
augroup dhall
|
augroup dhall
|
||||||
au BufNewFile,BufRead *.dhall setl shiftwidth=2
|
au BufNewFile,BufRead *.dhall setl shiftwidth=2
|
||||||
augroup END
|
augroup END
|
||||||
|
|||||||
@@ -1,6 +1,25 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||||
|
|
||||||
" Vim filetype plugin
|
" Copyright (c) 2016-2019 Jon Parise <jon@indelible.org>
|
||||||
|
"
|
||||||
|
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
" of this software and associated documentation files (the "Software"), to
|
||||||
|
" deal in the Software without restriction, including without limitation the
|
||||||
|
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
" sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
" furnished to do so, subject to the following conditions:
|
||||||
|
"
|
||||||
|
" The above copyright notice and this permission notice shall be included in
|
||||||
|
" all copies or substantial portions of the Software.
|
||||||
|
"
|
||||||
|
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
" IN THE SOFTWARE.
|
||||||
|
"
|
||||||
" Language: GraphQL
|
" Language: GraphQL
|
||||||
" Maintainer: Jon Parise <jon@indelible.org>
|
" Maintainer: Jon Parise <jon@indelible.org>
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,25 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||||
|
|
||||||
" Vim indent file
|
" Copyright (c) 2016-2019 Jon Parise <jon@indelible.org>
|
||||||
|
"
|
||||||
|
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
" of this software and associated documentation files (the "Software"), to
|
||||||
|
" deal in the Software without restriction, including without limitation the
|
||||||
|
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
" sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
" furnished to do so, subject to the following conditions:
|
||||||
|
"
|
||||||
|
" The above copyright notice and this permission notice shall be included in
|
||||||
|
" all copies or substantial portions of the Software.
|
||||||
|
"
|
||||||
|
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
" IN THE SOFTWARE.
|
||||||
|
"
|
||||||
" Language: GraphQL
|
" Language: GraphQL
|
||||||
" Maintainer: Jon Parise <jon@indelible.org>
|
" Maintainer: Jon Parise <jon@indelible.org>
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,13 @@ endif
|
|||||||
|
|
||||||
let s:itemization_pattern = '^\s*[-*+]\s'
|
let s:itemization_pattern = '^\s*[-*+]\s'
|
||||||
let s:enumeration_pattern = '^\s*\%(\d\+\|#\)\.\s\+'
|
let s:enumeration_pattern = '^\s*\%(\d\+\|#\)\.\s\+'
|
||||||
|
let s:note_pattern = '^\.\. '
|
||||||
|
|
||||||
|
function! s:get_paragraph_start()
|
||||||
|
let paragraph_mark_start = getpos("'{")[1]
|
||||||
|
return getline(paragraph_mark_start) =~
|
||||||
|
\ '\S' ? paragraph_mark_start : paragraph_mark_start + 1
|
||||||
|
endfunction
|
||||||
|
|
||||||
function GetRSTIndent()
|
function GetRSTIndent()
|
||||||
let lnum = prevnonblank(v:lnum - 1)
|
let lnum = prevnonblank(v:lnum - 1)
|
||||||
@@ -30,6 +37,13 @@ function GetRSTIndent()
|
|||||||
let ind = indent(lnum)
|
let ind = indent(lnum)
|
||||||
let line = getline(lnum)
|
let line = getline(lnum)
|
||||||
|
|
||||||
|
let psnum = s:get_paragraph_start()
|
||||||
|
if psnum != 0
|
||||||
|
if getline(psnum) =~ s:note_pattern
|
||||||
|
let ind = 3
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
if line =~ s:itemization_pattern
|
if line =~ s:itemization_pattern
|
||||||
let ind += 2
|
let ind += 2
|
||||||
elseif line =~ s:enumeration_pattern
|
elseif line =~ s:enumeration_pattern
|
||||||
|
|||||||
@@ -66,6 +66,7 @@ let s:syng_strcom = s:syng_stringdoc + [
|
|||||||
\ 'PercentStringDelimiter',
|
\ 'PercentStringDelimiter',
|
||||||
\ 'PercentSymbolDelimiter',
|
\ 'PercentSymbolDelimiter',
|
||||||
\ 'Regexp',
|
\ 'Regexp',
|
||||||
|
\ 'RegexpCharClass',
|
||||||
\ 'RegexpDelimiter',
|
\ 'RegexpDelimiter',
|
||||||
\ 'RegexpEscape',
|
\ 'RegexpEscape',
|
||||||
\ 'StringDelimiter',
|
\ 'StringDelimiter',
|
||||||
|
|||||||
109
syntax/c.vim
109
syntax/c.vim
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c/c++') == -1
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: C
|
" Language: C
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2016 Nov 18
|
" Last Change: 2019 Nov 29
|
||||||
|
|
||||||
" Quit when a (custom) syntax file was already loaded
|
" Quit when a (custom) syntax file was already loaded
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
@@ -15,6 +15,14 @@ set cpo&vim
|
|||||||
|
|
||||||
let s:ft = matchstr(&ft, '^\([^.]\)\+')
|
let s:ft = matchstr(&ft, '^\([^.]\)\+')
|
||||||
|
|
||||||
|
" Optional embedded Autodoc parsing
|
||||||
|
" To enable it add: let g:c_autodoc = 1
|
||||||
|
" to your .vimrc
|
||||||
|
if exists("c_autodoc")
|
||||||
|
syn include @cAutodoc <sfile>:p:h/autodoc.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
endif
|
||||||
|
|
||||||
" A bunch of useful C keywords
|
" A bunch of useful C keywords
|
||||||
syn keyword cStatement goto break return continue asm
|
syn keyword cStatement goto break return continue asm
|
||||||
syn keyword cLabel case default
|
syn keyword cLabel case default
|
||||||
@@ -131,7 +139,7 @@ if exists("c_no_curly_error")
|
|||||||
syn match cParenError display ")"
|
syn match cParenError display ")"
|
||||||
syn match cErrInParen display contained "^^<%\|^%>"
|
syn match cErrInParen display contained "^^<%\|^%>"
|
||||||
else
|
else
|
||||||
syn region cParen transparent start='(' end=')' end='}'me=s-1 contains=ALLBUT,cBlock,@cParenGroup,cCppParen,@cStringGroup,@Spell
|
syn region cParen transparent start='(' end=')' contains=ALLBUT,cBlock,@cParenGroup,cCppParen,@cStringGroup,@Spell
|
||||||
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
" cCppParen: same as cParen but ends at end-of-line; used in cDefine
|
||||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
|
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
|
||||||
syn match cParenError display ")"
|
syn match cParenError display ")"
|
||||||
@@ -214,7 +222,7 @@ if exists("c_comment_strings")
|
|||||||
syn match cCommentSkip contained "^\s*\*\($\|\s\+\)"
|
syn match cCommentSkip contained "^\s*\*\($\|\s\+\)"
|
||||||
syn region cCommentString contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=cSpecial,cCommentSkip
|
syn region cCommentString contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=cSpecial,cCommentSkip
|
||||||
syn region cComment2String contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=cSpecial
|
syn region cComment2String contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=cSpecial
|
||||||
syn region cCommentL start="//" skip="\\$" end="$" keepend contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError,@Spell
|
syn region cCommentL start="//" skip="\\$" end="$" keepend contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError,cWrongComTail,@Spell
|
||||||
if exists("c_no_comment_fold")
|
if exists("c_no_comment_fold")
|
||||||
" Use "extend" here to have preprocessor lines not terminate halfway a
|
" Use "extend" here to have preprocessor lines not terminate halfway a
|
||||||
" comment.
|
" comment.
|
||||||
@@ -233,6 +241,7 @@ endif
|
|||||||
" keep a // comment separately, it terminates a preproc. conditional
|
" keep a // comment separately, it terminates a preproc. conditional
|
||||||
syn match cCommentError display "\*/"
|
syn match cCommentError display "\*/"
|
||||||
syn match cCommentStartError display "/\*"me=e-1 contained
|
syn match cCommentStartError display "/\*"me=e-1 contained
|
||||||
|
syn match cWrongComTail display "\*/"
|
||||||
|
|
||||||
syn keyword cOperator sizeof
|
syn keyword cOperator sizeof
|
||||||
if exists("c_gnu")
|
if exists("c_gnu")
|
||||||
@@ -282,6 +291,22 @@ if !exists("c_no_c11")
|
|||||||
syn keyword cOperator _Static_assert static_assert
|
syn keyword cOperator _Static_assert static_assert
|
||||||
syn keyword cStorageClass _Thread_local thread_local
|
syn keyword cStorageClass _Thread_local thread_local
|
||||||
syn keyword cType char16_t char32_t
|
syn keyword cType char16_t char32_t
|
||||||
|
" C11 atomics (take down the shield wall!)
|
||||||
|
syn keyword cType atomic_bool atomic_char atomic_schar atomic_uchar
|
||||||
|
syn keyword Ctype atomic_short atomic_ushort atomic_int atomic_uint
|
||||||
|
syn keyword cType atomic_long atomic_ulong atomic_llong atomic_ullong
|
||||||
|
syn keyword cType atomic_char16_t atomic_char32_t atomic_wchar_t
|
||||||
|
syn keyword cType atomic_int_least8_t atomic_uint_least8_t
|
||||||
|
syn keyword cType atomic_int_least16_t atomic_uint_least16_t
|
||||||
|
syn keyword cType atomic_int_least32_t atomic_uint_least32_t
|
||||||
|
syn keyword cType atomic_int_least64_t atomic_uint_least64_t
|
||||||
|
syn keyword cType atomic_int_fast8_t atomic_uint_fast8_t
|
||||||
|
syn keyword cType atomic_int_fast16_t atomic_uint_fast16_t
|
||||||
|
syn keyword cType atomic_int_fast32_t atomic_uint_fast32_t
|
||||||
|
syn keyword cType atomic_int_fast64_t atomic_uint_fast64_t
|
||||||
|
syn keyword cType atomic_intptr_t atomic_uintptr_t
|
||||||
|
syn keyword cType atomic_size_t atomic_ptrdiff_t
|
||||||
|
syn keyword cType atomic_intmax_t atomic_uintmax_t
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
|
if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
|
||||||
@@ -313,44 +338,32 @@ if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu")
|
|||||||
syn keyword cConstant PTRDIFF_MIN PTRDIFF_MAX SIG_ATOMIC_MIN SIG_ATOMIC_MAX
|
syn keyword cConstant PTRDIFF_MIN PTRDIFF_MAX SIG_ATOMIC_MIN SIG_ATOMIC_MAX
|
||||||
syn keyword cConstant SIZE_MAX WCHAR_MIN WCHAR_MAX WINT_MIN WINT_MAX
|
syn keyword cConstant SIZE_MAX WCHAR_MIN WCHAR_MAX WINT_MIN WINT_MAX
|
||||||
endif
|
endif
|
||||||
syn keyword cConstant FLT_RADIX FLT_ROUNDS
|
syn keyword cConstant FLT_RADIX FLT_ROUNDS FLT_DIG FLT_MANT_DIG FLT_EPSILON DBL_DIG DBL_MANT_DIG DBL_EPSILON
|
||||||
syn keyword cConstant FLT_DIG FLT_MANT_DIG FLT_EPSILON
|
syn keyword cConstant LDBL_DIG LDBL_MANT_DIG LDBL_EPSILON FLT_MIN FLT_MAX FLT_MIN_EXP FLT_MAX_EXP FLT_MIN_10_EXP FLT_MAX_10_EXP
|
||||||
syn keyword cConstant DBL_DIG DBL_MANT_DIG DBL_EPSILON
|
syn keyword cConstant DBL_MIN DBL_MAX DBL_MIN_EXP DBL_MAX_EXP DBL_MIN_10_EXP DBL_MAX_10_EXP LDBL_MIN LDBL_MAX LDBL_MIN_EXP LDBL_MAX_EXP
|
||||||
syn keyword cConstant LDBL_DIG LDBL_MANT_DIG LDBL_EPSILON
|
syn keyword cConstant LDBL_MIN_10_EXP LDBL_MAX_10_EXP HUGE_VAL CLOCKS_PER_SEC NULL LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY
|
||||||
syn keyword cConstant FLT_MIN FLT_MAX FLT_MIN_EXP FLT_MAX_EXP
|
syn keyword cConstant LC_NUMERIC LC_TIME SIG_DFL SIG_ERR SIG_IGN SIGABRT SIGFPE SIGILL SIGHUP SIGINT SIGSEGV SIGTERM
|
||||||
syn keyword cConstant FLT_MIN_10_EXP FLT_MAX_10_EXP
|
|
||||||
syn keyword cConstant DBL_MIN DBL_MAX DBL_MIN_EXP DBL_MAX_EXP
|
|
||||||
syn keyword cConstant DBL_MIN_10_EXP DBL_MAX_10_EXP
|
|
||||||
syn keyword cConstant LDBL_MIN LDBL_MAX LDBL_MIN_EXP LDBL_MAX_EXP
|
|
||||||
syn keyword cConstant LDBL_MIN_10_EXP LDBL_MAX_10_EXP
|
|
||||||
syn keyword cConstant HUGE_VAL CLOCKS_PER_SEC NULL
|
|
||||||
syn keyword cConstant LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY
|
|
||||||
syn keyword cConstant LC_NUMERIC LC_TIME
|
|
||||||
syn keyword cConstant SIG_DFL SIG_ERR SIG_IGN
|
|
||||||
syn keyword cConstant SIGABRT SIGFPE SIGILL SIGHUP SIGINT SIGSEGV SIGTERM
|
|
||||||
" Add POSIX signals as well...
|
" Add POSIX signals as well...
|
||||||
syn keyword cConstant SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP
|
syn keyword cConstant SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV
|
||||||
syn keyword cConstant SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV
|
syn keyword cConstant SIGSTOP SIGTERM SIGTRAP SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2
|
||||||
syn keyword cConstant SIGSTOP SIGTERM SIGTRAP SIGTSTP SIGTTIN SIGTTOU
|
syn keyword cConstant _IOFBF _IOLBF _IONBF BUFSIZ EOF WEOF FOPEN_MAX FILENAME_MAX L_tmpnam
|
||||||
syn keyword cConstant SIGUSR1 SIGUSR2
|
syn keyword cConstant SEEK_CUR SEEK_END SEEK_SET TMP_MAX stderr stdin stdout EXIT_FAILURE EXIT_SUCCESS RAND_MAX
|
||||||
syn keyword cConstant _IOFBF _IOLBF _IONBF BUFSIZ EOF WEOF
|
|
||||||
syn keyword cConstant FOPEN_MAX FILENAME_MAX L_tmpnam
|
|
||||||
syn keyword cConstant SEEK_CUR SEEK_END SEEK_SET
|
|
||||||
syn keyword cConstant TMP_MAX stderr stdin stdout
|
|
||||||
syn keyword cConstant EXIT_FAILURE EXIT_SUCCESS RAND_MAX
|
|
||||||
" POSIX 2001
|
" POSIX 2001
|
||||||
syn keyword cConstant SIGBUS SIGPOLL SIGPROF SIGSYS SIGURG
|
syn keyword cConstant SIGBUS SIGPOLL SIGPROF SIGSYS SIGURG SIGVTALRM SIGXCPU SIGXFSZ
|
||||||
syn keyword cConstant SIGVTALRM SIGXCPU SIGXFSZ
|
|
||||||
" non-POSIX signals
|
" non-POSIX signals
|
||||||
syn keyword cConstant SIGWINCH SIGINFO
|
syn keyword cConstant SIGWINCH SIGINFO
|
||||||
" Add POSIX errors as well
|
" Add POSIX errors as well. List comes from:
|
||||||
syn keyword cConstant E2BIG EACCES EAGAIN EBADF EBADMSG EBUSY
|
" http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html
|
||||||
syn keyword cConstant ECANCELED ECHILD EDEADLK EDOM EEXIST EFAULT
|
syn keyword cConstant E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
|
||||||
syn keyword cConstant EFBIG EILSEQ EINPROGRESS EINTR EINVAL EIO EISDIR
|
syn keyword cConstant EBADMSG EBUSY ECANCELED ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK
|
||||||
syn keyword cConstant EMFILE EMLINK EMSGSIZE ENAMETOOLONG ENFILE ENODEV
|
syn keyword cConstant EDESTADDRREQ EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTUNREACH EIDRM EILSEQ
|
||||||
syn keyword cConstant ENOENT ENOEXEC ENOLCK ENOMEM ENOSPC ENOSYS
|
syn keyword cConstant EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE
|
||||||
syn keyword cConstant ENOTDIR ENOTEMPTY ENOTSUP ENOTTY ENXIO EPERM
|
syn keyword cConstant EMULTIHOP ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODATA
|
||||||
syn keyword cConstant EPIPE ERANGE EROFS ESPIPE ESRCH ETIMEDOUT EXDEV
|
syn keyword cConstant ENODEV ENOENT ENOEXEC ENOLCK ENOLINK ENOMEM ENOMSG ENOPROTOOPT ENOSPC ENOSR
|
||||||
|
syn keyword cConstant ENOSTR ENOSYS ENOTBLK ENOTCONN ENOTDIR ENOTEMPTY ENOTRECOVERABLE ENOTSOCK ENOTSUP
|
||||||
|
syn keyword cConstant ENOTTY ENXIO EOPNOTSUPP EOVERFLOW EOWNERDEAD EPERM EPIPE EPROTO
|
||||||
|
syn keyword cConstant EPROTONOSUPPORT EPROTOTYPE ERANGE EROFS ESPIPE ESRCH ESTALE ETIME ETIMEDOUT
|
||||||
|
syn keyword cConstant ETXTBSY EWOULDBLOCK EXDEV
|
||||||
" math.h
|
" math.h
|
||||||
syn keyword cConstant M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2 M_PI_4
|
syn keyword cConstant M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2 M_PI_4
|
||||||
syn keyword cConstant M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2
|
syn keyword cConstant M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2
|
||||||
@@ -371,17 +384,17 @@ if !exists("c_no_if0")
|
|||||||
else
|
else
|
||||||
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
|
syn region cCppOutIf2 contained matchgroup=cCppOutWrapper start="0\+" end="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0\+\s*\($\|//\|/\*\|&\)\)\@!\|endif\>\)"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
|
||||||
endif
|
endif
|
||||||
syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\zs\(%:\|#\)\s*\(else\|elif\)" end="^\s*\zs\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
|
syn region cCppOutElse contained matchgroup=cCppOutWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=TOP,cPreCondit
|
||||||
syn region cCppInWrapper start="^\s*\zs\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
|
syn region cCppInWrapper start="^\s*\zs\(%:\|#\)\s*if\s\+0*[1-9]\d*\s*\($\|//\|/\*\||\)" end=".\@=\|$" contains=cCppInIf,cCppInElse fold
|
||||||
syn region cCppInIf contained matchgroup=cCppInWrapper start="\d\+" end="^\s*\zs\(%:\|#\)\s*endif\>" contains=TOP,cPreCondit
|
syn region cCppInIf contained matchgroup=cCppInWrapper start="\d\+" end="^\s*\(%:\|#\)\s*endif\>" contains=TOP,cPreCondit
|
||||||
if !exists("c_no_if0_fold")
|
if !exists("c_no_if0_fold")
|
||||||
syn region cCppInElse contained start="^\s*\zs\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 fold
|
syn region cCppInElse contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2 fold
|
||||||
else
|
else
|
||||||
syn region cCppInElse contained start="^\s*\zs\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2
|
syn region cCppInElse contained start="^\s*\(%:\|#\)\s*\(else\>\|elif\s\+\(0*[1-9]\d*\s*\($\|//\|/\*\||\)\)\@!\)" end=".\@=\|$" containedin=cCppInIf contains=cCppInElse2
|
||||||
endif
|
endif
|
||||||
syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\zs\(%:\|#\)\s*\(else\|elif\)\([^/]\|/[^/*]\)*" end="^\s*\zs\(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
|
syn region cCppInElse2 contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(else\|elif\)\([^/]\|/[^/*]\)*" end="^\s*\(%:\|#\)\s*endif\>"me=s-1 contains=cSpaceError,cCppOutSkip,@Spell
|
||||||
syn region cCppOutSkip contained start="^\s*\zs\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\zs\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip
|
syn region cCppOutSkip contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip
|
||||||
syn region cCppInSkip contained matchgroup=cCppInWrapper start="^\s*\zs\(%:\|#\)\s*\(if\s\+\(\d\+\s*\($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\zs\(%:\|#\)\s*endif\>" containedin=cCppOutElse,cCppInIf,cCppInSkip contains=TOP,cPreProc
|
syn region cCppInSkip contained matchgroup=cCppInWrapper start="^\s*\(%:\|#\)\s*\(if\s\+\(\d\+\s*\($\|//\|/\*\||\|&\)\)\@!\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" containedin=cCppOutElse,cCppInIf,cCppInSkip contains=TOP,cPreProc
|
||||||
endif
|
endif
|
||||||
syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||||
syn match cIncluded display contained "<[^>]*>"
|
syn match cIncluded display contained "<[^>]*>"
|
||||||
@@ -391,6 +404,13 @@ syn cluster cPreProcGroup contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInP
|
|||||||
syn region cDefine start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
syn region cDefine start="^\s*\zs\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
||||||
syn region cPreProc start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
syn region cPreProc start="^\s*\zs\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
|
||||||
|
|
||||||
|
" Optional embedded Autodoc parsing
|
||||||
|
if exists("c_autodoc")
|
||||||
|
syn match cAutodocReal display contained "\%(//\|[/ \t\v]\*\|^\*\)\@2<=!.*" contains=@cAutodoc containedin=cComment,cCommentL
|
||||||
|
syn cluster cCommentGroup add=cAutodocReal
|
||||||
|
syn cluster cPreProcGroup add=cAutodocReal
|
||||||
|
endif
|
||||||
|
|
||||||
" Highlight User Labels
|
" Highlight User Labels
|
||||||
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
|
syn cluster cMultiGroup contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOutWrapper,cCppInWrapper,@cCppOutInGroup,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString
|
||||||
if s:ft ==# 'c' || exists("cpp_no_cpp11")
|
if s:ft ==# 'c' || exists("cpp_no_cpp11")
|
||||||
@@ -452,6 +472,7 @@ hi def link cErrInBracket cError
|
|||||||
hi def link cCommentError cError
|
hi def link cCommentError cError
|
||||||
hi def link cCommentStartError cError
|
hi def link cCommentStartError cError
|
||||||
hi def link cSpaceError cError
|
hi def link cSpaceError cError
|
||||||
|
hi def link cWrongComTail cError
|
||||||
hi def link cSpecialError cError
|
hi def link cSpecialError cError
|
||||||
hi def link cCurlyError cError
|
hi def link cCurlyError cError
|
||||||
hi def link cOperator Operator
|
hi def link cOperator Operator
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c/c++') == -1
|
|||||||
" Language: C++
|
" Language: C++
|
||||||
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
|
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
|
||||||
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
|
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
|
||||||
|
" Last Change: 2017 Jun 05
|
||||||
|
|
||||||
" quit when a syntax file was already loaded
|
" quit when a syntax file was already loaded
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
@@ -43,6 +44,8 @@ if !exists("cpp_no_cpp11")
|
|||||||
syn keyword cppConstant ATOMIC_INT_LOCK_FREE ATOMIC_LONG_LOCK_FREE
|
syn keyword cppConstant ATOMIC_INT_LOCK_FREE ATOMIC_LONG_LOCK_FREE
|
||||||
syn keyword cppConstant ATOMIC_LLONG_LOCK_FREE ATOMIC_POINTER_LOCK_FREE
|
syn keyword cppConstant ATOMIC_LLONG_LOCK_FREE ATOMIC_POINTER_LOCK_FREE
|
||||||
syn region cppRawString matchgroup=cppRawStringDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"+ contains=@Spell
|
syn region cppRawString matchgroup=cppRawStringDelimiter start=+\%(u8\|[uLU]\)\=R"\z([[:alnum:]_{}[\]#<>%:;.?*\+\-/\^&|~!=,"']\{,16}\)(+ end=+)\z1"+ contains=@Spell
|
||||||
|
syn match cppCast "\<\(const\|static\|dynamic\)_pointer_cast\s*<"me=e-1
|
||||||
|
syn match cppCast "\<\(const\|static\|dynamic\)_pointer_cast\s*$"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" C++ 14 extensions
|
" C++ 14 extensions
|
||||||
@@ -54,6 +57,21 @@ if !exists("cpp_no_cpp14")
|
|||||||
syn case match
|
syn case match
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" C++ 17 extensions
|
||||||
|
if !exists("cpp_no_cpp17")
|
||||||
|
syn match cppCast "\<reinterpret_pointer_cast\s*<"me=e-1
|
||||||
|
syn match cppCast "\<reinterpret_pointer_cast\s*$"
|
||||||
|
endif
|
||||||
|
|
||||||
|
" C++ 20 extensions
|
||||||
|
if !exists("cpp_no_cpp20")
|
||||||
|
syn keyword cppStatement co_await co_return co_yield requires
|
||||||
|
syn keyword cppStorageClass consteval constinit
|
||||||
|
syn keyword cppStructure concept
|
||||||
|
syn keyword cppType char8_t
|
||||||
|
syn keyword cppModule import module export
|
||||||
|
endif
|
||||||
|
|
||||||
" The minimum and maximum operators in GNU C++
|
" The minimum and maximum operators in GNU C++
|
||||||
syn match cppMinMax "[<>]?"
|
syn match cppMinMax "[<>]?"
|
||||||
|
|
||||||
@@ -72,6 +90,7 @@ hi def link cppConstant Constant
|
|||||||
hi def link cppRawStringDelimiter Delimiter
|
hi def link cppRawStringDelimiter Delimiter
|
||||||
hi def link cppRawString String
|
hi def link cppRawString String
|
||||||
hi def link cppNumber Number
|
hi def link cppNumber Number
|
||||||
|
hi def link cppModule Include
|
||||||
|
|
||||||
let b:current_syntax = "cpp"
|
let b:current_syntax = "cpp"
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ syntax region dhallString start=+''+ end=+''+ contains=@Spell,dhallInterpolation
|
|||||||
syntax region dhallString start=+"+ end=+"+ contains=dhallInterpolation,dhallEsc
|
syntax region dhallString start=+"+ end=+"+ contains=dhallInterpolation,dhallEsc
|
||||||
syntax region dhallString start=+"/+ end=+"+ contains=dhallInterpolation,dhallEsc
|
syntax region dhallString start=+"/+ end=+"+ contains=dhallInterpolation,dhallEsc
|
||||||
syntax keyword dhallBool True False
|
syntax keyword dhallBool True False
|
||||||
|
syntax match dhallHash "sha256:[a-f0-9]+"
|
||||||
|
|
||||||
highlight link dhallSingleSpecial Special
|
highlight link dhallSingleSpecial Special
|
||||||
highlight link dhallIndex Special
|
highlight link dhallIndex Special
|
||||||
@@ -60,6 +61,7 @@ highlight link dhallType Structure
|
|||||||
highlight link dhallParens Special
|
highlight link dhallParens Special
|
||||||
highlight link dhallComment Comment
|
highlight link dhallComment Comment
|
||||||
highlight link dhallMultilineComment Comment
|
highlight link dhallMultilineComment Comment
|
||||||
|
highlight link dhallHash Keyword
|
||||||
|
|
||||||
let b:current_syntax = 'dhall'
|
let b:current_syntax = 'dhall'
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,25 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||||
|
|
||||||
" Vim syntax file
|
" Copyright (c) 2016-2019 Jon Parise <jon@indelible.org>
|
||||||
|
"
|
||||||
|
" Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
" of this software and associated documentation files (the "Software"), to
|
||||||
|
" deal in the Software without restriction, including without limitation the
|
||||||
|
" rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
" sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
" furnished to do so, subject to the following conditions:
|
||||||
|
"
|
||||||
|
" The above copyright notice and this permission notice shall be included in
|
||||||
|
" all copies or substantial portions of the Software.
|
||||||
|
"
|
||||||
|
" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
" IN THE SOFTWARE.
|
||||||
|
"
|
||||||
" Language: GraphQL
|
" Language: GraphQL
|
||||||
" Maintainer: Jon Parise <jon@indelible.org>
|
" Maintainer: Jon Parise <jon@indelible.org>
|
||||||
|
|
||||||
@@ -8,20 +27,23 @@ if exists('b:current_syntax')
|
|||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
syn case match
|
||||||
|
|
||||||
syn match graphqlComment "#.*$" contains=@Spell
|
syn match graphqlComment "#.*$" contains=@Spell
|
||||||
|
|
||||||
syn match graphqlOperator "=" display
|
syn match graphqlOperator "=" display
|
||||||
syn match graphqlOperator "!" display
|
syn match graphqlOperator "!" display
|
||||||
syn match graphqlOperator "|" display
|
syn match graphqlOperator "|" display
|
||||||
|
syn match graphqlOperator "&" display
|
||||||
syn match graphqlOperator "\M..." display
|
syn match graphqlOperator "\M..." display
|
||||||
|
|
||||||
syn keyword graphqlBoolean true false
|
syn keyword graphqlBoolean true false
|
||||||
syn keyword graphqlNull null
|
syn keyword graphqlNull null
|
||||||
syn match graphqlNumber "-\=\<\%(0\|[1-9]\d*\)\%(\.\d\+\)\=\%([eE][-+]\=\d\+\)\=\>" display
|
syn match graphqlNumber "-\=\<\%(0\|[1-9]\d*\)\%(\.\d\+\)\=\%([eE][-+]\=\d\+\)\=\>" display
|
||||||
syn region graphqlString start=+"+ skip=+\\\\\|\\"+ end=+"\|$+
|
syn region graphqlString start=+"+ skip=+\\\\\|\\"+ end=+"\|$+
|
||||||
syn region graphqlString start=+"""+ end=+"""+
|
syn region graphqlString start=+"""+ skip=+\\"""+ end=+"""+
|
||||||
|
|
||||||
syn keyword graphqlKeyword on nextgroup=graphqlType skipwhite
|
syn keyword graphqlKeyword on nextgroup=graphqlType,graphqlDirectiveLocation skipwhite
|
||||||
|
|
||||||
syn keyword graphqlStructure enum scalar type union nextgroup=graphqlType skipwhite
|
syn keyword graphqlStructure enum scalar type union nextgroup=graphqlType skipwhite
|
||||||
syn keyword graphqlStructure input interface subscription nextgroup=graphqlType skipwhite
|
syn keyword graphqlStructure input interface subscription nextgroup=graphqlType skipwhite
|
||||||
@@ -35,7 +57,16 @@ syn match graphqlDirective "\<@\h\w*\>" display
|
|||||||
syn match graphqlVariable "\<\$\h\w*\>" display
|
syn match graphqlVariable "\<\$\h\w*\>" display
|
||||||
syn match graphqlName "\<\h\w*\>" display
|
syn match graphqlName "\<\h\w*\>" display
|
||||||
syn match graphqlType "\<_*\u\w*\>" display
|
syn match graphqlType "\<_*\u\w*\>" display
|
||||||
syn match graphqlConstant "\<[_A-Z][_A-Z0-9]*\>" display
|
|
||||||
|
" https://graphql.github.io/graphql-spec/June2018/#ExecutableDirectiveLocation
|
||||||
|
syn keyword graphqlDirectiveLocation QUERY MUTATION SUBSCRIPTION FIELD
|
||||||
|
syn keyword graphqlDirectiveLocation FRAGMENT_DEFINITION FRAGMENT_SPREAD
|
||||||
|
syn keyword graphqlDirectiveLocation INLINE_FRAGMENT
|
||||||
|
" https://graphql.github.io/graphql-spec/June2018/#TypeSystemDirectiveLocation
|
||||||
|
syn keyword graphqlDirectiveLocation SCHEMA SCALAR OBJECT FIELD_DEFINITION
|
||||||
|
syn keyword graphqlDirectiveLocation ARGUMENT_DEFINITION INTERFACE UNION
|
||||||
|
syn keyword graphqlDirectiveLocation ENUM ENUM_VALUE INPUT_OBJECT
|
||||||
|
syn keyword graphqlDirectiveLocation INPUT_FIELD_DEFINITION
|
||||||
|
|
||||||
syn keyword graphqlMetaFields __schema __type __typename
|
syn keyword graphqlMetaFields __schema __type __typename
|
||||||
|
|
||||||
@@ -52,8 +83,8 @@ hi def link graphqlNull Keyword
|
|||||||
hi def link graphqlNumber Number
|
hi def link graphqlNumber Number
|
||||||
hi def link graphqlString String
|
hi def link graphqlString String
|
||||||
|
|
||||||
hi def link graphqlConstant Constant
|
|
||||||
hi def link graphqlDirective PreProc
|
hi def link graphqlDirective PreProc
|
||||||
|
hi def link graphqlDirectiveLocation Special
|
||||||
hi def link graphqlName Identifier
|
hi def link graphqlName Identifier
|
||||||
hi def link graphqlMetaFields Special
|
hi def link graphqlMetaFields Special
|
||||||
hi def link graphqlKeyword Keyword
|
hi def link graphqlKeyword Keyword
|
||||||
|
|||||||
@@ -119,6 +119,7 @@ syn keyword mesonBuiltin
|
|||||||
\ subdir
|
\ subdir
|
||||||
\ subdir_done
|
\ subdir_done
|
||||||
\ subproject
|
\ subproject
|
||||||
|
\ summary
|
||||||
\ target_machine
|
\ target_machine
|
||||||
\ test
|
\ test
|
||||||
\ vcs_tag
|
\ vcs_tag
|
||||||
|
|||||||
54
syntax/ocpbuild.vim
Normal file
54
syntax/ocpbuild.vim
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ocaml') == -1
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: ocp-build files
|
||||||
|
" Maintainer: Florent Monnier
|
||||||
|
" Latest Revision: 14 September 2013
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
syn keyword ocpKeywords begin end pack
|
||||||
|
syn keyword ocpKeywords if then else
|
||||||
|
|
||||||
|
syn keyword ocpBlockKind library syntax objects program test
|
||||||
|
|
||||||
|
syn keyword ocpFields files generated dirname archive
|
||||||
|
syn keyword ocpFields requires bundle
|
||||||
|
syn keyword ocpFields tests test_dir test_args test_benchmark
|
||||||
|
syn keyword ocpFields bytecomp bytelink link
|
||||||
|
syn keyword ocpFields has_asm nopervasives sort
|
||||||
|
syn keyword ocpFields comp ccopt byte has_byte
|
||||||
|
syn keyword ocpFields version authors license copyright
|
||||||
|
syn keyword ocpFields lib_files install installed
|
||||||
|
|
||||||
|
syn keyword ocpPreProc test_exit ocp2ml env_strings
|
||||||
|
syn keyword ocpPreProc ocaml_major_version
|
||||||
|
syn keyword ocpPreProc system
|
||||||
|
|
||||||
|
" Strings
|
||||||
|
syn region ocpString start=+"+ end=+"+
|
||||||
|
|
||||||
|
" Comments
|
||||||
|
syn keyword ocpTodo TODO XXX FIXME BUG contained
|
||||||
|
syn region ocpComment start="(\*" end="\*)" contains=ocpTodo
|
||||||
|
|
||||||
|
" Usual Values
|
||||||
|
syn keyword ocpNumber None
|
||||||
|
syn keyword ocpNumber true
|
||||||
|
syn keyword ocpNumber false
|
||||||
|
|
||||||
|
hi def link ocpTodo Todo
|
||||||
|
hi def link ocpComment Comment
|
||||||
|
hi def link ocpString String
|
||||||
|
hi def link ocpBlockKind Identifier
|
||||||
|
hi def link ocpNumber Number
|
||||||
|
hi def link ocpFields Structure
|
||||||
|
hi def link ocpKeywords Keyword
|
||||||
|
hi def link ocpPreProc PreProc
|
||||||
|
|
||||||
|
let b:current_syntax = "ocpbuild"
|
||||||
|
|
||||||
|
|
||||||
|
endif
|
||||||
57
syntax/ocpbuildroot.vim
Normal file
57
syntax/ocpbuildroot.vim
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ocaml') == -1
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: ocp-build.root files
|
||||||
|
" Maintainer: Florent Monnier
|
||||||
|
" Latest Revision: 14 September 2013
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Keywords
|
||||||
|
syn keyword ocprKeywords digest
|
||||||
|
syn keyword ocprKeywords verbosity
|
||||||
|
syn keyword ocprKeywords njobs
|
||||||
|
syn keyword ocprKeywords autoscan
|
||||||
|
syn keyword ocprKeywords bytecode
|
||||||
|
syn keyword ocprKeywords native
|
||||||
|
syn keyword ocprKeywords meta_dirnames
|
||||||
|
syn keyword ocprKeywords install_destdir
|
||||||
|
syn keyword ocprKeywords install_bin
|
||||||
|
syn keyword ocprKeywords install_lib
|
||||||
|
syn keyword ocprKeywords install_data
|
||||||
|
syn keyword ocprKeywords install_doc
|
||||||
|
syn keyword ocprKeywords ocamllib
|
||||||
|
syn keyword ocprKeywords use_ocamlfind
|
||||||
|
syn keyword ocprKeywords ocpbuild_version
|
||||||
|
syn keyword ocprKeywords project_external_dirs
|
||||||
|
syn keyword ocprKeywords files
|
||||||
|
syn keyword ocprKeywords install_docdir
|
||||||
|
syn keyword ocprKeywords install_datadir
|
||||||
|
syn keyword ocprKeywords install_libdir
|
||||||
|
syn keyword ocprKeywords install_bindir
|
||||||
|
syn keyword ocprKeywords install_metadir
|
||||||
|
|
||||||
|
syn keyword ocprNumber None
|
||||||
|
syn keyword ocprNumber true
|
||||||
|
syn keyword ocprNumber false
|
||||||
|
|
||||||
|
" Strings
|
||||||
|
syn match ocprString "\".\{-}\""
|
||||||
|
|
||||||
|
" Comments
|
||||||
|
syn keyword ocprTodo TODO XXX FIXME BUG contained
|
||||||
|
syn region ocprComment start="(\*" end="\*)" contains=ocprTodo
|
||||||
|
|
||||||
|
|
||||||
|
hi def link ocprKeywords Keyword
|
||||||
|
hi def link ocprTodo Todo
|
||||||
|
hi def link ocprComment Comment
|
||||||
|
hi def link ocprString String
|
||||||
|
hi def link ocprNumber Number
|
||||||
|
|
||||||
|
let b:current_syntax = "ocpbuildroot"
|
||||||
|
|
||||||
|
|
||||||
|
endif
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'qml') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'qml') == -1
|
||||||
|
|
||||||
|
|
||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: QML
|
" Language: QML
|
||||||
" Maintainer: Peter Hoeg <peter@hoeg.com>
|
" Maintainer: Peter Hoeg <peter@hoeg.com>
|
||||||
@@ -29,7 +30,7 @@ endif
|
|||||||
|
|
||||||
syn case ignore
|
syn case ignore
|
||||||
|
|
||||||
syn cluster qmlExpr contains=qmlStringD,qmlStringS,SqmlCharacter,qmlNumber,qmlObjectLiteralType,qmlBoolean,qmlType,qmlJsType,qmlNull,qmlGlobal,qmlFunction
|
syn cluster qmlExpr contains=qmlStringD,qmlStringS,qmlStringT,SqmlCharacter,qmlNumber,qmlObjectLiteralType,qmlBoolean,qmlType,qmlJsType,qmlNull,qmlGlobal,qmlFunction,qmlArrowFunction
|
||||||
syn keyword qmlCommentTodo TODO FIXME XXX TBD contained
|
syn keyword qmlCommentTodo TODO FIXME XXX TBD contained
|
||||||
syn match qmlLineComment "\/\/.*" contains=@Spell,qmlCommentTodo
|
syn match qmlLineComment "\/\/.*" contains=@Spell,qmlCommentTodo
|
||||||
syn match qmlCommentSkip "^[ \t]*\*\($\|[ \t]\+\)"
|
syn match qmlCommentSkip "^[ \t]*\*\($\|[ \t]\+\)"
|
||||||
@@ -37,6 +38,9 @@ syn region qmlComment start="/\*" end="\*/" contains=@Spell,qmlComme
|
|||||||
syn match qmlSpecial "\\\d\d\d\|\\."
|
syn match qmlSpecial "\\\d\d\d\|\\."
|
||||||
syn region qmlStringD start=+"+ skip=+\\\\\|\\"\|\\$+ end=+"+ keepend contains=qmlSpecial,@htmlPreproc,@Spell
|
syn region qmlStringD start=+"+ skip=+\\\\\|\\"\|\\$+ end=+"+ keepend contains=qmlSpecial,@htmlPreproc,@Spell
|
||||||
syn region qmlStringS start=+'+ skip=+\\\\\|\\'\|\\$+ end=+'+ keepend contains=qmlSpecial,@htmlPreproc,@Spell
|
syn region qmlStringS start=+'+ skip=+\\\\\|\\'\|\\$+ end=+'+ keepend contains=qmlSpecial,@htmlPreproc,@Spell
|
||||||
|
syn region qmlStringT start=+`+ skip=+\\\\\|\\`\|\\$+ end=+`+ keepend contains=qmlTemplateExpr,qmlSpecial,@htmlPreproc,@Spell
|
||||||
|
|
||||||
|
syntax region qmlTemplateExpr contained matchgroup=qmlBraces start=+${+ end=+}+ keepend contains=@qmlExpr
|
||||||
|
|
||||||
syn match qmlCharacter "'\\.'"
|
syn match qmlCharacter "'\\.'"
|
||||||
syn match qmlNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
|
syn match qmlNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
|
||||||
@@ -54,7 +58,7 @@ syn keyword qmlType action alias bool color date double enumeration
|
|||||||
syn keyword qmlStatement return with
|
syn keyword qmlStatement return with
|
||||||
syn keyword qmlBoolean true false
|
syn keyword qmlBoolean true false
|
||||||
syn keyword qmlNull null undefined
|
syn keyword qmlNull null undefined
|
||||||
syn keyword qmlIdentifier arguments this var
|
syn keyword qmlIdentifier arguments this var let
|
||||||
syn keyword qmlLabel case default
|
syn keyword qmlLabel case default
|
||||||
syn keyword qmlException try catch finally throw
|
syn keyword qmlException try catch finally throw
|
||||||
syn keyword qmlMessage alert confirm prompt status
|
syn keyword qmlMessage alert confirm prompt status
|
||||||
@@ -72,9 +76,10 @@ if get(g:, 'qml_fold', 0)
|
|||||||
setlocal foldmethod=syntax
|
setlocal foldmethod=syntax
|
||||||
setlocal foldtext=getline(v:foldstart)
|
setlocal foldtext=getline(v:foldstart)
|
||||||
else
|
else
|
||||||
syn keyword qmlFunction function
|
syn keyword qmlFunction function
|
||||||
syn match qmlBraces "[{}\[\]]"
|
syn match qmlArrowFunction "=>"
|
||||||
syn match qmlParens "[()]"
|
syn match qmlBraces "[{}\[\]]"
|
||||||
|
syn match qmlParens "[()]"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
syn sync fromstart
|
syn sync fromstart
|
||||||
@@ -100,6 +105,7 @@ if version >= 508 || !exists("did_qml_syn_inits")
|
|||||||
HiLink qmlSpecial Special
|
HiLink qmlSpecial Special
|
||||||
HiLink qmlStringS String
|
HiLink qmlStringS String
|
||||||
HiLink qmlStringD String
|
HiLink qmlStringD String
|
||||||
|
HiLink qmlStringT String
|
||||||
HiLink qmlCharacter Character
|
HiLink qmlCharacter Character
|
||||||
HiLink qmlNumber Number
|
HiLink qmlNumber Number
|
||||||
HiLink qmlConditional Conditional
|
HiLink qmlConditional Conditional
|
||||||
@@ -111,6 +117,7 @@ if version >= 508 || !exists("did_qml_syn_inits")
|
|||||||
HiLink qmlObjectLiteralType Type
|
HiLink qmlObjectLiteralType Type
|
||||||
HiLink qmlStatement Statement
|
HiLink qmlStatement Statement
|
||||||
HiLink qmlFunction Function
|
HiLink qmlFunction Function
|
||||||
|
HiLink qmlArrowFunction Function
|
||||||
HiLink qmlBraces Function
|
HiLink qmlBraces Function
|
||||||
HiLink qmlError Error
|
HiLink qmlError Error
|
||||||
HiLink qmlNull Keyword
|
HiLink qmlNull Keyword
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ if exists('b:current_syntax')
|
|||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
let s:cpo_save = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
" Identifiers are made up of alphanumeric characters, underscores, and
|
" Identifiers are made up of alphanumeric characters, underscores, and
|
||||||
" hyphens.
|
" hyphens.
|
||||||
if has('patch-7.4.1142')
|
if has('patch-7.4.1142')
|
||||||
@@ -4863,9 +4866,8 @@ syn match terraValueDec "\<[0-9]\+\([kKmMgG]b\?\)\?\>"
|
|||||||
syn match terraValueHexaDec "\<0x[0-9a-f]\+\([kKmMgG]b\?\)\?\>"
|
syn match terraValueHexaDec "\<0x[0-9a-f]\+\([kKmMgG]b\?\)\?\>"
|
||||||
syn match terraBraces "[\[\]]"
|
syn match terraBraces "[\[\]]"
|
||||||
|
|
||||||
""" skip \" in strings.
|
""" skip \" and \\ in strings.
|
||||||
""" we may also want to pass \\" into a function to escape quotes.
|
syn region terraValueString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=terraStringInterp
|
||||||
syn region terraValueString start=/"/ skip=/\\\+"/ end=/"/ contains=terraStringInterp
|
|
||||||
syn region terraStringInterp matchgroup=terraBraces start=/\${/ end=/}/ contained contains=ALL
|
syn region terraStringInterp matchgroup=terraBraces start=/\${/ end=/}/ contained contains=ALL
|
||||||
syn region terraHereDocText start=/<<-\?\z([a-z0-9A-Z]\+\)/ end=/^\s*\z1/ contains=terraStringInterp
|
syn region terraHereDocText start=/<<-\?\z([a-z0-9A-Z]\+\)/ end=/^\s*\z1/ contains=terraStringInterp
|
||||||
|
|
||||||
@@ -4923,4 +4925,7 @@ hi def link terraValueNull Constant
|
|||||||
|
|
||||||
let b:current_syntax = 'terraform'
|
let b:current_syntax = 'terraform'
|
||||||
|
|
||||||
|
let &cpo = s:cpo_save
|
||||||
|
unlet s:cpo_save
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ syn match zigBuiltinFn "\v\@(ptrToInt|rem|returnAddress|setCold|Type|shuffle)>"
|
|||||||
syn match zigBuiltinFn "\v\@(setRuntimeSafety|setEvalBranchQuota|setFloatMode)>"
|
syn match zigBuiltinFn "\v\@(setRuntimeSafety|setEvalBranchQuota|setFloatMode)>"
|
||||||
syn match zigBuiltinFn "\v\@(setGlobalLinkage|setGlobalSection|shlExact|This|hasDecl|hasField)>"
|
syn match zigBuiltinFn "\v\@(setGlobalLinkage|setGlobalSection|shlExact|This|hasDecl|hasField)>"
|
||||||
syn match zigBuiltinFn "\v\@(shlWithOverflow|shrExact|sizeOf|sqrt|byteSwap|subWithOverflow|intCast|floatCast|intToFloat|floatToInt|boolToInt|errSetCast)>"
|
syn match zigBuiltinFn "\v\@(shlWithOverflow|shrExact|sizeOf|sqrt|byteSwap|subWithOverflow|intCast|floatCast|intToFloat|floatToInt|boolToInt|errSetCast)>"
|
||||||
syn match zigBuiltinFn "\v\@(truncate|typeId|typeInfo|typeName|typeOf|atomicRmw|bytesToSlice|sliceToBytes)>"
|
syn match zigBuiltinFn "\v\@(truncate|typeId|typeInfo|typeName|TypeOf|atomicRmw|bytesToSlice|sliceToBytes)>"
|
||||||
syn match zigBuiltinFn "\v\@(intToError|errorToInt|intToEnum|enumToInt|setAlignStack|frame|Frame|frameSize|bitReverse|Vector)>"
|
syn match zigBuiltinFn "\v\@(intToError|errorToInt|intToEnum|enumToInt|setAlignStack|frame|Frame|frameSize|bitReverse|Vector)>"
|
||||||
syn match zigBuiltinFn "\v\@(sin|cos|exp|exp2|ln|log2|log10|fabs|floor|ceil|trunc|round)>"
|
syn match zigBuiltinFn "\v\@(sin|cos|exp|exp2|ln|log2|log10|fabs|floor|ceil|trunc|round)>"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user