mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e8454d66ab | ||
|
|
a60e299a3c | ||
|
|
b8a5504021 | ||
|
|
cea0d08a06 | ||
|
|
43085dc02f | ||
|
|
4d8423c962 | ||
|
|
e204a7223b | ||
|
|
7a0f2d974f | ||
|
|
15aeea662e | ||
|
|
d15651463a | ||
|
|
0c79dd3e73 | ||
|
|
4e95df7c7e |
11
README.md
11
README.md
@@ -10,7 +10,7 @@ A collection of language packs for Vim.
|
||||
> One to rule them all, one to find them, one to bring them all and in the darkness bind them.
|
||||
|
||||
- It **won't affect your startup time**, as scripts are loaded only on demand\*.
|
||||
- It **installs and updates 120+ times faster** than the <!--Package Count-->146<!--/Package Count--> packages it consists of.
|
||||
- It **installs and updates 120+ times faster** than the <!--Package Count-->147<!--/Package Count--> packages it consists of.
|
||||
- Solid syntax and indentation support (other features skipped). Only the best language packs.
|
||||
- All unnecessary files are ignored (like enormous documentation from php support).
|
||||
- No support for esoteric languages, only most popular ones (modern too, like `slim`).
|
||||
@@ -119,7 +119,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [log](https://github.com/MTDL9/vim-log-highlighting) (syntax)
|
||||
- [lua](https://github.com/tbastos/vim-lua) (syntax, indent)
|
||||
- [mako](https://github.com/sophacles/vim-bundle-mako) (syntax, indent, ftplugin)
|
||||
- [markdown](https://github.com/plasticboy/vim-markdown) (syntax, indent)
|
||||
- [markdown](https://github.com/plasticboy/vim-markdown) (syntax, indent, ftplugin)
|
||||
- [mathematica](https://github.com/voldikss/vim-mma) (syntax, ftplugin)
|
||||
- [mdx](https://github.com/jxnblk/vim-mdx-js) (syntax)
|
||||
- [meson](https://github.com/mesonbuild/meson) (syntax, indent, ftplugin)
|
||||
@@ -152,7 +152,7 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [raml](https://github.com/IN3D/vim-raml) (syntax, ftplugin)
|
||||
- [reason](https://github.com/reasonml-editor/vim-reason-plus) (syntax, indent)
|
||||
- [rspec](https://github.com/sheerun/rspec.vim) (syntax)
|
||||
- [rst](https://github.com/marshallward/vim-restructuredtext) (syntax, autoload, ftplugin)
|
||||
- [rst](https://github.com/marshallward/vim-restructuredtext) (syntax, indent, autoload, ftplugin)
|
||||
- [ruby](https://github.com/vim-ruby/vim-ruby) (syntax, indent, compiler, autoload, ftplugin)
|
||||
- [rust](https://github.com/rust-lang/rust.vim) (syntax, indent, compiler, autoload, ftplugin)
|
||||
- [sbt](https://github.com/derekwyatt/vim-sbt) (syntax)
|
||||
@@ -178,7 +178,8 @@ If you need full functionality of any plugin, please use it directly with your p
|
||||
- [tptp](https://github.com/c-cube/vim-tptp) (syntax)
|
||||
- [twig](https://github.com/lumiliet/vim-twig) (syntax, indent, ftplugin)
|
||||
- [typescript](https://github.com/HerringtonDarkholme/yats.vim) (syntax, indent, compiler, ftplugin)
|
||||
- [vala](https://github.com/arrufat/vala.vim) (syntax, indent)
|
||||
- [v](https://github.com/ollykel/v-vim) (syntax, indent, ftplugin)
|
||||
- [vala](https://github.com/arrufat/vala.vim) (syntax, indent, ftplugin)
|
||||
- [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax)
|
||||
- [vcl](https://github.com/smerrill/vcl-vim-plugin) (syntax)
|
||||
- [vifm](https://github.com/vifm/vifm.vim) (syntax, autoload, ftplugin)
|
||||
@@ -204,7 +205,7 @@ Please make sure you have `syntax on` in your `.vimrc`, otherwise syntax files a
|
||||
Individual language packs can be disabled by setting `g:polyglot_disabled` as follows:
|
||||
|
||||
```viml
|
||||
" ~/.vimrc
|
||||
" ~/.vimrc, declare this variable before polyglot is loaded
|
||||
let g:polyglot_disabled = ['css']
|
||||
```
|
||||
|
||||
|
||||
5
after/ftplugin/javascriptreact.vim
Normal file
5
after/ftplugin/javascriptreact.vim
Normal file
@@ -0,0 +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)
|
||||
|
||||
source <sfile>:h/javascript.vim
|
||||
|
||||
endif
|
||||
@@ -2,6 +2,11 @@ if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript')
|
||||
|
||||
" modified from html.vim
|
||||
" For matchit plugin
|
||||
|
||||
if get(g:, 'vim_jsx_pretty_disable_tsx', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
if exists("loaded_matchit")
|
||||
let b:match_ignorecase = 0
|
||||
let b:match_words = '(:),\[:\],{:},<:>,' .
|
||||
5
after/ftplugin/typescriptreact.vim
Normal file
5
after/ftplugin/typescriptreact.vim
Normal file
@@ -0,0 +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)
|
||||
|
||||
source <sfile>:h/tsx.vim
|
||||
|
||||
endif
|
||||
@@ -21,7 +21,7 @@ if exists('s:did_indent')
|
||||
endif
|
||||
|
||||
setlocal indentexpr=GetJsxIndent()
|
||||
setlocal indentkeys=0{,0},0),0],0\,,!^F,o,O,e,*<Return>,<>>,<<>,/
|
||||
setlocal indentkeys=0.,0{,0},0),0],0?,0\*,0\,,!^F,:,<:>,o,O,e,<>>,=*/
|
||||
|
||||
function! GetJsxIndent()
|
||||
return jsx_pretty#indent#get(function('GetJavascriptIndent'))
|
||||
|
||||
5
after/indent/javascriptreact.vim
Normal file
5
after/indent/javascriptreact.vim
Normal file
@@ -0,0 +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)
|
||||
|
||||
source <sfile>:h/javascript.vim
|
||||
|
||||
endif
|
||||
@@ -9,6 +9,10 @@ if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript')
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
if get(g:, 'vim_jsx_pretty_disable_tsx', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
if exists('b:did_indent')
|
||||
let s:did_indent = b:did_indent
|
||||
unlet b:did_indent
|
||||
@@ -22,7 +26,7 @@ if exists('s:did_indent')
|
||||
endif
|
||||
|
||||
setlocal indentexpr=GetJsxIndent()
|
||||
setlocal indentkeys=0{,0},0),0],0\,,!^F,o,O,e,*<Return>,<>>,<<>,/
|
||||
setlocal indentkeys=0.,0{,0},0),0],0?,0\*,0\,,!^F,:,<:>,o,O,e,<>>,=*/
|
||||
|
||||
function! GetJsxIndent()
|
||||
return jsx_pretty#indent#get(function('GetTypescriptIndent'))
|
||||
5
after/indent/typescriptreact.vim
Normal file
5
after/indent/typescriptreact.vim
Normal file
@@ -0,0 +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)
|
||||
|
||||
source <sfile>:h/tsx.vim
|
||||
|
||||
endif
|
||||
@@ -36,6 +36,19 @@ if exists('g:cpp_member_variable_highlight') && g:cpp_member_variable_highlight
|
||||
hi def link cCustomMemVar Function
|
||||
endif
|
||||
|
||||
" -----------------------------------------------------------------------------
|
||||
" Highlight POSIX functions.
|
||||
" -----------------------------------------------------------------------------
|
||||
if exists('g:cpp_posix_standard') && g:cpp_posix_standard
|
||||
syn keyword cPOSIXFunction socket accept bind connect getsockname
|
||||
syn keyword cPOSIXFunction listen recv recvfrom recvmsg
|
||||
syn keyword cPOSIXFunction send sendto sendmsg setsockopt socketpair
|
||||
syn keyword cPOSIXFunction htonl htons ntohl ntohs
|
||||
syn keyword cPOSIXFunction inet_ntop inet_pton getaddrinfo
|
||||
syn keyword cPOSIXFunction poll select pselect
|
||||
hi def link cPOSIXFunction Function
|
||||
endif
|
||||
|
||||
" -----------------------------------------------------------------------------
|
||||
" Source: aftersyntaxc.vim
|
||||
" -----------------------------------------------------------------------------
|
||||
|
||||
@@ -633,21 +633,19 @@ syntax keyword cppSTLios unitbuf
|
||||
syntax keyword cppSTLios uppercase
|
||||
"syntax keyword cppSTLios ws
|
||||
syntax keyword cppSTLiterator back_insert_iterator
|
||||
syntax keyword cppSTLiterator bidirectional_iterator
|
||||
syntax keyword cppSTLiterator const_iterator
|
||||
syntax keyword cppSTLiterator const_reverse_iterator
|
||||
syntax keyword cppSTLiterator forward_iterator
|
||||
syntax keyword cppSTLiterator front_insert_iterator
|
||||
syntax keyword cppSTLiterator input_iterator
|
||||
syntax keyword cppSTLiterator insert_iterator
|
||||
syntax keyword cppSTLiterator istreambuf_iterator
|
||||
syntax keyword cppSTLiterator istream_iterator
|
||||
syntax keyword cppSTLiterator ostreambuf_iterator
|
||||
syntax keyword cppSTLiterator ostream_iterator
|
||||
syntax keyword cppSTLiterator iterator
|
||||
syntax keyword cppSTLiterator ostream_iterator
|
||||
syntax keyword cppSTLiterator output_iterator
|
||||
syntax keyword cppSTLiterator random_access_iterator
|
||||
syntax keyword cppSTLiterator raw_storage_iterator
|
||||
syntax keyword cppSTLiterator reverse_bidirectional_iterator
|
||||
syntax keyword cppSTLiterator move_iterator
|
||||
syntax keyword cppSTLiterator reverse_iterator
|
||||
syntax keyword cppSTLiterator_tag bidirectional_iterator_tag
|
||||
syntax keyword cppSTLiterator_tag forward_iterator_tag
|
||||
@@ -1593,6 +1591,8 @@ endif " C++14
|
||||
|
||||
|
||||
if !exists("cpp_no_cpp17")
|
||||
syntax keyword cppSTLnamespace pmr
|
||||
|
||||
" algorithm
|
||||
syntax keyword cppSTLfunction clamp
|
||||
syntax keyword cppSTLfunction for_each_n
|
||||
@@ -1985,87 +1985,278 @@ endif " C++17
|
||||
|
||||
|
||||
if !exists("cpp_no_cpp20")
|
||||
" type_traits
|
||||
syntax keyword cppSTLtype remove_cvref remove_cvref_t
|
||||
syntax keyword cppType char8_t
|
||||
syntax keyword cppStatement co_yield co_return co_await
|
||||
syntax keyword cppStorageClass consteval
|
||||
syntax keyword cppSTLnamespace ranges
|
||||
|
||||
" algorithm
|
||||
syntax keyword cppSTLfunction shift_left
|
||||
syntax keyword cppSTLfunction shift_right
|
||||
syntax keyword cppSTLfunction lexicographical_compare_three_way
|
||||
|
||||
" bit
|
||||
syntax keyword cppSTLcast bit_cast
|
||||
syntax keyword cppSTLfunction ispow2
|
||||
syntax keyword cppSTLfunction ceil2
|
||||
syntax keyword cppSTLfunction floor2
|
||||
syntax keyword cppSTLfunction log2p1
|
||||
syntax keyword cppSTLfunction rotl
|
||||
syntax keyword cppSTLfunction rotr
|
||||
syntax keyword cppSTLfunction countl_zero
|
||||
syntax keyword cppSTLfunction countl_one
|
||||
syntax keyword cppSTLfunction countr_zero
|
||||
syntax keyword cppSTLfunction countr_one
|
||||
syntax keyword cppSTLfunction popcount
|
||||
syntax keyword cppSTLtype endian
|
||||
|
||||
" compare
|
||||
syntax keyword cppSTLtype weak_equality
|
||||
syntax keyword cppSTLtype strong_equality
|
||||
syntax keyword cppSTLtype partial_ordering
|
||||
syntax keyword cppSTLtype weak_ordering
|
||||
syntax keyword cppSTLtype strong_ordering
|
||||
syntax keyword cppSTLtype common_comparison_category
|
||||
syntax keyword cppSTLtype compare_three_way_result
|
||||
syntax keyword cppSTLtype compare_three_way
|
||||
syntax keyword cppSTLtype strong_order
|
||||
syntax keyword cppSTLtype weak_order
|
||||
syntax keyword cppSTLtype parital_order
|
||||
syntax keyword cppSTLtype compare_strong_order_fallback
|
||||
syntax keyword cppSTLtype compare_weak_order_fallback
|
||||
syntax keyword cppSTLtype compare_parital_order_fallback
|
||||
syntax keyword cppSTLfunction is_eq
|
||||
syntax keyword cppSTLfunction is_neq
|
||||
syntax keyword cppSTLfunction is_lt
|
||||
syntax keyword cppSTLfunction is_lteq
|
||||
syntax keyword cppSTLfunction is_gt
|
||||
syntax keyword cppSTLfunction is_gteq
|
||||
|
||||
" format
|
||||
syntax keyword cppSTLtype formatter
|
||||
syntax keyword cppSTLtype basic_format_parse_context
|
||||
syntax keyword cppSTLtype format_parse_context
|
||||
syntax keyword cppSTLtype wformat_parse_context
|
||||
syntax keyword cppSTLtype basic_format_context
|
||||
syntax keyword cppSTLtype format_context
|
||||
syntax keyword cppSTLtype wformat_context
|
||||
syntax keyword cppSTLtype basic_format_arg
|
||||
syntax keyword cppSTLtype basic_format_args
|
||||
syntax keyword cppSTLtype format_args
|
||||
syntax keyword cppSTLtype wformat_args
|
||||
syntax keyword cppSTLtype format_args_t
|
||||
syntax keyword cppSTLtype format_error
|
||||
syntax keyword cppSTLfuntion format
|
||||
syntax keyword cppSTLfuntion format_to
|
||||
syntax keyword cppSTLfuntion format_to_n
|
||||
syntax keyword cppSTLfuntion formatted_size
|
||||
syntax keyword cppSTLfuntion vformat
|
||||
syntax keyword cppSTLfuntion vformat_to
|
||||
syntax keyword cppSTLfuntion visit_format_arg
|
||||
syntax keyword cppSTLfuntion make_format_args
|
||||
syntax keyword cppSTLfuntion make_wformat_args
|
||||
|
||||
" iterator
|
||||
syntax keyword cppSTLtype default_sentinel_t unreachable_sentinel_t
|
||||
syntax keyword cppSTLiterator common_iterator
|
||||
syntax keyword cppSTLiterator counted_iterator
|
||||
syntax keyword cppSTLiterator_tag contiguous_iterator_tag
|
||||
|
||||
" memory
|
||||
syntax keyword cppSTLfunction to_address
|
||||
syntax keyword cppSTLfunction assume_aligned
|
||||
syntax keyword cppSTLfunction make_unique_default_init
|
||||
syntax keyword cppSTLfunction allocate_shared_default_init
|
||||
|
||||
" source_location
|
||||
syntax keyword cppSTLtype source_location
|
||||
|
||||
" span
|
||||
syntax keyword cppSTLtype span
|
||||
syntax keyword cppSTLfunction as_bytes
|
||||
syntax keyword cppSTLfunction as_writable_bytes
|
||||
syntax keyword cppSTLconstant dynamic_extent
|
||||
|
||||
" syncstream
|
||||
syntax keyword cppSTLtype basic_syncbuf
|
||||
syntax keyword cppSTLtype basic_osyncstream
|
||||
syntax keyword cppSTLtype syncbuf
|
||||
syntax keyword cppSTLtype wsyncbuf
|
||||
syntax keyword cppSTLtype osyncstream
|
||||
syntax keyword cppSTLtype wosyncstream
|
||||
|
||||
" type_traits
|
||||
syntax keyword cppSTLtype remove_cvref remove_cvref_t
|
||||
syntax keyword cppSTLtype common_reference common_reference_t
|
||||
syntax keyword cppSTLfunction is_constant_evaluated
|
||||
syntax keyword cppSTLfunction is_pointer_interconvertible
|
||||
syntax keyword cppSTLfunction is_corresponding_member
|
||||
syntax keyword cppSTLtype is_nothrow_convertible
|
||||
syntax keyword cppSTLbool is_nothrow_convertible_v
|
||||
syntax keyword cppSTLtype is_layout_compatible
|
||||
syntax keyword cppSTLbool is_layout_compatible_v
|
||||
syntax keyword cppSTLtype is_bounded_array
|
||||
syntax keyword cppSTLbool is_bounded_array_v
|
||||
syntax keyword cppSTLtype is_unbounded_array
|
||||
syntax keyword cppSTLbool is_unbounded_array_v
|
||||
syntax keyword cppSTLtype is_pointer_interconvertible_base_of
|
||||
syntax keyword cppSTLbool is_pointer_interconvertible_base_of_v
|
||||
syntax keyword cppSTLtype has_strong_structural_equality
|
||||
syntax keyword cppSTLbool has_strong_structural_equality_v
|
||||
|
||||
" version
|
||||
" TODO
|
||||
endif
|
||||
|
||||
|
||||
if exists('g:cpp_concepts_highlight') && g:cpp_concepts_highlight
|
||||
if exists('g:cpp_concepts_highlight')
|
||||
syntax keyword cppStatement concept
|
||||
syntax keyword cppStorageClass requires
|
||||
syntax keyword cppSTLtype DefaultConstructible
|
||||
syntax keyword cppSTLtype MoveConstructible
|
||||
syntax keyword cppSTLtype CopyConstructible
|
||||
syntax keyword cppSTLtype MoveAssignable
|
||||
syntax keyword cppSTLtype CopyAssignable
|
||||
syntax keyword cppSTLtype Destructible
|
||||
syntax keyword cppSTLtype TriviallyCopyable
|
||||
syntax keyword cppSTLtype TrivialType
|
||||
syntax keyword cppSTLtype StandardLayoutType
|
||||
syntax keyword cppSTLtype PODType
|
||||
syntax keyword cppSTLtype EqualityComparable
|
||||
syntax keyword cppSTLtype LessThanComparable
|
||||
syntax keyword cppSTLtype Swappable
|
||||
syntax keyword cppSTLtype ValueSwappable
|
||||
syntax keyword cppSTLtype NullablePointer
|
||||
syntax keyword cppSTLtype Hash
|
||||
syntax keyword cppSTLtype Allocator
|
||||
syntax keyword cppSTLtype FunctionObject
|
||||
syntax keyword cppSTLtype Callable
|
||||
syntax keyword cppSTLtype Predicate
|
||||
syntax keyword cppSTLtype BinaryPredicate
|
||||
syntax keyword cppSTLtype Compare
|
||||
syntax keyword cppSTLtype Container
|
||||
syntax keyword cppSTLtype ReversibleContainer
|
||||
syntax keyword cppSTLtype AllocatorAwareContainer
|
||||
syntax keyword cppSTLtype SequenceContainer
|
||||
syntax keyword cppSTLtype ContiguousContainer
|
||||
syntax keyword cppSTLtype AssociativeContainer
|
||||
syntax keyword cppSTLtype UnorderedAssociativeContainer
|
||||
syntax keyword cppSTLtype DefaultInsertable
|
||||
syntax keyword cppSTLtype CopyInsertable
|
||||
syntax keyword cppSTLtype CopyInsertable
|
||||
syntax keyword cppSTLtype MoveInsertable
|
||||
syntax keyword cppSTLtype EmplaceConstructible
|
||||
syntax keyword cppSTLtype Erasable
|
||||
syntax keyword cppSTLtype Iterator
|
||||
syntax keyword cppSTLtype InputIterator
|
||||
syntax keyword cppSTLtype OutputIterator
|
||||
syntax keyword cppSTLtype ForwardIterator
|
||||
syntax keyword cppSTLtype BidirectionalIterator
|
||||
syntax keyword cppSTLtype RandomAccessIterator
|
||||
syntax keyword cppSTLtype ContiguousIterator
|
||||
syntax keyword cppSTLtype UnformattedInputFunction
|
||||
syntax keyword cppSTLtype FormattedInputFunction
|
||||
syntax keyword cppSTLtype UnformattedOutputFunction
|
||||
syntax keyword cppSTLtype FormattedOutputFunction
|
||||
syntax keyword cppSTLtype SeedSequence
|
||||
syntax keyword cppSTLtype UniformRandomBitGenerator
|
||||
syntax keyword cppSTLtype RandomNumberEngine
|
||||
syntax keyword cppSTLtype RandomNumberEngineAdaptor
|
||||
syntax keyword cppSTLtype RandomNumberDistribution
|
||||
syntax keyword cppSTLtype BasicLockable
|
||||
syntax keyword cppSTLtype Lockable
|
||||
syntax keyword cppSTLtype TimedLockable
|
||||
syntax keyword cppSTLtype Mutex
|
||||
syntax keyword cppSTLtype TimedMutex
|
||||
syntax keyword cppSTLtype SharedMutex
|
||||
syntax keyword cppSTLtype SharedTimedMutex
|
||||
syntax keyword cppSTLtype UnaryTypeTrait
|
||||
syntax keyword cppSTLtype BinaryTypeTrait
|
||||
syntax keyword cppSTLtype TransformationTrait
|
||||
syntax keyword cppSTLtype Clock
|
||||
syntax keyword cppSTLtype TrivialClock
|
||||
syntax keyword cppSTLtype CharTraits
|
||||
syntax keyword cppSTLtype pos_type
|
||||
syntax keyword cppSTLtype off_type
|
||||
syntax keyword cppSTLtype BitmaskType
|
||||
syntax keyword cppSTLtype NumericType
|
||||
syntax keyword cppSTLtype RegexTraits
|
||||
syntax keyword cppSTLtype LiteralType
|
||||
|
||||
if g:cpp_concepts_highlight == 1
|
||||
syntax keyword cppSTLconcept DefaultConstructible
|
||||
syntax keyword cppSTLconcept MoveConstructible
|
||||
syntax keyword cppSTLconcept CopyConstructible
|
||||
syntax keyword cppSTLconcept MoveAssignable
|
||||
syntax keyword cppSTLconcept CopyAssignable
|
||||
syntax keyword cppSTLconcept Destructible
|
||||
syntax keyword cppSTLconcept TriviallyCopyable
|
||||
syntax keyword cppSTLconcept TrivialType
|
||||
syntax keyword cppSTLconcept StandardLayoutType
|
||||
syntax keyword cppSTLconcept PODType
|
||||
syntax keyword cppSTLconcept EqualityComparable
|
||||
syntax keyword cppSTLconcept LessThanComparable
|
||||
syntax keyword cppSTLconcept Swappable
|
||||
syntax keyword cppSTLconcept ValueSwappable
|
||||
syntax keyword cppSTLconcept NullablePointer
|
||||
syntax keyword cppSTLconcept Hash
|
||||
syntax keyword cppSTLconcept Allocator
|
||||
syntax keyword cppSTLconcept FunctionObject
|
||||
syntax keyword cppSTLconcept Callable
|
||||
syntax keyword cppSTLconcept Predicate
|
||||
syntax keyword cppSTLconcept BinaryPredicate
|
||||
syntax keyword cppSTLconcept Compare
|
||||
syntax keyword cppSTLconcept Container
|
||||
syntax keyword cppSTLconcept ReversibleContainer
|
||||
syntax keyword cppSTLconcept AllocatorAwareContainer
|
||||
syntax keyword cppSTLconcept SequenceContainer
|
||||
syntax keyword cppSTLconcept ContiguousContainer
|
||||
syntax keyword cppSTLconcept AssociativeContainer
|
||||
syntax keyword cppSTLconcept UnorderedAssociativeContainer
|
||||
syntax keyword cppSTLconcept DefaultInsertable
|
||||
syntax keyword cppSTLconcept CopyInsertable
|
||||
syntax keyword cppSTLconcept CopyInsertable
|
||||
syntax keyword cppSTLconcept MoveInsertable
|
||||
syntax keyword cppSTLconcept EmplaceConstructible
|
||||
syntax keyword cppSTLconcept Erasable
|
||||
syntax keyword cppSTLconcept Iterator
|
||||
syntax keyword cppSTLconcept InputIterator
|
||||
syntax keyword cppSTLconcept OutputIterator
|
||||
syntax keyword cppSTLconcept ForwardIterator
|
||||
syntax keyword cppSTLconcept BidirectionalIterator
|
||||
syntax keyword cppSTLconcept RandomAccessIterator
|
||||
syntax keyword cppSTLconcept ContiguousIterator
|
||||
syntax keyword cppSTLconcept UnformattedInputFunction
|
||||
syntax keyword cppSTLconcept FormattedInputFunction
|
||||
syntax keyword cppSTLconcept UnformattedOutputFunction
|
||||
syntax keyword cppSTLconcept FormattedOutputFunction
|
||||
syntax keyword cppSTLconcept SeedSequence
|
||||
syntax keyword cppSTLconcept UniformRandomBitGenerator
|
||||
syntax keyword cppSTLconcept RandomNumberEngine
|
||||
syntax keyword cppSTLconcept RandomNumberEngineAdaptor
|
||||
syntax keyword cppSTLconcept RandomNumberDistribution
|
||||
syntax keyword cppSTLconcept BasicLockable
|
||||
syntax keyword cppSTLconcept Lockable
|
||||
syntax keyword cppSTLconcept TimedLockable
|
||||
syntax keyword cppSTLconcept Mutex
|
||||
syntax keyword cppSTLconcept TimedMutex
|
||||
syntax keyword cppSTLconcept SharedMutex
|
||||
syntax keyword cppSTLconcept SharedTimedMutex
|
||||
syntax keyword cppSTLconcept UnaryTypeTrait
|
||||
syntax keyword cppSTLconcept BinaryTypeTrait
|
||||
syntax keyword cppSTLconcept TransformationTrait
|
||||
syntax keyword cppSTLconcept Clock
|
||||
syntax keyword cppSTLconcept TrivialClock
|
||||
syntax keyword cppSTLconcept CharTraits
|
||||
syntax keyword cppSTLconcept pos_type
|
||||
syntax keyword cppSTLconcept off_type
|
||||
syntax keyword cppSTLconcept BitmaskType
|
||||
syntax keyword cppSTLconcept NumericType
|
||||
syntax keyword cppSTLconcept RegexTraits
|
||||
syntax keyword cppSTLconcept LiteralType
|
||||
elseif g:cpp_concepts_highlight == 2
|
||||
syntax keyword cppSTLconcept same_as
|
||||
syntax keyword cppSTLconcept derived_from
|
||||
syntax keyword cppSTLconcept convertible_to
|
||||
syntax keyword cppSTLconcept common_reference_with
|
||||
syntax keyword cppSTLconcept common_with
|
||||
syntax keyword cppSTLconcept integral
|
||||
syntax keyword cppSTLconcept signed_integral
|
||||
syntax keyword cppSTLconcept unsigned_integral
|
||||
syntax keyword cppSTLconcept assignable_from
|
||||
syntax keyword cppSTLconcept swappable
|
||||
syntax keyword cppSTLconcept swappable_with
|
||||
syntax keyword cppSTLconcept destructible
|
||||
syntax keyword cppSTLconcept constructible_from
|
||||
syntax keyword cppSTLconcept default_constructible
|
||||
syntax keyword cppSTLconcept move_constructible
|
||||
syntax keyword cppSTLconcept copy_constructible
|
||||
syntax keyword cppSTLconcept boolean
|
||||
syntax keyword cppSTLconcept equality_comparable
|
||||
syntax keyword cppSTLconcept equality_comparable_with
|
||||
syntax keyword cppSTLconcept totally_ordered
|
||||
syntax keyword cppSTLconcept totally_ordered_with
|
||||
syntax keyword cppSTLconcept movable
|
||||
syntax keyword cppSTLconcept copyable
|
||||
syntax keyword cppSTLconcept semiregular
|
||||
syntax keyword cppSTLconcept regular
|
||||
syntax keyword cppSTLconcept invocable
|
||||
syntax keyword cppSTLconcept regular_invocable
|
||||
syntax keyword cppSTLconcept predicate
|
||||
syntax keyword cppSTLconcept relation
|
||||
syntax keyword cppSTLconcept strict_weak_order
|
||||
syntax keyword cppSTLconcept readable
|
||||
syntax keyword cppSTLconcept writable
|
||||
syntax keyword cppSTLconcept weakly_incrementable
|
||||
syntax keyword cppSTLconcept incrementable
|
||||
syntax keyword cppSTLconcept input_or_output_iterator
|
||||
syntax keyword cppSTLconcept sentinal_for
|
||||
syntax keyword cppSTLconcept sized_sentinal_for
|
||||
syntax keyword cppSTLconcept input_iterator
|
||||
syntax keyword cppSTLconcept output_iterator
|
||||
syntax keyword cppSTLconcept forward_iterator
|
||||
syntax keyword cppSTLconcept bidirectional_iterator
|
||||
syntax keyword cppSTLconcept random_access_iterator
|
||||
syntax keyword cppSTLconcept input_iterator
|
||||
syntax keyword cppSTLconcept output_iterator
|
||||
syntax keyword cppSTLconcept bidirectional_iterator
|
||||
syntax keyword cppSTLconcept random_access_iterator
|
||||
syntax keyword cppSTLconcept contiguous_iterator
|
||||
syntax keyword cppSTLconcept indirectly_unary_invocable
|
||||
syntax keyword cppSTLconcept indirectly_regular_unary_invocable
|
||||
syntax keyword cppSTLconcept indirect_unary_predicate
|
||||
syntax keyword cppSTLconcept indirect_relation
|
||||
syntax keyword cppSTLconcept indirect_strict_weak_order
|
||||
syntax keyword cppSTLconcept indirectly_movable
|
||||
syntax keyword cppSTLconcept indirectly_movable_storable
|
||||
syntax keyword cppSTLconcept indirectly_copyable
|
||||
syntax keyword cppSTLconcept indirectly_copyable_storable
|
||||
syntax keyword cppSTLconcept indirectly_swappable
|
||||
syntax keyword cppSTLconcept indirectly_comparable
|
||||
syntax keyword cppSTLconcept permutable
|
||||
syntax keyword cppSTLconcept mergeable
|
||||
syntax keyword cppSTLconcept sortable
|
||||
syntax keyword cppSTLconcept range
|
||||
syntax keyword cppSTLconcept sized_range
|
||||
syntax keyword cppSTLconcept output_range
|
||||
syntax keyword cppSTLconcept input_range
|
||||
syntax keyword cppSTLconcept bidirectional_range
|
||||
syntax keyword cppSTLconcept random_access_range
|
||||
syntax keyword cppSTLconcept contiguous_range
|
||||
syntax keyword cppSTLconcept common_range
|
||||
syntax keyword cppSTLconcept viewable_range
|
||||
syntax keyword cppSTLconcept uniform_random_bit_generator
|
||||
endif
|
||||
endif " C++ concepts
|
||||
|
||||
|
||||
@@ -2095,6 +2286,7 @@ if version >= 508 || !exists("did_cpp_syntax_inits")
|
||||
HiLink cppSTLiterator Typedef
|
||||
HiLink cppSTLiterator_tag Typedef
|
||||
HiLink cppSTLenum Typedef
|
||||
HiLink cppSTLconcept Typedef
|
||||
HiLink cppSTLios Function
|
||||
HiLink cppSTLcast Statement " be consistent with official syntax
|
||||
HiLink cppRawString String
|
||||
|
||||
@@ -22,34 +22,31 @@ if exists('s:current_syntax')
|
||||
let b:current_syntax = s:current_syntax
|
||||
endif
|
||||
|
||||
if hlexists("jsNoise") " pangloss/vim-javascript
|
||||
if hlexists("jsDebugger") || hlexists("jsNoise") " yuezk/vim-js or pangloss/vim-javascript
|
||||
syntax cluster jsExpression add=jsxRegion
|
||||
elseif hlexists("javascriptOpSymbols") " othree/yajs.vim
|
||||
" refine the javascript line comment
|
||||
syntax region javascriptLineComment start=+//+ end=/$/ contains=@Spell,javascriptCommentTodo extend keepend
|
||||
syntax cluster javascriptValue add=jsxRegion
|
||||
syntax cluster javascriptNoReserved add=jsxElement,jsxTag
|
||||
|
||||
" add support to arrow function which returns a tagged template string, e.g.
|
||||
" () => html`<div></div>`
|
||||
syntax cluster afterArrowFunc add=javascriptTagRef
|
||||
else " build-in javascript syntax
|
||||
" refine the javascript line comment
|
||||
syntax region javaScriptLineComment start=+//+ end=/$/ contains=@Spell,javascriptCommentTodo extend keepend
|
||||
|
||||
" refine the template string syntax
|
||||
syntax region javaScriptEmbed matchgroup=javaScriptEmbedBraces start=+\${+ end=+}+ contained contains=@javaScriptEmbededExpr
|
||||
|
||||
" add a javaScriptBlock group for build-in syntax
|
||||
syntax region javaScriptBlockBuildIn
|
||||
\ contained
|
||||
syntax region javaScriptBlock
|
||||
\ matchgroup=javaScriptBraces
|
||||
\ start="{"
|
||||
\ end="}"
|
||||
\ contained
|
||||
\ extend
|
||||
\ contains=javaScriptBlockBuildIn,@javaScriptEmbededExpr,javaScript.*
|
||||
\ contains=javaScriptBlock,@javaScriptEmbededExpr,javaScript.*
|
||||
\ fold
|
||||
syntax cluster javaScriptEmbededExpr add=jsxRegion
|
||||
|
||||
" refine the template string syntax
|
||||
syntax region javaScriptStringT start=+`+ skip=+\\\\\|\\`+ end=+`+ contains=javaScriptSpecial,javaScriptEmbed,@htmlPreproc extend
|
||||
syntax region javaScriptEmbed matchgroup=javaScriptEmbedBraces start=+\${+ end=+}+ contained contains=@javaScriptEmbededExpr,javaScript.*
|
||||
syntax cluster javaScriptEmbededExpr add=jsxRegion,javaScript.*
|
||||
endif
|
||||
|
||||
runtime syntax/jsx_pretty.vim
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
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')
|
||||
let s:current_syntax = b:current_syntax
|
||||
unlet b:current_syntax
|
||||
@@ -11,17 +34,31 @@ endif
|
||||
|
||||
let s:tags = '\%(' . join(graphql#javascript_tags(), '\|') . '\)'
|
||||
|
||||
exec 'syntax region graphqlTemplateString start=+' . s:tags . '\@20<=`+ skip=+\\`+ end=+`+ contains=@GraphQLSyntax,jsTemplateExpression,jsSpecial extend'
|
||||
exec 'syntax match graphqlTaggedTemplate +' . s:tags . '\ze`+ nextgroup=graphqlTemplateString'
|
||||
if graphql#has_syntax_group('jsTemplateExpression')
|
||||
" 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.
|
||||
syntax region graphqlTemplateExpression start=+${+ end=+}+ contained contains=jsTemplateExpression containedin=graphqlFold keepend
|
||||
hi def link graphqlTemplateString jsTemplateString
|
||||
hi def link graphqlTaggedTemplate jsTaggedTemplate
|
||||
hi def link graphqlTemplateExpression jsTemplateExpression
|
||||
|
||||
hi def link graphqlTemplateString jsTemplateString
|
||||
hi def link graphqlTaggedTemplate jsTaggedTemplate
|
||||
hi def link graphqlTemplateExpression jsTemplateExpression
|
||||
syn cluster jsExpression add=graphqlTaggedTemplate
|
||||
syn cluster graphqlTaggedTemplate add=graphqlTemplateString
|
||||
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
|
||||
syn cluster graphqlTaggedTemplate add=graphqlTemplateString
|
||||
hi def link graphqlTemplateString javaScriptStringT
|
||||
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
|
||||
|
||||
5
after/syntax/javascriptreact.vim
Normal file
5
after/syntax/javascriptreact.vim
Normal file
@@ -0,0 +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)
|
||||
|
||||
source <sfile>:h/javascript.vim
|
||||
|
||||
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
|
||||
@@ -2,6 +2,12 @@ if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript')
|
||||
|
||||
let s:highlight_close_tag = get(g:, 'vim_jsx_pretty_highlight_close_tag', 0)
|
||||
|
||||
" detect jsx region
|
||||
syntax region jsxRegion
|
||||
\ start=+\%(\%(\_[([,?:=+\-*/>{}]\|<\s\+\|&&\|||\|=>\|\<return\|\<default\|\<await\|\<yield\)\_s*\)\@<=<\_s*\%(>\|\z(\%(script\|T\s*>\s*(\)\@!\<[_$A-Za-z][-:._$A-Za-z0-9]*\>\)\%(\_s*\%([-+*)\]}&|?,]\|/\%([/*]\|\_s*>\)\@!\)\)\@!\)+
|
||||
\ end=++
|
||||
\ contains=jsxElement
|
||||
|
||||
" <tag id="sample">
|
||||
" ~~~~~~~~~~~~~~~~~
|
||||
" and self close tag
|
||||
@@ -12,11 +18,14 @@ syntax region jsxTag
|
||||
\ matchgroup=jsxOpenPunct
|
||||
\ end=+>+
|
||||
\ matchgroup=NONE
|
||||
\ end=+\(/\_s*>\)\@=+
|
||||
\ end=+\%(/\_s*>\)\@=+
|
||||
\ contained
|
||||
\ contains=jsxOpenTag,jsxEscapeJs,jsxAttrib,jsComment,@javascriptComments,javaScriptLineComment,javaScriptComment,typescriptLineComment,typescriptComment,jsxSpreadOperator
|
||||
\ contains=jsxOpenTag,jsxAttrib,jsxExpressionBlock,jsxSpreadOperator,jsComment,@javascriptComments,javaScriptLineComment,javaScriptComment,typescriptLineComment,typescriptComment
|
||||
\ keepend
|
||||
\ extend
|
||||
\ skipwhite
|
||||
\ skipempty
|
||||
\ nextgroup=jsxCloseString
|
||||
|
||||
" <tag></tag>
|
||||
" ~~~~~~~~~~~
|
||||
@@ -27,30 +36,15 @@ syntax region jsxTag
|
||||
" <tag />
|
||||
" ~~~~~~~
|
||||
syntax region jsxElement
|
||||
\ start=+<\_s*\(>\|\${\|\z(\<[-:_\.\$0-9A-Za-z]\+\>\)\)+
|
||||
\ start=+<\_s*\%(>\|\${\|\z(\<[-:._$A-Za-z0-9]\+\>\)\)+
|
||||
\ end=+/\_s*>+
|
||||
\ end=+<\_s*/\_s*\z1\_s*>+
|
||||
\ contains=jsxElement,jsxEscapeJs,jsxTag,jsxComment,jsxCloseString,jsxCloseTag,@Spell
|
||||
\ contains=jsxElement,jsxTag,jsxExpressionBlock,jsxComment,jsxCloseTag,@Spell
|
||||
\ keepend
|
||||
\ extend
|
||||
\ contained
|
||||
\ fold
|
||||
|
||||
" detect jsx region
|
||||
syntax region jsxRegion
|
||||
\ start=+\(\(\_[([,?:=+\-*/<>{}]\|&&\|||\|=>\|\<return\|\<default\|\<await\|\<yield\)\_s*\)\@<=<\_s*\(>\|\z(\(script\)\@!\<[_\$A-Za-z][-:_\.\$0-9A-Za-z]*\>\)\(\_s*\([-+*)\]}&|?,]\|/\([/*]\|\_s*>\)\@!\)\)\@!\)+
|
||||
\ end=++
|
||||
\ contains=jsxElement
|
||||
|
||||
" <tag key={this.props.key}>
|
||||
" ~~~~~~~~~~~~~~~~
|
||||
syntax region jsxEscapeJs
|
||||
\ start=+{+
|
||||
\ end=++
|
||||
\ extend
|
||||
\ contained
|
||||
\ contains=jsBlock,javascriptBlock,javaScriptBlockBuildIn,typescriptBlock
|
||||
|
||||
" <tag key={this.props.key}>
|
||||
" ~~~~
|
||||
" and fragment start tag
|
||||
@@ -66,19 +60,31 @@ exe 'syntax region jsxOpenTag
|
||||
\ contains=jsxTagName
|
||||
\ nextgroup=jsxAttrib
|
||||
\ skipwhite
|
||||
\ skipempty ' .(s:highlight_close_tag ? 'transparent' : '')
|
||||
\ skipempty
|
||||
\ ' .(s:highlight_close_tag ? 'transparent' : '')
|
||||
|
||||
|
||||
" <tag key={this.props.key}>
|
||||
" ~~~~~~~~~~~~~~~~
|
||||
syntax region jsxExpressionBlock
|
||||
\ matchgroup=jsxBraces
|
||||
\ start=+{+
|
||||
\ end=+}+
|
||||
\ contained
|
||||
\ extend
|
||||
\ contains=@jsExpression,jsSpreadExpression,@javascriptExpression,javascriptSpreadOp,@javaScriptEmbededExpr,@typescriptExpression,typescriptObjectSpread,jsComment,@javascriptComments,javaScriptLineComment,javaScriptComment,typescriptLineComment,typescriptComment
|
||||
|
||||
" <foo.bar>
|
||||
" ~
|
||||
syntax match jsxDot +\.+ contained display
|
||||
syntax match jsxDot +\.+ contained
|
||||
|
||||
" <foo:bar>
|
||||
" ~
|
||||
syntax match jsxNamespace +:+ contained display
|
||||
syntax match jsxNamespace +:+ contained
|
||||
|
||||
" <tag id="sample">
|
||||
" ~
|
||||
syntax match jsxEqual +=+ contained display nextgroup=jsxString,jsxEscapeJs,jsxRegion skipwhite
|
||||
syntax match jsxEqual +=+ contained skipwhite skipempty nextgroup=jsxString,jsxExpressionBlock,jsxRegion
|
||||
|
||||
" <tag />
|
||||
" ~~
|
||||
@@ -99,13 +105,12 @@ syntax region jsxCloseTag
|
||||
" <tag key={this.props.key}>
|
||||
" ~~~
|
||||
syntax match jsxAttrib
|
||||
\ +\<[-A-Za-z_][-:_\$0-9A-Za-z]*\>+
|
||||
\ +\<[_$A-Za-z][-:_$A-Za-z0-9]*\>+
|
||||
\ contained
|
||||
\ nextgroup=jsxEqual
|
||||
\ skipwhite
|
||||
\ skipempty
|
||||
\ contains=jsxAttribKeyword
|
||||
\ display
|
||||
\ contains=jsxAttribKeyword,jsxNamespace
|
||||
|
||||
" <MyComponent ...>
|
||||
" ~~~~~~~~~~~
|
||||
@@ -113,67 +118,71 @@ syntax match jsxAttrib
|
||||
" <someCamel ...>
|
||||
" ~~~~~
|
||||
exe 'syntax match jsxComponentName
|
||||
\ +\<[A-Z][\$0-9A-Za-z]\+\>+
|
||||
\ +\<[_$]\?[A-Z][-_$A-Za-z0-9]*\>+
|
||||
\ contained
|
||||
\ display ' .(s:highlight_close_tag ? 'transparent' : '')
|
||||
\ ' .(s:highlight_close_tag ? 'transparent' : '')
|
||||
|
||||
" <tag key={this.props.key}>
|
||||
" ~~~
|
||||
exe 'syntax match jsxTagName
|
||||
\ +\<[-:_\.\$0-9A-Za-z]\+\>+
|
||||
\ +\<[-:._$A-Za-z0-9]\+\>+
|
||||
\ contained
|
||||
\ contains=jsxComponentName,jsxDot,jsxNamespace
|
||||
\ nextgroup=jsxAttrib
|
||||
\ skipempty
|
||||
\ skipwhite
|
||||
\ display ' .(s:highlight_close_tag ? 'transparent' : '')
|
||||
\ ' .(s:highlight_close_tag ? 'transparent' : '')
|
||||
|
||||
" <tag id="sample">
|
||||
" ~~~~~~~~
|
||||
" and
|
||||
" <tag id='sample'>
|
||||
" ~~~~~~~~
|
||||
syntax region jsxString start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1+ contained contains=@Spell display
|
||||
syntax region jsxString start=+\z(["']\)+ skip=+\\\\\|\\\z1\|\\\n+ end=+\z1+ contained contains=@Spell
|
||||
|
||||
let s:tags = get(g:, 'vim_jsx_pretty_template_tags', ['html', 'raw'])
|
||||
let s:tags = get(g:, 'vim_jsx_pretty_template_tags', ['html', 'jsx'])
|
||||
let s:enable_tagged_jsx = !empty(s:tags)
|
||||
|
||||
" add support to JSX inside the tagged template string
|
||||
" https://github.com/developit/htm
|
||||
if s:enable_tagged_jsx
|
||||
exe 'syntax region jsxTaggedRegion
|
||||
\ start=+\%('. join(s:tags, '\|') .'\)\@<=`+ms=s+1
|
||||
\ end=+`+me=e-1
|
||||
\ extend
|
||||
\ contained
|
||||
\ containedin=jsTemplateString,javascriptTemplate,javaScriptStringT,typescriptStringB
|
||||
\ contains=jsxElement'
|
||||
exe 'syntax match jsxRegion +\%(' . join(s:tags, '\|') . '\)\%(\_s*`\)\@=+ contains=jsTemplateStringTag,jsTaggedTemplate,javascriptTagRef skipwhite skipempty nextgroup=jsxTaggedRegion'
|
||||
|
||||
syntax region jsxEscapeJs
|
||||
\ start=+\${+
|
||||
\ end=++
|
||||
syntax region jsxTaggedRegion
|
||||
\ matchgroup=jsxBackticks
|
||||
\ start=+`+
|
||||
\ end=+`+
|
||||
\ extend
|
||||
\ contained
|
||||
\ contains=jsTemplateExpression,javascriptTemplateSubstitution,javaScriptEmbed,typescriptInterpolation
|
||||
\ contains=jsxElement,jsxExpressionBlock
|
||||
\ transparent
|
||||
|
||||
syntax region jsxExpressionBlock
|
||||
\ matchgroup=jsxBraces
|
||||
\ start=+\${+
|
||||
\ end=+}+
|
||||
\ extend
|
||||
\ contained
|
||||
\ contains=@jsExpression,jsSpreadExpression,@javascriptExpression,javascriptSpreadOp,@javaScriptEmbededExpr,@typescriptExpression,typescriptObjectSpread
|
||||
|
||||
syntax region jsxOpenTag
|
||||
\ matchgroup=jsxOpenPunct
|
||||
\ start=+<\%(\${\)\@=+
|
||||
\ matchgroup=NONE
|
||||
\ end=++
|
||||
\ end=+}\@1<=+
|
||||
\ contained
|
||||
\ contains=jsxEscapeJs
|
||||
\ nextgroup=jsxAttrib,jsxSpreadOperator
|
||||
\ contains=jsxExpressionBlock
|
||||
\ skipwhite
|
||||
\ skipempty
|
||||
\ nextgroup=jsxAttrib,jsxSpreadOperator
|
||||
|
||||
syntax keyword jsxAttribKeyword class contained display
|
||||
syntax keyword jsxAttribKeyword class contained
|
||||
|
||||
syntax match jsxSpreadOperator +\.\.\.+ contained display nextgroup=jsxEscapeJs skipwhite
|
||||
syntax match jsxSpreadOperator +\.\.\.+ contained nextgroup=jsxExpressionBlock skipwhite
|
||||
|
||||
syntax match jsxCloseTag +<//>+ display
|
||||
syntax match jsxCloseTag +<//>+ contained
|
||||
|
||||
syntax match jsxComment +<!--\_.\{-}-->+ display
|
||||
syntax match jsxComment +<!--\_.\{-}-->+
|
||||
endif
|
||||
|
||||
" Highlight the tag name
|
||||
@@ -183,10 +192,14 @@ highlight def link jsxComponentName Function
|
||||
|
||||
highlight def link jsxAttrib Type
|
||||
highlight def link jsxAttribKeyword jsxAttrib
|
||||
highlight def link jsxEqual Operator
|
||||
highlight def link jsxString String
|
||||
highlight def link jsxComment Comment
|
||||
|
||||
highlight def link jsxDot Operator
|
||||
highlight def link jsxNamespace Operator
|
||||
highlight def link jsxEqual Operator
|
||||
highlight def link jsxSpreadOperator Operator
|
||||
highlight def link jsxBraces Special
|
||||
|
||||
if s:highlight_close_tag
|
||||
highlight def link jsxCloseString Identifier
|
||||
@@ -201,9 +214,6 @@ highlight def link jsxPunct jsxCloseString
|
||||
highlight def link jsxClosePunct jsxPunct
|
||||
highlight def link jsxCloseTag jsxCloseString
|
||||
|
||||
highlight def link jsxComment Comment
|
||||
highlight def link jsxSpreadOperator Operator
|
||||
|
||||
let s:vim_jsx_pretty_colorful_config = get(g:, 'vim_jsx_pretty_colorful_config', 0)
|
||||
|
||||
if s:vim_jsx_pretty_colorful_config == 1
|
||||
@@ -212,5 +222,4 @@ if s:vim_jsx_pretty_colorful_config == 1
|
||||
highlight def link jsFuncArgs Type
|
||||
endif
|
||||
|
||||
|
||||
endif
|
||||
|
||||
@@ -9,6 +9,10 @@ if !exists('g:polyglot_disabled') || !(index(g:polyglot_disabled, 'typescript')
|
||||
"
|
||||
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||
|
||||
if get(g:, 'vim_jsx_pretty_disable_tsx', 0)
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:jsx_cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
@@ -26,6 +30,12 @@ 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
|
||||
@@ -36,11 +46,14 @@ if !hlexists('typescriptTypeCast')
|
||||
\ extend
|
||||
\ contains=@typescriptExpression,typescriptBlock
|
||||
\ fold
|
||||
hi def link typescriptTypeBrackets typescriptOpSymbols
|
||||
endif
|
||||
|
||||
syntax cluster typescriptExpression add=jsxRegion,typescriptParens
|
||||
|
||||
runtime syntax/jsx_pretty.vim
|
||||
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
|
||||
|
||||
let b:current_syntax = 'typescript.tsx'
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
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')
|
||||
let s:current_syntax = b:current_syntax
|
||||
unlet b:current_syntax
|
||||
|
||||
5
after/syntax/typescriptreact.vim
Normal file
5
after/syntax/typescriptreact.vim
Normal file
@@ -0,0 +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)
|
||||
|
||||
source <sfile>:h/tsx.vim
|
||||
|
||||
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
|
||||
@@ -5,7 +5,17 @@ function! cargo#Load()
|
||||
endfunction
|
||||
|
||||
function! cargo#cmd(args)
|
||||
execute "! cargo" a:args
|
||||
" Trim trailing spaces. This is necessary since :terminal command parses
|
||||
" trailing spaces as an empty argument.
|
||||
let args = substitute(a:args, '\s\+$', '', '')
|
||||
if has('terminal')
|
||||
let cmd = 'terminal'
|
||||
elseif has('nvim')
|
||||
let cmd = 'noautocmd new | terminal'
|
||||
else
|
||||
let cmd = '!'
|
||||
endif
|
||||
execute cmd 'cargo' args
|
||||
endfunction
|
||||
|
||||
function! s:nearest_cargo(...) abort
|
||||
|
||||
@@ -122,7 +122,7 @@ fu! csv#Init(start, end, ...) "{{{3
|
||||
" Enable vartabs for tab delimited files
|
||||
if b:delimiter=="\t" && has("vartabs")&& !exists("b:csv_fixed_width_cols")
|
||||
if get(b:, 'col_width', []) ==# []
|
||||
call csv#CalculateColumnWidth('')
|
||||
call csv#CalculateColumnWidth(line('$'), 1)
|
||||
endif
|
||||
let &l:vts=join(b:col_width, ',')
|
||||
let g:csv_no_conceal=1
|
||||
@@ -574,7 +574,7 @@ fu! csv#MaxColumns(...) "{{{3
|
||||
return len(b:csv_fixed_width_cols)
|
||||
endif
|
||||
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
|
||||
"
|
||||
" 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_list")
|
||||
" only check first 10000 lines, to be faster
|
||||
let last = line('$')
|
||||
if exists("a:1") && !empty(a:1)
|
||||
let last = a:1
|
||||
endif
|
||||
let last = a:row
|
||||
if !get(b:, 'csv_arrange_use_all_rows', 0)
|
||||
if 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
|
||||
let b:csv_list=getline(skipfirst+1,last)
|
||||
@@ -637,7 +636,7 @@ fu! csv#ArrangeCol(first, last, bang, limit, ...) range "{{{3
|
||||
endif
|
||||
let cur=winsaveview()
|
||||
" 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 && exists("b:col_width")
|
||||
" Unarrange, so that if csv_arrange_align has changed
|
||||
@@ -671,7 +670,7 @@ fu! csv#ArrangeCol(first, last, bang, limit, ...) range "{{{3
|
||||
endif
|
||||
|
||||
if !exists("b:col_width")
|
||||
call csv#CalculateColumnWidth(row)
|
||||
call csv#CalculateColumnWidth(row, 1)
|
||||
endif
|
||||
|
||||
" abort on empty file
|
||||
@@ -750,7 +749,7 @@ fu! csv#UnArrangeCol(match) "{{{3
|
||||
" Strip leading white space, also trims empty recordcsv#
|
||||
return substitute(a:match, '\%(^ \+\)\|\%( \+\ze'.b:delimiter. '\?$\)', '', 'g')
|
||||
endfu
|
||||
fu! csv#CalculateColumnWidth(row) "{{{3
|
||||
fu! csv#CalculateColumnWidth(row, silent) "{{{3
|
||||
" Internal function, not called from external,
|
||||
" does not work with fixed width columns
|
||||
" row for the row for which to calculate the width
|
||||
@@ -763,7 +762,7 @@ fu! csv#CalculateColumnWidth(row) "{{{3
|
||||
endif
|
||||
let s:max_cols=csv#MaxColumns(line('.'))
|
||||
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
|
||||
catch /csv:no_col/
|
||||
call csv#Warn("Error: getting Column numbers, aborting!")
|
||||
@@ -1053,7 +1052,7 @@ fu! csv#MoveCol(forward, line, ...) "{{{3
|
||||
let maxcol=csv#MaxColumns(line('.'))
|
||||
let cpos=getpos('.')[2]
|
||||
if !exists("b:csv_fixed_width_cols")
|
||||
let curwidth=CSVWidth()
|
||||
let curwidth=CSVWidth(1)
|
||||
call search(b:col, 'bc', line('.'))
|
||||
endif
|
||||
let spos=getpos('.')[2]
|
||||
@@ -1146,7 +1145,7 @@ fu! csv#MoveCol(forward, line, ...) "{{{3
|
||||
" leave the column (if the next column is shorter)
|
||||
if !exists("b:csv_fixed_width_cols")
|
||||
let a = getpos('.')
|
||||
if CSVWidth() == curwidth
|
||||
if CSVWidth(1) == curwidth
|
||||
let a[2]+= cpos-spos
|
||||
endif
|
||||
else
|
||||
@@ -1159,7 +1158,7 @@ fu! csv#MoveCol(forward, line, ...) "{{{3
|
||||
" Move to the correct screen column
|
||||
if !exists("b:csv_fixed_width_cols")
|
||||
let a = getpos('.')
|
||||
if CSVWidth() == curwidth
|
||||
if CSVWidth(1) == curwidth
|
||||
let a[2]+= cpos-spos
|
||||
endif
|
||||
else
|
||||
@@ -1835,7 +1834,7 @@ fu! csv#ProcessFieldValue(field) "{{{3
|
||||
|
||||
if a == b:delimiter
|
||||
try
|
||||
let a=repeat(' ', csv#ColWidth(col))
|
||||
let a=repeat(' ', csv#ColWidth(col, line('$'), 1))
|
||||
catch
|
||||
" no-op
|
||||
endtry
|
||||
@@ -2134,7 +2133,7 @@ fu! csv#NewRecord(line1, line2, count) "{{{3
|
||||
if !exists("b:col_width")
|
||||
" Best guess width
|
||||
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)
|
||||
else
|
||||
let record .= printf("%20s", b:delimiter)
|
||||
@@ -3145,7 +3144,9 @@ fu! CSVCount(col, fmt, first, last, ...) "{{{3
|
||||
unlet! s:additional['distinct']
|
||||
return (empty(result) ? 0 : result)
|
||||
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
|
||||
if exists("b:csv_fixed_width_cols")
|
||||
let c = getline(1,'$')
|
||||
@@ -3164,7 +3165,7 @@ fu! CSVWidth() "{{{3
|
||||
" Add width for last column
|
||||
call add(width, max-y+1)
|
||||
else
|
||||
call csv#CalculateColumnWidth('')
|
||||
call csv#CalculateColumnWidth(line('$'), silent)
|
||||
let width=map(copy(b:col_width), 'v:val-1')
|
||||
endif
|
||||
return width
|
||||
|
||||
@@ -84,7 +84,18 @@ function! go#config#StatuslineDuration() abort
|
||||
endfunction
|
||||
|
||||
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
|
||||
|
||||
function! go#config#PlayBrowserCommand() abort
|
||||
@@ -353,7 +364,7 @@ function! go#config#FmtCommand() abort
|
||||
endfunction
|
||||
|
||||
function! go#config#FmtOptions() abort
|
||||
return get(g:, "go_fmt_options", {})
|
||||
return get(b:, "go_fmt_options", get(g:, "go_fmt_options", {}))
|
||||
endfunction
|
||||
|
||||
function! go#config#FmtFailSilently() abort
|
||||
@@ -368,6 +379,11 @@ function! go#config#PlayOpenBrowser() abort
|
||||
return get(g:, "go_play_open_browser", 1)
|
||||
endfunction
|
||||
|
||||
function! go#config#RenameCommand() abort
|
||||
" delegate to go#config#GorenameBin for backwards compatability.
|
||||
return get(g:, "go_rename_command", go#config#GorenameBin())
|
||||
endfunction
|
||||
|
||||
function! go#config#GorenameBin() abort
|
||||
return get(g:, "go_gorename_bin", "gorename")
|
||||
endfunction
|
||||
@@ -463,6 +479,14 @@ function! go#config#HighlightVariableDeclarations() abort
|
||||
return get(g:, 'go_highlight_variable_declarations', 0)
|
||||
endfunction
|
||||
|
||||
function! go#config#HighlightDiagnosticErrors() abort
|
||||
return get(g:, 'go_highlight_diagnostic_errors', 1)
|
||||
endfunction
|
||||
|
||||
function! go#config#HighlightDiagnosticWarnings() abort
|
||||
return get(g:, 'go_highlight_diagnostic_warnings', 1)
|
||||
endfunction
|
||||
|
||||
function! go#config#HighlightDebug() abort
|
||||
return get(g:, 'go_highlight_debug', 1)
|
||||
endfunction
|
||||
@@ -482,6 +506,43 @@ function! go#config#CodeCompletionEnabled() abort
|
||||
return get(g:, "go_code_completion_enabled", 1)
|
||||
endfunction
|
||||
|
||||
function! go#config#Updatetime() abort
|
||||
let go_updatetime = get(g:, 'go_updatetime', 800)
|
||||
return go_updatetime == 0 ? &updatetime : go_updatetime
|
||||
endfunction
|
||||
|
||||
function! go#config#ReferrersMode() abort
|
||||
return get(g:, 'go_referrers_mode', 'gopls')
|
||||
endfunction
|
||||
|
||||
function! go#config#GoplsCompleteUnimported() abort
|
||||
return get(g:, 'go_gopls_complete_unimported', 0)
|
||||
endfunction
|
||||
|
||||
function! go#config#GoplsDeepCompletion() abort
|
||||
return get(g:, 'go_gopls_deep_completion', 1)
|
||||
endfunction
|
||||
|
||||
function! go#config#GoplsFuzzyMatching() abort
|
||||
return get(g:, 'go_gopls_fuzzy_matching', 1)
|
||||
endfunction
|
||||
|
||||
function! go#config#GoplsStaticCheck() abort
|
||||
return get(g:, 'go_gopls_staticcheck', 0)
|
||||
endfunction
|
||||
|
||||
function! go#config#GoplsUsePlaceholders() abort
|
||||
return get(g:, 'go_gopls_use_placeholders', 0)
|
||||
endfunction
|
||||
|
||||
function! go#config#GoplsEnabled() abort
|
||||
return get(g:, 'go_gopls_enabled', 1)
|
||||
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
|
||||
" compatibility reasons.
|
||||
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
|
||||
|
||||
" 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
|
||||
" Maintainer: Jon Parise <jon@indelible.org>
|
||||
|
||||
if exists('g:autoloaded_graphql')
|
||||
finish
|
||||
endif
|
||||
let g:autoloaded_graphql = 1
|
||||
function! graphql#has_syntax_group(group) abort
|
||||
try
|
||||
silent execute 'silent highlight ' . a:group
|
||||
catch
|
||||
return v:false
|
||||
endtry
|
||||
return v:true
|
||||
endfunction
|
||||
|
||||
function! graphql#javascript_tags() abort
|
||||
return get(g:, 'graphql_javascript_tags', ['gql', 'graphql', 'Relay.QL'])
|
||||
|
||||
@@ -10,209 +10,297 @@ else
|
||||
endfunction
|
||||
endif
|
||||
|
||||
" Get the syntax group of start of line
|
||||
function! s:syn_sol(lnum)
|
||||
let line = getline(a:lnum)
|
||||
let sol = matchstr(line, '^\s*')
|
||||
return map(synstack(a:lnum, len(sol) + 1), 'synIDattr(v:val, "name")')
|
||||
" Regexp for the start tag
|
||||
let s:start_tag = '<\_s*\%(>\|\${\|\%(\<[-:._$A-Za-z0-9]\+\>\)\)'
|
||||
" Regexp for the end tag
|
||||
let s:end_tag = '\%(<\_s*/\_s*\%(\<[-:._$A-Za-z0-9]\+\>\)\_s*>\|/\_s*>\)'
|
||||
|
||||
function s:trim(line)
|
||||
return substitute(a:line, '^\s*\|\s*$', '', 'g')
|
||||
endfunction
|
||||
|
||||
" Get the syntax group of end of line
|
||||
function! s:syn_eol(lnum)
|
||||
let lnum = prevnonblank(a:lnum)
|
||||
let col = strlen(getline(lnum))
|
||||
return map(synstack(lnum, col), 'synIDattr(v:val, "name")')
|
||||
" Get the syntax stack at the given position
|
||||
function s:syntax_stack_at(lnum, col)
|
||||
return map(synstack(a:lnum, a:col), 'synIDattr(v:val, "name")')
|
||||
endfunction
|
||||
|
||||
function! s:prev_indent(lnum)
|
||||
let lnum = prevnonblank(a:lnum - 1)
|
||||
return indent(lnum)
|
||||
" Get the syntax at the given position
|
||||
function s:syntax_at(lnum, col)
|
||||
return synIDattr(synID(a:lnum, a:col, 1), 'name')
|
||||
endfunction
|
||||
|
||||
function! s:prev_line(lnum)
|
||||
let lnum = prevnonblank(a:lnum - 1)
|
||||
return substitute(getline(lnum), '^\s*\|\s*$', '', 'g')
|
||||
" Get the start col of the non-space charactor
|
||||
function s:start_col(lnum)
|
||||
return len(matchstr(getline(a:lnum), '^\s*')) + 1
|
||||
endfunction
|
||||
|
||||
function! s:syn_attr_jsx(synattr)
|
||||
return a:synattr =~? "^jsx"
|
||||
" Get the start syntax of a given line number
|
||||
function s:start_syntax(lnum)
|
||||
return s:syntax_at(a:lnum, s:start_col(a:lnum))
|
||||
endfunction
|
||||
|
||||
function! s:syn_xmlish(syns)
|
||||
return s:syn_attr_jsx(get(a:syns, -1))
|
||||
" The skip function for searchpair
|
||||
function s:skip_if_not(current_lnum, ...)
|
||||
" Skip the match in current line
|
||||
if line('.') == a:current_lnum
|
||||
return 1
|
||||
endif
|
||||
|
||||
let syntax = s:syntax_at(line('.'), col('.'))
|
||||
return syntax !~? join(a:000, '\|')
|
||||
endfunction
|
||||
|
||||
function! s:syn_jsx_element(syns)
|
||||
return get(a:syns, -1) =~? 'jsxElement'
|
||||
" Whether the specified stytax group is the opening tag
|
||||
function s:is_opening_tag(syntax)
|
||||
return a:syntax =~? 'jsxOpenPunct'
|
||||
endfunction
|
||||
|
||||
function! s:syn_js_comment(syns)
|
||||
return get(a:syns, -1) =~? 'Comment$'
|
||||
" Whether the specified stytax group is the closing tag
|
||||
function s:is_closing_tag(syntax)
|
||||
return a:syntax =~? 'jsxClose'
|
||||
endfunction
|
||||
|
||||
function! s:syn_jsx_escapejs(syns)
|
||||
return get(a:syns, -1) =~? '\(\(js\(Template\)\?\|javaScript\(Embed\)\?\|typescript\)Braces\|javascriptTemplateSB\|typescriptInterpolationDelimiter\)' &&
|
||||
\ (get(a:syns, -2) =~? 'jsxEscapeJs' ||
|
||||
\ get(a:syns, -3) =~? 'jsxEscapeJs')
|
||||
" Whether the specified syntax group is the jsxRegion
|
||||
function s:is_jsx_region(syntax)
|
||||
return a:syntax =~? 'jsxRegion'
|
||||
endfunction
|
||||
|
||||
function! s:syn_jsx_attrib(syns)
|
||||
return len(filter(copy(a:syns), 'v:val =~? "jsxAttrib"'))
|
||||
" Whether the specified syntax group is the jsxElement
|
||||
function s:is_jsx_element(syntax)
|
||||
return a:syntax =~? 'jsxElement'
|
||||
endfunction
|
||||
|
||||
" Whether the specified syntax group is the jsxExpressionBlock
|
||||
function s:is_jsx_expression(syntax)
|
||||
return a:syntax =~? 'jsxExpressionBlock'
|
||||
endfunction
|
||||
|
||||
" Whether the specified syntax group is the jsxBraces
|
||||
function s:is_jsx_brace(syntax)
|
||||
return a:syntax =~? 'jsxBraces'
|
||||
endfunction
|
||||
|
||||
" Whether the specified syntax group is the jsxComment
|
||||
function s:is_jsx_comment(syntax)
|
||||
return a:syntax =~? 'jsxComment'
|
||||
endfunction
|
||||
|
||||
" Whether the specified line is comment related syntax
|
||||
function s:is_comment(syntax)
|
||||
return a:syntax =~? 'comment'
|
||||
endfunction
|
||||
|
||||
" Whether the specified syntax group is the jsxComment
|
||||
function s:is_jsx_backticks(syntax)
|
||||
return a:syntax =~? 'jsxBackticks'
|
||||
endfunction
|
||||
|
||||
" Get the prvious line number
|
||||
function s:prev_lnum(lnum)
|
||||
return prevnonblank(a:lnum - 1)
|
||||
endfunction
|
||||
|
||||
" Whether the given pos is the parent of the given element who has
|
||||
" element_count jsxElement syntax
|
||||
function s:is_parent_element(pos, element_count)
|
||||
let syntax_stack = s:syntax_stack_at(a:pos[0], a:pos[1])
|
||||
return s:is_opening_tag(syntax_stack[-1]) &&
|
||||
\ count(syntax_stack, 'jsxElement') <= a:element_count
|
||||
endfunction
|
||||
|
||||
" Compute the indention of the trail punct
|
||||
function s:jsx_indent_trail_punct(lnum)
|
||||
let pair_line = searchpair('<', '', '>', 'bW', 's:skip_if_not(a:lnum, "jsxOpenPunct", "jsxClose")')
|
||||
return indent(pair_line)
|
||||
endfunction
|
||||
|
||||
" Compute the indention of the closing tag
|
||||
function s:jsx_indent_closing_tag(lnum)
|
||||
let pair_line = searchpair(s:start_tag, '', s:end_tag, 'bW', 's:skip_if_not(a:lnum, "jsxOpenPunct", "jsxClose")')
|
||||
return pair_line ? indent(pair_line) : indent(a:lnum)
|
||||
endfunction
|
||||
|
||||
" Compute the indentation of the jsxElement
|
||||
function s:jsx_indent_element(lnum)
|
||||
let syntax_stack = s:syntax_stack_at(a:lnum, s:start_col(a:lnum))
|
||||
let syntax_name = syntax_stack[-1]
|
||||
let element_count = count(syntax_stack, 'jsxElement')
|
||||
|
||||
if s:trim(getline(a:lnum)) =~ '^>'
|
||||
return s:jsx_indent_trail_punct(a:lnum)
|
||||
endif
|
||||
|
||||
" If current tag is closing tag
|
||||
if s:is_closing_tag(syntax_name)
|
||||
return s:jsx_indent_closing_tag(a:lnum)
|
||||
endif
|
||||
|
||||
" Normalize the jsxElement count for opening tag
|
||||
if s:is_opening_tag(syntax_name)
|
||||
" <div>
|
||||
" <div></div> <-- jsxRegion->jsxElement->jsxElement->jsxTag->jsxOpenTag->jsxOpenPunct
|
||||
" </div>
|
||||
if s:is_jsx_element(syntax_stack[-4]) && s:is_jsx_element(syntax_stack[-5])
|
||||
let element_count = element_count - 1
|
||||
endif
|
||||
endif
|
||||
|
||||
let start_time = localtime()
|
||||
let pos = searchpos(s:start_tag, 'bW')
|
||||
|
||||
while !s:is_parent_element(pos, element_count)
|
||||
if localtime() - start_time >= 0.5
|
||||
return -1
|
||||
endif
|
||||
let pos = searchpos(s:start_tag, 'bW')
|
||||
endwhile
|
||||
|
||||
return indent(pos[0]) + s:sw()
|
||||
endfunction
|
||||
|
||||
" Compute the indentation of the comment
|
||||
function s:jsx_indent_comment(lnum)
|
||||
let line = s:trim(getline(a:lnum))
|
||||
|
||||
if s:is_jsx_comment(s:start_syntax(a:lnum))
|
||||
if line =~ '^<!--' || line =~ '^-->'
|
||||
return s:jsx_indent_element(a:lnum)
|
||||
else
|
||||
return s:jsx_indent_element(a:lnum) + s:sw()
|
||||
endif
|
||||
else
|
||||
if line =~ '^/\*' || line =~ '^//'
|
||||
return s:jsx_indent_element(a:lnum)
|
||||
else
|
||||
return s:jsx_indent_element(a:lnum) + 1
|
||||
endif
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Compute the indentation of jsxBackticks
|
||||
function s:jsx_indent_backticks(lnum)
|
||||
let tags = get(g:, 'vim_jsx_pretty_template_tags', ['html', 'jsx'])
|
||||
let start_tag = '\%(' . join(tags, '\|') . '\)`'
|
||||
let end_tag = '\%(' . join(tags, '\|') . '\)\@<!`'
|
||||
let pair_line = searchpair(start_tag, '', end_tag, 'bW', 's:skip_if_not(a:lnum)')
|
||||
|
||||
return indent(pair_line)
|
||||
endfunction
|
||||
|
||||
" Syntax context types:
|
||||
" - jsxRegion
|
||||
" - jsxTaggedRegion
|
||||
" - jsxElement
|
||||
" - jsxExpressionBlock
|
||||
" - Other
|
||||
function s:syntax_context(lnum)
|
||||
let start_col = s:start_col(a:lnum)
|
||||
let syntax_stack = s:syntax_stack_at(a:lnum, start_col)
|
||||
let start_syntax = syntax_stack[-1]
|
||||
let reversed = reverse(syntax_stack)
|
||||
let i = 0
|
||||
|
||||
for syntax_name in reversed
|
||||
" If the current line is jsxExpressionBlock and not starts with jsxBraces
|
||||
if s:is_jsx_expression(syntax_name)
|
||||
return 'jsxExpressionBlock'
|
||||
endif
|
||||
|
||||
if s:is_jsx_region(syntax_name)
|
||||
return 'jsxRegion'
|
||||
endif
|
||||
|
||||
if s:is_jsx_element(syntax_name)
|
||||
" If current line starts with the opening tag
|
||||
if s:is_opening_tag(start_syntax) || s:is_closing_tag(start_syntax)
|
||||
" And the next syntax is jsxRegion
|
||||
if s:is_jsx_region(reversed[i+1])
|
||||
return 'jsxRegion'
|
||||
elseif reversed[i+1] =~ 'jsxTaggedRegion'
|
||||
return 'jsxTaggedRegion'
|
||||
else
|
||||
return 'jsxElement'
|
||||
endif
|
||||
elseif reversed[i+1] =~ 'jsxTaggedRegion'
|
||||
return 'jsxTaggedRegion'
|
||||
else
|
||||
return 'jsxElement'
|
||||
endif
|
||||
endif
|
||||
|
||||
let i = i + 1
|
||||
endfor
|
||||
|
||||
return 'Other'
|
||||
endfunction
|
||||
|
||||
let s:start_tag = '<\s*\([-:_\.\$0-9A-Za-z]\+\|>\)'
|
||||
" match `/end_tag>` and `//>`
|
||||
let s:end_tag = '/\%(\s*[-:_\.\$0-9A-Za-z]*\s*\|/\)>'
|
||||
let s:opfirst = '^' . get(g:,'javascript_opfirst',
|
||||
\ '\C\%([<>=,.?^%|/&]\|\([-:+]\)\1\@!\|\*\+\|!=\|in\%(stanceof\)\=\>\)')
|
||||
|
||||
function! jsx_pretty#indent#get(js_indent)
|
||||
let lnum = v:lnum
|
||||
let line = substitute(getline(lnum), '^\s*\|\s*$', '', 'g')
|
||||
let current_syn = s:syn_sol(lnum)
|
||||
let current_syn_eol = s:syn_eol(lnum)
|
||||
let prev_line_num = prevnonblank(lnum - 1)
|
||||
let prev_syn_sol = s:syn_sol(prev_line_num)
|
||||
let prev_syn_eol = s:syn_eol(prev_line_num)
|
||||
let prev_line = s:prev_line(lnum)
|
||||
let prev_ind = s:prev_indent(lnum)
|
||||
let line = s:trim(getline(v:lnum))
|
||||
let start_syntax = s:start_syntax(v:lnum)
|
||||
|
||||
if s:syn_xmlish(current_syn)
|
||||
if s:is_jsx_backticks(start_syntax)
|
||||
return s:jsx_indent_backticks(v:lnum)
|
||||
endif
|
||||
|
||||
if !s:syn_xmlish(prev_syn_sol)
|
||||
\ && !s:syn_jsx_escapejs(prev_syn_sol)
|
||||
\ && !s:syn_jsx_escapejs(prev_syn_eol)
|
||||
\ && !s:syn_js_comment(prev_syn_sol)
|
||||
if line =~ '^/\s*>' || line =~ '^<\s*' . s:end_tag
|
||||
return prev_ind
|
||||
else
|
||||
return prev_ind + s:sw()
|
||||
endif
|
||||
elseif !s:syn_xmlish(prev_syn_sol) && !s:syn_js_comment(prev_syn_sol) && s:syn_jsx_attrib(current_syn)
|
||||
" For #79
|
||||
return prev_ind + s:sw()
|
||||
" {
|
||||
" <div></div>
|
||||
" ##} <--
|
||||
elseif s:syn_jsx_element(current_syn) && line =~ '}$'
|
||||
let pair_line = searchpair('{', '', '}', 'b')
|
||||
return indent(pair_line)
|
||||
elseif line =~ '^-->$'
|
||||
if prev_line =~ '^<!--'
|
||||
return prev_ind
|
||||
else
|
||||
return prev_ind - s:sw()
|
||||
endif
|
||||
elseif prev_line =~ '-->$'
|
||||
return prev_ind
|
||||
" close tag </tag> or /> including </>
|
||||
elseif prev_line =~ s:end_tag . '$'
|
||||
if line =~ '^<\s*' . s:end_tag
|
||||
return prev_ind - s:sw()
|
||||
elseif s:syn_jsx_attrib(prev_syn_sol)
|
||||
return prev_ind - s:sw()
|
||||
else
|
||||
return prev_ind
|
||||
endif
|
||||
elseif line =~ '^\(>\|/\s*>\)'
|
||||
if prev_line =~ '^<'
|
||||
return prev_ind
|
||||
else
|
||||
return prev_ind - s:sw()
|
||||
endif
|
||||
elseif prev_line =~ '^\(<\|>\)' &&
|
||||
\ (s:syn_xmlish(prev_syn_eol) || s:syn_js_comment(prev_syn_eol))
|
||||
if line =~ '^<\s*' . s:end_tag
|
||||
return prev_ind
|
||||
else
|
||||
return prev_ind + s:sw()
|
||||
endif
|
||||
elseif line =~ '^<\s*' . s:end_tag
|
||||
if !s:syn_xmlish(prev_syn_sol)
|
||||
if s:syn_jsx_escapejs(prev_syn_eol)
|
||||
\ || s:syn_jsx_escapejs(prev_syn_sol)
|
||||
return prev_ind - s:sw()
|
||||
else
|
||||
return prev_ind
|
||||
endif
|
||||
elseif prev_line =~ '^\<return'
|
||||
return prev_ind
|
||||
else
|
||||
return prev_ind - s:sw()
|
||||
endif
|
||||
elseif !s:syn_xmlish(prev_syn_eol)
|
||||
if prev_line =~ '\(&&\|||\|=>\|[([{]\|`\)$'
|
||||
" <div>
|
||||
" {
|
||||
" }
|
||||
" </div>
|
||||
if line =~ '^[)\]}]'
|
||||
return prev_ind
|
||||
else
|
||||
return prev_ind + s:sw()
|
||||
endif
|
||||
else
|
||||
return prev_ind
|
||||
endif
|
||||
if s:is_jsx_brace(start_syntax)
|
||||
return s:jsx_indent_element(v:lnum)
|
||||
endif
|
||||
|
||||
if s:is_opening_tag(start_syntax) && line =~ '^>'
|
||||
return s:jsx_indent_trail_punct(v:lnum)
|
||||
endif
|
||||
|
||||
let syntax_context = s:syntax_context(v:lnum)
|
||||
|
||||
if syntax_context == 'jsxRegion'
|
||||
if s:is_closing_tag(start_syntax)
|
||||
return s:jsx_indent_closing_tag(v:lnum)
|
||||
endif
|
||||
|
||||
let prev_lnum = s:prev_lnum(v:lnum)
|
||||
let prev_line = s:trim(getline(prev_lnum))
|
||||
|
||||
if prev_line =~ '[([{=?]$'
|
||||
return indent(prev_lnum) + s:sw()
|
||||
elseif prev_line =~ '[:|&<>]$' &&
|
||||
\ s:trim(getline(s:prev_lnum(prev_lnum))) !~ '[?:|&<>]$'
|
||||
return indent(prev_lnum) + s:sw()
|
||||
else
|
||||
return prev_ind
|
||||
return indent(prev_lnum)
|
||||
endif
|
||||
elseif s:syn_jsx_escapejs(current_syn)
|
||||
if line =~ '^}'
|
||||
let char = getline('.')[col('.') - 1]
|
||||
" When pressing enter after the }, keep the indent
|
||||
if char != '}' && search('}', 'b', lnum)
|
||||
return indent(lnum)
|
||||
else
|
||||
let pair_line = searchpair('{', '', '}', 'bW')
|
||||
return indent(pair_line)
|
||||
endif
|
||||
elseif line =~ '^{' || line =~ '^\${'
|
||||
if s:syn_jsx_escapejs(prev_syn_eol)
|
||||
\ || s:syn_jsx_attrib(prev_syn_sol)
|
||||
return prev_ind
|
||||
elseif s:syn_xmlish(prev_syn_eol) && (prev_line =~ s:end_tag || prev_line =~ '-->$')
|
||||
return prev_ind
|
||||
else
|
||||
return prev_ind + s:sw()
|
||||
endif
|
||||
elseif syntax_context == 'jsxTaggedRegion'
|
||||
if s:is_closing_tag(start_syntax)
|
||||
return s:jsx_indent_closing_tag(v:lnum)
|
||||
elseif s:is_jsx_comment(start_syntax)
|
||||
return s:jsx_indent_comment(v:lnum)
|
||||
else
|
||||
return indent(s:prev_lnum(v:lnum)) + s:sw()
|
||||
endif
|
||||
elseif line =~ '^`' && s:syn_jsx_escapejs(current_syn_eol)
|
||||
" For `} of template syntax
|
||||
let pair_line = searchpair('{', '', '}', 'bW')
|
||||
return indent(pair_line)
|
||||
elseif line =~ '^/[/*]' " js comment in jsx tag
|
||||
if get(prev_syn_sol, -1) =~ 'Punct'
|
||||
return prev_ind + s:sw()
|
||||
elseif synIDattr(synID(lnum - 1, 1, 1), 'name') =~ 'jsxTag'
|
||||
return prev_ind
|
||||
elseif syntax_context == 'jsxElement'
|
||||
if s:is_jsx_comment(start_syntax)
|
||||
return s:jsx_indent_comment(v:lnum)
|
||||
endif
|
||||
|
||||
if s:is_comment(start_syntax)
|
||||
return s:jsx_indent_comment(v:lnum)
|
||||
endif
|
||||
|
||||
return s:jsx_indent_element(v:lnum)
|
||||
elseif syntax_context == 'jsxExpressionBlock'
|
||||
let prev_lnum = s:prev_lnum(v:lnum)
|
||||
let prev_line = s:trim(getline(prev_lnum))
|
||||
|
||||
if line =~ '^?'
|
||||
return indent(prev_lnum) + s:sw()
|
||||
elseif line =~ '^:'
|
||||
return indent(prev_lnum)
|
||||
else
|
||||
return a:js_indent()
|
||||
endif
|
||||
else
|
||||
let ind = a:js_indent()
|
||||
|
||||
" Issue #68
|
||||
" return (<div>
|
||||
" |<div>)
|
||||
if (line =~ '^/\s*>' || line =~ '^<\s*' . s:end_tag)
|
||||
\ && !s:syn_xmlish(prev_syn_sol)
|
||||
return prev_ind
|
||||
endif
|
||||
|
||||
" If current syntax is not a jsx syntax group
|
||||
if s:syn_xmlish(prev_syn_eol) && line !~ '^[)\]}]'
|
||||
let sol = matchstr(line, s:opfirst)
|
||||
if sol is ''
|
||||
" Fix javascript continue indent
|
||||
return ind - s:sw()
|
||||
else
|
||||
return ind
|
||||
endif
|
||||
endif
|
||||
return ind
|
||||
endif
|
||||
|
||||
return a:js_indent()
|
||||
endfunction
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||
|
||||
" Author: Kevin Ballard
|
||||
" Description: Helper functions for Rust commands/mappings
|
||||
" Last Modified: May 27, 2014
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
@@ -510,14 +509,23 @@ function! s:SearchTestFunctionNameUnderCursor() abort
|
||||
return matchstr(getline(test_func_line), '\m\C^\s*fn\s\+\zs\h\w*')
|
||||
endfunction
|
||||
|
||||
function! rust#Test(all, options) abort
|
||||
function! rust#Test(mods, winsize, all, options) abort
|
||||
let manifest = findfile('Cargo.toml', expand('%:p:h') . ';')
|
||||
if manifest ==# ''
|
||||
return rust#Run(1, '--test ' . a:options)
|
||||
endif
|
||||
|
||||
if has('terminal') || has('nvim')
|
||||
let cmd = 'terminal '
|
||||
" <count> defaults to 0, but we prefer an empty string
|
||||
let winsize = a:winsize ? a:winsize : ''
|
||||
|
||||
if has('terminal')
|
||||
if has('patch-8.0.910')
|
||||
let cmd = printf('%s noautocmd %snew | terminal ++curwin ', a:mods, winsize)
|
||||
else
|
||||
let cmd = printf('%s terminal ', a:mods)
|
||||
endif
|
||||
elseif has('nvim')
|
||||
let cmd = printf('%s noautocmd %snew | terminal ', a:mods, winsize)
|
||||
else
|
||||
let cmd = '!'
|
||||
let manifest = shellescape(manifest)
|
||||
|
||||
@@ -746,6 +746,10 @@ let g:xmldata_html5 = {
|
||||
\ [],
|
||||
\ global_attributes
|
||||
\ ],
|
||||
\ 'slot': [
|
||||
\ [],
|
||||
\ extend(copy(global_attributes), {'name': []})
|
||||
\ ],
|
||||
\ 'small': [
|
||||
\ phrasing_elements,
|
||||
\ global_attributes
|
||||
|
||||
3
build
3
build
@@ -233,7 +233,7 @@ PACKS="
|
||||
log:MTDL9/vim-log-highlighting
|
||||
lua:tbastos/vim-lua
|
||||
mako:sophacles/vim-bundle-mako
|
||||
markdown:plasticboy/vim-markdown:_SYNTAX
|
||||
markdown:plasticboy/vim-markdown:_NOAFTER
|
||||
mathematica:voldikss/vim-mma
|
||||
mdx:jxnblk/vim-mdx-js
|
||||
meson:mesonbuild/meson:_ALL:/data/syntax-highlighting/vim/
|
||||
@@ -292,6 +292,7 @@ PACKS="
|
||||
tptp:c-cube/vim-tptp
|
||||
twig:lumiliet/vim-twig
|
||||
typescript:HerringtonDarkholme/yats.vim
|
||||
v:ollykel/v-vim
|
||||
vala:arrufat/vala.vim
|
||||
vbnet:vim-scripts/vbnet.vim
|
||||
vcl:smerrill/vcl-vim-plugin
|
||||
|
||||
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cucumber') == -
|
||||
" Vim compiler file
|
||||
" Compiler: Cucumber
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2010 Aug 09
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("current_compiler")
|
||||
finish
|
||||
|
||||
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
|
||||
if !exists('g:jsx_ext_required')
|
||||
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
|
||||
if !exists('g:jsx_ext_required')
|
||||
let g:jsx_ext_required = 0
|
||||
@@ -507,6 +519,29 @@ endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'graphql') == -1
|
||||
augroup filetypedetect
|
||||
" 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
|
||||
au BufRead,BufNewFile *.graphql,*.graphqls,*.gql setfiletype graphql
|
||||
augroup end
|
||||
@@ -632,6 +667,13 @@ autocmd BufNewFile,BufRead *Spec.js,*_spec.js set filetype=jasmine.javascript sy
|
||||
augroup end
|
||||
endif
|
||||
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
augroup filetypedetect
|
||||
" javascript, from flow.vim in pangloss/vim-javascript:_JAVASCRIPT
|
||||
autocmd BufNewFile,BufRead *.flow setfiletype flow
|
||||
augroup end
|
||||
endif
|
||||
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
augroup filetypedetect
|
||||
" javascript, from javascript.vim in pangloss/vim-javascript:_JAVASCRIPT
|
||||
@@ -774,7 +816,7 @@ endif
|
||||
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'markdown') == -1
|
||||
augroup filetypedetect
|
||||
" markdown, from markdown.vim in plasticboy/vim-markdown:_SYNTAX
|
||||
" markdown, from markdown.vim in plasticboy/vim-markdown:_NOAFTER
|
||||
if !has('patch-7.4.480')
|
||||
" Before this patch, vim used modula2 for .md.
|
||||
au! filetypedetect BufRead,BufNewFile *.md
|
||||
@@ -905,7 +947,7 @@ endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ocaml') == -1
|
||||
augroup filetypedetect
|
||||
" ocaml, from opam.vim in rgrinberg/vim-ocaml
|
||||
au BufNewFile,BufRead opam,*.opam set filetype=opam
|
||||
au BufNewFile,BufRead opam,*.opam,*.opam.template set filetype=opam
|
||||
augroup end
|
||||
endif
|
||||
|
||||
@@ -1105,7 +1147,24 @@ endif
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'racket') == -1
|
||||
augroup filetypedetect
|
||||
" racket, from racket.vim in wlangstroth/vim-racket
|
||||
au BufRead,BufNewFile *.rkt,*.rktl set filetype=racket
|
||||
"
|
||||
let g:racket_hash_lang_regexp = '^#lang\s\+\([^][)(}{[:space:]]\+\)'
|
||||
|
||||
" Tries to detect filetype from #lang line; defaults to ft=racket.
|
||||
function! RacketDetectHashLang()
|
||||
let old_ft = &filetype
|
||||
|
||||
let matches = matchlist(getline(1), g:racket_hash_lang_regexp)
|
||||
if ! empty(matches)
|
||||
let &l:filetype = matches[1]
|
||||
endif
|
||||
|
||||
if &filetype == old_ft
|
||||
set filetype=racket
|
||||
endif
|
||||
endfunction
|
||||
|
||||
au BufRead,BufNewFile *.rkt,*.rktl call RacketDetectHashLang()
|
||||
augroup end
|
||||
endif
|
||||
|
||||
@@ -1437,22 +1496,29 @@ endif
|
||||
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'typescript') == -1
|
||||
augroup filetypedetect
|
||||
" typescript, from tsx.vim in HerringtonDarkholme/yats.vim
|
||||
autocmd BufNewFile,BufRead *.tsx setlocal filetype=typescript.tsx
|
||||
" typescript, from typescript.vim in HerringtonDarkholme/yats.vim
|
||||
autocmd BufNewFile,BufRead *.ts setlocal filetype=typescript
|
||||
augroup end
|
||||
endif
|
||||
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'typescript') == -1
|
||||
augroup filetypedetect
|
||||
" typescript, from typescript.vim in HerringtonDarkholme/yats.vim
|
||||
autocmd BufNewFile,BufRead *.ts setlocal filetype=typescript
|
||||
" typescript, from typescriptreact.vim in HerringtonDarkholme/yats.vim
|
||||
autocmd BufNewFile,BufRead *.tsx setlocal filetype=typescriptreact
|
||||
augroup end
|
||||
endif
|
||||
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'v') == -1
|
||||
augroup filetypedetect
|
||||
" v, from vlang.vim in ollykel/v-vim
|
||||
au BufNewFile,BufRead *.v set filetype=vlang
|
||||
au BufNewFile,BufRead *.v set syntax=vlang
|
||||
augroup end
|
||||
endif
|
||||
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vala') == -1
|
||||
augroup filetypedetect
|
||||
" vala, from vala.vim in arrufat/vala.vim
|
||||
autocmd BufRead *.vala,*.vapi set efm=%f:%l.%c-%[%^:]%#:\ %t%[%^:]%#:\ %m
|
||||
au BufRead,BufNewFile *.vala,*.vapi,*.valadoc setfiletype vala
|
||||
augroup end
|
||||
endif
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ansible') == -1
|
||||
|
||||
" Slow yaml highlighting workaround
|
||||
if exists('+regexpengine') && ('®expengine' == 0)
|
||||
setlocal regexpengine=1
|
||||
endif
|
||||
set isfname+=@-@
|
||||
set path+=./../templates,./../files,templates,files
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cucumber') == -
|
||||
" Vim filetype plugin
|
||||
" Language: Cucumber
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 Jun 01
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
|
||||
@@ -27,6 +27,7 @@ let &l:errorformat =
|
||||
|
||||
setlocal includeexpr=dart#resolveUri(v:fname)
|
||||
setlocal isfname+=:
|
||||
setlocal iskeyword+=$
|
||||
|
||||
let b:undo_ftplugin = 'setl et< fo< sw< sts< com< cms< inex< isf<'
|
||||
|
||||
|
||||
@@ -32,6 +32,20 @@ if exists('g:dhall_strip_whitespace')
|
||||
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
|
||||
au BufNewFile,BufRead *.dhall setl shiftwidth=2
|
||||
augroup END
|
||||
|
||||
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
" Vim filetype plugin
|
||||
" Language: generic git output
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
|
||||
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
" Vim filetype plugin
|
||||
" Language: git commit file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
|
||||
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
" Vim filetype plugin
|
||||
" Language: git rebase --interactive
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2010 May 21
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
" Only do this when not done yet for this buffer
|
||||
if (exists("b:did_ftplugin"))
|
||||
@@ -20,12 +20,15 @@ if !exists("b:undo_ftplugin")
|
||||
endif
|
||||
let b:undo_ftplugin = b:undo_ftplugin."|setl com< cms< fo< ml<"
|
||||
|
||||
function! s:choose(word)
|
||||
function! s:choose(word) abort
|
||||
s/^\(\w\+\>\)\=\(\s*\)\ze\x\{4,40\}\>/\=(strlen(submatch(1)) == 1 ? a:word[0] : a:word) . substitute(submatch(2),'^$',' ','')/e
|
||||
endfunction
|
||||
|
||||
function! s:cycle()
|
||||
call s:choose(get({'s':'edit','p':'squash','e':'reword','r':'fixup'},getline('.')[0],'pick'))
|
||||
function! s:cycle(count) abort
|
||||
let words = ['pick', 'edit', 'fixup', 'squash', 'reword', 'drop']
|
||||
let index = index(map(copy(words), 'v:val[0]'), getline('.')[0])
|
||||
let index = ((index < 0 ? 0 : index) + 10000 * len(words) + a:count) % len(words)
|
||||
call s:choose(words[index])
|
||||
endfunction
|
||||
|
||||
command! -buffer -bar -range Pick :<line1>,<line2>call s:choose('pick')
|
||||
@@ -34,16 +37,16 @@ command! -buffer -bar -range Edit :<line1>,<line2>call s:choose('edit')
|
||||
command! -buffer -bar -range Reword :<line1>,<line2>call s:choose('reword')
|
||||
command! -buffer -bar -range Fixup :<line1>,<line2>call s:choose('fixup')
|
||||
command! -buffer -bar -range Drop :<line1>,<line2>call s:choose('drop')
|
||||
command! -buffer -bar Cycle :call s:cycle()
|
||||
" The above are more useful when they are mapped; for example:
|
||||
"nnoremap <buffer> <silent> S :Cycle<CR>
|
||||
command! -buffer -count=1 -bar -bang Cycle call s:cycle(<bang>0 ? -<count> : <count>)
|
||||
|
||||
if exists("g:no_plugin_maps") || exists("g:no_gitrebase_maps")
|
||||
finish
|
||||
endif
|
||||
|
||||
nnoremap <buffer> <expr> K col('.') < 7 && expand('<Lt>cword>') =~ '\X' && getline('.') =~ '^\w\+\s\+\x\+\>' ? 'wK' : 'K'
|
||||
nnoremap <buffer> <silent> <C-A> :<C-U><C-R>=v:count1<CR>Cycle<CR>
|
||||
nnoremap <buffer> <silent> <C-X> :<C-U><C-R>=v:count1<CR>Cycle!<CR>
|
||||
|
||||
let b:undo_ftplugin = b:undo_ftplugin . "|nunmap <buffer> K"
|
||||
let b:undo_ftplugin = b:undo_ftplugin . "|exe 'nunmap <buffer> K'|exe 'nunmap <buffer> <C-A>'|exe 'nunmap <buffer> <C-X>'"
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,6 +1,25 @@
|
||||
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
|
||||
" Maintainer: Jon Parise <jon@indelible.org>
|
||||
|
||||
|
||||
795
ftplugin/markdown.vim
Normal file
795
ftplugin/markdown.vim
Normal file
@@ -0,0 +1,795 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'markdown') == -1
|
||||
|
||||
"TODO print messages when on visual mode. I only see VISUAL, not the messages.
|
||||
|
||||
" Function interface phylosophy:
|
||||
"
|
||||
" - functions take arbitrary line numbers as parameters.
|
||||
" Current cursor line is only a suitable default parameter.
|
||||
"
|
||||
" - only functions that bind directly to user actions:
|
||||
"
|
||||
" - print error messages.
|
||||
" All intermediate functions limit themselves return `0` to indicate an error.
|
||||
"
|
||||
" - move the cursor. All other functions do not move the cursor.
|
||||
"
|
||||
" This is how you should view headers for the header mappings:
|
||||
"
|
||||
" |BUFFER
|
||||
" |
|
||||
" |Outside any header
|
||||
" |
|
||||
" a-+# a
|
||||
" |
|
||||
" |Inside a
|
||||
" |
|
||||
" a-+
|
||||
" b-+## b
|
||||
" |
|
||||
" |inside b
|
||||
" |
|
||||
" b-+
|
||||
" c-+### c
|
||||
" |
|
||||
" |Inside c
|
||||
" |
|
||||
" c-+
|
||||
" d-|# d
|
||||
" |
|
||||
" |Inside d
|
||||
" |
|
||||
" d-+
|
||||
" e-|e
|
||||
" |====
|
||||
" |
|
||||
" |Inside e
|
||||
" |
|
||||
" e-+
|
||||
|
||||
" For each level, contains the regexp that matches at that level only.
|
||||
"
|
||||
let s:levelRegexpDict = {
|
||||
\ 1: '\v^(#[^#]@=|.+\n\=+$)',
|
||||
\ 2: '\v^(##[^#]@=|.+\n-+$)',
|
||||
\ 3: '\v^###[^#]@=',
|
||||
\ 4: '\v^####[^#]@=',
|
||||
\ 5: '\v^#####[^#]@=',
|
||||
\ 6: '\v^######[^#]@='
|
||||
\ }
|
||||
|
||||
" Maches any header level of any type.
|
||||
"
|
||||
" This could be deduced from `s:levelRegexpDict`, but it is more
|
||||
" efficient to have a single regexp for this.
|
||||
"
|
||||
let s:headersRegexp = '\v^(#|.+\n(\=+|-+)$)'
|
||||
|
||||
" Returns the line number of the first header before `line`, called the
|
||||
" current header.
|
||||
"
|
||||
" If there is no current header, return `0`.
|
||||
"
|
||||
" @param a:1 The line to look the header of. Default value: `getpos('.')`.
|
||||
"
|
||||
function! s:GetHeaderLineNum(...)
|
||||
if a:0 == 0
|
||||
let l:l = line('.')
|
||||
else
|
||||
let l:l = a:1
|
||||
endif
|
||||
while(l:l > 0)
|
||||
if join(getline(l:l, l:l + 1), "\n") =~ s:headersRegexp
|
||||
return l:l
|
||||
endif
|
||||
let l:l -= 1
|
||||
endwhile
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
" - if inside a header goes to it.
|
||||
" Return its line number.
|
||||
"
|
||||
" - if on top level outside any headers,
|
||||
" print a warning
|
||||
" Return `0`.
|
||||
"
|
||||
function! s:MoveToCurHeader()
|
||||
let l:lineNum = s:GetHeaderLineNum()
|
||||
if l:lineNum != 0
|
||||
call cursor(l:lineNum, 1)
|
||||
else
|
||||
echo 'outside any header'
|
||||
"normal! gg
|
||||
endif
|
||||
return l:lineNum
|
||||
endfunction
|
||||
|
||||
" Move cursor to next header of any level.
|
||||
"
|
||||
" If there are no more headers, print a warning.
|
||||
"
|
||||
function! s:MoveToNextHeader()
|
||||
if search(s:headersRegexp, 'W') == 0
|
||||
"normal! G
|
||||
echo 'no next header'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Move cursor to previous header (before current) of any level.
|
||||
"
|
||||
" If it does not exist, print a warning.
|
||||
"
|
||||
function! s:MoveToPreviousHeader()
|
||||
let l:curHeaderLineNumber = s:GetHeaderLineNum()
|
||||
let l:noPreviousHeader = 0
|
||||
if l:curHeaderLineNumber <= 1
|
||||
let l:noPreviousHeader = 1
|
||||
else
|
||||
let l:previousHeaderLineNumber = s:GetHeaderLineNum(l:curHeaderLineNumber - 1)
|
||||
if l:previousHeaderLineNumber == 0
|
||||
let l:noPreviousHeader = 1
|
||||
else
|
||||
call cursor(l:previousHeaderLineNumber, 1)
|
||||
endif
|
||||
endif
|
||||
if l:noPreviousHeader
|
||||
echo 'no previous header'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" - if line is inside a header, return the header level (h1 -> 1, h2 -> 2, etc.).
|
||||
"
|
||||
" - if line is at top level outside any headers, return `0`.
|
||||
"
|
||||
function! s:GetHeaderLevel(...)
|
||||
if a:0 == 0
|
||||
let l:line = line('.')
|
||||
else
|
||||
let l:line = a:1
|
||||
endif
|
||||
let l:linenum = s:GetHeaderLineNum(l:line)
|
||||
if l:linenum != 0
|
||||
return s:GetLevelOfHeaderAtLine(l:linenum)
|
||||
else
|
||||
return 0
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Returns the level of the header at the given line.
|
||||
"
|
||||
" If there is no header at the given line, returns `0`.
|
||||
"
|
||||
function! s:GetLevelOfHeaderAtLine(linenum)
|
||||
let l:lines = join(getline(a:linenum, a:linenum + 1), "\n")
|
||||
for l:key in keys(s:levelRegexpDict)
|
||||
if l:lines =~ get(s:levelRegexpDict, l:key)
|
||||
return l:key
|
||||
endif
|
||||
endfor
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
" Move cursor to parent header of the current header.
|
||||
"
|
||||
" If it does not exit, print a warning and do nothing.
|
||||
"
|
||||
function! s:MoveToParentHeader()
|
||||
let l:linenum = s:GetParentHeaderLineNumber()
|
||||
if l:linenum != 0
|
||||
call cursor(l:linenum, 1)
|
||||
else
|
||||
echo 'no parent header'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Return the line number of the parent header of line `line`.
|
||||
"
|
||||
" If it has no parent, return `0`.
|
||||
"
|
||||
function! s:GetParentHeaderLineNumber(...)
|
||||
if a:0 == 0
|
||||
let l:line = line('.')
|
||||
else
|
||||
let l:line = a:1
|
||||
endif
|
||||
let l:level = s:GetHeaderLevel(l:line)
|
||||
if l:level > 1
|
||||
let l:linenum = s:GetPreviousHeaderLineNumberAtLevel(l:level - 1, l:line)
|
||||
return l:linenum
|
||||
endif
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
" Return the line number of the previous header of given level.
|
||||
" in relation to line `a:1`. If not given, `a:1 = getline()`
|
||||
"
|
||||
" `a:1` line is included, and this may return the current header.
|
||||
"
|
||||
" If none return 0.
|
||||
"
|
||||
function! s:GetNextHeaderLineNumberAtLevel(level, ...)
|
||||
if a:0 < 1
|
||||
let l:line = line('.')
|
||||
else
|
||||
let l:line = a:1
|
||||
endif
|
||||
let l:l = l:line
|
||||
while(l:l <= line('$'))
|
||||
if join(getline(l:l, l:l + 1), "\n") =~ get(s:levelRegexpDict, a:level)
|
||||
return l:l
|
||||
endif
|
||||
let l:l += 1
|
||||
endwhile
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
" Return the line number of the previous header of given level.
|
||||
" in relation to line `a:1`. If not given, `a:1 = getline()`
|
||||
"
|
||||
" `a:1` line is included, and this may return the current header.
|
||||
"
|
||||
" If none return 0.
|
||||
"
|
||||
function! s:GetPreviousHeaderLineNumberAtLevel(level, ...)
|
||||
if a:0 == 0
|
||||
let l:line = line('.')
|
||||
else
|
||||
let l:line = a:1
|
||||
endif
|
||||
let l:l = l:line
|
||||
while(l:l > 0)
|
||||
if join(getline(l:l, l:l + 1), "\n") =~ get(s:levelRegexpDict, a:level)
|
||||
return l:l
|
||||
endif
|
||||
let l:l -= 1
|
||||
endwhile
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
" Move cursor to next sibling header.
|
||||
"
|
||||
" If there is no next siblings, print a warning and don't move.
|
||||
"
|
||||
function! s:MoveToNextSiblingHeader()
|
||||
let l:curHeaderLineNumber = s:GetHeaderLineNum()
|
||||
let l:curHeaderLevel = s:GetLevelOfHeaderAtLine(l:curHeaderLineNumber)
|
||||
let l:curHeaderParentLineNumber = s:GetParentHeaderLineNumber()
|
||||
let l:nextHeaderSameLevelLineNumber = s:GetNextHeaderLineNumberAtLevel(l:curHeaderLevel, l:curHeaderLineNumber + 1)
|
||||
let l:noNextSibling = 0
|
||||
if l:nextHeaderSameLevelLineNumber == 0
|
||||
let l:noNextSibling = 1
|
||||
else
|
||||
let l:nextHeaderSameLevelParentLineNumber = s:GetParentHeaderLineNumber(l:nextHeaderSameLevelLineNumber)
|
||||
if l:curHeaderParentLineNumber == l:nextHeaderSameLevelParentLineNumber
|
||||
call cursor(l:nextHeaderSameLevelLineNumber, 1)
|
||||
else
|
||||
let l:noNextSibling = 1
|
||||
endif
|
||||
endif
|
||||
if l:noNextSibling
|
||||
echo 'no next sibling header'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Move cursor to previous sibling header.
|
||||
"
|
||||
" If there is no previous siblings, print a warning and do nothing.
|
||||
"
|
||||
function! s:MoveToPreviousSiblingHeader()
|
||||
let l:curHeaderLineNumber = s:GetHeaderLineNum()
|
||||
let l:curHeaderLevel = s:GetLevelOfHeaderAtLine(l:curHeaderLineNumber)
|
||||
let l:curHeaderParentLineNumber = s:GetParentHeaderLineNumber()
|
||||
let l:previousHeaderSameLevelLineNumber = s:GetPreviousHeaderLineNumberAtLevel(l:curHeaderLevel, l:curHeaderLineNumber - 1)
|
||||
let l:noPreviousSibling = 0
|
||||
if l:previousHeaderSameLevelLineNumber == 0
|
||||
let l:noPreviousSibling = 1
|
||||
else
|
||||
let l:previousHeaderSameLevelParentLineNumber = s:GetParentHeaderLineNumber(l:previousHeaderSameLevelLineNumber)
|
||||
if l:curHeaderParentLineNumber == l:previousHeaderSameLevelParentLineNumber
|
||||
call cursor(l:previousHeaderSameLevelLineNumber, 1)
|
||||
else
|
||||
let l:noPreviousSibling = 1
|
||||
endif
|
||||
endif
|
||||
if l:noPreviousSibling
|
||||
echo 'no previous sibling header'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:Toc(...)
|
||||
if a:0 > 0
|
||||
let l:window_type = a:1
|
||||
else
|
||||
let l:window_type = 'vertical'
|
||||
endif
|
||||
|
||||
|
||||
let l:bufnr = bufnr('%')
|
||||
let l:cursor_line = line('.')
|
||||
let l:cursor_header = 0
|
||||
let l:fenced_block = 0
|
||||
let l:front_matter = 0
|
||||
let l:header_list = []
|
||||
let l:header_max_len = 0
|
||||
let l:vim_markdown_toc_autofit = get(g:, "vim_markdown_toc_autofit", 0)
|
||||
let l:vim_markdown_frontmatter = get(g:, "vim_markdown_frontmatter", 0)
|
||||
for i in range(1, line('$'))
|
||||
let l:lineraw = getline(i)
|
||||
let l:l1 = getline(i+1)
|
||||
let l:line = substitute(l:lineraw, "#", "\\\#", "g")
|
||||
if l:line =~ '````*' || l:line =~ '\~\~\~\~*'
|
||||
if l:fenced_block == 0
|
||||
let l:fenced_block = 1
|
||||
elseif l:fenced_block == 1
|
||||
let l:fenced_block = 0
|
||||
endif
|
||||
elseif l:vim_markdown_frontmatter == 1
|
||||
if l:front_matter == 1
|
||||
if l:line == '---'
|
||||
let l:front_matter = 0
|
||||
endif
|
||||
elseif i == 1
|
||||
if l:line == '---'
|
||||
let l:front_matter = 1
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
if l:line =~ '^#\+' || (l:l1 =~ '^=\+\s*$' || l:l1 =~ '^-\+\s*$') && l:line =~ '^\S'
|
||||
let l:is_header = 1
|
||||
else
|
||||
let l:is_header = 0
|
||||
endif
|
||||
if l:is_header == 1 && l:fenced_block == 0 && l:front_matter == 0
|
||||
" append line to location list
|
||||
let l:item = {'lnum': i, 'text': l:line, 'valid': 1, 'bufnr': l:bufnr, 'col': 1}
|
||||
let l:header_list = l:header_list + [l:item]
|
||||
" set header number of the cursor position
|
||||
if l:cursor_header == 0
|
||||
if i == l:cursor_line
|
||||
let l:cursor_header = len(l:header_list)
|
||||
elseif i > l:cursor_line
|
||||
let l:cursor_header = len(l:header_list) - 1
|
||||
endif
|
||||
endif
|
||||
" keep track of the longest header size (heading level + title)
|
||||
let l:total_len = stridx(l:line, ' ') + strdisplaywidth(l:line)
|
||||
if l:total_len > l:header_max_len
|
||||
let l:header_max_len = l:total_len
|
||||
endif
|
||||
endif
|
||||
endfor
|
||||
call setloclist(0, l:header_list)
|
||||
if len(l:header_list) == 0
|
||||
echom "Toc: No headers."
|
||||
return
|
||||
endif
|
||||
|
||||
if l:window_type ==# 'horizontal'
|
||||
lopen
|
||||
elseif l:window_type ==# 'vertical'
|
||||
vertical lopen
|
||||
" auto-fit toc window when possible to shrink it
|
||||
if (&columns/2) > l:header_max_len && l:vim_markdown_toc_autofit == 1
|
||||
execute 'vertical resize ' . (l:header_max_len + 1)
|
||||
else
|
||||
execute 'vertical resize ' . (&columns/2)
|
||||
endif
|
||||
elseif l:window_type ==# 'tab'
|
||||
tab lopen
|
||||
else
|
||||
lopen
|
||||
endif
|
||||
setlocal modifiable
|
||||
for i in range(1, line('$'))
|
||||
" this is the location-list data for the current item
|
||||
let d = getloclist(0)[i-1]
|
||||
" atx headers
|
||||
if match(d.text, "^#") > -1
|
||||
let l:level = len(matchstr(d.text, '#*', 'g'))-1
|
||||
let d.text = substitute(d.text, '\v^#*[ ]*', '', '')
|
||||
let d.text = substitute(d.text, '\v[ ]*#*$', '', '')
|
||||
" setex headers
|
||||
else
|
||||
let l:next_line = getbufline(d.bufnr, d.lnum+1)
|
||||
if match(l:next_line, "=") > -1
|
||||
let l:level = 0
|
||||
elseif match(l:next_line, "-") > -1
|
||||
let l:level = 1
|
||||
endif
|
||||
endif
|
||||
call setline(i, repeat(' ', l:level). d.text)
|
||||
endfor
|
||||
setlocal nomodified
|
||||
setlocal nomodifiable
|
||||
execute 'normal! ' . l:cursor_header . 'G'
|
||||
endfunction
|
||||
|
||||
" Convert Setex headers in range `line1 .. line2` to Atx.
|
||||
"
|
||||
" Return the number of conversions.
|
||||
"
|
||||
function! s:SetexToAtx(line1, line2)
|
||||
let l:originalNumLines = line('$')
|
||||
execute 'silent! ' . a:line1 . ',' . a:line2 . 'substitute/\v(.*\S.*)\n\=+$/# \1/'
|
||||
execute 'silent! ' . a:line1 . ',' . a:line2 . 'substitute/\v(.*\S.*)\n-+$/## \1/'
|
||||
return l:originalNumLines - line('$')
|
||||
endfunction
|
||||
|
||||
" If `a:1` is 0, decrease the level of all headers in range `line1 .. line2`.
|
||||
"
|
||||
" Otherwise, increase the level. `a:1` defaults to `0`.
|
||||
"
|
||||
function! s:HeaderDecrease(line1, line2, ...)
|
||||
if a:0 > 0
|
||||
let l:increase = a:1
|
||||
else
|
||||
let l:increase = 0
|
||||
endif
|
||||
if l:increase
|
||||
let l:forbiddenLevel = 6
|
||||
let l:replaceLevels = [5, 1]
|
||||
let l:levelDelta = 1
|
||||
else
|
||||
let l:forbiddenLevel = 1
|
||||
let l:replaceLevels = [2, 6]
|
||||
let l:levelDelta = -1
|
||||
endif
|
||||
for l:line in range(a:line1, a:line2)
|
||||
if join(getline(l:line, l:line + 1), "\n") =~ s:levelRegexpDict[l:forbiddenLevel]
|
||||
echomsg 'There is an h' . l:forbiddenLevel . ' at line ' . l:line . '. Aborting.'
|
||||
return
|
||||
endif
|
||||
endfor
|
||||
let l:numSubstitutions = s:SetexToAtx(a:line1, a:line2)
|
||||
let l:flags = (&gdefault ? '' : 'g')
|
||||
for l:level in range(replaceLevels[0], replaceLevels[1], -l:levelDelta)
|
||||
execute 'silent! ' . a:line1 . ',' . (a:line2 - l:numSubstitutions) . 'substitute/' . s:levelRegexpDict[l:level] . '/' . repeat('#', l:level + l:levelDelta) . '/' . l:flags
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
" Format table under cursor.
|
||||
"
|
||||
" Depends on Tabularize.
|
||||
"
|
||||
function! s:TableFormat()
|
||||
let l:pos = getpos('.')
|
||||
normal! {
|
||||
" Search instead of `normal! j` because of the table at beginning of file edge case.
|
||||
call search('|')
|
||||
normal! j
|
||||
" Remove everything that is not a pipe, colon or hyphen next to a colon othewise
|
||||
" well formated tables would grow because of addition of 2 spaces on the separator
|
||||
" line by Tabularize /|.
|
||||
let l:flags = (&gdefault ? '' : 'g')
|
||||
execute 's/\(:\@<!-:\@!\|[^|:-]\)//e' . l:flags
|
||||
execute 's/--/-/e' . l:flags
|
||||
Tabularize /|
|
||||
" Move colons for alignment to left or right side of the cell.
|
||||
execute 's/:\( \+\)|/\1:|/e' . l:flags
|
||||
execute 's/|\( \+\):/|:\1/e' . l:flags
|
||||
execute 's/ /-/' . l:flags
|
||||
call setpos('.', l:pos)
|
||||
endfunction
|
||||
|
||||
" Wrapper to do move commands in visual mode.
|
||||
"
|
||||
function! s:VisMove(f)
|
||||
norm! gv
|
||||
call function(a:f)()
|
||||
endfunction
|
||||
|
||||
" Map in both normal and visual modes.
|
||||
"
|
||||
function! s:MapNormVis(rhs,lhs)
|
||||
execute 'nn <buffer><silent> ' . a:rhs . ' :call ' . a:lhs . '()<cr>'
|
||||
execute 'vn <buffer><silent> ' . a:rhs . ' <esc>:call <sid>VisMove(''' . a:lhs . ''')<cr>'
|
||||
endfunction
|
||||
|
||||
" Parameters:
|
||||
"
|
||||
" - step +1 for right, -1 for left
|
||||
"
|
||||
" TODO: multiple lines.
|
||||
"
|
||||
function! s:FindCornerOfSyntax(lnum, col, step)
|
||||
let l:col = a:col
|
||||
let l:syn = synIDattr(synID(a:lnum, l:col, 1), 'name')
|
||||
while synIDattr(synID(a:lnum, l:col, 1), 'name') ==# l:syn
|
||||
let l:col += a:step
|
||||
endwhile
|
||||
return l:col - a:step
|
||||
endfunction
|
||||
|
||||
" Return the next position of the given syntax name,
|
||||
" inclusive on the given position.
|
||||
"
|
||||
" TODO: multiple lines
|
||||
"
|
||||
function! s:FindNextSyntax(lnum, col, name)
|
||||
let l:col = a:col
|
||||
let l:step = 1
|
||||
while synIDattr(synID(a:lnum, l:col, 1), 'name') !=# a:name
|
||||
let l:col += l:step
|
||||
endwhile
|
||||
return [a:lnum, l:col]
|
||||
endfunction
|
||||
|
||||
function! s:FindCornersOfSyntax(lnum, col)
|
||||
return [<sid>FindLeftOfSyntax(a:lnum, a:col), <sid>FindRightOfSyntax(a:lnum, a:col)]
|
||||
endfunction
|
||||
|
||||
function! s:FindRightOfSyntax(lnum, col)
|
||||
return <sid>FindCornerOfSyntax(a:lnum, a:col, 1)
|
||||
endfunction
|
||||
|
||||
function! s:FindLeftOfSyntax(lnum, col)
|
||||
return <sid>FindCornerOfSyntax(a:lnum, a:col, -1)
|
||||
endfunction
|
||||
|
||||
" Returns:
|
||||
"
|
||||
" - a string with the the URL for the link under the cursor
|
||||
" - an empty string if the cursor is not on a link
|
||||
"
|
||||
" TODO
|
||||
"
|
||||
" - multiline support
|
||||
" - give an error if the separator does is not on a link
|
||||
"
|
||||
function! s:Markdown_GetUrlForPosition(lnum, col)
|
||||
let l:lnum = a:lnum
|
||||
let l:col = a:col
|
||||
let l:syn = synIDattr(synID(l:lnum, l:col, 1), 'name')
|
||||
|
||||
if l:syn ==# 'mkdInlineURL' || l:syn ==# 'mkdURL' || l:syn ==# 'mkdLinkDefTarget'
|
||||
" Do nothing.
|
||||
elseif l:syn ==# 'mkdLink'
|
||||
let [l:lnum, l:col] = <sid>FindNextSyntax(l:lnum, l:col, 'mkdURL')
|
||||
let l:syn = 'mkdURL'
|
||||
elseif l:syn ==# 'mkdDelimiter'
|
||||
let l:line = getline(l:lnum)
|
||||
let l:char = l:line[col - 1]
|
||||
if l:char ==# '<'
|
||||
let l:col += 1
|
||||
elseif l:char ==# '>' || l:char ==# ')'
|
||||
let l:col -= 1
|
||||
elseif l:char ==# '[' || l:char ==# ']' || l:char ==# '('
|
||||
let [l:lnum, l:col] = <sid>FindNextSyntax(l:lnum, l:col, 'mkdURL')
|
||||
else
|
||||
return ''
|
||||
endif
|
||||
else
|
||||
return ''
|
||||
endif
|
||||
|
||||
let [l:left, l:right] = <sid>FindCornersOfSyntax(l:lnum, l:col)
|
||||
return getline(l:lnum)[l:left - 1 : l:right - 1]
|
||||
endfunction
|
||||
|
||||
" Front end for GetUrlForPosition.
|
||||
"
|
||||
function! s:OpenUrlUnderCursor()
|
||||
let l:url = s:Markdown_GetUrlForPosition(line('.'), col('.'))
|
||||
if l:url != ''
|
||||
call s:VersionAwareNetrwBrowseX(l:url)
|
||||
else
|
||||
echomsg 'The cursor is not on a link.'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" We need a definition guard because we invoke 'edit' which will reload this
|
||||
" script while this function is running. We must not replace it.
|
||||
if !exists('*s:EditUrlUnderCursor')
|
||||
function s:EditUrlUnderCursor()
|
||||
let l:url = s:Markdown_GetUrlForPosition(line('.'), col('.'))
|
||||
if l:url != ''
|
||||
if get(g:, 'vim_markdown_autowrite', 0)
|
||||
write
|
||||
endif
|
||||
let l:anchor = ''
|
||||
if get(g:, 'vim_markdown_follow_anchor', 0)
|
||||
let l:parts = split(l:url, '#', 1)
|
||||
if len(l:parts) == 2
|
||||
let [l:url, l:anchor] = parts
|
||||
let l:anchorexpr = get(g:, 'vim_markdown_anchorexpr', '')
|
||||
if l:anchorexpr != ''
|
||||
let l:anchor = eval(substitute(
|
||||
\ l:anchorexpr, 'v:anchor',
|
||||
\ escape('"'.l:anchor.'"', '"'), ''))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
if l:url != ''
|
||||
let l:ext = ''
|
||||
if get(g:, 'vim_markdown_no_extensions_in_markdown', 0)
|
||||
" use another file extension if preferred
|
||||
if exists('g:vim_markdown_auto_extension_ext')
|
||||
let l:ext = '.'.g:vim_markdown_auto_extension_ext
|
||||
else
|
||||
let l:ext = '.md'
|
||||
endif
|
||||
endif
|
||||
let l:url = fnameescape(fnamemodify(expand('%:h').'/'.l:url.l:ext, ':.'))
|
||||
let l:editmethod = ''
|
||||
" determine how to open the linked file (split, tab, etc)
|
||||
if exists('g:vim_markdown_edit_url_in')
|
||||
if g:vim_markdown_edit_url_in == 'tab'
|
||||
let l:editmethod = 'tabnew'
|
||||
elseif g:vim_markdown_edit_url_in == 'vsplit'
|
||||
let l:editmethod = 'vsp'
|
||||
elseif g:vim_markdown_edit_url_in == 'hsplit'
|
||||
let l:editmethod = 'sp'
|
||||
else
|
||||
let l:editmethod = 'edit'
|
||||
endif
|
||||
else
|
||||
" default to current buffer
|
||||
let l:editmethod = 'edit'
|
||||
endif
|
||||
execute l:editmethod l:url
|
||||
endif
|
||||
if l:anchor != ''
|
||||
silent! execute '/'.l:anchor
|
||||
endif
|
||||
else
|
||||
echomsg 'The cursor is not on a link.'
|
||||
endif
|
||||
endfunction
|
||||
endif
|
||||
|
||||
function! s:VersionAwareNetrwBrowseX(url)
|
||||
if has('patch-7.4.567')
|
||||
call netrw#BrowseX(a:url, 0)
|
||||
else
|
||||
call netrw#NetrwBrowseX(a:url, 0)
|
||||
endif
|
||||
endf
|
||||
|
||||
function! s:MapNotHasmapto(lhs, rhs)
|
||||
if !hasmapto('<Plug>' . a:rhs)
|
||||
execute 'nmap <buffer>' . a:lhs . ' <Plug>' . a:rhs
|
||||
execute 'vmap <buffer>' . a:lhs . ' <Plug>' . a:rhs
|
||||
endif
|
||||
endfunction
|
||||
|
||||
call <sid>MapNormVis('<Plug>Markdown_MoveToNextHeader', '<sid>MoveToNextHeader')
|
||||
call <sid>MapNormVis('<Plug>Markdown_MoveToPreviousHeader', '<sid>MoveToPreviousHeader')
|
||||
call <sid>MapNormVis('<Plug>Markdown_MoveToNextSiblingHeader', '<sid>MoveToNextSiblingHeader')
|
||||
call <sid>MapNormVis('<Plug>Markdown_MoveToPreviousSiblingHeader', '<sid>MoveToPreviousSiblingHeader')
|
||||
call <sid>MapNormVis('<Plug>Markdown_MoveToParentHeader', '<sid>MoveToParentHeader')
|
||||
call <sid>MapNormVis('<Plug>Markdown_MoveToCurHeader', '<sid>MoveToCurHeader')
|
||||
nnoremap <Plug>Markdown_OpenUrlUnderCursor :call <sid>OpenUrlUnderCursor()<cr>
|
||||
nnoremap <Plug>Markdown_EditUrlUnderCursor :call <sid>EditUrlUnderCursor()<cr>
|
||||
|
||||
if !get(g:, 'vim_markdown_no_default_key_mappings', 0)
|
||||
call <sid>MapNotHasmapto(']]', 'Markdown_MoveToNextHeader')
|
||||
call <sid>MapNotHasmapto('[[', 'Markdown_MoveToPreviousHeader')
|
||||
call <sid>MapNotHasmapto('][', 'Markdown_MoveToNextSiblingHeader')
|
||||
call <sid>MapNotHasmapto('[]', 'Markdown_MoveToPreviousSiblingHeader')
|
||||
call <sid>MapNotHasmapto(']u', 'Markdown_MoveToParentHeader')
|
||||
call <sid>MapNotHasmapto(']c', 'Markdown_MoveToCurHeader')
|
||||
call <sid>MapNotHasmapto('gx', 'Markdown_OpenUrlUnderCursor')
|
||||
call <sid>MapNotHasmapto('ge', 'Markdown_EditUrlUnderCursor')
|
||||
endif
|
||||
|
||||
command! -buffer -range=% HeaderDecrease call s:HeaderDecrease(<line1>, <line2>)
|
||||
command! -buffer -range=% HeaderIncrease call s:HeaderDecrease(<line1>, <line2>, 1)
|
||||
command! -buffer -range=% SetexToAtx call s:SetexToAtx(<line1>, <line2>)
|
||||
command! -buffer TableFormat call s:TableFormat()
|
||||
command! -buffer Toc call s:Toc()
|
||||
command! -buffer Toch call s:Toc('horizontal')
|
||||
command! -buffer Tocv call s:Toc('vertical')
|
||||
command! -buffer Toct call s:Toc('tab')
|
||||
|
||||
" Heavily based on vim-notes - http://peterodding.com/code/vim/notes/
|
||||
if exists('g:vim_markdown_fenced_languages')
|
||||
let s:filetype_dict = {}
|
||||
for s:filetype in g:vim_markdown_fenced_languages
|
||||
let key = matchstr(s:filetype, "[^=]*")
|
||||
let val = matchstr(s:filetype, "[^=]*$")
|
||||
let s:filetype_dict[key] = val
|
||||
endfor
|
||||
else
|
||||
let s:filetype_dict = {
|
||||
\ 'c++': 'cpp',
|
||||
\ 'viml': 'vim',
|
||||
\ 'bash': 'sh',
|
||||
\ 'ini': 'dosini'
|
||||
\ }
|
||||
endif
|
||||
|
||||
function! s:MarkdownHighlightSources(force)
|
||||
" Syntax highlight source code embedded in notes.
|
||||
" Look for code blocks in the current file
|
||||
let filetypes = {}
|
||||
for line in getline(1, '$')
|
||||
let ft = matchstr(line, '```\s*\zs[0-9A-Za-z_+-]*')
|
||||
if !empty(ft) && ft !~ '^\d*$' | let filetypes[ft] = 1 | endif
|
||||
endfor
|
||||
if !exists('b:mkd_known_filetypes')
|
||||
let b:mkd_known_filetypes = {}
|
||||
endif
|
||||
if !exists('b:mkd_included_filetypes')
|
||||
" set syntax file name included
|
||||
let b:mkd_included_filetypes = {}
|
||||
endif
|
||||
if !a:force && (b:mkd_known_filetypes == filetypes || empty(filetypes))
|
||||
return
|
||||
endif
|
||||
|
||||
" Now we're ready to actually highlight the code blocks.
|
||||
let startgroup = 'mkdCodeStart'
|
||||
let endgroup = 'mkdCodeEnd'
|
||||
for ft in keys(filetypes)
|
||||
if a:force || !has_key(b:mkd_known_filetypes, ft)
|
||||
if has_key(s:filetype_dict, ft)
|
||||
let filetype = s:filetype_dict[ft]
|
||||
else
|
||||
let filetype = ft
|
||||
endif
|
||||
let group = 'mkdSnippet' . toupper(substitute(filetype, "[+-]", "_", "g"))
|
||||
if !has_key(b:mkd_included_filetypes, filetype)
|
||||
let include = s:SyntaxInclude(filetype)
|
||||
let b:mkd_included_filetypes[filetype] = 1
|
||||
else
|
||||
let include = '@' . toupper(filetype)
|
||||
endif
|
||||
let command = 'syntax region %s matchgroup=%s start="^\s*```\s*%s$" matchgroup=%s end="\s*```$" keepend contains=%s%s'
|
||||
execute printf(command, group, startgroup, ft, endgroup, include, has('conceal') && get(g:, 'vim_markdown_conceal', 1) && get(g:, 'vim_markdown_conceal_code_blocks', 1) ? ' concealends' : '')
|
||||
execute printf('syntax cluster mkdNonListItem add=%s', group)
|
||||
|
||||
let b:mkd_known_filetypes[ft] = 1
|
||||
endif
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
function! s:SyntaxInclude(filetype)
|
||||
" Include the syntax highlighting of another {filetype}.
|
||||
let grouplistname = '@' . toupper(a:filetype)
|
||||
" Unset the name of the current syntax while including the other syntax
|
||||
" because some syntax scripts do nothing when "b:current_syntax" is set
|
||||
if exists('b:current_syntax')
|
||||
let syntax_save = b:current_syntax
|
||||
unlet b:current_syntax
|
||||
endif
|
||||
try
|
||||
execute 'syntax include' grouplistname 'syntax/' . a:filetype . '.vim'
|
||||
execute 'syntax include' grouplistname 'after/syntax/' . a:filetype . '.vim'
|
||||
catch /E484/
|
||||
" Ignore missing scripts
|
||||
endtry
|
||||
" Restore the name of the current syntax
|
||||
if exists('syntax_save')
|
||||
let b:current_syntax = syntax_save
|
||||
elseif exists('b:current_syntax')
|
||||
unlet b:current_syntax
|
||||
endif
|
||||
return grouplistname
|
||||
endfunction
|
||||
|
||||
|
||||
function! s:MarkdownRefreshSyntax(force)
|
||||
if &filetype =~ 'markdown' && line('$') > 1
|
||||
call s:MarkdownHighlightSources(a:force)
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:MarkdownClearSyntaxVariables()
|
||||
if &filetype =~ 'markdown'
|
||||
unlet! b:mkd_included_filetypes
|
||||
endif
|
||||
endfunction
|
||||
|
||||
augroup Mkd
|
||||
" These autocmd calling s:MarkdownRefreshSyntax need to be kept in sync with
|
||||
" the autocmds calling s:MarkdownSetupFolding in after/ftplugin/markdown.vim.
|
||||
autocmd! * <buffer>
|
||||
autocmd BufWinEnter <buffer> call s:MarkdownRefreshSyntax(1)
|
||||
autocmd BufUnload <buffer> call s:MarkdownClearSyntaxVariables()
|
||||
autocmd BufWritePost <buffer> call s:MarkdownRefreshSyntax(0)
|
||||
autocmd InsertEnter,InsertLeave <buffer> call s:MarkdownRefreshSyntax(0)
|
||||
autocmd CursorHold,CursorHoldI <buffer> call s:MarkdownRefreshSyntax(0)
|
||||
augroup END
|
||||
|
||||
endif
|
||||
@@ -2,6 +2,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'meson') == -1
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: meson
|
||||
" License: VIM License
|
||||
" Original Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
" Last Change: 2018 Nov 27
|
||||
|
||||
|
||||
@@ -393,9 +393,9 @@ endfunction
|
||||
endif
|
||||
endfun
|
||||
|
||||
" This variable contain a dictionnary of list. Each element of the dictionnary
|
||||
" represent an annotation system. An annotation system is a list with :
|
||||
" - annotation file name as it's key
|
||||
" This variable contains a dictionary of lists. Each element of the dictionary
|
||||
" represents an annotation system. An annotation system is a list with:
|
||||
" - annotation file name as its key
|
||||
" - annotation file path as first element of the contained list
|
||||
" - build path as second element of the contained list
|
||||
" - annot_file_last_mod (contain the date of .annot file) as third element
|
||||
|
||||
@@ -374,7 +374,6 @@ function! RubyCursorFile() abort
|
||||
endtry
|
||||
let pre = matchstr(strpart(getline('.'), 0, col('.')-1), '.*\f\@<!')
|
||||
let post = matchstr(strpart(getline('.'), col('.')), '\f\@!.*')
|
||||
let ext = getline('.') =~# '^\s*\%(require\%(_relative\)\=\|autoload\)\>' && cfile !~# '\.rb$' ? '.rb' : ''
|
||||
if s:synid() ==# hlID('rubyConstant')
|
||||
let cfile = substitute(cfile,'\.\w\+[?!=]\=$','','')
|
||||
let cfile = substitute(cfile,'^::','','')
|
||||
@@ -383,12 +382,15 @@ function! RubyCursorFile() abort
|
||||
let cfile = substitute(cfile,'\(\l\|\d\)\(\u\)','\1_\2', 'g')
|
||||
return tolower(cfile) . '.rb'
|
||||
elseif getline('.') =~# '^\s*require_relative\s*\(["'']\).*\1\s*$'
|
||||
let cfile = expand('%:p:h') . '/' . matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
|
||||
let cfile = expand('%:p:h') . '/' . matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1')
|
||||
let cfile .= cfile !~# '\.rb$' ? '.rb' : ''
|
||||
elseif getline('.') =~# '^\s*\%(require[( ]\|load[( ]\|autoload[( ]:\w\+,\)\s*\%(::\)\=File\.expand_path(\(["'']\)\.\./.*\1,\s*__FILE__)\s*$'
|
||||
let target = matchstr(getline('.'),'\(["'']\)\.\.\zs/.\{-\}\ze\1')
|
||||
let cfile = expand('%:p:h') . target . ext
|
||||
let cfile = expand('%:p:h') . target
|
||||
let cfile .= cfile !~# '\.rb$' ? '.rb' : ''
|
||||
elseif getline('.') =~# '^\s*\%(require \|load \|autoload :\w\+,\)\s*\(["'']\).*\1\s*$'
|
||||
let cfile = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1') . ext
|
||||
let cfile = matchstr(getline('.'),'\(["'']\)\zs.\{-\}\ze\1')
|
||||
let cfile .= cfile !~# '\.rb$' ? '.rb' : ''
|
||||
elseif pre.post =~# '\<File.expand_path[( ].*[''"]\{2\}, *__FILE__\>' && cfile =~# '^\.\.'
|
||||
let cfile = expand('%:p:h') . strpart(cfile, 2)
|
||||
else
|
||||
|
||||
@@ -3,7 +3,6 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1
|
||||
" Language: Rust
|
||||
" Description: Vim ftplugin for Rust
|
||||
" Maintainer: Chris Morgan <me@chrismorgan.info>
|
||||
" Maintainer: Kevin Ballard <kevin@sb.org>
|
||||
" Last Change: June 08, 2016
|
||||
" For bugs, patches and license go to https://github.com/rust-lang/rust.vim
|
||||
|
||||
@@ -139,7 +138,7 @@ command! -bar RustInfoToClipboard call rust#debugging#InfoToClipboard()
|
||||
command! -bar -nargs=1 RustInfoToFile call rust#debugging#InfoToFile(<f-args>)
|
||||
|
||||
" See |:RustTest| for docs
|
||||
command! -buffer -nargs=* -bang RustTest call rust#Test(<bang>0, <q-args>)
|
||||
command! -buffer -nargs=* -count -bang RustTest call rust#Test(<q-mods>, <count>, <bang>0, <q-args>)
|
||||
|
||||
if !exists("b:rust_last_rustc_args") || !exists("b:rust_last_args")
|
||||
let b:rust_last_rustc_args = []
|
||||
|
||||
29
ftplugin/vala.vim
Normal file
29
ftplugin/vala.vim
Normal file
@@ -0,0 +1,29 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vala') == -1
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
setlocal efm=%f:%l.%c-%[%^:]%#:\ %t%[%^:]%#:\ %m
|
||||
|
||||
" Insert a CCode attribute for the symbol below the cursor
|
||||
" https://wiki.gnome.org/Projects/Vala/LegacyBindings
|
||||
function! CCode() abort
|
||||
normal yiwO[CCode (cname = "pa")]
|
||||
endfunction
|
||||
|
||||
" Set Vala Coding Style
|
||||
" https://wiki.gnome.org/Projects/Vala/Hacking#Coding_Style
|
||||
function! ValaCodingStyle() abort
|
||||
set ts=4 sts=4 sw=4 tw=0 wm=0
|
||||
endfunction
|
||||
|
||||
command! -buffer -bar CCode call CCode()
|
||||
command! -buffer -bar ValaCodingStyle call ValaCodingStyle()
|
||||
|
||||
if get(g:, 'vala_syntax_folding_enabled', 1)
|
||||
setlocal foldmethod=syntax
|
||||
endif
|
||||
|
||||
endif
|
||||
6
ftplugin/vlang.vim
Normal file
6
ftplugin/vlang.vim
Normal file
@@ -0,0 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'v') == -1
|
||||
|
||||
setlocal commentstring=//\ %s
|
||||
setlocal makeprg=v\ %
|
||||
|
||||
endif
|
||||
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cucumber') == -
|
||||
" Vim indent file
|
||||
" Language: Cucumber
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2017 Jun 13
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -29,7 +29,7 @@ function! GetCucumberIndent()
|
||||
let line = getline(prevnonblank(v:lnum-1))
|
||||
let cline = getline(v:lnum)
|
||||
let nline = getline(nextnonblank(v:lnum+1))
|
||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
||||
let sw = exists('*shiftwidth') ? shiftwidth() : shiftwidth()
|
||||
let syn = s:syn(prevnonblank(v:lnum-1))
|
||||
let csyn = s:syn(v:lnum)
|
||||
let nsyn = s:syn(nextnonblank(v:lnum+1))
|
||||
|
||||
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
" Vim indent file
|
||||
" Language: git config file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2017 Jun 13
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
@@ -22,7 +22,7 @@ if exists("*GetGitconfigIndent")
|
||||
endif
|
||||
|
||||
function! GetGitconfigIndent()
|
||||
let sw = exists('*shiftwidth') ? shiftwidth() : &sw
|
||||
let sw = shiftwidth()
|
||||
let line = getline(prevnonblank(v:lnum-1))
|
||||
let cline = getline(v:lnum)
|
||||
if line =~ '\\\@<!\%(\\\\\)*\\$'
|
||||
|
||||
@@ -1,6 +1,25 @@
|
||||
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
|
||||
" Maintainer: Jon Parise <jon@indelible.org>
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'meson') == -1
|
||||
|
||||
" Vim indent file
|
||||
" Language: Meson
|
||||
" License: VIM License
|
||||
" Maintainer: Nirbheek Chauhan <nirbheek.chauhan@gmail.com>
|
||||
" Original Authors: David Bustos <bustos@caltech.edu>
|
||||
" Bram Moolenaar <Bram@vim.org>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'octave') == -1
|
||||
|
||||
" Vim indent file
|
||||
" Language: Octave
|
||||
" Maintainer: Nguyễn Gia Phong <vn.mcsinyx@gmail.com>
|
||||
" Language: Octave
|
||||
" Maintainer: Nguyễn Gia Phong <vn.mcsinyx@gmail.com>
|
||||
" Original Maintainer: Marcus Aurelius Farias <marcus.cf@bol.com.br>
|
||||
" First Author: Max Ischenko <mfi@ukr.net>
|
||||
" Last Change: 2019-10-11
|
||||
" Last Change: 2019-10-16
|
||||
|
||||
" Only load this indent file when no other was loaded.
|
||||
if exists("b:did_indent")
|
||||
|
||||
77
indent/rst.vim
Normal file
77
indent/rst.vim
Normal file
@@ -0,0 +1,77 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rst') == -1
|
||||
|
||||
" Vim indent file
|
||||
" Language: reStructuredText Documentation Format
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2011-08-03
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal indentexpr=GetRSTIndent()
|
||||
setlocal indentkeys=!^F,o,O
|
||||
setlocal nosmartindent
|
||||
|
||||
if exists("*GetRSTIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:itemization_pattern = '^\s*[-*+]\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()
|
||||
let lnum = prevnonblank(v:lnum - 1)
|
||||
if lnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
let ind = indent(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
|
||||
let ind += 2
|
||||
elseif line =~ s:enumeration_pattern
|
||||
let ind += matchend(line, s:enumeration_pattern)
|
||||
endif
|
||||
|
||||
let line = getline(v:lnum - 1)
|
||||
|
||||
" Indent :FIELD: lines. Don’t match if there is no text after the field or
|
||||
" if the text ends with a sent-ender.
|
||||
if line =~ '^:.\+:\s\{-1,\}\S.\+[^.!?:]$'
|
||||
return matchend(line, '^:.\{-1,}:\s\+')
|
||||
endif
|
||||
|
||||
if line =~ '^\s*$'
|
||||
execute lnum
|
||||
call search('^\s*\%([-*+]\s\|\%(\d\+\|#\)\.\s\|\.\.\|$\)', 'bW')
|
||||
let line = getline('.')
|
||||
if line =~ s:itemization_pattern
|
||||
let ind -= 2
|
||||
elseif line =~ s:enumeration_pattern
|
||||
let ind -= matchend(line, s:enumeration_pattern)
|
||||
elseif line =~ '^\s*\.\.'
|
||||
let ind -= 3
|
||||
endif
|
||||
endif
|
||||
|
||||
return ind
|
||||
endfunction
|
||||
|
||||
endif
|
||||
@@ -66,6 +66,7 @@ let s:syng_strcom = s:syng_stringdoc + [
|
||||
\ 'PercentStringDelimiter',
|
||||
\ 'PercentSymbolDelimiter',
|
||||
\ 'Regexp',
|
||||
\ 'RegexpCharClass',
|
||||
\ 'RegexpDelimiter',
|
||||
\ 'RegexpEscape',
|
||||
\ 'StringDelimiter',
|
||||
|
||||
@@ -193,7 +193,12 @@ function GetRustIndent(lnum)
|
||||
" A line that ends with '.<expr>;' is probably an end of a long list
|
||||
" of method operations.
|
||||
if prevline =~# '\V\^\s\*.' && l:last_prevline_character ==# ';'
|
||||
return indent(prevlinenum) - s:shiftwidth()
|
||||
call cursor(a:lnum - 1, 1)
|
||||
let l:scope_start = searchpair('{\|(', '', '}\|)', 'nbW',
|
||||
\ 's:is_string_comment(line("."), col("."))')
|
||||
if l:scope_start != 0 && l:scope_start < a:lnum
|
||||
return indent(l:scope_start) + 4
|
||||
endif
|
||||
endif
|
||||
|
||||
if l:last_prevline_character ==# ","
|
||||
|
||||
@@ -67,8 +67,8 @@ let s:var_stmt = '^\s*var'
|
||||
let s:comma_first = '^\s*,'
|
||||
let s:comma_last = ',\s*$'
|
||||
|
||||
let s:ternary = '^\s\+[?|:]'
|
||||
let s:ternary_q = '^\s\+?'
|
||||
let s:ternary = '^\s\+[?:]'
|
||||
let s:ternary_q = '^\s\+?[.?]\@!'
|
||||
|
||||
" 2. Auxiliary Functions {{{1
|
||||
" ======================
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'typescript') == -1
|
||||
|
||||
exe 'runtime! indent/typescript.vim'
|
||||
" Save the current JavaScript indentexpr.
|
||||
let b:tsx_ts_indentexpr = &indentexpr
|
||||
|
||||
@@ -110,5 +111,4 @@ fu! GetTsxIndent()
|
||||
|
||||
return ind
|
||||
endfu
|
||||
|
||||
endif
|
||||
69
indent/vlang.vim
Normal file
69
indent/vlang.vim
Normal file
@@ -0,0 +1,69 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'v') == -1
|
||||
|
||||
" Based on the Go identation file.
|
||||
"
|
||||
" Copyright 2011 The Go Authors. All rights reserved.
|
||||
" Use of this source code is governed by a BSD-style
|
||||
" license that can be found in the LICENSE file.
|
||||
|
||||
if exists("b:did_indent")
|
||||
finish
|
||||
endif
|
||||
let b:did_indent = 1
|
||||
|
||||
setlocal nolisp
|
||||
setlocal autoindent
|
||||
setlocal indentexpr=VlangIndent(v:lnum)
|
||||
setlocal indentkeys+=<:>,0=},0=)
|
||||
|
||||
if exists("*VlangIndent")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
function! VlangIndent(lnum) abort
|
||||
let prevlnum = prevnonblank(a:lnum-1)
|
||||
if prevlnum == 0
|
||||
return 0
|
||||
endif
|
||||
|
||||
let prevl = substitute(getline(prevlnum), '//.*$', '', '')
|
||||
let thisl = substitute(getline(a:lnum), '//.*$', '', '')
|
||||
let previ = indent(prevlnum)
|
||||
|
||||
let ind = previ
|
||||
|
||||
if prevl =~ '[({]\s*$'
|
||||
" previous line opened a block
|
||||
let ind += shiftwidth()
|
||||
endif
|
||||
if prevl =~# '^\s*\(case .*\|default\):$'
|
||||
" previous line is part of a switch statement
|
||||
let ind += shiftwidth()
|
||||
endif
|
||||
|
||||
if thisl =~ '^\s*[)}]'
|
||||
" this line closed a block
|
||||
let ind -= shiftwidth()
|
||||
endif
|
||||
|
||||
" Colons are tricky.
|
||||
" We want to outdent if it's part of a switch ("case foo:" or "default:").
|
||||
" We ignore trying to deal with jump labels because (a) they're rare, and
|
||||
" (b) they're hard to disambiguate from a composite literal key.
|
||||
if thisl =~# '^\s*\(case .*\|default\):$'
|
||||
let ind -= shiftwidth()
|
||||
endif
|
||||
|
||||
return ind
|
||||
endfunction
|
||||
|
||||
" restore Vi compatibility settings
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: sw=2 ts=2 et
|
||||
|
||||
endif
|
||||
@@ -15,7 +15,7 @@ syntax match typescriptClassName contained /\K\k*/
|
||||
|
||||
syntax region typescriptClassTypeParameter
|
||||
\ start=/</ end=/>/
|
||||
\ contains=typescriptTypeParameter
|
||||
\ contains=@typescriptTypeParameterCluster
|
||||
\ nextgroup=typescriptClassBlock,typescriptClassExtends
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
@@ -47,7 +47,7 @@ syntax match typescriptInterfaceName contained /\k\+/
|
||||
\ skipwhite skipnl
|
||||
syntax region typescriptInterfaceTypeParameter
|
||||
\ start=/</ end=/>/
|
||||
\ contains=typescriptTypeParameter
|
||||
\ contains=@typescriptTypeParameterCluster
|
||||
\ nextgroup=typescriptObjectType,typescriptInterfaceExtends
|
||||
\ contained
|
||||
\ skipwhite skipnl
|
||||
|
||||
@@ -22,7 +22,7 @@ syntax match typescriptProp contained /\K\k*!\?/
|
||||
|
||||
syntax region typescriptIndexExpr contained matchgroup=typescriptProperty start=/\[/rs=s+1 end=/]/he=e-1 contains=@typescriptValue nextgroup=@typescriptSymbols,typescriptDotNotation,typescriptFuncCallArg skipwhite skipempty
|
||||
|
||||
syntax match typescriptDotNotation /\./ nextgroup=typescriptProp skipnl
|
||||
syntax match typescriptDotNotation /\.\|?\.\|!\./ nextgroup=typescriptProp skipnl
|
||||
syntax match typescriptDotStyleNotation /\.style\./ nextgroup=typescriptDOMStyle transparent
|
||||
" syntax match typescriptFuncCall contained /[a-zA-Z]\k*\ze(/ nextgroup=typescriptFuncCallArg
|
||||
syntax region typescriptParenExp matchgroup=typescriptParens start=/(/ end=/)/ contains=@typescriptComments,@typescriptValue,typescriptCastKeyword nextgroup=@typescriptSymbols skipwhite skipempty
|
||||
|
||||
@@ -16,7 +16,7 @@ syntax region typescriptString
|
||||
\ contains=typescriptSpecial,@Spell
|
||||
\ extend
|
||||
|
||||
syntax match typescriptSpecial contained "\v\\%(x\x\x|u%(\x{4}|\{\x{4,5}})|c\u|.)"
|
||||
syntax match typescriptSpecial contained "\v\\%(x\x\x|u%(\x{4}|\{\x{1,6}})|c\u|.)"
|
||||
|
||||
" From vim runtime
|
||||
" <https://github.com/vim/vim/blob/master/runtime/syntax/javascript.vim#L48>
|
||||
@@ -24,7 +24,7 @@ syntax region typescriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|
|
||||
|
||||
syntax region typescriptTemplate
|
||||
\ start=/`/ skip=/\\\\\|\\`\|\n/ end=/`\|$/
|
||||
\ contains=typescriptTemplateSubstitution
|
||||
\ contains=typescriptTemplateSubstitution,typescriptSpecial,@Spell
|
||||
\ nextgroup=@typescriptSymbols
|
||||
\ skipwhite skipempty
|
||||
|
||||
|
||||
@@ -2,9 +2,11 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'typescript') ==
|
||||
|
||||
syntax region typescriptObjectLiteral matchgroup=typescriptBraces
|
||||
\ start=/{/ end=/}/
|
||||
\ contains=@typescriptComments,typescriptObjectLabel,typescriptStringProperty,typescriptComputedPropertyName
|
||||
\ contains=@typescriptComments,typescriptObjectLabel,typescriptStringProperty,typescriptComputedPropertyName,typescriptObjectAsyncKeyword
|
||||
\ fold contained
|
||||
|
||||
syntax keyword typescriptObjectAsyncKeyword async contained
|
||||
|
||||
syntax match typescriptObjectLabel contained /\k\+\_s*/
|
||||
\ nextgroup=typescriptObjectColon,@typescriptCallImpl
|
||||
\ skipwhite skipempty
|
||||
|
||||
@@ -5,7 +5,7 @@ syntax match typescriptUnaryOp /[+\-~!]/
|
||||
\ nextgroup=@typescriptValue
|
||||
\ skipwhite
|
||||
|
||||
syntax region typescriptTernary matchgroup=typescriptTernaryOp start=/?/ end=/:/ contained contains=@typescriptValue,@typescriptComments nextgroup=@typescriptValue skipwhite skipempty
|
||||
syntax region typescriptTernary matchgroup=typescriptTernaryOp start=/?[.?]\@!/ end=/:/ contained contains=@typescriptValue,@typescriptComments nextgroup=@typescriptValue skipwhite skipempty
|
||||
|
||||
syntax match typescriptAssign /=/ nextgroup=@typescriptValue
|
||||
\ skipwhite skipempty
|
||||
|
||||
@@ -3,13 +3,17 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'typescript') ==
|
||||
" Types
|
||||
syntax match typescriptOptionalMark /?/ contained
|
||||
|
||||
syntax cluster typescriptTypeParameterCluster contains=
|
||||
\ typescriptTypeParameter,
|
||||
\ typescriptGenericDefault
|
||||
|
||||
syntax region typescriptTypeParameters matchgroup=typescriptTypeBrackets
|
||||
\ start=/</ end=/>/
|
||||
\ contains=typescriptTypeParameter
|
||||
\ contains=@typescriptTypeParameterCluster
|
||||
\ contained
|
||||
|
||||
syntax match typescriptTypeParameter /\K\k*/
|
||||
\ nextgroup=typescriptConstraint,typescriptGenericDefault
|
||||
\ nextgroup=typescriptConstraint
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
syntax keyword typescriptConstraint extends
|
||||
@@ -52,7 +56,8 @@ syntax cluster typescriptPrimaryType contains=
|
||||
\ typescriptTupleType,
|
||||
\ typescriptTypeQuery,
|
||||
\ typescriptStringLiteralType,
|
||||
\ typescriptReadonlyArrayKeyword
|
||||
\ typescriptReadonlyArrayKeyword,
|
||||
\ typescriptAssertType
|
||||
|
||||
syntax region typescriptStringLiteralType contained
|
||||
\ start=/\z(["']\)/ skip=/\\\\\|\\\z1\|\\\n/ end=/\z1\|$/
|
||||
@@ -91,8 +96,8 @@ syntax cluster typescriptTypeMember contains=
|
||||
|
||||
syntax region typescriptTupleType matchgroup=typescriptBraces
|
||||
\ start=/\[/ end=/\]/
|
||||
\ contains=@typescriptType
|
||||
\ contained skipwhite oneline
|
||||
\ contains=@typescriptType,@typescriptComments
|
||||
\ contained skipwhite
|
||||
|
||||
syntax cluster typescriptTypeOperator
|
||||
\ contains=typescriptUnion,typescriptTypeBracket
|
||||
@@ -130,6 +135,10 @@ syntax keyword typescriptTypeQuery typeof keyof
|
||||
\ nextgroup=typescriptTypeReference
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
syntax keyword typescriptAssertType asserts
|
||||
\ nextgroup=typescriptTypeReference
|
||||
\ contained skipwhite skipnl
|
||||
|
||||
syntax cluster typescriptCallSignature contains=typescriptGenericCall,typescriptCall
|
||||
syntax region typescriptGenericCall matchgroup=typescriptTypeBrackets
|
||||
\ start=/</ end=/>/
|
||||
|
||||
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
|
||||
" Language: C
|
||||
" 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
|
||||
if exists("b:current_syntax")
|
||||
@@ -15,6 +15,14 @@ set cpo&vim
|
||||
|
||||
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
|
||||
syn keyword cStatement goto break return continue asm
|
||||
syn keyword cLabel case default
|
||||
@@ -131,7 +139,7 @@ if exists("c_no_curly_error")
|
||||
syn match cParenError display ")"
|
||||
syn match cErrInParen display contained "^^<%\|^%>"
|
||||
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
|
||||
syn region cCppParen transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString,@Spell
|
||||
syn match cParenError display ")"
|
||||
@@ -214,7 +222,7 @@ if exists("c_comment_strings")
|
||||
syn match cCommentSkip contained "^\s*\*\($\|\s\+\)"
|
||||
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 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")
|
||||
" Use "extend" here to have preprocessor lines not terminate halfway a
|
||||
" comment.
|
||||
@@ -233,6 +241,7 @@ endif
|
||||
" keep a // comment separately, it terminates a preproc. conditional
|
||||
syn match cCommentError display "\*/"
|
||||
syn match cCommentStartError display "/\*"me=e-1 contained
|
||||
syn match cWrongComTail display "\*/"
|
||||
|
||||
syn keyword cOperator sizeof
|
||||
if exists("c_gnu")
|
||||
@@ -282,6 +291,22 @@ if !exists("c_no_c11")
|
||||
syn keyword cOperator _Static_assert static_assert
|
||||
syn keyword cStorageClass _Thread_local thread_local
|
||||
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
|
||||
|
||||
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 SIZE_MAX WCHAR_MIN WCHAR_MAX WINT_MIN WINT_MAX
|
||||
endif
|
||||
syn keyword cConstant FLT_RADIX FLT_ROUNDS
|
||||
syn keyword cConstant FLT_DIG FLT_MANT_DIG FLT_EPSILON
|
||||
syn keyword cConstant DBL_DIG DBL_MANT_DIG DBL_EPSILON
|
||||
syn keyword cConstant LDBL_DIG LDBL_MANT_DIG LDBL_EPSILON
|
||||
syn keyword cConstant FLT_MIN FLT_MAX FLT_MIN_EXP FLT_MAX_EXP
|
||||
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
|
||||
syn keyword cConstant FLT_RADIX FLT_ROUNDS FLT_DIG FLT_MANT_DIG FLT_EPSILON DBL_DIG DBL_MANT_DIG DBL_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_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_MIN_10_EXP LDBL_MAX_10_EXP HUGE_VAL CLOCKS_PER_SEC NULL LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY
|
||||
syn keyword cConstant LC_NUMERIC LC_TIME SIG_DFL SIG_ERR SIG_IGN SIGABRT SIGFPE SIGILL SIGHUP SIGINT SIGSEGV SIGTERM
|
||||
" Add POSIX signals as well...
|
||||
syn keyword cConstant SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP
|
||||
syn keyword cConstant SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV
|
||||
syn keyword cConstant SIGSTOP SIGTERM SIGTRAP SIGTSTP SIGTTIN SIGTTOU
|
||||
syn keyword cConstant SIGUSR1 SIGUSR2
|
||||
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
|
||||
syn keyword cConstant SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV
|
||||
syn keyword cConstant SIGSTOP SIGTERM SIGTRAP SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2
|
||||
syn keyword cConstant _IOFBF _IOLBF _IONBF BUFSIZ EOF WEOF FOPEN_MAX FILENAME_MAX L_tmpnam
|
||||
syn keyword cConstant SEEK_CUR SEEK_END SEEK_SET TMP_MAX stderr stdin stdout EXIT_FAILURE EXIT_SUCCESS RAND_MAX
|
||||
" POSIX 2001
|
||||
syn keyword cConstant SIGBUS SIGPOLL SIGPROF SIGSYS SIGURG
|
||||
syn keyword cConstant SIGVTALRM SIGXCPU SIGXFSZ
|
||||
syn keyword cConstant SIGBUS SIGPOLL SIGPROF SIGSYS SIGURG SIGVTALRM SIGXCPU SIGXFSZ
|
||||
" non-POSIX signals
|
||||
syn keyword cConstant SIGWINCH SIGINFO
|
||||
" Add POSIX errors as well
|
||||
syn keyword cConstant E2BIG EACCES EAGAIN EBADF EBADMSG EBUSY
|
||||
syn keyword cConstant ECANCELED ECHILD EDEADLK EDOM EEXIST EFAULT
|
||||
syn keyword cConstant EFBIG EILSEQ EINPROGRESS EINTR EINVAL EIO EISDIR
|
||||
syn keyword cConstant EMFILE EMLINK EMSGSIZE ENAMETOOLONG ENFILE ENODEV
|
||||
syn keyword cConstant ENOENT ENOEXEC ENOLCK ENOMEM ENOSPC ENOSYS
|
||||
syn keyword cConstant ENOTDIR ENOTEMPTY ENOTSUP ENOTTY ENXIO EPERM
|
||||
syn keyword cConstant EPIPE ERANGE EROFS ESPIPE ESRCH ETIMEDOUT EXDEV
|
||||
" Add POSIX errors as well. List comes from:
|
||||
" http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html
|
||||
syn keyword cConstant E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF
|
||||
syn keyword cConstant EBADMSG EBUSY ECANCELED ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK
|
||||
syn keyword cConstant EDESTADDRREQ EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTUNREACH EIDRM EILSEQ
|
||||
syn keyword cConstant EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE
|
||||
syn keyword cConstant EMULTIHOP ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODATA
|
||||
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
|
||||
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
|
||||
@@ -371,17 +384,17 @@ if !exists("c_no_if0")
|
||||
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
|
||||
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 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")
|
||||
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
|
||||
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
|
||||
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 cCppOutSkip contained start="^\s*\zs\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\zs\(%:\|#\)\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 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*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppOutSkip
|
||||
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
|
||||
syn region cIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
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 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
|
||||
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")
|
||||
@@ -452,6 +472,7 @@ hi def link cErrInBracket cError
|
||||
hi def link cCommentError cError
|
||||
hi def link cCommentStartError cError
|
||||
hi def link cSpaceError cError
|
||||
hi def link cWrongComTail cError
|
||||
hi def link cSpecialError cError
|
||||
hi def link cCurlyError cError
|
||||
hi def link cOperator Operator
|
||||
|
||||
@@ -33,9 +33,7 @@ syn keyword carpSyntax relative-include not-on-windows load-and-use
|
||||
syn keyword carpSyntax deftest
|
||||
syn match carpSyntax "\vc(a|d){1,4}r"
|
||||
|
||||
syn keyword carpFunc Int Float Double Bool String Char Array Fn Ref Long λ
|
||||
syn keyword carpFunc Maybe Map Result Set Pair
|
||||
syn keyword carpFunc Pattern
|
||||
syn keyword carpFunc λ
|
||||
syn keyword carpFunc not or and + - * / = /= >= <= > < inc dec
|
||||
syn keyword carpFunc println print get-line from-string mod random
|
||||
syn keyword carpFunc random-between str mask delete append length duplicate
|
||||
@@ -76,6 +74,8 @@ syn keyword carpFunc assert-op assert-equal assert-not-equal assert-true
|
||||
syn keyword carpFunc assert-false assert-exit print-test-results with-test
|
||||
syn keyword carpFunc dir-from-path file-from-path
|
||||
|
||||
syn match carpFunc "[A-Z]\w\+"
|
||||
|
||||
syn match carpSymbol ,\k+, contained
|
||||
syn match carpTodo /\v<(FIXME|NOTE|TODO|OPTIMIZE)/ containedin=carpComment,carpString
|
||||
|
||||
@@ -105,8 +105,8 @@ syn region carpPattern start=/\%(\\\)\@<!\#"/ skip=/\\[\\"]/ end=/"/
|
||||
syn cluster carpNormal add=carpError,carpStruc,carpString,carpPattern
|
||||
syn cluster carpQuotedOrNormal add=carpString
|
||||
|
||||
syn match carpNumber "\<[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?[lf]\?\>" contains=carpContainedNumberError
|
||||
syn match carpNumber "\<[-+]\?\d\+/\d\+[lf]\?\>" contains=carpContainedNumberError
|
||||
syn match carpNumber "\<[-+]\?\(\d\+\|\d\+#*\.\|\d*\.\d\+\)#*\(/\d\+#*\)\?[lfb]\?\>" contains=carpContainedNumberError
|
||||
syn match carpNumber "\<[-+]\?\d\+/\d\+[lfb]\?\>" contains=carpContainedNumberError
|
||||
|
||||
|
||||
syn keyword carpBoolean true false
|
||||
|
||||
434
syntax/cmake.vim
434
syntax/cmake.vim
@@ -2,14 +2,14 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'cmake') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Program: CMake - Cross-Platform Makefile Generator
|
||||
" Version: cmake version 3.14.20190529-g067a4f
|
||||
" Version: cmake version 3.16.20191028-g0e4190b
|
||||
" Language: CMake
|
||||
" Author: Andy Cedilnik <andy.cedilnik@kitware.com>,
|
||||
" Nicholas Hutchinson <nshutchinson@gmail.com>,
|
||||
" Patrick Boettcher <patrick.boettcher@posteo.de>
|
||||
" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
|
||||
" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
|
||||
" Last Change: 2019 May 29
|
||||
" Last Change: 2019 oct. 29
|
||||
"
|
||||
" Licence: The CMake license applies to this file. See
|
||||
" https://cmake.org/licensing
|
||||
@@ -81,6 +81,7 @@ syn keyword cmakeProperty contained
|
||||
\ AUTOMOC_EXECUTABLE
|
||||
\ AUTOMOC_MACRO_NAMES
|
||||
\ AUTOMOC_MOC_OPTIONS
|
||||
\ AUTOMOC_PATH_PREFIX
|
||||
\ AUTOMOC_SOURCE_GROUP
|
||||
\ AUTOMOC_TARGETS_FOLDER
|
||||
\ AUTORCC
|
||||
@@ -145,6 +146,7 @@ syn keyword cmakeProperty contained
|
||||
\ DEPLOYMENT_REMOTE_DIRECTORY
|
||||
\ DISABLED
|
||||
\ DISABLED_FEATURES
|
||||
\ DISABLE_PRECOMPILE_HEADERS
|
||||
\ DOTNET_TARGET_FRAMEWORK_VERSION
|
||||
\ ECLIPSE_EXTRA_CPROJECT_CONTENTS
|
||||
\ ECLIPSE_EXTRA_NATURES
|
||||
@@ -202,6 +204,7 @@ syn keyword cmakeProperty contained
|
||||
\ INCLUDE_DIRECTORIES
|
||||
\ INCLUDE_REGULAR_EXPRESSION
|
||||
\ INSTALL_NAME_DIR
|
||||
\ INSTALL_REMOVE_ENVIRONMENT_RPATH
|
||||
\ INSTALL_RPATH
|
||||
\ INSTALL_RPATH_USE_LINK_PATH
|
||||
\ INTERFACE_AUTOUIC_OPTIONS
|
||||
@@ -214,6 +217,7 @@ syn keyword cmakeProperty contained
|
||||
\ INTERFACE_LINK_LIBRARIES
|
||||
\ INTERFACE_LINK_OPTIONS
|
||||
\ INTERFACE_POSITION_INDEPENDENT_CODE
|
||||
\ INTERFACE_PRECOMPILE_HEADERS
|
||||
\ INTERFACE_SOURCES
|
||||
\ INTERFACE_SYSTEM_INCLUDE_DIRECTORIES
|
||||
\ INTERPROCEDURAL_OPTIMIZATION
|
||||
@@ -266,10 +270,13 @@ syn keyword cmakeProperty contained
|
||||
\ PDB_OUTPUT_DIRECTORY
|
||||
\ POSITION_INDEPENDENT_CODE
|
||||
\ POST_INSTALL_SCRIPT
|
||||
\ PRECOMPILE_HEADERS
|
||||
\ PRECOMPILE_HEADERS_REUSE_FROM
|
||||
\ PREDEFINED_TARGETS_FOLDER
|
||||
\ PREFIX
|
||||
\ PRE_INSTALL_SCRIPT
|
||||
\ PRIVATE_HEADER
|
||||
\ PROCESSES
|
||||
\ PROCESSORS
|
||||
\ PROCESSOR_AFFINITY
|
||||
\ PROJECT_LABEL
|
||||
@@ -290,7 +297,10 @@ syn keyword cmakeProperty contained
|
||||
\ SKIP_AUTORCC
|
||||
\ SKIP_AUTOUIC
|
||||
\ SKIP_BUILD_RPATH
|
||||
\ SKIP_PRECOMPILE_HEADERS
|
||||
\ SKIP_REGULAR_EXPRESSION
|
||||
\ SKIP_RETURN_CODE
|
||||
\ SKIP_UNITY_BUILD_INCLUSION
|
||||
\ SOURCES
|
||||
\ SOURCE_DIR
|
||||
\ SOVERSION
|
||||
@@ -302,6 +312,7 @@ syn keyword cmakeProperty contained
|
||||
\ SYMBOLIC
|
||||
\ Swift_DEPENDENCIES_FILE
|
||||
\ Swift_DIAGNOSTICS_FILE
|
||||
\ Swift_LANGUAGE_VERSION
|
||||
\ Swift_MODULE_DIRECTORY
|
||||
\ Swift_MODULE_NAME
|
||||
\ TARGET_ARCHIVES_MAY_BE_SHARED_LIBS
|
||||
@@ -313,6 +324,10 @@ syn keyword cmakeProperty contained
|
||||
\ TIMEOUT
|
||||
\ TIMEOUT_AFTER_MATCH
|
||||
\ TYPE
|
||||
\ UNITY_BUILD
|
||||
\ UNITY_BUILD_BATCH_SIZE
|
||||
\ UNITY_BUILD_CODE_AFTER_INCLUDE
|
||||
\ UNITY_BUILD_CODE_BEFORE_INCLUDE
|
||||
\ USE_FOLDERS
|
||||
\ VALUE
|
||||
\ VARIABLES
|
||||
@@ -327,9 +342,11 @@ syn keyword cmakeProperty contained
|
||||
\ VS_DEPLOYMENT_CONTENT
|
||||
\ VS_DEPLOYMENT_LOCATION
|
||||
\ VS_DESKTOP_EXTENSIONS_VERSION
|
||||
\ VS_DOTNET_DOCUMENTATION_FILE
|
||||
\ VS_DOTNET_REFERENCES
|
||||
\ VS_DOTNET_REFERENCES_COPY_LOCAL
|
||||
\ VS_DOTNET_TARGET_FRAMEWORK_VERSION
|
||||
\ VS_DPI_AWARE
|
||||
\ VS_GLOBAL_KEYWORD
|
||||
\ VS_GLOBAL_PROJECT_TYPES
|
||||
\ VS_GLOBAL_ROOTNAMESPACE
|
||||
@@ -340,6 +357,7 @@ syn keyword cmakeProperty contained
|
||||
\ VS_KEYWORD
|
||||
\ VS_MOBILE_EXTENSIONS_VERSION
|
||||
\ VS_NO_SOLUTION_DEPLOY
|
||||
\ VS_PACKAGE_REFERENCES
|
||||
\ VS_PROJECT_IMPORT
|
||||
\ VS_RESOURCE_GENERATOR
|
||||
\ VS_SCC_AUXPATH
|
||||
@@ -379,6 +397,7 @@ syn keyword cmakeProperty contained
|
||||
\ XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
|
||||
\ XCODE_SCHEME_ARGUMENTS
|
||||
\ XCODE_SCHEME_DEBUG_AS_ROOT
|
||||
\ XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING
|
||||
\ XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
|
||||
\ XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
|
||||
\ XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
|
||||
@@ -483,6 +502,9 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_ASM_LINKER_WRAPPER_FLAG
|
||||
\ CMAKE_ASM_LINKER_WRAPPER_FLAG_SEP
|
||||
\ CMAKE_ASM_LINK_EXECUTABLE
|
||||
\ CMAKE_ASM_LINK_LIBRARY_FILE_FLAG
|
||||
\ CMAKE_ASM_LINK_LIBRARY_FLAG
|
||||
\ CMAKE_ASM_LINK_LIBRARY_SUFFIX
|
||||
\ CMAKE_ASM_MASM
|
||||
\ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_MACHINE
|
||||
\ CMAKE_ASM_MASM_ANDROID_TOOLCHAIN_PREFIX
|
||||
@@ -533,6 +555,9 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_ASM_MASM_LINKER_WRAPPER_FLAG
|
||||
\ CMAKE_ASM_MASM_LINKER_WRAPPER_FLAG_SEP
|
||||
\ CMAKE_ASM_MASM_LINK_EXECUTABLE
|
||||
\ CMAKE_ASM_MASM_LINK_LIBRARY_FILE_FLAG
|
||||
\ CMAKE_ASM_MASM_LINK_LIBRARY_FLAG
|
||||
\ CMAKE_ASM_MASM_LINK_LIBRARY_SUFFIX
|
||||
\ CMAKE_ASM_MASM_OUTPUT_EXTENSION
|
||||
\ CMAKE_ASM_MASM_PLATFORM_ID
|
||||
\ CMAKE_ASM_MASM_SIMULATE_ID
|
||||
@@ -592,6 +617,9 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_ASM_NASM_LINKER_WRAPPER_FLAG
|
||||
\ CMAKE_ASM_NASM_LINKER_WRAPPER_FLAG_SEP
|
||||
\ CMAKE_ASM_NASM_LINK_EXECUTABLE
|
||||
\ CMAKE_ASM_NASM_LINK_LIBRARY_FILE_FLAG
|
||||
\ CMAKE_ASM_NASM_LINK_LIBRARY_FLAG
|
||||
\ CMAKE_ASM_NASM_LINK_LIBRARY_SUFFIX
|
||||
\ CMAKE_ASM_NASM_OUTPUT_EXTENSION
|
||||
\ CMAKE_ASM_NASM_PLATFORM_ID
|
||||
\ CMAKE_ASM_NASM_SIMULATE_ID
|
||||
@@ -618,6 +646,7 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_AUTOMOC_DEPEND_FILTERS
|
||||
\ CMAKE_AUTOMOC_MACRO_NAMES
|
||||
\ CMAKE_AUTOMOC_MOC_OPTIONS
|
||||
\ CMAKE_AUTOMOC_PATH_PREFIX
|
||||
\ CMAKE_AUTOMOC_RELAXED_MODE
|
||||
\ CMAKE_AUTORCC
|
||||
\ CMAKE_AUTORCC_OPTIONS
|
||||
@@ -703,6 +732,9 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_CSharp_LINKER_WRAPPER_FLAG
|
||||
\ CMAKE_CSharp_LINKER_WRAPPER_FLAG_SEP
|
||||
\ CMAKE_CSharp_LINK_EXECUTABLE
|
||||
\ CMAKE_CSharp_LINK_LIBRARY_FILE_FLAG
|
||||
\ CMAKE_CSharp_LINK_LIBRARY_FLAG
|
||||
\ CMAKE_CSharp_LINK_LIBRARY_SUFFIX
|
||||
\ CMAKE_CSharp_OUTPUT_EXTENSION
|
||||
\ CMAKE_CSharp_PLATFORM_ID
|
||||
\ CMAKE_CSharp_SIMULATE_ID
|
||||
@@ -765,8 +797,12 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_CUDA_LINKER_WRAPPER_FLAG
|
||||
\ CMAKE_CUDA_LINKER_WRAPPER_FLAG_SEP
|
||||
\ CMAKE_CUDA_LINK_EXECUTABLE
|
||||
\ CMAKE_CUDA_LINK_LIBRARY_FILE_FLAG
|
||||
\ CMAKE_CUDA_LINK_LIBRARY_FLAG
|
||||
\ CMAKE_CUDA_LINK_LIBRARY_SUFFIX
|
||||
\ CMAKE_CUDA_OUTPUT_EXTENSION
|
||||
\ CMAKE_CUDA_PLATFORM_ID
|
||||
\ CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS
|
||||
\ CMAKE_CUDA_SEPARABLE_COMPILATION
|
||||
\ CMAKE_CUDA_SIMULATE_ID
|
||||
\ CMAKE_CUDA_SIMULATE_VERSION
|
||||
@@ -835,6 +871,9 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_CXX_LINKER_WRAPPER_FLAG
|
||||
\ CMAKE_CXX_LINKER_WRAPPER_FLAG_SEP
|
||||
\ CMAKE_CXX_LINK_EXECUTABLE
|
||||
\ CMAKE_CXX_LINK_LIBRARY_FILE_FLAG
|
||||
\ CMAKE_CXX_LINK_LIBRARY_FLAG
|
||||
\ CMAKE_CXX_LINK_LIBRARY_SUFFIX
|
||||
\ CMAKE_CXX_OUTPUT_EXTENSION
|
||||
\ CMAKE_CXX_PLATFORM_ID
|
||||
\ CMAKE_CXX_SIMULATE_ID
|
||||
@@ -897,6 +936,9 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_C_LINKER_WRAPPER_FLAG
|
||||
\ CMAKE_C_LINKER_WRAPPER_FLAG_SEP
|
||||
\ CMAKE_C_LINK_EXECUTABLE
|
||||
\ CMAKE_C_LINK_LIBRARY_FILE_FLAG
|
||||
\ CMAKE_C_LINK_LIBRARY_FLAG
|
||||
\ CMAKE_C_LINK_LIBRARY_SUFFIX
|
||||
\ CMAKE_C_OUTPUT_EXTENSION
|
||||
\ CMAKE_C_PLATFORM_ID
|
||||
\ CMAKE_C_SIMULATE_ID
|
||||
@@ -912,11 +954,13 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_DEBUG_TARGET_PROPERTIES
|
||||
\ CMAKE_DEPENDS_IN_PROJECT_ONLY
|
||||
\ CMAKE_DIRECTORY_LABELS
|
||||
\ CMAKE_DISABLE_PRECOMPILE_HEADERS
|
||||
\ CMAKE_DL_LIBS
|
||||
\ CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION
|
||||
\ CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES
|
||||
\ CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT
|
||||
\ CMAKE_ECLIPSE_MAKE_ARGUMENTS
|
||||
\ CMAKE_ECLIPSE_RESOURCE_ENCODING
|
||||
\ CMAKE_ECLIPSE_VERSION
|
||||
\ CMAKE_EDIT_COMMAND
|
||||
\ CMAKE_ENABLE_EXPORTS
|
||||
@@ -950,6 +994,12 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
|
||||
\ CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
|
||||
\ CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
|
||||
\ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH
|
||||
\ CMAKE_FIND_USE_CMAKE_PATH
|
||||
\ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH
|
||||
\ CMAKE_FIND_USE_PACKAGE_REGISTRY
|
||||
\ CMAKE_FIND_USE_PACKAGE_ROOT_PATH
|
||||
\ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH
|
||||
\ CMAKE_FOLDER
|
||||
\ CMAKE_FRAMEWORK
|
||||
\ CMAKE_FRAMEWORK_PATH
|
||||
@@ -1004,6 +1054,9 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_Fortran_LINKER_WRAPPER_FLAG
|
||||
\ CMAKE_Fortran_LINKER_WRAPPER_FLAG_SEP
|
||||
\ CMAKE_Fortran_LINK_EXECUTABLE
|
||||
\ CMAKE_Fortran_LINK_LIBRARY_FILE_FLAG
|
||||
\ CMAKE_Fortran_LINK_LIBRARY_FLAG
|
||||
\ CMAKE_Fortran_LINK_LIBRARY_SUFFIX
|
||||
\ CMAKE_Fortran_MODDIR_DEFAULT
|
||||
\ CMAKE_Fortran_MODDIR_FLAG
|
||||
\ CMAKE_Fortran_MODOUT_FLAG
|
||||
@@ -1050,6 +1103,7 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_INSTALL_NAME_DIR
|
||||
\ CMAKE_INSTALL_PREFIX
|
||||
\ CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT
|
||||
\ CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH
|
||||
\ CMAKE_INSTALL_RPATH
|
||||
\ CMAKE_INSTALL_RPATH_USE_LINK_PATH
|
||||
\ CMAKE_INTERNAL_PLATFORM_ABI
|
||||
@@ -1108,6 +1162,9 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_Java_LINKER_WRAPPER_FLAG
|
||||
\ CMAKE_Java_LINKER_WRAPPER_FLAG_SEP
|
||||
\ CMAKE_Java_LINK_EXECUTABLE
|
||||
\ CMAKE_Java_LINK_LIBRARY_FILE_FLAG
|
||||
\ CMAKE_Java_LINK_LIBRARY_FLAG
|
||||
\ CMAKE_Java_LINK_LIBRARY_SUFFIX
|
||||
\ CMAKE_Java_OUTPUT_EXTENSION
|
||||
\ CMAKE_Java_PLATFORM_ID
|
||||
\ CMAKE_Java_SIMULATE_ID
|
||||
@@ -1138,6 +1195,10 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_MAKE_PROGRAM
|
||||
\ CMAKE_MATCH_COUNT
|
||||
\ CMAKE_MAXIMUM_RECURSION_DEPTH
|
||||
\ CMAKE_MESSAGE_CONTEXT
|
||||
\ CMAKE_MESSAGE_CONTEXT_SHOW
|
||||
\ CMAKE_MESSAGE_INDENT
|
||||
\ CMAKE_MESSAGE_LOG_LEVEL
|
||||
\ CMAKE_MFC_FLAG
|
||||
\ CMAKE_MINIMUM_REQUIRED_VERSION
|
||||
\ CMAKE_MINOR_VERSION
|
||||
@@ -1223,6 +1284,9 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_RC_LINKER_WRAPPER_FLAG
|
||||
\ CMAKE_RC_LINKER_WRAPPER_FLAG_SEP
|
||||
\ CMAKE_RC_LINK_EXECUTABLE
|
||||
\ CMAKE_RC_LINK_LIBRARY_FILE_FLAG
|
||||
\ CMAKE_RC_LINK_LIBRARY_FLAG
|
||||
\ CMAKE_RC_LINK_LIBRARY_SUFFIX
|
||||
\ CMAKE_RC_OUTPUT_EXTENSION
|
||||
\ CMAKE_RC_PLATFORM_ID
|
||||
\ CMAKE_RC_SIMULATE_ID
|
||||
@@ -1322,7 +1386,11 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_Swift_LINKER_WRAPPER_FLAG
|
||||
\ CMAKE_Swift_LINKER_WRAPPER_FLAG_SEP
|
||||
\ CMAKE_Swift_LINK_EXECUTABLE
|
||||
\ CMAKE_Swift_LINK_LIBRARY_FILE_FLAG
|
||||
\ CMAKE_Swift_LINK_LIBRARY_FLAG
|
||||
\ CMAKE_Swift_LINK_LIBRARY_SUFFIX
|
||||
\ CMAKE_Swift_MODULE_DIRECTORY
|
||||
\ CMAKE_Swift_NUM_THREADS
|
||||
\ CMAKE_Swift_OUTPUT_EXTENSION
|
||||
\ CMAKE_Swift_PLATFORM_ID
|
||||
\ CMAKE_Swift_SIMULATE_ID
|
||||
@@ -1337,6 +1405,8 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
|
||||
\ CMAKE_TRY_COMPILE_TARGET_TYPE
|
||||
\ CMAKE_TWEAK_VERSION
|
||||
\ CMAKE_UNITY_BUILD
|
||||
\ CMAKE_UNITY_BUILD_BATCH_SIZE
|
||||
\ CMAKE_USER_MAKE_RULES_OVERRIDE
|
||||
\ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM
|
||||
\ CMAKE_USER_MAKE_RULES_OVERRIDE_ASM_MASM
|
||||
@@ -1365,6 +1435,7 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_VS_PLATFORM_NAME_DEFAULT
|
||||
\ CMAKE_VS_PLATFORM_TOOLSET
|
||||
\ CMAKE_VS_PLATFORM_TOOLSET_CUDA
|
||||
\ CMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR
|
||||
\ CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE
|
||||
\ CMAKE_VS_PLATFORM_TOOLSET_VERSION
|
||||
\ CMAKE_VS_SDK_EXCLUDE_DIRECTORIES
|
||||
@@ -1385,9 +1456,11 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_XCODE_PLATFORM_TOOLSET
|
||||
\ CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER
|
||||
\ CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
|
||||
\ CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING
|
||||
\ CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
|
||||
\ CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
|
||||
\ CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
|
||||
\ CMAKE_XCODE_SCHEME_ENVIRONMENT
|
||||
\ CMAKE_XCODE_SCHEME_GUARD_MALLOC
|
||||
\ CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
|
||||
\ CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES
|
||||
@@ -1403,7 +1476,6 @@ syn keyword cmakeVariable contained
|
||||
\ CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
|
||||
\ CPACK_INCLUDE_TOPLEVEL_DIRECTORY
|
||||
\ CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
|
||||
\ CPACK_INSTALL_SCRIPT
|
||||
\ CPACK_PACKAGING_INSTALL_PREFIX
|
||||
\ CPACK_SET_DESTDIR
|
||||
\ CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
|
||||
@@ -1480,6 +1552,283 @@ syn keyword cmakeVariable contained
|
||||
\ CTEST_UPDATE_VERSION_OVERRIDE
|
||||
\ CTEST_USE_LAUNCHERS
|
||||
\ CYGWIN
|
||||
\ DOXYGEN_ABBREVIATE_BRIEF
|
||||
\ DOXYGEN_ALIASES
|
||||
\ DOXYGEN_ALLEXTERNALS
|
||||
\ DOXYGEN_ALLOW_UNICODE_NAMES
|
||||
\ DOXYGEN_ALPHABETICAL_INDEX
|
||||
\ DOXYGEN_ALWAYS_DETAILED_SEC
|
||||
\ DOXYGEN_AUTOLINK_SUPPORT
|
||||
\ DOXYGEN_BINARY_TOC
|
||||
\ DOXYGEN_BRIEF_MEMBER_DESC
|
||||
\ DOXYGEN_BUILTIN_STL_SUPPORT
|
||||
\ DOXYGEN_CALLER_GRAPH
|
||||
\ DOXYGEN_CALL_GRAPH
|
||||
\ DOXYGEN_CASE_SENSE_NAMES
|
||||
\ DOXYGEN_CHM_FILE
|
||||
\ DOXYGEN_CHM_INDEX_ENCODING
|
||||
\ DOXYGEN_CITE_BIB_FILES
|
||||
\ DOXYGEN_CLANG_ASSISTED_PARSING
|
||||
\ DOXYGEN_CLANG_DATABASE_PATH
|
||||
\ DOXYGEN_CLANG_OPTIONS
|
||||
\ DOXYGEN_CLASS_DIAGRAMS
|
||||
\ DOXYGEN_CLASS_GRAPH
|
||||
\ DOXYGEN_COLLABORATION_GRAPH
|
||||
\ DOXYGEN_COLS_IN_ALPHA_INDEX
|
||||
\ DOXYGEN_COMPACT_LATEX
|
||||
\ DOXYGEN_COMPACT_RTF
|
||||
\ DOXYGEN_CPP_CLI_SUPPORT
|
||||
\ DOXYGEN_CREATE_SUBDIRS
|
||||
\ DOXYGEN_DIAFILE_DIRS
|
||||
\ DOXYGEN_DIA_PATH
|
||||
\ DOXYGEN_DIRECTORY_GRAPH
|
||||
\ DOXYGEN_DISABLE_INDEX
|
||||
\ DOXYGEN_DISTRIBUTE_GROUP_DOC
|
||||
\ DOXYGEN_DOCBOOK_OUTPUT
|
||||
\ DOXYGEN_DOCBOOK_PROGRAMLISTING
|
||||
\ DOXYGEN_DOCSET_BUNDLE_ID
|
||||
\ DOXYGEN_DOCSET_FEEDNAME
|
||||
\ DOXYGEN_DOCSET_PUBLISHER_ID
|
||||
\ DOXYGEN_DOCSET_PUBLISHER_NAME
|
||||
\ DOXYGEN_DOTFILE_DIRS
|
||||
\ DOXYGEN_DOT_CLEANUP
|
||||
\ DOXYGEN_DOT_FONTNAME
|
||||
\ DOXYGEN_DOT_FONTPATH
|
||||
\ DOXYGEN_DOT_FONTSIZE
|
||||
\ DOXYGEN_DOT_GRAPH_MAX_NODES
|
||||
\ DOXYGEN_DOT_IMAGE_FORMAT
|
||||
\ DOXYGEN_DOT_MULTI_TARGETS
|
||||
\ DOXYGEN_DOT_NUM_THREADS
|
||||
\ DOXYGEN_DOT_PATH
|
||||
\ DOXYGEN_DOT_TRANSPARENT
|
||||
\ DOXYGEN_DOXYFILE_ENCODING
|
||||
\ DOXYGEN_ECLIPSE_DOC_ID
|
||||
\ DOXYGEN_ENABLED_SECTIONS
|
||||
\ DOXYGEN_ENABLE_PREPROCESSING
|
||||
\ DOXYGEN_ENUM_VALUES_PER_LINE
|
||||
\ DOXYGEN_EXAMPLE_PATH
|
||||
\ DOXYGEN_EXAMPLE_PATTERNS
|
||||
\ DOXYGEN_EXAMPLE_RECURSIVE
|
||||
\ DOXYGEN_EXCLUDE
|
||||
\ DOXYGEN_EXCLUDE_PATTERNS
|
||||
\ DOXYGEN_EXCLUDE_SYMBOLS
|
||||
\ DOXYGEN_EXCLUDE_SYMLINKS
|
||||
\ DOXYGEN_EXPAND_AS_DEFINED
|
||||
\ DOXYGEN_EXPAND_ONLY_PREDEF
|
||||
\ DOXYGEN_EXTENSION_MAPPING
|
||||
\ DOXYGEN_EXTERNAL_GROUPS
|
||||
\ DOXYGEN_EXTERNAL_PAGES
|
||||
\ DOXYGEN_EXTERNAL_SEARCH
|
||||
\ DOXYGEN_EXTERNAL_SEARCH_ID
|
||||
\ DOXYGEN_EXTRACT_ALL
|
||||
\ DOXYGEN_EXTRACT_ANON_NSPACES
|
||||
\ DOXYGEN_EXTRACT_LOCAL_CLASSES
|
||||
\ DOXYGEN_EXTRACT_LOCAL_METHODS
|
||||
\ DOXYGEN_EXTRACT_PACKAGE
|
||||
\ DOXYGEN_EXTRACT_PRIVATE
|
||||
\ DOXYGEN_EXTRACT_PRIV_VIRTUAL
|
||||
\ DOXYGEN_EXTRACT_STATIC
|
||||
\ DOXYGEN_EXTRA_PACKAGES
|
||||
\ DOXYGEN_EXTRA_SEARCH_MAPPINGS
|
||||
\ DOXYGEN_EXT_LINKS_IN_WINDOW
|
||||
\ DOXYGEN_FILE_PATTERNS
|
||||
\ DOXYGEN_FILE_VERSION_FILTER
|
||||
\ DOXYGEN_FILTER_PATTERNS
|
||||
\ DOXYGEN_FILTER_SOURCE_FILES
|
||||
\ DOXYGEN_FILTER_SOURCE_PATTERNS
|
||||
\ DOXYGEN_FORCE_LOCAL_INCLUDES
|
||||
\ DOXYGEN_FORMULA_FONTSIZE
|
||||
\ DOXYGEN_FORMULA_TRANSPARENT
|
||||
\ DOXYGEN_FULL_PATH_NAMES
|
||||
\ DOXYGEN_GENERATE_AUTOGEN_DEF
|
||||
\ DOXYGEN_GENERATE_BUGLIST
|
||||
\ DOXYGEN_GENERATE_CHI
|
||||
\ DOXYGEN_GENERATE_DEPRECATEDLIST
|
||||
\ DOXYGEN_GENERATE_DOCBOOK
|
||||
\ DOXYGEN_GENERATE_DOCSET
|
||||
\ DOXYGEN_GENERATE_ECLIPSEHELP
|
||||
\ DOXYGEN_GENERATE_HTML
|
||||
\ DOXYGEN_GENERATE_HTMLHELP
|
||||
\ DOXYGEN_GENERATE_LATEX
|
||||
\ DOXYGEN_GENERATE_LEGEND
|
||||
\ DOXYGEN_GENERATE_MAN
|
||||
\ DOXYGEN_GENERATE_PERLMOD
|
||||
\ DOXYGEN_GENERATE_QHP
|
||||
\ DOXYGEN_GENERATE_RTF
|
||||
\ DOXYGEN_GENERATE_TAGFILE
|
||||
\ DOXYGEN_GENERATE_TESTLIST
|
||||
\ DOXYGEN_GENERATE_TODOLIST
|
||||
\ DOXYGEN_GENERATE_TREEVIEW
|
||||
\ DOXYGEN_GENERATE_XML
|
||||
\ DOXYGEN_GRAPHICAL_HIERARCHY
|
||||
\ DOXYGEN_GROUP_GRAPHS
|
||||
\ DOXYGEN_GROUP_NESTED_COMPOUNDS
|
||||
\ DOXYGEN_HAVE_DOT
|
||||
\ DOXYGEN_HHC_LOCATION
|
||||
\ DOXYGEN_HIDE_COMPOUND_REFERENCE
|
||||
\ DOXYGEN_HIDE_FRIEND_COMPOUNDS
|
||||
\ DOXYGEN_HIDE_IN_BODY_DOCS
|
||||
\ DOXYGEN_HIDE_SCOPE_NAMES
|
||||
\ DOXYGEN_HIDE_UNDOC_CLASSES
|
||||
\ DOXYGEN_HIDE_UNDOC_MEMBERS
|
||||
\ DOXYGEN_HIDE_UNDOC_RELATIONS
|
||||
\ DOXYGEN_HTML_COLORSTYLE_GAMMA
|
||||
\ DOXYGEN_HTML_COLORSTYLE_HUE
|
||||
\ DOXYGEN_HTML_COLORSTYLE_SAT
|
||||
\ DOXYGEN_HTML_DYNAMIC_MENUS
|
||||
\ DOXYGEN_HTML_DYNAMIC_SECTIONS
|
||||
\ DOXYGEN_HTML_EXTRA_FILES
|
||||
\ DOXYGEN_HTML_EXTRA_STYLESHEET
|
||||
\ DOXYGEN_HTML_FILE_EXTENSION
|
||||
\ DOXYGEN_HTML_FOOTER
|
||||
\ DOXYGEN_HTML_HEADER
|
||||
\ DOXYGEN_HTML_INDEX_NUM_ENTRIES
|
||||
\ DOXYGEN_HTML_OUTPUT
|
||||
\ DOXYGEN_HTML_STYLESHEET
|
||||
\ DOXYGEN_HTML_TIMESTAMP
|
||||
\ DOXYGEN_IDL_PROPERTY_SUPPORT
|
||||
\ DOXYGEN_IGNORE_PREFIX
|
||||
\ DOXYGEN_IMAGE_PATH
|
||||
\ DOXYGEN_INCLUDED_BY_GRAPH
|
||||
\ DOXYGEN_INCLUDE_FILE_PATTERNS
|
||||
\ DOXYGEN_INCLUDE_GRAPH
|
||||
\ DOXYGEN_INCLUDE_PATH
|
||||
\ DOXYGEN_INHERIT_DOCS
|
||||
\ DOXYGEN_INLINE_GROUPED_CLASSES
|
||||
\ DOXYGEN_INLINE_INFO
|
||||
\ DOXYGEN_INLINE_INHERITED_MEMB
|
||||
\ DOXYGEN_INLINE_SIMPLE_STRUCTS
|
||||
\ DOXYGEN_INLINE_SOURCES
|
||||
\ DOXYGEN_INPUT
|
||||
\ DOXYGEN_INPUT_ENCODING
|
||||
\ DOXYGEN_INPUT_FILTER
|
||||
\ DOXYGEN_INTERACTIVE_SVG
|
||||
\ DOXYGEN_INTERNAL_DOCS
|
||||
\ DOXYGEN_JAVADOC_AUTOBRIEF
|
||||
\ DOXYGEN_JAVADOC_BANNER
|
||||
\ DOXYGEN_LATEX_BATCHMODE
|
||||
\ DOXYGEN_LATEX_BIB_STYLE
|
||||
\ DOXYGEN_LATEX_CMD_NAME
|
||||
\ DOXYGEN_LATEX_EMOJI_DIRECTORY
|
||||
\ DOXYGEN_LATEX_EXTRA_FILES
|
||||
\ DOXYGEN_LATEX_EXTRA_STYLESHEET
|
||||
\ DOXYGEN_LATEX_FOOTER
|
||||
\ DOXYGEN_LATEX_HEADER
|
||||
\ DOXYGEN_LATEX_HIDE_INDICES
|
||||
\ DOXYGEN_LATEX_MAKEINDEX_CMD
|
||||
\ DOXYGEN_LATEX_OUTPUT
|
||||
\ DOXYGEN_LATEX_SOURCE_CODE
|
||||
\ DOXYGEN_LATEX_TIMESTAMP
|
||||
\ DOXYGEN_LAYOUT_FILE
|
||||
\ DOXYGEN_LOOKUP_CACHE_SIZE
|
||||
\ DOXYGEN_MACRO_EXPANSION
|
||||
\ DOXYGEN_MAKEINDEX_CMD_NAME
|
||||
\ DOXYGEN_MAN_EXTENSION
|
||||
\ DOXYGEN_MAN_LINKS
|
||||
\ DOXYGEN_MAN_OUTPUT
|
||||
\ DOXYGEN_MAN_SUBDIR
|
||||
\ DOXYGEN_MARKDOWN_SUPPORT
|
||||
\ DOXYGEN_MATHJAX_CODEFILE
|
||||
\ DOXYGEN_MATHJAX_EXTENSIONS
|
||||
\ DOXYGEN_MATHJAX_FORMAT
|
||||
\ DOXYGEN_MATHJAX_RELPATH
|
||||
\ DOXYGEN_MAX_DOT_GRAPH_DEPTH
|
||||
\ DOXYGEN_MAX_INITIALIZER_LINES
|
||||
\ DOXYGEN_MSCFILE_DIRS
|
||||
\ DOXYGEN_MULTILINE_CPP_IS_BRIEF
|
||||
\ DOXYGEN_OPTIMIZE_FOR_FORTRAN
|
||||
\ DOXYGEN_OPTIMIZE_OUTPUT_FOR_C
|
||||
\ DOXYGEN_OPTIMIZE_OUTPUT_JAVA
|
||||
\ DOXYGEN_OPTIMIZE_OUTPUT_SLICE
|
||||
\ DOXYGEN_OPTIMIZE_OUTPUT_VHDL
|
||||
\ DOXYGEN_OUTPUT_DIRECTORY
|
||||
\ DOXYGEN_OUTPUT_LANGUAGE
|
||||
\ DOXYGEN_OUTPUT_TEXT_DIRECTION
|
||||
\ DOXYGEN_PAPER_TYPE
|
||||
\ DOXYGEN_PDF_HYPERLINKS
|
||||
\ DOXYGEN_PERLMOD_LATEX
|
||||
\ DOXYGEN_PERLMOD_MAKEVAR_PREFIX
|
||||
\ DOXYGEN_PERLMOD_PRETTY
|
||||
\ DOXYGEN_PLANTUML_CFG_FILE
|
||||
\ DOXYGEN_PLANTUML_INCLUDE_PATH
|
||||
\ DOXYGEN_PLANTUML_JAR_PATH
|
||||
\ DOXYGEN_PREDEFINED
|
||||
\ DOXYGEN_PROJECT_BRIEF
|
||||
\ DOXYGEN_PROJECT_LOGO
|
||||
\ DOXYGEN_PROJECT_NAME
|
||||
\ DOXYGEN_PROJECT_NUMBER
|
||||
\ DOXYGEN_QCH_FILE
|
||||
\ DOXYGEN_QHG_LOCATION
|
||||
\ DOXYGEN_QHP_CUST_FILTER_ATTRS
|
||||
\ DOXYGEN_QHP_CUST_FILTER_NAME
|
||||
\ DOXYGEN_QHP_NAMESPACE
|
||||
\ DOXYGEN_QHP_SECT_FILTER_ATTRS
|
||||
\ DOXYGEN_QHP_VIRTUAL_FOLDER
|
||||
\ DOXYGEN_QT_AUTOBRIEF
|
||||
\ DOXYGEN_QUIET
|
||||
\ DOXYGEN_RECURSIVE
|
||||
\ DOXYGEN_REFERENCED_BY_RELATION
|
||||
\ DOXYGEN_REFERENCES_LINK_SOURCE
|
||||
\ DOXYGEN_REFERENCES_RELATION
|
||||
\ DOXYGEN_REPEAT_BRIEF
|
||||
\ DOXYGEN_RTF_EXTENSIONS_FILE
|
||||
\ DOXYGEN_RTF_HYPERLINKS
|
||||
\ DOXYGEN_RTF_OUTPUT
|
||||
\ DOXYGEN_RTF_SOURCE_CODE
|
||||
\ DOXYGEN_RTF_STYLESHEET_FILE
|
||||
\ DOXYGEN_SEARCHDATA_FILE
|
||||
\ DOXYGEN_SEARCHENGINE
|
||||
\ DOXYGEN_SEARCHENGINE_URL
|
||||
\ DOXYGEN_SEARCH_INCLUDES
|
||||
\ DOXYGEN_SEPARATE_MEMBER_PAGES
|
||||
\ DOXYGEN_SERVER_BASED_SEARCH
|
||||
\ DOXYGEN_SHORT_NAMES
|
||||
\ DOXYGEN_SHOW_FILES
|
||||
\ DOXYGEN_SHOW_GROUPED_MEMB_INC
|
||||
\ DOXYGEN_SHOW_INCLUDE_FILES
|
||||
\ DOXYGEN_SHOW_NAMESPACES
|
||||
\ DOXYGEN_SHOW_USED_FILES
|
||||
\ DOXYGEN_SIP_SUPPORT
|
||||
\ DOXYGEN_SKIP_FUNCTION_MACROS
|
||||
\ DOXYGEN_SORT_BRIEF_DOCS
|
||||
\ DOXYGEN_SORT_BY_SCOPE_NAME
|
||||
\ DOXYGEN_SORT_GROUP_NAMES
|
||||
\ DOXYGEN_SORT_MEMBERS_CTORS_1ST
|
||||
\ DOXYGEN_SORT_MEMBER_DOCS
|
||||
\ DOXYGEN_SOURCE_BROWSER
|
||||
\ DOXYGEN_SOURCE_TOOLTIPS
|
||||
\ DOXYGEN_STRICT_PROTO_MATCHING
|
||||
\ DOXYGEN_STRIP_CODE_COMMENTS
|
||||
\ DOXYGEN_STRIP_FROM_INC_PATH
|
||||
\ DOXYGEN_STRIP_FROM_PATH
|
||||
\ DOXYGEN_SUBGROUPING
|
||||
\ DOXYGEN_TAB_SIZE
|
||||
\ DOXYGEN_TAGFILES
|
||||
\ DOXYGEN_TCL_SUBST
|
||||
\ DOXYGEN_TEMPLATE_RELATIONS
|
||||
\ DOXYGEN_TOC_EXPAND
|
||||
\ DOXYGEN_TOC_INCLUDE_HEADINGS
|
||||
\ DOXYGEN_TREEVIEW_WIDTH
|
||||
\ DOXYGEN_TYPEDEF_HIDES_STRUCT
|
||||
\ DOXYGEN_UML_LIMIT_NUM_FIELDS
|
||||
\ DOXYGEN_UML_LOOK
|
||||
\ DOXYGEN_USE_HTAGS
|
||||
\ DOXYGEN_USE_MATHJAX
|
||||
\ DOXYGEN_USE_MDFILE_AS_MAINPAGE
|
||||
\ DOXYGEN_USE_PDFLATEX
|
||||
\ DOXYGEN_VERBATIM_HEADERS
|
||||
\ DOXYGEN_VERBATIM_VARS
|
||||
\ DOXYGEN_VERSION
|
||||
\ DOXYGEN_WARNINGS
|
||||
\ DOXYGEN_WARN_AS_ERROR
|
||||
\ DOXYGEN_WARN_FORMAT
|
||||
\ DOXYGEN_WARN_IF_DOC_ERROR
|
||||
\ DOXYGEN_WARN_IF_UNDOCUMENTED
|
||||
\ DOXYGEN_WARN_LOGFILE
|
||||
\ DOXYGEN_WARN_NO_PARAMDOC
|
||||
\ DOXYGEN_XML_NS_MEMB_FILE_SCOPE
|
||||
\ DOXYGEN_XML_OUTPUT
|
||||
\ DOXYGEN_XML_PROGRAMLISTING
|
||||
\ ENV
|
||||
\ EXECUTABLE_OUTPUT_PATH
|
||||
\ GHS-MULTI
|
||||
@@ -1658,6 +2007,7 @@ syn keyword cmakeKWadd_custom_command contained
|
||||
\ MAIN_DEPENDENCY
|
||||
\ NOT
|
||||
\ OUTPUT
|
||||
\ PATH
|
||||
\ POST_BUILD
|
||||
\ PRE_BUILD
|
||||
\ PRE_LINK
|
||||
@@ -1682,7 +2032,9 @@ syn keyword cmakeKWadd_custom_target contained
|
||||
\ JOB_POOL
|
||||
\ JOB_POOLS
|
||||
\ JOIN
|
||||
\ PATH
|
||||
\ SOURCES
|
||||
\ TARGET_FILE
|
||||
\ TARGET_PROPERTY
|
||||
\ USES_TERMINAL
|
||||
\ VERBATIM
|
||||
@@ -1762,11 +2114,13 @@ syn keyword cmakeKWadd_subdirectory contained
|
||||
syn keyword cmakeKWadd_test contained
|
||||
\ BUILD_TESTING
|
||||
\ COMMAND
|
||||
\ COMMAND_EXPAND_LISTS
|
||||
\ CONFIGURATIONS
|
||||
\ FAIL_REGULAR_EXPRESSION
|
||||
\ NAME
|
||||
\ OFF
|
||||
\ PASS_REGULAR_EXPRESSION
|
||||
\ SKIP_REGULAR_EXPRESSION
|
||||
\ TARGET_FILE
|
||||
\ WILL_FAIL
|
||||
\ WORKING_DIRECTORY
|
||||
@@ -1921,6 +2275,7 @@ syn keyword cmakeKWctest_run_script contained
|
||||
|
||||
syn keyword cmakeKWctest_start contained
|
||||
\ APPEND
|
||||
\ GROUP
|
||||
\ QUIET
|
||||
\ TAG
|
||||
\ TRACK
|
||||
@@ -1952,6 +2307,7 @@ syn keyword cmakeKWctest_test contained
|
||||
\ EXCLUDE_FIXTURE_CLEANUP
|
||||
\ EXCLUDE_FIXTURE_SETUP
|
||||
\ EXCLUDE_LABEL
|
||||
\ HARDWARE_SPEC_FILE
|
||||
\ INCLUDE
|
||||
\ INCLUDE_LABEL
|
||||
\ OFF
|
||||
@@ -1991,9 +2347,17 @@ syn keyword cmakeKWdefine_property contained
|
||||
\ TEST
|
||||
\ VARIABLE
|
||||
|
||||
syn keyword cmakeKWdoxygen_add_docs contained
|
||||
\ ALL
|
||||
\ COMMENT
|
||||
\ USE_STAMP_FILE
|
||||
\ WORKING_DIRECTORY
|
||||
|
||||
syn keyword cmakeKWenable_language contained
|
||||
\ ASM
|
||||
\ CUDA
|
||||
\ OBJC
|
||||
\ OBJCXX
|
||||
\ OPTIONAL
|
||||
|
||||
syn keyword cmakeKWenable_testing contained
|
||||
@@ -2057,20 +2421,30 @@ syn keyword cmakeKWfile contained
|
||||
\ ALGO
|
||||
\ APPEND
|
||||
\ ASCII
|
||||
\ BUNDLE_EXECTUBLE
|
||||
\ BUNDLE_EXECUTABLE
|
||||
\ CMAKE_GET_RUNTIME_DEPENDENCIES_COMMAND
|
||||
\ CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM
|
||||
\ CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL
|
||||
\ CMAKE_TLS_CAINFO
|
||||
\ CMAKE_TLS_VERIFY
|
||||
\ CODE
|
||||
\ CONDITION
|
||||
\ CONFIG
|
||||
\ CONFIGURE_DEPENDS
|
||||
\ CONFLICTING_DEPENDENCIES_PREFIX
|
||||
\ CONFLICTING_DEPENDENICES_PREFIX
|
||||
\ CONTENT
|
||||
\ COPY
|
||||
\ COPY_ON_ERROR
|
||||
\ CREATE_LINK
|
||||
\ DESTINATION
|
||||
\ DIRECTORIES
|
||||
\ DIRECTORY_PERMISSIONS
|
||||
\ DLL
|
||||
\ DOWNLOAD
|
||||
\ ENCODING
|
||||
\ EXCLUDE
|
||||
\ EXECUTABLES
|
||||
\ EXPECTED_HASH
|
||||
\ FILES_MATCHING
|
||||
\ FILE_PERMISSIONS
|
||||
@@ -2078,6 +2452,7 @@ syn keyword cmakeKWfile contained
|
||||
\ FOLLOW_SYMLINK_CHAIN
|
||||
\ FUNCTION
|
||||
\ GENERATE
|
||||
\ GET_RUNTIME_DEPENDENCIES
|
||||
\ GLOB
|
||||
\ GLOB_RECURSE
|
||||
\ GUARD
|
||||
@@ -2091,6 +2466,7 @@ syn keyword cmakeKWfile contained
|
||||
\ LENGTH_MAXIMUM
|
||||
\ LENGTH_MINIMUM
|
||||
\ LF
|
||||
\ LIBRARIES
|
||||
\ LIMIT
|
||||
\ LIMIT_COUNT
|
||||
\ LIMIT_INPUT
|
||||
@@ -2099,6 +2475,8 @@ syn keyword cmakeKWfile contained
|
||||
\ LOCK
|
||||
\ LOG
|
||||
\ MAKE_DIRECTORY
|
||||
\ MODULES
|
||||
\ MYLIBRARY
|
||||
\ NETRC
|
||||
\ NETRC_FILE
|
||||
\ NEWLINE_CONSUME
|
||||
@@ -2110,6 +2488,10 @@ syn keyword cmakeKWfile contained
|
||||
\ OPTIONAL
|
||||
\ OUTPUT
|
||||
\ PATTERN
|
||||
\ POST_EXCLUDE_REGEXES
|
||||
\ POST_INCLUDE_REGEXES
|
||||
\ PRE_EXCLUDE_REGEXES
|
||||
\ PRE_INCLUDE_REGEXES
|
||||
\ PROCESS
|
||||
\ READ
|
||||
\ READ_SYMLINK
|
||||
@@ -2120,11 +2502,17 @@ syn keyword cmakeKWfile contained
|
||||
\ REMOVE_RECURSE
|
||||
\ RENAME
|
||||
\ REQUIRED
|
||||
\ RESOLVED_DEPENDENCIES_VAR
|
||||
\ RESULT
|
||||
\ RESULT_VARIABLE
|
||||
\ RPATH
|
||||
\ RUNPATH
|
||||
\ SCRIPT
|
||||
\ SHARED
|
||||
\ SHOW_PROGRESS
|
||||
\ SIZE
|
||||
\ SSL
|
||||
\ STATIC
|
||||
\ STATUS
|
||||
\ STRINGS
|
||||
\ SYMBOLIC
|
||||
@@ -2135,6 +2523,7 @@ syn keyword cmakeKWfile contained
|
||||
\ TOUCH_NOCREATE
|
||||
\ TO_CMAKE_PATH
|
||||
\ TO_NATIVE_PATH
|
||||
\ UNRESOLVED_DEPENDENCIES_VAR
|
||||
\ UPLOAD
|
||||
\ URL
|
||||
\ USERPWD
|
||||
@@ -2142,11 +2531,13 @@ syn keyword cmakeKWfile contained
|
||||
\ UTC
|
||||
\ UTF
|
||||
\ WRITE
|
||||
\ _FILENAMES
|
||||
|
||||
syn keyword cmakeKWfind_file contained
|
||||
\ CMAKE_FIND_ROOT_PATH_BOTH
|
||||
\ DOC
|
||||
\ DVAR
|
||||
\ FALSE
|
||||
\ HINTS
|
||||
\ INCLUDE
|
||||
\ NAMES
|
||||
@@ -2166,8 +2557,9 @@ syn keyword cmakeKWfind_library contained
|
||||
\ CMAKE_FIND_ROOT_PATH_BOTH
|
||||
\ DOC
|
||||
\ DVAR
|
||||
\ FALSE
|
||||
\ HINTS
|
||||
\ LIB
|
||||
\ INCLUDE
|
||||
\ NAMES
|
||||
\ NAMES_PER_DIR
|
||||
\ NO_CMAKE_ENVIRONMENT_PATH
|
||||
@@ -2193,6 +2585,7 @@ syn keyword cmakeKWfind_package contained
|
||||
\ DEC
|
||||
\ DVAR
|
||||
\ EXACT
|
||||
\ FALSE
|
||||
\ FRAMEWORK
|
||||
\ HINTS
|
||||
\ MODULE
|
||||
@@ -2244,6 +2637,7 @@ syn keyword cmakeKWfind_path contained
|
||||
\ CMAKE_FIND_ROOT_PATH_BOTH
|
||||
\ DOC
|
||||
\ DVAR
|
||||
\ FALSE
|
||||
\ HINTS
|
||||
\ INCLUDE
|
||||
\ NAMES
|
||||
@@ -2263,6 +2657,7 @@ syn keyword cmakeKWfind_program contained
|
||||
\ CMAKE_FIND_ROOT_PATH_BOTH
|
||||
\ DOC
|
||||
\ DVAR
|
||||
\ FALSE
|
||||
\ HINTS
|
||||
\ NAMES
|
||||
\ NAMES_PER_DIR
|
||||
@@ -2413,6 +2808,7 @@ syn keyword cmakeKWinclude_guard contained
|
||||
|
||||
syn keyword cmakeKWinstall contained
|
||||
\ AFTER
|
||||
\ AIX
|
||||
\ APT
|
||||
\ ARCHIVE
|
||||
\ BEFORE
|
||||
@@ -2446,6 +2842,7 @@ syn keyword cmakeKWinstall contained
|
||||
\ DIRECTORY_PERMISSIONS
|
||||
\ DLL
|
||||
\ DOC
|
||||
\ ENABLE_EXPORTS
|
||||
\ EXCLUDE_FROM_ALL
|
||||
\ EXPORT
|
||||
\ EXPORT_ANDROID_MK
|
||||
@@ -2627,12 +3024,14 @@ syn keyword cmakeKWproject contained
|
||||
\ LANGUAGES
|
||||
\ NAME
|
||||
\ NONE
|
||||
\ OBJC
|
||||
\ OBJCXX
|
||||
\ PROJECT
|
||||
\ VERSION
|
||||
\ _BINARY_DIR
|
||||
\ _DESCRIPTION
|
||||
\ _HOMEPAGE_URL
|
||||
\ _INCLUDE
|
||||
\ _INCLUDE_BEFORE
|
||||
\ _SOURCE_DIR
|
||||
\ _VERSION
|
||||
\ _VERSION_MAJOR
|
||||
@@ -2855,6 +3254,22 @@ syn keyword cmakeKWtarget_link_options contained
|
||||
\ _LINKER_WRAPPER_FLAG
|
||||
\ _LINKER_WRAPPER_FLAG_SEP
|
||||
|
||||
syn keyword cmakeKWtarget_precompile_headers contained
|
||||
\ ALIAS
|
||||
\ COMPILE_LANGUAGE
|
||||
\ DISABLE_PRECOMPILE_HEADERS
|
||||
\ FI
|
||||
\ GCC
|
||||
\ IMPORTED
|
||||
\ INTERFACE
|
||||
\ INTERFACE_PRECOMPILE_HEADERS
|
||||
\ PRECOMPILE_HEADERS
|
||||
\ PRECOMPILE_HEADERS_REUSE_FROM
|
||||
\ PRIVATE
|
||||
\ PUBLIC
|
||||
\ REUSE_FROM
|
||||
\ SKIP_PRECOMPILE_HEADERS
|
||||
|
||||
syn keyword cmakeKWtarget_sources contained
|
||||
\ ALIAS
|
||||
\ IMPORTED
|
||||
@@ -3007,6 +3422,10 @@ syn keyword cmakeGeneratorExpressions contained
|
||||
\ MAP_IMPORTED_CONFIG_
|
||||
\ NO
|
||||
\ NOT
|
||||
\ OBJCXX_COMPILER_ID
|
||||
\ OBJCXX_COMPILER_VERSION
|
||||
\ OBJC_COMPILER_ID
|
||||
\ OBJC_COMPILER_VERSION
|
||||
\ OFF
|
||||
\ OLD_COMPILER
|
||||
\ OUTPUT_NAME
|
||||
@@ -3157,6 +3576,7 @@ syn keyword cmakeCommand
|
||||
\ target_link_directories
|
||||
\ target_link_libraries
|
||||
\ target_link_options
|
||||
\ target_precompile_headers
|
||||
\ target_sources
|
||||
\ try_compile
|
||||
\ try_run
|
||||
@@ -3252,6 +3672,7 @@ hi def link cmakeKWctest_test ModeMsg
|
||||
hi def link cmakeKWctest_update ModeMsg
|
||||
hi def link cmakeKWctest_upload ModeMsg
|
||||
hi def link cmakeKWdefine_property ModeMsg
|
||||
hi def link cmakeKWdoxygen_add_docs ModeMsg
|
||||
hi def link cmakeKWenable_language ModeMsg
|
||||
hi def link cmakeKWenable_testing ModeMsg
|
||||
hi def link cmakeKWexec_program ModeMsg
|
||||
@@ -3313,6 +3734,7 @@ hi def link cmakeKWtarget_include_directories ModeMsg
|
||||
hi def link cmakeKWtarget_link_directories ModeMsg
|
||||
hi def link cmakeKWtarget_link_libraries ModeMsg
|
||||
hi def link cmakeKWtarget_link_options ModeMsg
|
||||
hi def link cmakeKWtarget_precompile_headers ModeMsg
|
||||
hi def link cmakeKWtarget_sources ModeMsg
|
||||
hi def link cmakeKWtry_compile ModeMsg
|
||||
hi def link cmakeKWtry_run ModeMsg
|
||||
|
||||
@@ -9,7 +9,7 @@ command -nargs=+ HiLink hi def link <args>
|
||||
|
||||
"Dollar sign is permitted anywhere in an identifier
|
||||
setlocal iskeyword-=$
|
||||
if main_syntax == 'typescript' || main_syntax == 'typescript.tsx'
|
||||
if main_syntax == 'typescript' || main_syntax == 'typescriptreact'
|
||||
setlocal iskeyword+=$
|
||||
" syntax cluster htmlJavaScript contains=TOP
|
||||
endif
|
||||
@@ -111,6 +111,7 @@ if exists("did_typescript_hilink")
|
||||
HiLink typescriptMethodAccessor Operator
|
||||
|
||||
HiLink typescriptAsyncFuncKeyword Keyword
|
||||
HiLink typescriptObjectAsyncKeyword Keyword
|
||||
HiLink typescriptAsyncFor Keyword
|
||||
HiLink typescriptFuncKeyword Keyword
|
||||
HiLink typescriptAsyncFunc Keyword
|
||||
@@ -155,6 +156,7 @@ if exists("did_typescript_hilink")
|
||||
HiLink typescriptTypeReference Identifier
|
||||
HiLink typescriptConstructor Keyword
|
||||
HiLink typescriptDecorator Special
|
||||
HiLink typescriptAssertType Keyword
|
||||
|
||||
highlight link typeScript NONE
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'c/c++') == -1
|
||||
" Language: C++
|
||||
" Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp)
|
||||
" Previous Maintainer: Ken Shan <ccshan@post.harvard.edu>
|
||||
" Last Change: 2017 Jun 05
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
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_LLONG_LOCK_FREE ATOMIC_POINTER_LOCK_FREE
|
||||
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
|
||||
|
||||
" C++ 14 extensions
|
||||
@@ -54,6 +57,21 @@ if !exists("cpp_no_cpp14")
|
||||
syn case match
|
||||
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++
|
||||
syn match cppMinMax "[<>]?"
|
||||
|
||||
@@ -72,6 +90,7 @@ hi def link cppConstant Constant
|
||||
hi def link cppRawStringDelimiter Delimiter
|
||||
hi def link cppRawString String
|
||||
hi def link cppNumber Number
|
||||
hi def link cppModule Include
|
||||
|
||||
let b:current_syntax = "cpp"
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ syntax keyword dartConstant null
|
||||
syntax keyword dartTypedef this super class typedef enum mixin
|
||||
syntax keyword dartOperator new is as in
|
||||
syntax match dartOperator "+=\=\|-=\=\|*=\=\|/=\=\|%=\=\|\~/=\=\|<<=\=\|>>=\=\|[<>]=\=\|===\=\|\!==\=\|&=\=\|\^=\=\||=\=\|||\|&&\|\[\]=\=\|=>\|!\|\~\|?\|:"
|
||||
syntax keyword dartType void var bool int double num dynamic
|
||||
syntax keyword dartCoreType void var dynamic
|
||||
syntax keyword dartStatement return
|
||||
syntax keyword dartStorageClass static abstract final const factory
|
||||
syntax keyword dartExceptions throw rethrow try on catch finally
|
||||
@@ -51,27 +51,26 @@ syntax match dartLibrary "^\(library\|part of\|part\)\>"
|
||||
syntax match dartMetadata "@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>"
|
||||
|
||||
" Numbers
|
||||
syntax match dartNumber "\<\d\+\(\.\d\+\)\=\>"
|
||||
syntax match dartNumber "\<\d\+\(\.\d\+\)\=\>"
|
||||
|
||||
" User Types
|
||||
if !exists('dart_highlight_types') || dart_highlight_types
|
||||
syntax match dartTypeName "\<[A-Z]\w*\>\|\<_[A-Z]\w*\>"
|
||||
endif
|
||||
syntax match dartUserType "\<_\?\u[[:alnum:]_\$]*\>"
|
||||
|
||||
" Core libraries
|
||||
if !exists('dart_corelib_highlight') || dart_corelib_highlight
|
||||
syntax keyword dartCoreClasses BidirectionalIterator Comparable DateTime
|
||||
\ Duration Expando Function Invocation Iterable Iterator List Map Match
|
||||
\ Object Pattern RegExp RuneIterator Runes Set StackTrace Stopwatch String
|
||||
\ StringBuffer StringSink Symbol Type
|
||||
syntax keyword dartCoreTypedefs Comparator
|
||||
syntax keyword dartCoreExceptions AbstractClassInstantiationError
|
||||
\ ArgumentError AssertionError CastError ConcurrentModificationError
|
||||
\ Error Exception FallThroughError FormatException
|
||||
\ IntegerDivisionByZeroException NoSuchMethodError NullThrownError
|
||||
\ OutOfMemoryError RangeError RuntimeError StackOverflowError StateError
|
||||
\ TypeError UnimplementedError UnsupportedError
|
||||
endif
|
||||
" Function highlighting
|
||||
syntax match dartFunction "\zs\<\(_\?\l[[:alnum:]_\$]*\)\>*\s*\ze("
|
||||
|
||||
" SDK libraries
|
||||
syntax keyword dartSdkClass BidirectionalIterator Comparable DateTime
|
||||
\ Duration Expando Function Invocation Iterable Iterator List Map Match
|
||||
\ Object Pattern RegExp RuneIterator Runes Set StackTrace Stopwatch String
|
||||
\ StringBuffer StringSink Symbol Type bool int double num
|
||||
syntax keyword dartSdkTypedef Comparator
|
||||
syntax keyword dartSdkException AbstractClassInstantiationError
|
||||
\ ArgumentError AssertionError CastError ConcurrentModificationError
|
||||
\ Error Exception FallThroughError FormatException
|
||||
\ IntegerDivisionByZeroException NoSuchMethodError NullThrownError
|
||||
\ OutOfMemoryError RangeError RuntimeError StackOverflowError StateError
|
||||
\ TypeError UnimplementedError UnsupportedError
|
||||
|
||||
" Comments
|
||||
syntax keyword dartTodo contained TODO FIXME XXX
|
||||
@@ -119,21 +118,23 @@ highlight default link dartLineComment Comment
|
||||
highlight default link dartLineDocComment Comment
|
||||
highlight default link dartShebangLine Comment
|
||||
highlight default link dartConstant Constant
|
||||
highlight default link dartTypedef Typedef
|
||||
highlight default link dartTodo Todo
|
||||
highlight default link dartKeyword Keyword
|
||||
highlight default link dartType Type
|
||||
highlight default link dartTypeName Type
|
||||
highlight default link dartInterpolation PreProc
|
||||
highlight default link dartDocLink SpecialComment
|
||||
highlight default link dartSpecialChar SpecialChar
|
||||
highlight default link dartLibrary Include
|
||||
highlight default link dartUri String
|
||||
highlight default link dartCombinator Keyword
|
||||
highlight default link dartCoreClasses Type
|
||||
highlight default link dartCoreTypedefs Typedef
|
||||
highlight default link dartCoreExceptions Exception
|
||||
highlight default link dartMetadata PreProc
|
||||
highlight default link dartSdkTypedef Typedef
|
||||
highlight default link dartTypedef Typedef
|
||||
highlight default link dartSdkException Exception
|
||||
highlight default link dartSdkClass dartType
|
||||
highlight default link dartCoreType dartType
|
||||
highlight default link dartUserType dartType
|
||||
highlight default link dartType Type
|
||||
highlight default link dartFunction Function
|
||||
|
||||
let b:current_syntax = "dart"
|
||||
let b:spell_options = "contained"
|
||||
|
||||
@@ -6,7 +6,7 @@ if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
syntax match dhallInterpolation "\v\$\{[^\}]*\}"
|
||||
syntax match dhallInterpolation "\v\$\{([^\}]|\\n)*\}"
|
||||
syntax keyword dhallTodo TODO FIXME
|
||||
syntax match dhallBrackets "[<>|]"
|
||||
syntax match dhallOperator "+\|*\|#"
|
||||
@@ -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 keyword dhallBool True False
|
||||
syntax match dhallHash "sha256:[a-f0-9]+"
|
||||
|
||||
highlight link dhallSingleSpecial Special
|
||||
highlight link dhallIndex Special
|
||||
@@ -60,6 +61,7 @@ highlight link dhallType Structure
|
||||
highlight link dhallParens Special
|
||||
highlight link dhallComment Comment
|
||||
highlight link dhallMultilineComment Comment
|
||||
highlight link dhallHash Keyword
|
||||
|
||||
let b:current_syntax = 'dhall'
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ syn keyword elixirBoolean true false nil
|
||||
syn match elixirVariable '@[a-z]\w*'
|
||||
syn match elixirVariable '&\d\+'
|
||||
|
||||
syn keyword elixirPseudoVariable __FILE__ __DIR__ __MODULE__ __ENV__ __CALLER__
|
||||
syn keyword elixirPseudoVariable __FILE__ __DIR__ __MODULE__ __ENV__ __CALLER__ __STACKTRACE__
|
||||
|
||||
syn match elixirNumber '\<-\?\d\(_\?\d\)*\(\.[^[:space:][:digit:]]\@!\(_\?\d\)*\)\?\([eE][-+]\?\d\(_\?\d\)*\)\?\>'
|
||||
syn match elixirNumber '\<-\?0[xX][0-9A-Fa-f]\+\>'
|
||||
|
||||
6
syntax/flow.vim
Normal file
6
syntax/flow.vim
Normal file
@@ -0,0 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
|
||||
|
||||
runtime syntax/javascript.vim
|
||||
runtime extras/flow.vim
|
||||
|
||||
endif
|
||||
@@ -34,7 +34,7 @@ syn match gitDiffRemoved "\[-.*-\]" contained containedin=gitDiff
|
||||
syn match gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite
|
||||
syn match gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite
|
||||
syn match gitKeyword /^Merge:/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite
|
||||
syn match gitMode /^\d\{6\}/ contained containedin=gitHead nextgroup=gitType,gitHash skipwhite
|
||||
syn match gitMode /^\d\{6\}\>/ contained containedin=gitHead nextgroup=gitType,gitHash skipwhite
|
||||
syn match gitIdentityKeyword /^\%(author\|committer\|tagger\)\>/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
|
||||
syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
|
||||
syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite
|
||||
|
||||
@@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
" Language: git commit file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Filenames: *.git/COMMIT_EDITMSG
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
|
||||
@@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
" Language: git config file
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Filenames: gitconfig, .gitconfig, *.git/config
|
||||
" Last Change: 2010 May 21
|
||||
" Last Change: 2019 Sep 27
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@@ -13,7 +13,7 @@ endif
|
||||
syn case ignore
|
||||
syn sync minlines=10
|
||||
|
||||
syn match gitconfigComment "[#;].*"
|
||||
syn match gitconfigComment "[#;].*" contains=@Spell
|
||||
syn match gitconfigSection "\%(^\s*\)\@<=\[[a-z0-9.-]\+\]"
|
||||
syn match gitconfigSection '\%(^\s*\)\@<=\[[a-z0-9.-]\+ \+\"\%([^\\"]\|\\.\)*"\]'
|
||||
syn match gitconfigVariable "\%(^\s*\)\@<=\a[a-z0-9-]*\%(\s*\%([=#;]\|$\)\)\@=" nextgroup=gitconfigAssignment skipwhite
|
||||
|
||||
@@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
" Language: git rebase --interactive
|
||||
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
||||
" Filenames: git-rebase-todo
|
||||
" Last Change: 2013 May 30
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
@@ -12,36 +12,49 @@ endif
|
||||
|
||||
syn case match
|
||||
|
||||
syn match gitrebaseHash "\v<\x{7,40}>" contained
|
||||
syn match gitrebaseCommit "\v<\x{7,40}>" nextgroup=gitrebaseSummary skipwhite
|
||||
syn match gitrebaseHash "\v<\x{7,}>" contained
|
||||
syn match gitrebaseCommit "\v<\x{7,}>" nextgroup=gitrebaseSummary skipwhite
|
||||
syn match gitrebasePick "\v^p%(ick)=>" nextgroup=gitrebaseCommit skipwhite
|
||||
syn match gitrebaseReword "\v^r%(eword)=>" nextgroup=gitrebaseCommit skipwhite
|
||||
syn match gitrebaseEdit "\v^e%(dit)=>" nextgroup=gitrebaseCommit skipwhite
|
||||
syn match gitrebaseSquash "\v^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite
|
||||
syn match gitrebaseFixup "\v^f%(ixup)=>" nextgroup=gitrebaseCommit skipwhite
|
||||
syn match gitrebaseExec "\v^%(x|exec)>" nextgroup=gitrebaseCommand skipwhite
|
||||
syn match gitrebaseBreak "\v^b%(reak)=>" nextgroup=gitrebaseCommit skipwhite
|
||||
syn match gitrebaseBreak "\v^b%(reak)=>"
|
||||
syn match gitrebaseDrop "\v^d%(rop)=>" nextgroup=gitrebaseCommit skipwhite
|
||||
syn match gitrebaseNoop "\v^noop>"
|
||||
syn match gitrebaseMerge "\v^m(erge)=>" nextgroup=gitrebaseMergeOption,gitrebaseName skipwhite
|
||||
syn match gitrebaseLabel "\v^l(abel)=>" nextgroup=gitrebaseName skipwhite
|
||||
syn match gitrebaseReset "\v^r(eset)=>" nextgroup=gitrebaseName skipwhite
|
||||
syn match gitrebaseSummary ".*" contains=gitrebaseHash contained
|
||||
syn match gitrebaseCommand ".*" contained
|
||||
syn match gitrebaseComment "^\s*#.*" contains=gitrebaseHash
|
||||
syn match gitrebaseSquashError "\v%^%(s%(quash)=>|f%(ixup)=>)" nextgroup=gitrebaseCommit skipwhite
|
||||
syn match gitrebaseMergeOption "\v-[Cc]>" nextgroup=gitrebaseMergeCommit skipwhite contained
|
||||
syn match gitrebaseMergeCommit "\v<\x{7,}>" nextgroup=gitrebaseName skipwhite contained
|
||||
syn match gitrebaseName "\v[^[:space:].*?i:^~/-]\S+" nextgroup=gitrebaseMergeComment skipwhite contained
|
||||
syn match gitrebaseMergeComment "#" nextgroup=gitrebaseSummary skipwhite contained
|
||||
|
||||
hi def link gitrebaseCommit gitrebaseHash
|
||||
hi def link gitrebaseHash Identifier
|
||||
hi def link gitrebasePick Statement
|
||||
hi def link gitrebaseReword Number
|
||||
hi def link gitrebasePick Type
|
||||
hi def link gitrebaseReword Conditional
|
||||
hi def link gitrebaseEdit PreProc
|
||||
hi def link gitrebaseSquash Type
|
||||
hi def link gitrebaseFixup Special
|
||||
hi def link gitrebaseExec Function
|
||||
hi def link gitrebaseSquash Statement
|
||||
hi def link gitrebaseFixup Repeat
|
||||
hi def link gitrebaseExec Operator
|
||||
hi def link gitrebaseBreak Macro
|
||||
hi def link gitrebaseDrop Comment
|
||||
hi def link gitrebaseNoop Comment
|
||||
hi def link gitrebaseMerge Exception
|
||||
hi def link gitrebaseLabel Label
|
||||
hi def link gitrebaseReset Keyword
|
||||
hi def link gitrebaseSummary String
|
||||
hi def link gitrebaseComment Comment
|
||||
hi def link gitrebaseSquashError Error
|
||||
hi def link gitrebaseMergeCommit gitrebaseCommit
|
||||
hi def link gitrebaseMergeComment gitrebaseComment
|
||||
hi def link gitrebaseName Tag
|
||||
|
||||
let b:current_syntax = "gitrebase"
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'git') == -1
|
||||
" Language: git send-email message
|
||||
" Maintainer: Tim Pope
|
||||
" Filenames: .gitsendemail.*
|
||||
" Last Change: 2010 May 21
|
||||
" Last Change: 2016 Aug 29
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
|
||||
@@ -164,15 +164,23 @@ endif
|
||||
syn match goSingleDecl /\%(import\|var\|const\) [^(]\@=/ contains=goImport,goVar,goConst
|
||||
|
||||
" Integers
|
||||
syn match goDecimalInt "\<-\=\d\+\%([Ee][-+]\=\d\+\)\=\>"
|
||||
syn match goHexadecimalInt "\<-\=0[xX]\x\+\>"
|
||||
syn match goOctalInt "\<-\=0\o\+\>"
|
||||
syn match goOctalError "\<-\=0\o*[89]\d*\>"
|
||||
syn match goDecimalInt "\<-\=\(0\|[1-9]_\?\(\d\|\d\+_\?\d\+\)*\)\%([Ee][-+]\=\d\+\)\=\>"
|
||||
syn match goDecimalError "\<-\=\(_\(\d\+_*\)\+\|\([1-9]\d*_*\)\+__\(\d\+_*\)\+\|\([1-9]\d*_*\)\+_\+\)\%([Ee][-+]\=\d\+\)\=\>"
|
||||
syn match goHexadecimalInt "\<-\=0[xX]_\?\(\x\+_\?\)\+\>"
|
||||
syn match goHexadecimalError "\<-\=0[xX]_\?\(\x\+_\?\)*\(\([^ \t0-9A-Fa-f_]\|__\)\S*\|_\)\>"
|
||||
syn match goOctalInt "\<-\=0[oO]\?_\?\(\o\+_\?\)\+\>"
|
||||
syn match goOctalError "\<-\=0[0-7oO_]*\(\([^ \t0-7oOxX_/)\]\}\:]\|[oO]\{2,\}\|__\)\S*\|_\|[oOxX]\)\>"
|
||||
syn match goBinaryInt "\<-\=0[bB]_\?\([01]\+_\?\)\+\>"
|
||||
syn match goBinaryError "\<-\=0[bB]_\?[01_]*\([^ \t01_]\S*\|__\S*\|_\)\>"
|
||||
|
||||
hi def link goDecimalInt Integer
|
||||
hi def link goDecimalError Error
|
||||
hi def link goHexadecimalInt Integer
|
||||
hi def link goHexadecimalError Error
|
||||
hi def link goOctalInt Integer
|
||||
hi def link goOctalError Error
|
||||
hi def link goBinaryInt Integer
|
||||
hi def link goBinaryError Error
|
||||
hi def link Integer Number
|
||||
|
||||
" Floating point
|
||||
@@ -384,6 +392,13 @@ hi def link goCoverageNormalText Comment
|
||||
|
||||
function! s:hi()
|
||||
hi def link goSameId Search
|
||||
hi def link goDiagnosticError SpellBad
|
||||
hi def link goDiagnosticWarning SpellRare
|
||||
|
||||
hi def link goDeclsFzfKeyword Keyword
|
||||
hi def link goDeclsFzfFunction Function
|
||||
hi def link goDeclsFzfSpecialComment SpecialComment
|
||||
hi def link goDeclsFzfComment Comment
|
||||
|
||||
" :GoCoverage commands
|
||||
hi def goCoverageCovered ctermfg=green guifg=#A6E22E
|
||||
|
||||
@@ -1,6 +1,25 @@
|
||||
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
|
||||
" Maintainer: Jon Parise <jon@indelible.org>
|
||||
|
||||
@@ -8,20 +27,23 @@ if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
syn case match
|
||||
|
||||
syn match graphqlComment "#.*$" contains=@Spell
|
||||
|
||||
syn match graphqlOperator "=" display
|
||||
syn match graphqlOperator "!" display
|
||||
syn match graphqlOperator "|" display
|
||||
syn match graphqlOperator "&" display
|
||||
syn match graphqlOperator "\M..." display
|
||||
|
||||
syn keyword graphqlBoolean true false
|
||||
syn keyword graphqlNull null
|
||||
syn match graphqlNumber "-\=\<\%(0\|[1-9]\d*\)\%(\.\d\+\)\=\%([eE][-+]\=\d\+\)\=\>" display
|
||||
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 input interface subscription nextgroup=graphqlType skipwhite
|
||||
@@ -35,7 +57,16 @@ syn match graphqlDirective "\<@\h\w*\>" display
|
||||
syn match graphqlVariable "\<\$\h\w*\>" display
|
||||
syn match graphqlName "\<\h\w*\>" display
|
||||
syn match graphqlType "\<_*\u\w*\>" display
|
||||
syn match graphqlConstant "\<[A-Z_]\+\>" 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
|
||||
|
||||
@@ -52,8 +83,8 @@ hi def link graphqlNull Keyword
|
||||
hi def link graphqlNumber Number
|
||||
hi def link graphqlString String
|
||||
|
||||
hi def link graphqlConstant Constant
|
||||
hi def link graphqlDirective PreProc
|
||||
hi def link graphqlDirectiveLocation Special
|
||||
hi def link graphqlName Identifier
|
||||
hi def link graphqlMetaFields Special
|
||||
hi def link graphqlKeyword Keyword
|
||||
|
||||
@@ -33,7 +33,7 @@ syn keyword htmlTagName contained article aside audio canvas command
|
||||
syn keyword htmlTagName contained datalist details dialog embed figcaption figure footer
|
||||
syn keyword htmlTagName contained header hgroup keygen main mark meter menu menuitem nav output
|
||||
syn keyword htmlTagName contained progress ruby rt rp rb rtc section source summary time track video data
|
||||
syn keyword htmlTagName contained template content shadow
|
||||
syn keyword htmlTagName contained template content shadow slot
|
||||
syn keyword htmlTagName contained wbr bdi
|
||||
syn keyword htmlTagName contained picture
|
||||
|
||||
|
||||
@@ -41,9 +41,9 @@ syn match i3ConfigFontNamespace /\w\+:/ contained contains=i3ConfigFontSeparator
|
||||
syn match i3ConfigFontContent /-\?\w\+\(-\+\|\s\+\|,\)/ contained contains=i3ConfigFontNamespace,i3ConfigFontSeparator,i3ConfigFontKeyword
|
||||
syn match i3ConfigFontSize /\s\=\d\+\(px\)\?\s\?$/ contained
|
||||
syn match i3ConfigFont /^\s*font\s\+.*$/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace
|
||||
"syn match i3ConfigFont /^\s*font\s\+.*\(\\\_.*\)\?$/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace
|
||||
"syn match i3ConfigFont /^\s*font\s\+.*\(\\\_.*\)\?[^\\]\+$/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace
|
||||
"syn match i3ConfigFont /^\s*font\s\+\(\(.*\\\_.*\)\|\(.*[^\\]\+$\)\)/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace
|
||||
syn match i3ConfigFont /^\s*font\s\+.*\(\\\_.*\)\?$/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace
|
||||
syn match i3ConfigFont /^\s*font\s\+.*\(\\\_.*\)\?[^\\]\+$/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace
|
||||
syn match i3ConfigFont /^\s*font\s\+\(\(.*\\\_.*\)\|\(.*[^\\]\+$\)\)/ contains=i3ConfigFontContent,i3ConfigFontSeparator,i3ConfigFontSize,i3ConfigFontNamespace
|
||||
|
||||
" variables
|
||||
syn match i3ConfigString /\(['"]\)\(.\{-}\)\1/ contained
|
||||
@@ -55,8 +55,8 @@ syn keyword i3ConfigInitializeKeyword set contained
|
||||
syn match i3ConfigInitialize /^\s*set\s\+.*$/ contains=i3ConfigVariable,i3ConfigInitializeKeyword,i3ConfigColor,i3ConfigString
|
||||
|
||||
" Gaps
|
||||
syn keyword i3ConfigGapStyleKeyword inner outer horizontal vertical top right bottom left current all set plus minus toggle contained
|
||||
syn match i3ConfigGapStyle /^\s*\(gaps\)\s\+\(inner\|outer\|horizontal\|vertical\|left\|top\|right\|bottom\)\(\s\+\(current\|all\)\)\?\(\s\+\(set\|plus\|minus\|toggle\)\)\?\(\s\+\(-\?\d\+\|\$.*\)\)$/ contains=i3ConfigGapStyleKeyword,number,i3ConfigVariable
|
||||
syn keyword i3ConfigGapStyleKeyword inner outer horizontal vertical top right bottom left current all set plus minus toggle up down contained
|
||||
syn match i3ConfigGapStyle /^\s*\(gaps\)\s\+\(inner\|outer\|horizontal\|vertical\|left\|top\|right\|bottom\)\(\s\+\(current\|all\)\)\?\(\s\+\(set\|plus\|minus\|toggle\)\)\?\(\s\+\(-\?\d\+\|\$.*\)\)$/ contains=i3ConfigGapStyleKeyword,i3ConfigNumber,i3ConfigVariable
|
||||
syn keyword i3ConfigSmartGapKeyword on inverse_outer contained
|
||||
syn match i3ConfigSmartGap /^\s*smart_gaps\s\+\(on\|inverse_outer\)\s\?$/ contains=i3ConfigSmartGapKeyword
|
||||
syn keyword i3ConfigSmartBorderKeyword on no_gaps contained
|
||||
@@ -64,19 +64,21 @@ syn match i3ConfigSmartBorder /^\s*smart_borders\s\+\(on\|no_gaps\)\s\?$/ contai
|
||||
|
||||
" Keyboard bindings
|
||||
syn keyword i3ConfigAction toggle fullscreen restart key import kill shrink grow contained
|
||||
syn keyword i3ConfigAction focus move split layout resize restore reload mute unmute exit contained
|
||||
syn keyword i3ConfigAction focus move grow height width split layout resize restore reload mute unmute exit mode workspace container to contained
|
||||
syn match i3ConfigModifier /\w\++\w\+\(\(+\w\+\)\+\)\?/ contained contains=i3ConfigVariableModifier
|
||||
syn match i3ConfigNumber /\s\d\+/ contained
|
||||
syn match i3ConfigUnit /\sp\(pt\|x\)/ contained
|
||||
syn match i3ConfigUnitOr /\sor/ contained
|
||||
syn keyword i3ConfigBindKeyword bindsym bindcode exec gaps contained
|
||||
syn match i3ConfigBindArgument /--\w\+\(\(-\w\+\)\+\)\?\s/ contained
|
||||
syn match i3ConfigBind /^\s*\(bindsym\|bindcode\)\s\+.*$/ contains=i3ConfigVariable,i3ConfigBindKeyword,i3ConfigVariableAndModifier,i3ConfigBindArgument,i3ConfigNumber,i3ConfigModifier,i3ConfigAction,i3ConfigString,i3ConfigGapStyleKeyword
|
||||
syn match i3ConfigBind /^\s*\(bindsym\|bindcode\)\s\+.*$/ contains=i3ConfigVariable,i3ConfigBindKeyword,i3ConfigVariableAndModifier,i3ConfigNumber,i3ConfigUnit,i3ConfigUnitOr,i3ConfigBindArgument,i3ConfigModifier,i3ConfigAction,i3ConfigString,i3ConfigGapStyleKeyword
|
||||
|
||||
" Floating
|
||||
syn keyword i3ConfigSizeSpecial x contained
|
||||
syn match i3ConfigNegativeSize /-/ contained
|
||||
syn match i3ConfigSize /-\?\d\+\s\?x\s\?-\?\d\+/ contained contains=i3ConfigSizeSpecial,i3ConfigNumber,i3ConfigNegativeSize
|
||||
syn match i3ConfigFloating /^\s*floating_modifier\s\+\$\w\+\d\?/ contains=i3ConfigVariable
|
||||
syn match i3ConfigFloating /^\s*floating_\(maximum\|minimum\)_size\s\+-\?\d\+\s\?x\s\?-\?\d\+/ contains=Size
|
||||
syn match i3ConfigFloating /^\s*floating_\(maximum\|minimum\)_size\s\+-\?\d\+\s\?x\s\?-\?\d\+/ contains=i3ConfigSize
|
||||
|
||||
" Orientation
|
||||
syn keyword i3ConfigOrientationKeyword vertical horizontal auto contained
|
||||
@@ -88,7 +90,7 @@ syn match i3ConfigLayout /^\s*workspace_layout\s\+\(default\|stacking\|tabbed\)\
|
||||
|
||||
" Border style
|
||||
syn keyword i3ConfigBorderStyleKeyword none normal pixel contained
|
||||
syn match i3ConfigBorderStyle /^\s*\(new_window\|new_float\|default_border\|default_floating_border\)\s\+\(none\|\(normal\|pixel\)\(\s\+\d\+\)\?\)\s\?$/ contains=i3ConfigBorderStyleKeyword,number
|
||||
syn match i3ConfigBorderStyle /^\s*\(new_window\|new_float\|default_border\|default_floating_border\)\s\+\(none\|\(normal\|pixel\)\(\s\+\d\+\)\?\)\s\?$/ contains=i3ConfigBorderStyleKeyword,i3ConfigNumber
|
||||
|
||||
" Hide borders and edges
|
||||
syn keyword i3ConfigEdgeKeyword none vertical horizontal both smart smart_no_gaps contained
|
||||
@@ -97,7 +99,7 @@ syn match i3ConfigEdge /^\s*hide_edge_borders\s\+\(none\|vertical\|horizontal\|b
|
||||
" Arbitrary commands for specific windows (for_window)
|
||||
syn keyword i3ConfigCommandKeyword for_window contained
|
||||
syn region i3ConfigWindowStringSpecial start=+"+ skip=+\\"+ end=+"+ contained contains=i3ConfigString
|
||||
syn region i3ConfigWindowCommandSpecial start="\[" end="\]" contained contains=WindowStringSpacial,i3ConfigString
|
||||
syn region i3ConfigWindowCommandSpecial start="\[" end="\]" contained contains=i3ConfigWindowStringSpacial,i3ConfigString
|
||||
syn match i3ConfigArbitraryCommand /^\s*for_window\s\+.*$/ contains=i3ConfigWindowCommandSpecial,i3ConfigCommandKeyword,i3ConfigBorderStyleKeyword,i3ConfigLayoutKeyword,i3ConfigOrientationKeyword,Size,i3ConfigNumber
|
||||
|
||||
" Disable focus open opening
|
||||
@@ -127,6 +129,9 @@ syn match i3ConfigWorkspace /^\s*workspace\s\+.*$/ contains=i3ConfigWorkspaceKey
|
||||
syn keyword i3ConfigClientColorKeyword client focused focused_inactive unfocused urgent placeholder background contained
|
||||
syn match i3ConfigClientColor /^\s*client.\w\+\s\+.*$/ contains=i3ConfigClientColorKeyword,i3ConfigColor,i3ConfigVariable
|
||||
|
||||
syn keyword i3ConfigTitleAlignKeyword left center right contained
|
||||
syn match i3ConfigTitleAlign /^\s*title_align\s\+.*$/ contains=i3ConfigTitleAlignKeyword
|
||||
|
||||
" Interprocess communication
|
||||
syn match i3ConfigInterprocessKeyword /ipc-socket/ contained
|
||||
syn match i3ConfigInterprocess /^\s*ipc-socket\s\+.*$/ contains=i3ConfigInterprocessKeyword
|
||||
@@ -175,10 +180,10 @@ syn match i3ConfigDrawingMarks /^\s*show_marks\s\+\(yes\|no\)\s\?$/ contains=i3C
|
||||
|
||||
" Group mode/bar
|
||||
syn keyword i3ConfigBlockKeyword mode bar colors i3bar_command status_command position exec mode hidden_state modifier id position output background statusline tray_output tray_padding separator separator_symbol workspace_buttons strip_workspace_numbers binding_mode_indicator focused_workspace active_workspace inactive_workspace urgent_workspace binding_mode contained
|
||||
syn region i3ConfigBlock start=+.*s\?{$+ end=+^}$+ contains=i3ConfigBlockKeyword,i3ConfigString,Bind,i3ConfigComment,Font,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend
|
||||
syn region i3ConfigBlock start=+.*s\?{$+ end=+^}$+ contains=i3ConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend
|
||||
|
||||
" Line continuation
|
||||
syn region i3ConfigLineCont start=/^.*\\$/ end=/^.*$/ contains=i3ConfigBlockKeyword,i3ConfigString,Bind,i3ConfigComment,Font,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend
|
||||
syn region i3ConfigLineCont start=/^.*\\$/ end=/^.*$/ contains=i3ConfigBlockKeyword,i3ConfigString,i3ConfigBind,i3ConfigComment,i3ConfigFont,i3ConfigFocusWrappingType,i3ConfigColor,i3ConfigVariable transparent keepend extend
|
||||
|
||||
" Define the highlighting.
|
||||
hi! def link i3ConfigError Error
|
||||
@@ -191,6 +196,7 @@ hi! def link i3ConfigOrientationKeyword Type
|
||||
hi! def link i3ConfigMouseWarpingType Type
|
||||
hi! def link i3ConfigFocusFollowsMouseType Type
|
||||
hi! def link i3ConfigGapStyleKeyword Type
|
||||
hi! def link i3ConfigTitleAlignKeyword Type
|
||||
hi! def link i3ConfigSmartGapKeyword Type
|
||||
hi! def link i3ConfigSmartBorderKeyword Type
|
||||
hi! def link i3ConfigLayoutKeyword Type
|
||||
@@ -201,9 +207,11 @@ hi! def link i3ConfigCommand Type
|
||||
hi! def link i3ConfigOutput Type
|
||||
hi! def link i3ConfigWindowCommandSpecial Type
|
||||
hi! def link i3ConfigFocusWrappingType Type
|
||||
hi! def link i3ConfigUnitOr Type
|
||||
hi! def link i3ConfigFontSize Constant
|
||||
hi! def link i3ConfigColor Constant
|
||||
hi! def link i3ConfigNumber Constant
|
||||
hi! def link i3ConfigUnit Constant
|
||||
hi! def link i3ConfigVariableAndModifier Constant
|
||||
hi! def link i3ConfigTimeUnit Constant
|
||||
hi! def link i3ConfigModifier Constant
|
||||
@@ -221,6 +229,7 @@ hi! def link i3ConfigFontKeyword Identifier
|
||||
hi! def link i3ConfigBindKeyword Identifier
|
||||
hi! def link i3ConfigOrientation Identifier
|
||||
hi! def link i3ConfigGapStyle Identifier
|
||||
hi! def link i3ConfigTitleAlign Identifier
|
||||
hi! def link i3ConfigSmartGap Identifier
|
||||
hi! def link i3ConfigSmartBorder Identifier
|
||||
hi! def link i3ConfigLayout Identifier
|
||||
|
||||
@@ -112,7 +112,7 @@ syntax keyword jsAsyncKeyword async await
|
||||
syntax match jsSwitchColon contained /::\@!/ skipwhite skipempty nextgroup=jsSwitchBlock
|
||||
|
||||
" Keywords
|
||||
syntax keyword jsGlobalObjects Array Boolean Date Function Iterator Number Object Symbol Map WeakMap Set WeakSet RegExp String Proxy Promise Buffer ParallelArray ArrayBuffer DataView Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray JSON Math console document window Intl Collator DateTimeFormat NumberFormat fetch
|
||||
syntax keyword jsGlobalObjects ArrayBuffer Array BigInt64Array BigUint64Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray Boolean Buffer Collator DataView Date DateTimeFormat Function Intl Iterator JSON Map Set WeakMap WeakSet Math Number NumberFormat Object ParallelArray Promise Proxy Reflect RegExp String Symbol Uint8ClampedArray WebAssembly console document fetch window
|
||||
syntax keyword jsGlobalNodeObjects module exports global process __dirname __filename
|
||||
syntax match jsGlobalNodeObjects /\<require\>/ containedin=jsFuncCall
|
||||
syntax keyword jsExceptions Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError
|
||||
@@ -152,7 +152,7 @@ syntax region jsSwitchBlock contained matchgroup=jsSwitchBraces s
|
||||
syntax region jsRepeatBlock contained matchgroup=jsRepeatBraces start=/{/ end=/}/ contains=@jsAll,jsBlock extend fold
|
||||
syntax region jsDestructuringBlock contained matchgroup=jsDestructuringBraces start=/{/ end=/}/ contains=jsDestructuringProperty,jsDestructuringAssignment,jsDestructuringNoise,jsDestructuringPropertyComputed,jsSpreadExpression,jsComment nextgroup=jsFlowDefinition extend fold
|
||||
syntax region jsDestructuringArray contained matchgroup=jsDestructuringBraces start=/\[/ end=/\]/ contains=jsDestructuringPropertyValue,jsDestructuringNoise,jsDestructuringProperty,jsSpreadExpression,jsDestructuringBlock,jsDestructuringArray,jsComment nextgroup=jsFlowDefinition extend fold
|
||||
syntax region jsObject contained matchgroup=jsObjectBraces start=/{/ end=/}/ contains=jsObjectKey,jsObjectKeyString,jsObjectKeyComputed,jsObjectShorthandProp,jsObjectSeparator,jsObjectFuncName,jsObjectMethodType,jsGenerator,jsComment,jsObjectStringKey,jsSpreadExpression,jsDecorator,jsAsyncKeyword extend fold
|
||||
syntax region jsObject contained matchgroup=jsObjectBraces start=/{/ end=/}/ contains=jsObjectKey,jsObjectKeyString,jsObjectKeyComputed,jsObjectShorthandProp,jsObjectSeparator,jsObjectFuncName,jsObjectMethodType,jsGenerator,jsComment,jsObjectStringKey,jsSpreadExpression,jsDecorator,jsAsyncKeyword,jsTemplateString extend fold
|
||||
syntax region jsBlock matchgroup=jsBraces start=/{/ end=/}/ contains=@jsAll,jsSpreadExpression extend fold
|
||||
syntax region jsModuleGroup contained matchgroup=jsModuleBraces start=/{/ end=/}/ contains=jsModuleKeyword,jsModuleComma,jsModuleAs,jsComment,jsFlowTypeKeyword skipwhite skipempty nextgroup=jsFrom fold
|
||||
syntax region jsSpreadExpression contained matchgroup=jsSpreadOperator start=/\.\.\./ end=/[,}\]]\@=/ contains=@jsExpression
|
||||
|
||||
@@ -3,7 +3,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'log') == -1
|
||||
" Vim syntax file
|
||||
" Language: Generic log file
|
||||
" Maintainer: MTDL9 <https://github.com/MTDL9>
|
||||
" Latest Revision: 2019-04-16
|
||||
" Latest Revision: 2019-11-24
|
||||
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
@@ -52,8 +52,8 @@ syn match logDate '\(\(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\) \)\?\(Jan\|Feb\|Mar\|
|
||||
syn match logTime '\d\{2}:\d\{2}:\d\{2}\(\.\d\{2,6}\)\?\(\s\?[-+]\d\{2,4}\|Z\)\?\>' nextgroup=logTimeZone,logSysColumns skipwhite
|
||||
|
||||
" Follows logTime, matches UTC or PDT 2019 or 2019 EDT
|
||||
syn match logTimeZone '\(UTC\|PDT\|EDT\|GMT\|EST\|KST\)\( \d\{4}\)\?' contained
|
||||
syn match logTimeZone '\d\{4} \(UTC\|PDT\|EDT\|GMT\|EST\|KST\)' contained
|
||||
syn match logTimeZone '[A-Z]\{2,5}\>\( \d\{4}\)\?' contained
|
||||
syn match logTimeZone '\d\{4} [A-Z]\{2,5}\>' contained
|
||||
|
||||
|
||||
" Entities
|
||||
@@ -66,7 +66,7 @@ syn match logIPV4 '\<\d\{1,3}\(\.\d\{1,3}\)\{3}\>'
|
||||
syn match logIPV6 '\<\x\{1,4}\(:\x\{1,4}\)\{7}\>'
|
||||
syn match logMacAddress '\<\x\{2}\(:\x\{2}\)\{5}'
|
||||
syn match logFilePath '\<\w:\\[^\n|,; ()'"\]{}]\+'
|
||||
syn match logFilePath '\/\w[^\n|,; ()'"\]{}]\+'
|
||||
syn match logFilePath '[^a-zA-Z0-9"']\@<=\/\w[^\n|,; ()'"\]{}]\+'
|
||||
|
||||
|
||||
" Syslog Columns
|
||||
|
||||
@@ -2,6 +2,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'meson') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: Meson
|
||||
" License: VIM License
|
||||
" Maintainer: Nirbheek Chauhan <nirbheek.chauhan@gmail.com>
|
||||
" Last Change: 2016 Dec 7
|
||||
" Credits: Zvezdan Petkovic <zpetkovic@acm.org>
|
||||
@@ -29,7 +30,7 @@ endif
|
||||
" We need nocompatible mode in order to continue lines with backslashes.
|
||||
" Original setting will be restored.
|
||||
let s:cpo_save = &cpo
|
||||
setlocal cpo&vim
|
||||
set cpo&vim
|
||||
|
||||
" http://mesonbuild.com/Syntax.html
|
||||
syn keyword mesonConditional elif else if endif
|
||||
@@ -118,6 +119,7 @@ syn keyword mesonBuiltin
|
||||
\ subdir
|
||||
\ subdir_done
|
||||
\ subproject
|
||||
\ summary
|
||||
\ target_machine
|
||||
\ test
|
||||
\ vcs_tag
|
||||
|
||||
176
syntax/ocaml.vim
176
syntax/ocaml.vim
@@ -20,11 +20,8 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ocaml') == -1
|
||||
" can be distinguished from begin/end, which is used for indentation,
|
||||
" and folding. (David Baelde)
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists("b:current_syntax") && b:current_syntax == "ocaml"
|
||||
" Quit when a syntax file was already loaded
|
||||
if exists("b:current_syntax") && b:current_syntax == "ocaml"
|
||||
finish
|
||||
endif
|
||||
|
||||
@@ -131,7 +128,7 @@ syn region ocamlSig matchgroup=ocamlSigEncl start="\<sig\>" matchgroup=ocamlSi
|
||||
syn region ocamlModSpec matchgroup=ocamlKeyword start="\<module\>" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\>" contained contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlModTRWith,ocamlMPRestr
|
||||
|
||||
" "open"
|
||||
syn region ocamlNone matchgroup=ocamlKeyword start="\<open\>" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\( *\. *\u\(\w\|'\)*\)*\>" contains=@ocamlAllErrs,ocamlComment
|
||||
syn match ocamlKeyword "\<open\>" skipwhite skipempty nextgroup=ocamlFullMod
|
||||
|
||||
" "include"
|
||||
syn match ocamlKeyword "\<include\>" skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod
|
||||
@@ -192,7 +189,7 @@ endif
|
||||
|
||||
syn keyword ocamlType array bool char exn float format format4
|
||||
syn keyword ocamlType int int32 int64 lazy_t list nativeint option
|
||||
syn keyword ocamlType string unit
|
||||
syn keyword ocamlType bytes string unit
|
||||
|
||||
syn match ocamlConstructor "(\s*)"
|
||||
syn match ocamlConstructor "\[\s*\]"
|
||||
@@ -233,7 +230,18 @@ syn match ocamlStar "*"
|
||||
syn match ocamlAngle "<"
|
||||
syn match ocamlAngle ">"
|
||||
" Custom indexing operators:
|
||||
syn match ocamlIndexingOp "\.[~?!:|&$%=>@^/*+-][~?!.:|&$%<=>@^*/+-]*\(()\|\[]\|{}\)\(<-\)\?"
|
||||
syn region ocamlIndexing matchgroup=ocamlIndexingOp
|
||||
\ start="\.[~?!:|&$%=>@^/*+-][~?!.:|&$%<=>@^*/+-]*\_s*("
|
||||
\ end=")\(\_s*<-\)\?"
|
||||
\ contains=ALLBUT,@ocamlContained,ocamlParenErr
|
||||
syn region ocamlIndexing matchgroup=ocamlIndexingOp
|
||||
\ start="\.[~?!:|&$%=>@^/*+-][~?!.:|&$%<=>@^*/+-]*\_s*\["
|
||||
\ end="]\(\_s*<-\)\?"
|
||||
\ contains=ALLBUT,@ocamlContained,ocamlBrackErr
|
||||
syn region ocamlIndexing matchgroup=ocamlIndexingOp
|
||||
\ start="\.[~?!:|&$%=>@^/*+-][~?!.:|&$%<=>@^*/+-]*\_s*{"
|
||||
\ end="}\(\_s*<-\)\?"
|
||||
\ contains=ALLBUT,@ocamlContained,ocamlBraceErr
|
||||
" Extension operators (has to be declared before regular infix operators):
|
||||
syn match ocamlExtensionOp "#[#~?!.:|&$%<=>@^*/+-]\+"
|
||||
" Infix and prefix operators:
|
||||
@@ -291,103 +299,91 @@ syn sync match ocamlSigSync grouphere ocamlSig "\<sig\>"
|
||||
syn sync match ocamlSigSync groupthere ocamlSig "\<end\>"
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists("did_ocaml_syntax_inits")
|
||||
if version < 508
|
||||
let did_ocaml_syntax_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
HiLink ocamlBraceErr Error
|
||||
HiLink ocamlBrackErr Error
|
||||
HiLink ocamlParenErr Error
|
||||
HiLink ocamlArrErr Error
|
||||
hi def link ocamlBraceErr Error
|
||||
hi def link ocamlBrackErr Error
|
||||
hi def link ocamlParenErr Error
|
||||
hi def link ocamlArrErr Error
|
||||
|
||||
HiLink ocamlCommentErr Error
|
||||
hi def link ocamlCommentErr Error
|
||||
|
||||
HiLink ocamlCountErr Error
|
||||
HiLink ocamlDoErr Error
|
||||
HiLink ocamlDoneErr Error
|
||||
HiLink ocamlEndErr Error
|
||||
HiLink ocamlThenErr Error
|
||||
hi def link ocamlCountErr Error
|
||||
hi def link ocamlDoErr Error
|
||||
hi def link ocamlDoneErr Error
|
||||
hi def link ocamlEndErr Error
|
||||
hi def link ocamlThenErr Error
|
||||
|
||||
HiLink ocamlCharErr Error
|
||||
hi def link ocamlCharErr Error
|
||||
|
||||
HiLink ocamlErr Error
|
||||
hi def link ocamlErr Error
|
||||
|
||||
HiLink ocamlComment Comment
|
||||
hi def link ocamlComment Comment
|
||||
|
||||
HiLink ocamlModPath Include
|
||||
HiLink ocamlObject Include
|
||||
HiLink ocamlModule Include
|
||||
HiLink ocamlModParam1 Include
|
||||
HiLink ocamlGenMod Include
|
||||
HiLink ocamlModType Include
|
||||
HiLink ocamlMPRestr3 Include
|
||||
HiLink ocamlFullMod Include
|
||||
HiLink ocamlFuncWith Include
|
||||
HiLink ocamlModParam Include
|
||||
HiLink ocamlModTypeRestr Include
|
||||
HiLink ocamlWith Include
|
||||
HiLink ocamlMTDef Include
|
||||
HiLink ocamlSigEncl ocamlModule
|
||||
HiLink ocamlStructEncl ocamlModule
|
||||
hi def link ocamlModPath Include
|
||||
hi def link ocamlObject Include
|
||||
hi def link ocamlModule Include
|
||||
hi def link ocamlModParam1 Include
|
||||
hi def link ocamlGenMod Include
|
||||
hi def link ocamlModType Include
|
||||
hi def link ocamlMPRestr3 Include
|
||||
hi def link ocamlFullMod Include
|
||||
hi def link ocamlFuncWith Include
|
||||
hi def link ocamlModParam Include
|
||||
hi def link ocamlModTypeRestr Include
|
||||
hi def link ocamlWith Include
|
||||
hi def link ocamlMTDef Include
|
||||
hi def link ocamlSigEncl ocamlModule
|
||||
hi def link ocamlStructEncl ocamlModule
|
||||
|
||||
HiLink ocamlScript Include
|
||||
hi def link ocamlScript Include
|
||||
|
||||
HiLink ocamlConstructor Constant
|
||||
hi def link ocamlConstructor Constant
|
||||
|
||||
HiLink ocamlVal Keyword
|
||||
HiLink ocamlModPreRHS Keyword
|
||||
HiLink ocamlMPRestr2 Keyword
|
||||
HiLink ocamlKeyword Keyword
|
||||
HiLink ocamlMethod Include
|
||||
HiLink ocamlArrow Keyword
|
||||
HiLink ocamlKeyChar Keyword
|
||||
HiLink ocamlAnyVar Keyword
|
||||
HiLink ocamlTopStop Keyword
|
||||
hi def link ocamlVal Keyword
|
||||
hi def link ocamlModPreRHS Keyword
|
||||
hi def link ocamlMPRestr2 Keyword
|
||||
hi def link ocamlKeyword Keyword
|
||||
hi def link ocamlMethod Include
|
||||
hi def link ocamlArrow Keyword
|
||||
hi def link ocamlKeyChar Keyword
|
||||
hi def link ocamlAnyVar Keyword
|
||||
hi def link ocamlTopStop Keyword
|
||||
|
||||
HiLink ocamlRefAssign ocamlKeyChar
|
||||
HiLink ocamlEqual ocamlKeyChar
|
||||
HiLink ocamlStar ocamlInfixOp
|
||||
HiLink ocamlAngle ocamlInfixOp
|
||||
HiLink ocamlCons ocamlInfixOp
|
||||
hi def link ocamlRefAssign ocamlKeyChar
|
||||
hi def link ocamlEqual ocamlKeyChar
|
||||
hi def link ocamlStar ocamlInfixOp
|
||||
hi def link ocamlAngle ocamlInfixOp
|
||||
hi def link ocamlCons ocamlInfixOp
|
||||
|
||||
HiLink ocamlPrefixOp ocamlOperator
|
||||
HiLink ocamlInfixOp ocamlOperator
|
||||
HiLink ocamlExtensionOp ocamlOperator
|
||||
HiLink ocamlIndexingOp ocamlOperator
|
||||
hi def link ocamlPrefixOp ocamlOperator
|
||||
hi def link ocamlInfixOp ocamlOperator
|
||||
hi def link ocamlExtensionOp ocamlOperator
|
||||
hi def link ocamlIndexingOp ocamlOperator
|
||||
|
||||
if exists("ocaml_highlight_operators")
|
||||
HiLink ocamlInfixOpKeyword ocamlOperator
|
||||
HiLink ocamlOperator Operator
|
||||
else
|
||||
HiLink ocamlInfixOpKeyword Keyword
|
||||
endif
|
||||
|
||||
HiLink ocamlBoolean Boolean
|
||||
HiLink ocamlCharacter Character
|
||||
HiLink ocamlNumber Number
|
||||
HiLink ocamlFloat Float
|
||||
HiLink ocamlString String
|
||||
HiLink ocamlQuotedStringDelim Identifier
|
||||
|
||||
HiLink ocamlLabel Identifier
|
||||
|
||||
HiLink ocamlType Type
|
||||
|
||||
HiLink ocamlTodo Todo
|
||||
|
||||
HiLink ocamlEncl Keyword
|
||||
|
||||
HiLink ocamlPpxEncl ocamlEncl
|
||||
|
||||
delcommand HiLink
|
||||
if exists("ocaml_highlight_operators")
|
||||
hi def link ocamlInfixOpKeyword ocamlOperator
|
||||
hi def link ocamlOperator Operator
|
||||
else
|
||||
hi def link ocamlInfixOpKeyword Keyword
|
||||
endif
|
||||
|
||||
hi def link ocamlBoolean Boolean
|
||||
hi def link ocamlCharacter Character
|
||||
hi def link ocamlNumber Number
|
||||
hi def link ocamlFloat Float
|
||||
hi def link ocamlString String
|
||||
hi def link ocamlQuotedStringDelim Identifier
|
||||
|
||||
hi def link ocamlLabel Identifier
|
||||
|
||||
hi def link ocamlType Type
|
||||
|
||||
hi def link ocamlTodo Todo
|
||||
|
||||
hi def link ocamlEncl Keyword
|
||||
|
||||
hi def link ocamlPpxEncl ocamlEncl
|
||||
|
||||
let b:current_syntax = "ocaml"
|
||||
|
||||
" vim: ts=8
|
||||
|
||||
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
|
||||
@@ -6,7 +6,7 @@ endif
|
||||
|
||||
" need %{vars}%
|
||||
" env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]]
|
||||
syn keyword opamKeyword1 remove depends depopts conflicts env packages patches version maintainer tags license homepage authors doc install author available name depexts substs synopsis description
|
||||
syn keyword opamKeyword1 remove depends pin-depends depopts conflicts env packages patches version maintainer tags license homepage authors doc install author available name depexts substs synopsis description
|
||||
syn match opamKeyword2 "\v(bug-reports|post-messages|ocaml-version|opam-version|dev-repo|build-test|build-doc|build)"
|
||||
|
||||
syn keyword opamTodo FIXME NOTE NOTES TODO XXX contained
|
||||
|
||||
@@ -6,7 +6,7 @@ scriptencoding utf-8
|
||||
" Maintainer: Anders Thøgersen <first name at bladre dot dk>
|
||||
" License: VIM LICENSE
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
" finish
|
||||
endif
|
||||
|
||||
if v:version < 600
|
||||
@@ -24,22 +24,28 @@ syntax match plantumlPreProc /\%(\%(^@start\|^@end\)\%(dot\|mindmap\|uml\|salt\|
|
||||
syntax region plantumlDir start=/\s\+/ms=s+1 end=/$/ contained
|
||||
|
||||
" type
|
||||
" From 'java - jar plantuml.jar - language' results {{{
|
||||
syntax keyword plantumlTypeKeyword abstract actor agent archimate artifact boundary card cloud component control
|
||||
syntax keyword plantumlTypeKeyword database diamond entity enum file folder frame node object package participant
|
||||
syntax keyword plantumlTypeKeyword queue rectangle stack state storage usecase
|
||||
syntax keyword plantumlTypeKeyword database detach diamond entity enum file folder frame node object package
|
||||
syntax keyword plantumlTypeKeyword participant queue rectangle stack state storage usecase
|
||||
" class and interface are defined as plantumlClassKeyword
|
||||
syntax keyword plantumlClassKeyword class interface
|
||||
"}}}
|
||||
" Not in 'java - jar plantuml.jar - language' results
|
||||
syntax keyword plantumlTypeKeyword concise robust
|
||||
|
||||
" keyword
|
||||
" Exclude 'top to bottom direction'
|
||||
" From 'java - jar plantuml.jar - language' results {{{
|
||||
" Since "syntax keyword" can handle only words, "top to bottom direction" is excluded.
|
||||
syntax keyword plantumlKeyword accross activate again allow_mixing allowmixing also alt as autonumber bottom
|
||||
syntax keyword plantumlKeyword box break caption center create critical deactivate destroy down else elseif end
|
||||
syntax keyword plantumlKeyword endif endwhile footbox footer fork group header hide hnote if is kill left in at are to the and
|
||||
syntax keyword plantumlKeyword legend link loop mainframe namespace newpage note of on opt order over package
|
||||
syntax keyword plantumlKeyword page par partition ref repeat return right rnote rotate show skin skinparam
|
||||
syntax keyword plantumlKeyword start stop title top up while
|
||||
" Not in 'java - jar plantuml.jar - language' output
|
||||
syntax keyword plantumlKeyword then detach split sprite
|
||||
"}}}
|
||||
" Not in 'java - jar plantuml.jar - language' results
|
||||
syntax keyword plantumlKeyword endlegend split sprite then
|
||||
" gantt
|
||||
syntax keyword plantumlTypeKeyword project monday tuesday wednesday thursday friday saturday sunday
|
||||
syntax keyword plantumlKeyword starts ends start end closed day after colored lasts happens
|
||||
@@ -84,9 +90,9 @@ syntax region plantumlText oneline start=/\[/ms=s+1 end=/\]/me=s-1 contained
|
||||
|
||||
syntax match plantumlArrowDirectedLine /\([-.]\)\%(l\%[eft]\|r\%[ight]\|up\?\|d\%[own]\)\1/ contained
|
||||
|
||||
" Note
|
||||
syntax region plantumlNoteMultiLine start=/\%(^\s*[rh]\?note\)\@<=\s\%([^:"]\+$\)\@=/ end=/^\%(\s*end \?[rh]\?note$\)\@=/ contains=plantumlSpecialString,plantumlNoteMultiLineStart,plantumlTag
|
||||
syntax match plantumlNoteMultiLineStart /\%(^\s*[rh]\?note\)\@<=\s\%([^:]\+$\)/ contained contains=plantumlKeyword,plantumlColor,plantumlString,plantumlTag
|
||||
" Note and legend
|
||||
syntax region plantumlNoteMultiLine start=/\%(^\s*[rh]\?\%(note\|legend\)\)\@<=\s\%([^:"]\+$\)\@=/ end=/^\%(\s*end\s*[rh]\?\%(note\|legend\)$\)\|endlegend\@=/ contains=plantumlSpecialString,plantumlNoteMultiLineStart,plantumlTag
|
||||
syntax match plantumlNoteMultiLineStart /\%(^\s*[rh]\?\%(note\|legend\)\)\@<=\s\%([^:]\+$\)/ contained contains=plantumlKeyword,plantumlColor,plantumlString,plantumlTag
|
||||
|
||||
" Class
|
||||
syntax region plantumlClass
|
||||
|
||||
@@ -175,7 +175,7 @@ if version >= 508 || !exists("did_ps1_syn_inits")
|
||||
HiLink ps1Comment Comment
|
||||
HiLink ps1CommentTodo Todo
|
||||
HiLink ps1CommentDoc Tag
|
||||
HiLink ps1CDocParam Todo
|
||||
HiLink ps1CDocParam Identifier
|
||||
HiLink ps1Operator Operator
|
||||
HiLink ps1Repeat Repeat
|
||||
HiLink ps1RepeatAndCmdlet Repeat
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'qml') == -1
|
||||
|
||||
|
||||
" Vim syntax file
|
||||
" Language: QML
|
||||
" Maintainer: Peter Hoeg <peter@hoeg.com>
|
||||
@@ -29,7 +30,7 @@ endif
|
||||
|
||||
syn case ignore
|
||||
|
||||
syn cluster qmlExpr contains=qmlStringD,qmlString,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 match qmlLineComment "\/\/.*" contains=@Spell,qmlCommentTodo
|
||||
syn match qmlCommentSkip "^[ \t]*\*\($\|[ \t]\+\)"
|
||||
@@ -37,6 +38,9 @@ syn region qmlComment start="/\*" end="\*/" contains=@Spell,qmlComme
|
||||
syn match qmlSpecial "\\\d\d\d\|\\."
|
||||
syn region qmlStringD 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 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 qmlBoolean true false
|
||||
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 qmlException try catch finally throw
|
||||
syn keyword qmlMessage alert confirm prompt status
|
||||
@@ -72,9 +76,10 @@ if get(g:, 'qml_fold', 0)
|
||||
setlocal foldmethod=syntax
|
||||
setlocal foldtext=getline(v:foldstart)
|
||||
else
|
||||
syn keyword qmlFunction function
|
||||
syn match qmlBraces "[{}\[\]]"
|
||||
syn match qmlParens "[()]"
|
||||
syn keyword qmlFunction function
|
||||
syn match qmlArrowFunction "=>"
|
||||
syn match qmlBraces "[{}\[\]]"
|
||||
syn match qmlParens "[()]"
|
||||
endif
|
||||
|
||||
syn sync fromstart
|
||||
@@ -100,6 +105,7 @@ if version >= 508 || !exists("did_qml_syn_inits")
|
||||
HiLink qmlSpecial Special
|
||||
HiLink qmlStringS String
|
||||
HiLink qmlStringD String
|
||||
HiLink qmlStringT String
|
||||
HiLink qmlCharacter Character
|
||||
HiLink qmlNumber Number
|
||||
HiLink qmlConditional Conditional
|
||||
@@ -111,6 +117,7 @@ if version >= 508 || !exists("did_qml_syn_inits")
|
||||
HiLink qmlObjectLiteralType Type
|
||||
HiLink qmlStatement Statement
|
||||
HiLink qmlFunction Function
|
||||
HiLink qmlArrowFunction Function
|
||||
HiLink qmlBraces Function
|
||||
HiLink qmlError Error
|
||||
HiLink qmlNull Keyword
|
||||
|
||||
@@ -175,7 +175,7 @@ syn match rstStandaloneHyperlink contains=@NoSpell
|
||||
\ "\<\%(\%(\%(https\=\|file\|ftp\|gopher\)://\|\%(mailto\|news\):\)[^[:space:]'\"<>]\+\|www[[:alnum:]_-]*\.[[:alnum:]_-]\+\.[^[:space:]'\"<>]\+\)[[:alnum:]/]"
|
||||
|
||||
syn region rstCodeBlock contained matchgroup=rstDirective
|
||||
\ start=+\%(sourcecode\|code\%(-block\)\=\)::\s*\n\%(\s*:.*:\s*.*\s*\n\)*\n\ze\z(\s\+\)+
|
||||
\ start=+\%(sourcecode\|code\%(-block\)\=\)::\s*\(\S*\)\?\s*\n\%(\s*:.*:\s*.*\s*\n\)*\n\ze\z(\s\+\)+
|
||||
\ skip=+^$+
|
||||
\ end=+^\z1\@!+
|
||||
\ contains=@NoSpell
|
||||
|
||||
@@ -55,6 +55,7 @@ syn keyword rustKeyword mod trait nextgroup=rustIdentifier skipwhite skipe
|
||||
syn keyword rustStorage move mut ref static const
|
||||
syn match rustDefault /\<default\ze\_s\+\(impl\|fn\|type\|const\)\>/
|
||||
syn keyword rustAwait await
|
||||
syn match rustKeyword /\<try\>!\@!/ display
|
||||
|
||||
syn keyword rustPubScopeCrate crate contained
|
||||
syn match rustPubScopeDelim /[()]/ contained
|
||||
|
||||
@@ -187,6 +187,7 @@ syntax region swiftEscapedReservedWord start="`" end="`" oneline
|
||||
syntax keyword swiftAttributes
|
||||
\ @_exported
|
||||
\ @_functionBuilder
|
||||
\ @_implementationOnly
|
||||
\ @_silgen_name
|
||||
\ @assignment
|
||||
\ @autoclosure
|
||||
|
||||
@@ -20,7 +20,7 @@ syn match sdErr contained /\s*\S\+/ nextgroup=sdErr
|
||||
|
||||
" environment args and format strings
|
||||
syn match sdEnvArg contained /\$\i\+\|\${\i\+}/
|
||||
syn match sdFormatStr contained /%[inpINPfcrRt]/ containedin=ALLBUT,sdComment,sdErr
|
||||
syn match sdFormatStr contained /%[bCEfhHiIjJLmnNpPsStTgGuUvV%]/ containedin=ALLBUT,sdComment,sdErr
|
||||
|
||||
" common data types
|
||||
syn match sdUInt contained nextgroup=sdErr /\d\+/
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'tmux') == -1
|
||||
|
||||
" Language: tmux(1) configuration file
|
||||
" Version: 2.9a (git-0d64531f)
|
||||
" Version: 3.0 (git-48cbbb87)
|
||||
" URL: https://github.com/ericpruitt/tmux.vim/
|
||||
" Maintainer: Eric Pruitt <eric.pruitt@gmail.com>
|
||||
" License: 2-Clause BSD (http://opensource.org/licenses/BSD-2-Clause)
|
||||
@@ -30,6 +30,7 @@ syn match tmuxNumber /\<\d\+\>/ display
|
||||
syn match tmuxFlags /\s-\a\+/ display
|
||||
syn match tmuxVariable /\w\+=/ display
|
||||
syn match tmuxVariableExpansion /\${\=\w\+}\=/ display
|
||||
syn match tmuxControl /%\(if\|elif\|else\|endif\)/
|
||||
|
||||
syn region tmuxComment start=/#/ skip=/\\\@<!\\$/ end=/$/ contains=tmuxTodo
|
||||
|
||||
@@ -45,6 +46,7 @@ hi def link tmuxFormatString Identifier
|
||||
hi def link tmuxAction Boolean
|
||||
hi def link tmuxBoolean Boolean
|
||||
hi def link tmuxCommands Keyword
|
||||
hi def link tmuxControl Keyword
|
||||
hi def link tmuxComment Comment
|
||||
hi def link tmuxKey Special
|
||||
hi def link tmuxNumber Number
|
||||
@@ -64,29 +66,29 @@ for s:i in range(0, 255)
|
||||
endfor
|
||||
|
||||
syn keyword tmuxOptions
|
||||
\ buffer-limit command-alias default-terminal escape-time exit-empty
|
||||
\ activity-action assume-paste-time base-index bell-action default-command
|
||||
\ default-shell default-size destroy-unattached detach-on-destroy
|
||||
\ display-panes-active-colour display-panes-colour display-panes-time
|
||||
\ display-time exit-unattached focus-events history-file history-limit
|
||||
\ key-table lock-after-time lock-command message-command-style message-limit
|
||||
\ message-style mouse aggressive-resize allow-rename alternate-screen
|
||||
\ automatic-rename automatic-rename-format clock-mode-colour
|
||||
\ clock-mode-style main-pane-height main-pane-width mode-keys mode-style
|
||||
\ monitor-activity monitor-bell monitor-silence other-pane-height
|
||||
\ other-pane-width pane-active-border-style pane-base-index
|
||||
\ pane-border-format pane-border-status pane-border-style prefix prefix2
|
||||
\ remain-on-exit renumber-windows repeat-time set-clipboard set-titles
|
||||
\ set-titles-string silence-action status status-bg status-fg status-format
|
||||
\ status-interval status-justify status-keys status-left status-left-length
|
||||
\ status-left-style status-position status-right status-right-length
|
||||
\ status-right-style status-style synchronize-panes terminal-overrides
|
||||
\ update-environment user-keys visual-activity visual-bell visual-silence
|
||||
\ window-active-style window-size window-status-activity-style
|
||||
\ window-status-bell-style window-status-current-format
|
||||
\ window-status-current-style window-status-format window-status-last-style
|
||||
\ window-status-separator window-status-style window-style word-separators
|
||||
\ wrap-search xterm-keys
|
||||
\ backspace buffer-limit command-alias default-terminal escape-time
|
||||
\ exit-empty activity-action assume-paste-time base-index bell-action
|
||||
\ default-command default-shell default-size destroy-unattached
|
||||
\ detach-on-destroy display-panes-active-colour display-panes-colour
|
||||
\ display-panes-time display-time exit-unattached focus-events history-file
|
||||
\ history-limit key-table lock-after-time lock-command message-command-style
|
||||
\ message-limit message-style aggressive-resize allow-rename
|
||||
\ alternate-screen automatic-rename automatic-rename-format
|
||||
\ clock-mode-colour clock-mode-style main-pane-height main-pane-width
|
||||
\ mode-keys mode-style monitor-activity monitor-bell monitor-silence mouse
|
||||
\ other-pane-height other-pane-width pane-active-border-style
|
||||
\ pane-base-index pane-border-format pane-border-status pane-border-style
|
||||
\ prefix prefix2 remain-on-exit renumber-windows repeat-time set-clipboard
|
||||
\ set-titles set-titles-string silence-action status status-bg status-fg
|
||||
\ status-format status-interval status-justify status-keys status-left
|
||||
\ status-left-length status-left-style status-position status-right
|
||||
\ status-right-length status-right-style status-style synchronize-panes
|
||||
\ terminal-overrides update-environment user-keys visual-activity
|
||||
\ visual-bell visual-silence window-active-style window-size
|
||||
\ window-status-activity-style window-status-bell-style
|
||||
\ window-status-current-format window-status-current-style
|
||||
\ window-status-format window-status-last-style window-status-separator
|
||||
\ window-status-style window-style word-separators wrap-search xterm-keys
|
||||
|
||||
syn keyword tmuxCommands
|
||||
\ attach attach-session bind bind-key break-pane breakp capture-pane
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'typescript') == -1
|
||||
|
||||
if !exists("main_syntax")
|
||||
if exists("b:current_syntax") && b:current_syntax != 'typescript'
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
let main_syntax = 'typescript.tsx'
|
||||
let main_syntax = 'typescriptreact'
|
||||
endif
|
||||
|
||||
syntax region tsxTag
|
||||
@@ -121,6 +121,8 @@ syntax region tsxEscJs
|
||||
\ end=+}+
|
||||
\ extend
|
||||
|
||||
runtime syntax/common.vim
|
||||
|
||||
syntax cluster typescriptExpression add=tsxRegion,tsxFragment
|
||||
|
||||
highlight def link tsxTag htmlTag
|
||||
@@ -136,9 +138,8 @@ highlight def link tsxEscJs tsxEscapeJs
|
||||
highlight def link tsxCloseTag htmlTag
|
||||
highlight def link tsxCloseString Identifier
|
||||
|
||||
let b:current_syntax = "typescript.tsx"
|
||||
if main_syntax == 'typescript.tsx'
|
||||
let b:current_syntax = "typescriptreact"
|
||||
if main_syntax == 'typescriptreact'
|
||||
unlet main_syntax
|
||||
endif
|
||||
|
||||
endif
|
||||
268
syntax/vlang.vim
Normal file
268
syntax/vlang.vim
Normal file
@@ -0,0 +1,268 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'v') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: V
|
||||
" Maintainer: Oliver Kelton (https://github.com/ollykel)
|
||||
" Last Change: 2019 Jun 13
|
||||
" NOTE: largely based on go.vim, maintained by David Barnett
|
||||
" see David Barnett (https://github.com/google/vim-ft-go)
|
||||
" Options:
|
||||
" There are some options for customizing the highlighting; the recommended
|
||||
" settings are the default values, but you can write:
|
||||
" let OPTION_NAME = 0
|
||||
" in your ~/.vimrc file to disable particular options. You can also write:
|
||||
" let OPTION_NAME = 1
|
||||
" to enable particular options. At present, all options default to on.
|
||||
"
|
||||
" - g:v_highlight_array_whitespace_error
|
||||
" Highlights white space after "[]".
|
||||
" - g:v_highlight_chan_whitespace_error
|
||||
" Highlights white space around the communications operator that don't
|
||||
" follow the standard style.
|
||||
" Highlights commonly used library types (io.Reader, etc.).
|
||||
" - g:v_highlight_space_tab_error
|
||||
" Highlights instances of tabs following spaces.
|
||||
" - g:v_highlight_trailing_whitespace_error
|
||||
" Highlights trailing white space.
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
if !exists('g:v_highlight_array_whitespace_error')
|
||||
let g:v_highlight_array_whitespace_error = 1
|
||||
endif
|
||||
if !exists('g:v_highlight_chan_whitespace_error')
|
||||
let g:v_highlight_chan_whitespace_error = 1
|
||||
endif
|
||||
if !exists('g:v_highlight_space_tab_error')
|
||||
let g:v_highlight_space_tab_error = 1
|
||||
endif
|
||||
if !exists('g:v_highlight_trailing_whitespace_error')
|
||||
let g:v_highlight_trailing_whitespace_error = 1
|
||||
endif
|
||||
if !exists('g:v_highlight_function_calls')
|
||||
let g:v_highlight_function_calls = 1
|
||||
endif
|
||||
if !exists('g:v_highlight_fields')
|
||||
let g:v_highlight_fields = 1
|
||||
endif
|
||||
|
||||
syn case match
|
||||
|
||||
syn match vDeclType "\<\(struct\|interface\)\>"
|
||||
|
||||
syn keyword vDirective module import
|
||||
syn keyword vDeclaration pub mut const type enum
|
||||
syn region vIncluded display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
|
||||
syn match vIncluded display contained "<[^>]*>"
|
||||
syn match vFlagDefinition display contained "\s\i[^\n]*"
|
||||
syn match vInclude display "^\s*\zs\(%:\|#\)\s*include\>\s*["<]" contains=vIncluded
|
||||
syn match vFlag display "^\s*\zs\(%:\|#\)\s*flag\>\s*[^\n]*" contains=vFlagDefinition
|
||||
syn region vShebang display start=/^#!/ end=/$/
|
||||
|
||||
hi def link vDirective Statement
|
||||
hi def link vDeclaration Keyword
|
||||
hi def link vDeclType Keyword
|
||||
hi def link vInclude Include
|
||||
hi def link vFlag Include
|
||||
hi def link vIncluded vString
|
||||
hi def link vFlagDefinition vString
|
||||
hi def link vShebang Include
|
||||
|
||||
" Keywords within functions
|
||||
syn keyword vStatement defer go goto return break continue fallthrough
|
||||
syn keyword vConditional if else switch match or
|
||||
syn keyword vLabel case default
|
||||
syn keyword vRepeat for in
|
||||
syn match vCodeGen /$if\>/
|
||||
syn match vCodeGen /\.fields\>/
|
||||
syn match vCodeGen /\.$\i*\>/
|
||||
|
||||
hi def link vStatement Statement
|
||||
hi def link vConditional Conditional
|
||||
hi def link vLabel Label
|
||||
hi def link vRepeat Repeat
|
||||
hi def link vCodeGen Identifier
|
||||
|
||||
" Predefined types
|
||||
syn keyword vType chan map bool string error voidptr
|
||||
syn keyword vSignedInts int i8 i16 i32 i64 rune intptr
|
||||
syn keyword vUnsignedInts byte uint u8 u16 u32 u64 byteptr
|
||||
syn keyword vFloats f32 f64 floatptr
|
||||
syn keyword vComplexes complex64 complex128
|
||||
|
||||
hi def link vType Type
|
||||
hi def link vSignedInts Type
|
||||
hi def link vUnsignedInts Type
|
||||
hi def link vFloats Type
|
||||
hi def link vComplexes Type
|
||||
|
||||
" Treat fn specially: it's a declaration at the start of a line, but a type
|
||||
" elsewhere. Order matters here.
|
||||
" syn match vType /\<fn\>/
|
||||
syn match vDeclaration /\<fn\>/
|
||||
syn match vDeclaration contained /\<fn\>/
|
||||
|
||||
" Predefined functions and values
|
||||
syn keyword vBuiltins assert C cap complex copy delete exit imag
|
||||
syn keyword vBuiltins print println eprint eprintln print_backtrace
|
||||
syn keyword vBuiltins float_calloc ok memdup range_int real recover
|
||||
syn keyword vBuiltins malloc byte_calloc float_calloc
|
||||
syn keyword vBuiltins isok isnil panic on_panic
|
||||
syn keyword vConstants iota true false
|
||||
syn match vBuiltins /\<json\.\(encode\|decode\)\>/
|
||||
|
||||
hi def link vBuiltins Keyword
|
||||
hi def link vConstants Keyword
|
||||
|
||||
" Comments; their contents
|
||||
syn keyword vTodo contained TODO FIXME XXX BUG
|
||||
syn cluster vCommentGroup contains=vTodo
|
||||
syn region vComment start="/\*" end="\*/" contains=@vCommentGroup,@Spell
|
||||
syn region vComment start="//" end="$" contains=@vCommentGroup,@Spell
|
||||
|
||||
hi def link vComment Comment
|
||||
hi def link vTodo Todo
|
||||
|
||||
" Go escapes
|
||||
syn match vEscapeOctal display contained "\\[0-7]\{3}"
|
||||
syn match vEscapeVar display contained "\$[0-9A-Za-z\.]*"
|
||||
syn match vEscapeVar display contained "\${[^}]*}"
|
||||
syn match vEscapeC display contained +\\[abfnrtv\\'"]+
|
||||
syn match vEscapeX display contained "\\x\x\{2}"
|
||||
syn match vEscapeU display contained "\\u\x\{4}"
|
||||
syn match vEscapeBigU display contained "\\U\x\{8}"
|
||||
syn match vEscapeError display contained +\\[^0-7xuUabfnrtv\\'"]+
|
||||
|
||||
hi def link vEscapeOctal vSpecialString
|
||||
hi def link vEscapeVar vSpecialString
|
||||
hi def link vEscapeC vSpecialString
|
||||
hi def link vEscapeX vSpecialString
|
||||
hi def link vEscapeU vSpecialString
|
||||
hi def link vEscapeBigU vSpecialString
|
||||
hi def link vSpecialString Special
|
||||
hi def link vEscapeError Error
|
||||
|
||||
" Strings and their contents
|
||||
syn cluster vStringGroup contains=vEscapeOctal,vEscapeVar,vEscapeC,vEscapeX,vEscapeU,vEscapeBigU,vEscapeError
|
||||
syn region vString start=+"+ skip=+\\\\\|\\'+ end=+"+ contains=@vStringGroup
|
||||
syn region vRawString start=+`+ end=+`+
|
||||
|
||||
hi def link vString String
|
||||
hi def link vRawString String
|
||||
|
||||
" Characters; their contents
|
||||
syn cluster vCharacterGroup contains=vEscapeOctal,vEscapeC,vEscapeVar,vEscapeX,vEscapeU,vEscapeBigU
|
||||
syn region vCharacter start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@vCharacterGroup
|
||||
|
||||
hi def link vCharacter Character
|
||||
|
||||
" Regions
|
||||
syn region vBlock start="{" end="}" transparent fold
|
||||
syn region vParen start='(' end=')' transparent
|
||||
|
||||
" Integers
|
||||
syn match vDecimalInt "\<\d\+\([Ee]\d\+\)\?\>"
|
||||
syn match vHexadecimalInt "\<0x\x\+\>"
|
||||
syn match vOctalInt "\<0\o\+\>"
|
||||
syn match vOctalError "\<0\o*[89]\d*\>"
|
||||
|
||||
hi def link vDecimalInt Integer
|
||||
hi def link vHexadecimalInt Integer
|
||||
hi def link vOctalInt Integer
|
||||
hi def link Integer Number
|
||||
|
||||
" Floating point
|
||||
syn match vFloat "\<\d\+\.\d*\([Ee][-+]\d\+\)\?\>"
|
||||
syn match vFloat "\<\.\d\+\([Ee][-+]\d\+\)\?\>"
|
||||
syn match vFloat "\<\d\+[Ee][-+]\d\+\>"
|
||||
|
||||
hi def link vFloat Float
|
||||
|
||||
" Imaginary literals
|
||||
syn match vImaginary "\<\d\+i\>"
|
||||
syn match vImaginary "\<\d\+\.\d*\([Ee][-+]\d\+\)\?i\>"
|
||||
syn match vImaginary "\<\.\d\+\([Ee][-+]\d\+\)\?i\>"
|
||||
syn match vImaginary "\<\d\+[Ee][-+]\d\+i\>"
|
||||
|
||||
hi def link vImaginary Number
|
||||
|
||||
" Generics
|
||||
syn match vGenericBrackets display contained "[<>]"
|
||||
syn match vInterfaceDeclaration display "\s*\zsinterface\s*\i*\s*<[^>]*>" contains=vDeclType,vGenericBrackets
|
||||
syn match vStructDeclaration display "\s*\zsstruct\s*\i*\s*<[^>]*>" contains=vDeclType,vGenericBrackets
|
||||
" vFunctionName only appears when v_highlight_function_calls set
|
||||
syn match vFuncDeclaration display "\s*\zsfn\s*\i*\s*<[^>]*>" contains=vFunctionName,vDeclaration,vGenericBrackets
|
||||
|
||||
hi def link vGenericBrackets Identifier
|
||||
|
||||
" Spaces after "[]"
|
||||
if v_highlight_array_whitespace_error != 0
|
||||
syn match vSpaceError display "\(\[\]\)\@<=\s\+"
|
||||
endif
|
||||
|
||||
" Spacing errors around the 'chan' keyword
|
||||
if v_highlight_chan_whitespace_error != 0
|
||||
" receive-only annotation on chan type
|
||||
syn match vSpaceError display "\(<-\)\@<=\s\+\(chan\>\)\@="
|
||||
" send-only annotation on chan type
|
||||
syn match vSpaceError display "\(\<chan\)\@<=\s\+\(<-\)\@="
|
||||
" value-ignoring receives in a few contexts
|
||||
syn match vSpaceError display "\(\(^\|[={(,;]\)\s*<-\)\@<=\s\+"
|
||||
endif
|
||||
|
||||
" Space-tab error
|
||||
if v_highlight_space_tab_error != 0
|
||||
syn match vSpaceError display " \+\t"me=e-1
|
||||
endif
|
||||
|
||||
" Trailing white space error
|
||||
if v_highlight_trailing_whitespace_error != 0
|
||||
syn match vSpaceError display excludenl "\s\+$"
|
||||
endif
|
||||
|
||||
hi def link vSpaceError Error
|
||||
|
||||
" Function calls and Fields are from: https://github.com/fatih/vim-go/blob/master/syntax/go.vim
|
||||
" Function calls;
|
||||
if v_highlight_function_calls
|
||||
syn match vFunctionCall /\w\+\ze\s*(/ contains=vBuiltins,vDeclaration
|
||||
syn match vFunctionName display contained /\s\w\+/
|
||||
hi def link vFunctionName Special
|
||||
endif
|
||||
|
||||
hi def link vFunctionCall Special
|
||||
|
||||
" Fields;
|
||||
if v_highlight_fields
|
||||
" 1. Match a sequence of word characters coming after a '.'
|
||||
" 2. Require the following but dont match it: ( \@= see :h E59)
|
||||
" - The symbols: / - + * % OR
|
||||
" - The symbols: [] {} <> ) OR
|
||||
" - The symbols: \n \r space OR
|
||||
" - The symbols: , : .
|
||||
" 3. Have the start of highlight (hs) be the start of matched
|
||||
" pattern (s) offsetted one to the right (+1) (see :h E401)
|
||||
syn match vField /\.\w\+\
|
||||
\%(\%([\/\-\+*%]\)\|\
|
||||
\%([\[\]{}<\>\)]\)\|\
|
||||
\%([\!=\^|&]\)\|\
|
||||
\%([\n\r\ ]\)\|\
|
||||
\%([,\:.]\)\)\@=/hs=s+1
|
||||
endif
|
||||
hi def link vField Identifier
|
||||
|
||||
" Search backwards for a global declaration to start processing the syntax.
|
||||
"syn sync match vSync grouphere NONE /^\(const\|var\|type\|func\)\>/
|
||||
|
||||
" There's a bug in the implementation of grouphere. For now, use the
|
||||
" following as a more expensive/less precise workaround.
|
||||
syn sync minlines=500
|
||||
|
||||
let b:current_syntax = 'vlang'
|
||||
|
||||
" vim: sw=2 sts=2 et
|
||||
|
||||
endif
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user