mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-11 21:13:50 -05:00
Update
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,5 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
|
||||||
|
|
||||||
let s:save_cpo = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
let s:V = vital#crystal#new()
|
let s:V = vital#crystal#new()
|
||||||
let s:P = s:V.import('Process')
|
let s:P = s:V.import('Process')
|
||||||
let s:C = s:V.import('ColorEcho')
|
let s:C = s:V.import('ColorEcho')
|
||||||
@@ -365,9 +362,6 @@ function! crystal_lang#expand(file, pos, ...) abort
|
|||||||
return crystal_lang#tool('expand', a:file, a:pos, get(a:, 1, ''))
|
return crystal_lang#tool('expand', a:file, a:pos, get(a:, 1, ''))
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
|
||||||
unlet s:save_cpo
|
|
||||||
|
|
||||||
" vim: sw=2 sts=2 et:
|
" vim: sw=2 sts=2 et:
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -27,12 +27,16 @@ function! s:clearQfList(reason) abort
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! dart#fmt(q_args) abort
|
function! dart#fmt(...) abort
|
||||||
let cmd = s:FindDartFmt()
|
let l:dartfmt = s:FindDartFmt()
|
||||||
if type(cmd) != type('') | return | endif
|
if type(l:dartfmt) != type('') | return | endif
|
||||||
let buffer_content = getline(1, '$')
|
let buffer_content = getline(1, '$')
|
||||||
let args = '--stdin-name '.expand('%').' '.a:q_args
|
let l:cmd = [l:dartfmt, '--stdin-name', shellescape(expand('%'))]
|
||||||
let lines = systemlist(printf('%s %s', cmd, args), join(buffer_content, "\n"))
|
if exists('g:dartfmt_options')
|
||||||
|
call extend(l:cmd, g:dartfmt_options)
|
||||||
|
endif
|
||||||
|
call extend(l:cmd, a:000)
|
||||||
|
let lines = systemlist(join(l:cmd), join(buffer_content, "\n"))
|
||||||
" TODO(https://github.com/dart-lang/sdk/issues/38507) - Remove once the
|
" TODO(https://github.com/dart-lang/sdk/issues/38507) - Remove once the
|
||||||
" tool no longer emits this line on SDK upgrades.
|
" tool no longer emits this line on SDK upgrades.
|
||||||
if lines[-1] ==# 'Isolate creation failed'
|
if lines[-1] ==# 'Isolate creation failed'
|
||||||
|
|||||||
@@ -10,8 +10,6 @@ execute join(['function! vital#_crystal#ColorEcho#import() abort', printf("retur
|
|||||||
delfunction s:_SID
|
delfunction s:_SID
|
||||||
" ___vital___
|
" ___vital___
|
||||||
scriptencoding utf-8
|
scriptencoding utf-8
|
||||||
let s:save_cpo = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
function! s:_is_available() abort
|
function! s:_is_available() abort
|
||||||
if has('gui_running')
|
if has('gui_running')
|
||||||
@@ -185,7 +183,4 @@ function! s:echo(str) abort
|
|||||||
call echorizer.echo()
|
call echorizer.echo()
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
|
||||||
unlet s:save_cpo
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -11,9 +11,6 @@ delfunction s:_SID
|
|||||||
" ___vital___
|
" ___vital___
|
||||||
" Utilities for list.
|
" Utilities for list.
|
||||||
|
|
||||||
let s:save_cpo = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
function! s:pop(list) abort
|
function! s:pop(list) abort
|
||||||
return remove(a:list, -1)
|
return remove(a:list, -1)
|
||||||
endfunction
|
endfunction
|
||||||
@@ -460,9 +457,6 @@ function! s:combinations(list, r) abort
|
|||||||
return result
|
return result
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
|
||||||
unlet s:save_cpo
|
|
||||||
|
|
||||||
" vim:set et ts=2 sts=2 sw=2 tw=0:
|
" vim:set et ts=2 sts=2 sw=2 tw=0:
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -11,9 +11,6 @@ delfunction s:_SID
|
|||||||
" ___vital___
|
" ___vital___
|
||||||
" Utilities for string.
|
" Utilities for string.
|
||||||
|
|
||||||
let s:save_cpo = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
function! s:_vital_loaded(V) abort
|
function! s:_vital_loaded(V) abort
|
||||||
let s:V = a:V
|
let s:V = a:V
|
||||||
let s:L = s:V.import('Data.List')
|
let s:L = s:V.import('Data.List')
|
||||||
@@ -624,8 +621,6 @@ function! s:split_posix_text(text, ...) abort
|
|||||||
return split(text, newline, 1)
|
return split(text, newline, 1)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
|
||||||
unlet s:save_cpo
|
|
||||||
" vim:set et ts=2 sts=2 sw=2 tw=0:
|
" vim:set et ts=2 sts=2 sw=2 tw=0:
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -15,9 +15,6 @@ delfunction s:_SID
|
|||||||
" FIXME: This module name should be Vital.System ?
|
" FIXME: This module name should be Vital.System ?
|
||||||
" But the name has been already taken.
|
" But the name has been already taken.
|
||||||
|
|
||||||
let s:save_cpo = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
|
|
||||||
" FIXME: Unfortunately, can't use s:_vital_loaded() for this purpose.
|
" FIXME: Unfortunately, can't use s:_vital_loaded() for this purpose.
|
||||||
" Because these variables are used when this script file is loaded.
|
" Because these variables are used when this script file is loaded.
|
||||||
@@ -169,9 +166,6 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
|
||||||
unlet s:save_cpo
|
|
||||||
|
|
||||||
" vim:set et ts=2 sts=2 sw=2 tw=0:
|
" vim:set et ts=2 sts=2 sw=2 tw=0:
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -9,8 +9,6 @@ endfunction
|
|||||||
execute join(['function! vital#_crystal#Web#JSON#import() abort', printf("return map({'decode': '', '_vital_depends': '', '_vital_created': '', 'encode': '', '_vital_loaded': ''}, \"vital#_crystal#function('<SNR>%s_' . v:key)\")", s:_SID()), 'endfunction'], "\n")
|
execute join(['function! vital#_crystal#Web#JSON#import() abort', printf("return map({'decode': '', '_vital_depends': '', '_vital_created': '', 'encode': '', '_vital_loaded': ''}, \"vital#_crystal#function('<SNR>%s_' . v:key)\")", s:_SID()), 'endfunction'], "\n")
|
||||||
delfunction s:_SID
|
delfunction s:_SID
|
||||||
" ___vital___
|
" ___vital___
|
||||||
let s:save_cpo = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
function! s:_true() abort
|
function! s:_true() abort
|
||||||
return 1
|
return 1
|
||||||
@@ -174,9 +172,6 @@ function! s:_encode_dict(val, settings) abort
|
|||||||
endfunction
|
endfunction
|
||||||
" @vimlint(EVL102, 0, l:ns)
|
" @vimlint(EVL102, 0, l:ns)
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
|
||||||
unlet s:save_cpo
|
|
||||||
|
|
||||||
" vim:set et ts=2 sts=2 sw=2 tw=0:
|
" vim:set et ts=2 sts=2 sw=2 tw=0:
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -5,34 +5,6 @@ if exists('b:did_ftplugin')
|
|||||||
endif
|
endif
|
||||||
let b:did_ftplugin = 1
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
" This file is loaded on 'ecrystal' filetype
|
|
||||||
if &filetype !=# 'crystal'
|
|
||||||
finish
|
|
||||||
endif
|
|
||||||
|
|
||||||
let s:save_cpo = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
if exists('loaded_matchit') && !exists('b:match_words')
|
|
||||||
let b:match_ignorecase = 0
|
|
||||||
|
|
||||||
let b:match_words =
|
|
||||||
\ '\<\%(if\|unless\|case\|while\|until\|for\|do\|class\|module\|struct\|lib\|macro\|ifdef\|def\|fun\|begin\|enum\)\>=\@!' .
|
|
||||||
\ ':' .
|
|
||||||
\ '\<\%(else\|elsif\|ensure\|when\|rescue\|break\|redo\|next\|retry\)\>' .
|
|
||||||
\ ':' .
|
|
||||||
\ '\<end\>' .
|
|
||||||
\ ',{:},\[:\],(:)'
|
|
||||||
|
|
||||||
let b:match_skip =
|
|
||||||
\ "synIDattr(synID(line('.'),col('.'),0),'name') =~ '" .
|
|
||||||
\ "\\<crystal\\%(String\\|StringDelimiter\\|ASCIICode\\|Escape\\|" .
|
|
||||||
\ "Interpolation\\|NoInterpolation\\|Comment\\|Documentation\\|" .
|
|
||||||
\ "ConditionalModifier\\|RepeatModifier\\|OptionalDo\\|" .
|
|
||||||
\ "Function\\|BlockArgument\\|KeywordAsMethod\\|ClassVariable\\|" .
|
|
||||||
\ "InstanceVariable\\|GlobalVariable\\|Symbol\\)\\>'"
|
|
||||||
endif
|
|
||||||
|
|
||||||
setlocal comments=:#
|
setlocal comments=:#
|
||||||
setlocal commentstring=#\ %s
|
setlocal commentstring=#\ %s
|
||||||
setlocal suffixesadd=.cr
|
setlocal suffixesadd=.cr
|
||||||
@@ -81,14 +53,33 @@ if &l:ofu ==# ''
|
|||||||
setlocal omnifunc=crystal_lang#complete
|
setlocal omnifunc=crystal_lang#complete
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if exists('AutoPairsLoaded')
|
" Options for vim-matchit
|
||||||
|
if exists('g:loaded_matchit') && !exists('b:match_words')
|
||||||
|
let b:match_ignorecase = 0
|
||||||
|
|
||||||
|
let b:match_words =
|
||||||
|
\ '\<\%(if\|unless\|case\|while\|until\|for\|do\|class\|module\|struct\|lib\|macro\|ifdef\|def\|begin\|enum\|annotation\)\>=\@!' .
|
||||||
|
\ ':' .
|
||||||
|
\ '\<\%(else\|elsif\|ensure\|when\|rescue\|break\|next\)\>' .
|
||||||
|
\ ':' .
|
||||||
|
\ '\<end\>' .
|
||||||
|
\ ',{:},\[:\],(:)'
|
||||||
|
|
||||||
|
let b:match_skip =
|
||||||
|
\ 'synIDattr(synID(line("."), col("."), 0), "name") =~# ''' .
|
||||||
|
\ '\<crystal\%(String\|StringDelimiter\|ASCIICode\|Escape\|' .
|
||||||
|
\ 'Interpolation\|NoInterpolation\|Comment\|Documentation\|' .
|
||||||
|
\ 'ConditionalModifier\|' .
|
||||||
|
\ 'Function\|BlockArgument\|KeywordAsMethod\|ClassVariable\|' .
|
||||||
|
\ 'InstanceVariable\|GlobalVariable\|Symbol\)\>'''
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Options for jiangmiao/auto-pairs
|
||||||
|
if exists('g:AutoPairsLoaded')
|
||||||
let b:AutoPairs = { '{%': '%}' }
|
let b:AutoPairs = { '{%': '%}' }
|
||||||
call extend(b:AutoPairs, g:AutoPairs, 'force')
|
call extend(b:AutoPairs, g:AutoPairs, 'force')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
|
||||||
unlet s:save_cpo
|
|
||||||
|
|
||||||
" vim: sw=2 sts=2 et:
|
" vim: sw=2 sts=2 et:
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ endif
|
|||||||
" TODO: comments=
|
" TODO: comments=
|
||||||
setlocal commentstring=<%#%s%>
|
setlocal commentstring=<%#%s%>
|
||||||
|
|
||||||
let b:undo_ftplugin = "setl cms< "
|
let b:undo_ftplugin = "setl cms< " .
|
||||||
\ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin
|
\ " | unlet! b:browsefilter b:match_words | " . s:undo_ftplugin
|
||||||
|
|
||||||
let &cpo = s:save_cpo
|
let &cpo = s:save_cpo
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'crystal') == -1
|
||||||
|
|
||||||
|
" Initialization {{{1
|
||||||
|
" ==============
|
||||||
|
|
||||||
" Only load this indent file when no other was loaded.
|
" Only load this indent file when no other was loaded.
|
||||||
if exists('b:did_indent')
|
if exists('b:did_indent')
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let b:did_indent = 1
|
let b:did_indent = 1
|
||||||
|
|
||||||
setlocal nosmartindent
|
setlocal nosmartindent
|
||||||
|
|
||||||
" Now, set up our indentation expression and keys that trigger it.
|
" Now, set up our indentation expression and keys that trigger it.
|
||||||
setlocal indentexpr=GetCrystalIndent(v:lnum)
|
setlocal indentexpr=GetCrystalIndent(v:lnum)
|
||||||
setlocal indentkeys=0{,0},0),0],!^F,o,O,e,:,.
|
setlocal indentkeys=0{,0},0),0],!^F,o,O,e,.
|
||||||
setlocal indentkeys+==end,=else,=elsif,=when,=ensure,=rescue
|
setlocal indentkeys+==end,=else,=elsif,=when,=ensure,=rescue
|
||||||
setlocal indentkeys+==private,=protected
|
|
||||||
|
|
||||||
let s:cpo_save = &cpo
|
|
||||||
set cpo&vim
|
|
||||||
|
|
||||||
" Only define the function once.
|
" Only define the function once.
|
||||||
if exists('*GetCrystalIndent')
|
if exists('*GetCrystalIndent')
|
||||||
@@ -26,7 +26,7 @@ endif
|
|||||||
if exists('*shiftwidth')
|
if exists('*shiftwidth')
|
||||||
let s:sw = function('shiftwidth')
|
let s:sw = function('shiftwidth')
|
||||||
else
|
else
|
||||||
function s:sw()
|
function! s:sw()
|
||||||
return &shiftwidth
|
return &shiftwidth
|
||||||
endfunction
|
endfunction
|
||||||
endif
|
endif
|
||||||
@@ -34,262 +34,81 @@ endif
|
|||||||
" GetCrystalIndent Function {{{1
|
" GetCrystalIndent Function {{{1
|
||||||
" =========================
|
" =========================
|
||||||
|
|
||||||
function GetCrystalIndent(...)
|
function! GetCrystalIndent(...) abort
|
||||||
" Setup {{{2
|
" Setup {{{2
|
||||||
" -----
|
" -----
|
||||||
|
|
||||||
" For the current line, use the first argument if given, else v:lnum
|
let indent_info = {}
|
||||||
let clnum = a:0 ? a:1 : v:lnum
|
|
||||||
|
|
||||||
" Set up variables for restoring position in file
|
" The value of a single shift-width
|
||||||
let vcol = col('.')
|
let indent_info.sw = s:sw()
|
||||||
|
|
||||||
|
" For the current line, use the first argument if given, else v:lnum
|
||||||
|
let indent_info.clnum = a:0 ? a:1 : v:lnum
|
||||||
|
let indent_info.cline = getline(indent_info.clnum)
|
||||||
|
|
||||||
|
" Set up variables for restoring position in file.
|
||||||
|
let indent_info.col = col('.')
|
||||||
|
|
||||||
" Work on the current line {{{2
|
" Work on the current line {{{2
|
||||||
" ------------------------
|
" ------------------------
|
||||||
|
|
||||||
" Get the current line.
|
for callback_name in g:crystal#indent#curr_line_callbacks
|
||||||
let line = getline(clnum)
|
let indent = call(function(callback_name), [indent_info])
|
||||||
let ind = -1
|
|
||||||
|
|
||||||
" If we got a closing bracket on an empty line, find its match and indent
|
if indent >= 0
|
||||||
" according to it. For parentheses we indent to its column - 1, for the
|
return indent
|
||||||
" others we indent to the containing line's MSL's level. Return -1 if fail.
|
|
||||||
let col = matchend(line, '^\s*[]})]')
|
|
||||||
if col > 0 && !crystal#indent#IsInStringOrComment(clnum, col)
|
|
||||||
call cursor(clnum, col)
|
|
||||||
let bs = strpart('(){}[]', stridx(')}]', line[col - 1]) * 2, 2)
|
|
||||||
if searchpair(escape(bs[0], '\['), '', bs[1], 'bW', g:crystal#indent#skip_expr)
|
|
||||||
if line[col-1] ==# ')' && col('.') != col('$') - 1
|
|
||||||
let ind = virtcol('.') - 1
|
|
||||||
else
|
|
||||||
let ind = indent(crystal#indent#GetMSL(line('.')))
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
return ind
|
endfor
|
||||||
endif
|
|
||||||
|
|
||||||
" If we have a deindenting keyword, find its match and indent to its level.
|
|
||||||
" TODO: this is messy
|
|
||||||
if crystal#indent#Match(clnum, g:crystal#indent#crystal_deindent_keywords)
|
|
||||||
call cursor(clnum, 1)
|
|
||||||
if searchpair(
|
|
||||||
\ g:crystal#indent#end_start_regex,
|
|
||||||
\ g:crystal#indent#end_middle_regex,
|
|
||||||
\ g:crystal#indent#end_end_regex,
|
|
||||||
\ 'bW', g:crystal#indent#skip_expr)
|
|
||||||
let msl = crystal#indent#GetMSL(line('.'))
|
|
||||||
let line = getline(line('.'))
|
|
||||||
|
|
||||||
if strpart(line, 0, col('.') - 1) =~# '=\s*$' &&
|
|
||||||
\ strpart(line, col('.') - 1, 2) !~# 'do'
|
|
||||||
" assignment to case/begin/etc, on the same line, hanging indent
|
|
||||||
let ind = virtcol('.') - 1
|
|
||||||
elseif getline(msl) =~# '=\s*\(#.*\)\=$'
|
|
||||||
" in the case of assignment to the msl, align to the starting line,
|
|
||||||
" not to the msl
|
|
||||||
let ind = indent(line('.'))
|
|
||||||
else
|
|
||||||
" align to the msl
|
|
||||||
let ind = indent(msl)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
return ind
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If we are in a multi-line string, don't do anything to it.
|
|
||||||
if crystal#indent#IsInString(clnum, matchend(line, '^\s*') + 1)
|
|
||||||
return indent('.')
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If we are at the closing delimiter of a "<<" heredoc-style string, set the
|
|
||||||
" indent to 0.
|
|
||||||
if line =~# '^\k\+\s*$'
|
|
||||||
\ && crystal#indent#IsInStringDelimiter(clnum, 1)
|
|
||||||
\ && search('\V<<'.line, 'nbW')
|
|
||||||
return 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If the current line starts with a leading operator, add a level of indent.
|
|
||||||
if crystal#indent#Match(clnum, g:crystal#indent#leading_operator_regex)
|
|
||||||
return indent(crystal#indent#GetMSL(clnum)) + s:sw()
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Work on the previous line. {{{2
|
" Work on the previous line. {{{2
|
||||||
" --------------------------
|
" --------------------------
|
||||||
|
|
||||||
" Find a non-blank, non-multi-line string line above the current line.
|
" Special case: we don't need the real PrevNonBlank for an empty line
|
||||||
let lnum = crystal#indent#PrevNonBlankNonString(clnum - 1)
|
" inside a string. And that call can be quite expensive in that
|
||||||
|
" particular situation.
|
||||||
|
let indent = crystal#indent#EmptyInsideString(indent_info)
|
||||||
|
|
||||||
" If the line is empty and inside a string, use the previous line.
|
if indent >= 0
|
||||||
if line =~# '^\s*$' && lnum != prevnonblank(clnum - 1)
|
return indent
|
||||||
return indent(prevnonblank(clnum))
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" At the start of the file use zero indent.
|
" Previous line number
|
||||||
if lnum == 0
|
let indent_info.plnum = crystal#indent#PrevNonBlank(indent_info.clnum - 1)
|
||||||
return 0
|
let indent_info.pline = getline(indent_info.plnum)
|
||||||
endif
|
|
||||||
|
|
||||||
" Set up variables for the previous line.
|
for callback_name in g:crystal#indent#prev_line_callbacks
|
||||||
let line = getline(lnum)
|
let indent = call(function(callback_name), [indent_info])
|
||||||
let ind = indent(lnum)
|
|
||||||
|
|
||||||
if crystal#indent#Match(lnum, g:crystal#indent#continuable_regex) &&
|
if indent >= 0
|
||||||
\ crystal#indent#Match(lnum, g:crystal#indent#continuation_regex)
|
return indent
|
||||||
return indent(crystal#indent#GetMSL(lnum)) + s:sw() * 2
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If the previous line ended with a block opening, add a level of indent.
|
|
||||||
if crystal#indent#Match(lnum, g:crystal#indent#block_regex)
|
|
||||||
let msl = crystal#indent#GetMSL(lnum)
|
|
||||||
|
|
||||||
if getline(msl) =~# '=\s*\(#.*\)\=$'
|
|
||||||
" in the case of assignment to the msl, align to the starting line,
|
|
||||||
" not to the msl
|
|
||||||
let ind = indent(lnum) + s:sw()
|
|
||||||
else
|
|
||||||
let ind = indent(msl) + s:sw()
|
|
||||||
endif
|
endif
|
||||||
return ind
|
endfor
|
||||||
endif
|
|
||||||
|
|
||||||
" If the previous line started with a leading operator, use its MSL's level
|
" Work on the MSL. {{{2
|
||||||
" of indent
|
" ----------------
|
||||||
if crystal#indent#Match(lnum, g:crystal#indent#leading_operator_regex)
|
|
||||||
return indent(crystal#indent#GetMSL(lnum))
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If the previous line ended with the "*" of a splat, add a level of indent
|
" Most Significant line based on the previous one -- in case it's a
|
||||||
if line =~ g:crystal#indent#splat_regex
|
" contination of something above
|
||||||
return indent(lnum) + s:sw()
|
let indent_info.plnum_msl = crystal#indent#GetMSL(indent_info.plnum)
|
||||||
endif
|
let indent_info.pline_msl = getline(indent_info.plnum_msl)
|
||||||
|
|
||||||
" If the previous line contained unclosed opening brackets and we are still
|
for callback_name in g:crystal#indent#msl_callbacks
|
||||||
" in them, find the rightmost one and add indent depending on the bracket
|
let indent = call(function(callback_name), [indent_info])
|
||||||
" type.
|
|
||||||
"
|
|
||||||
" If it contained hanging closing brackets, find the rightmost one, find its
|
|
||||||
" match and indent according to that.
|
|
||||||
if line =~# '[[({]' || line =~# '[])]\s*\%(#.*\)\=$'
|
|
||||||
let [opening, closing] = crystal#indent#ExtraBrackets(lnum)
|
|
||||||
|
|
||||||
if opening.pos != -1
|
if indent >= 0
|
||||||
if opening.type ==# '(' && searchpair('(', '', ')', 'bW', g:crystal#indent#skip_expr)
|
return indent
|
||||||
if col('.') + 1 == col('$')
|
|
||||||
return ind + s:sw()
|
|
||||||
else
|
|
||||||
return virtcol('.')
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
let nonspace = matchend(line, '\S', opening.pos + 1) - 1
|
|
||||||
return nonspace > 0 ? nonspace : ind + s:sw()
|
|
||||||
endif
|
|
||||||
elseif closing.pos != -1
|
|
||||||
call cursor(lnum, closing.pos + 1)
|
|
||||||
keepjumps normal! %
|
|
||||||
|
|
||||||
if crystal#indent#Match(line('.'), g:crystal#indent#crystal_indent_keywords)
|
|
||||||
return indent('.') + s:sw()
|
|
||||||
else
|
|
||||||
return indent('.')
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
call cursor(clnum, vcol)
|
|
||||||
end
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If the previous line ended with an "end", match that "end"s beginning's
|
|
||||||
" indent.
|
|
||||||
let col = crystal#indent#Match(lnum, g:crystal#indent#end_end_regex)
|
|
||||||
if col
|
|
||||||
call cursor(lnum, col)
|
|
||||||
if searchpair(
|
|
||||||
\ g:crystal#indent#end_start_regex,
|
|
||||||
\ g:crystal#indent#end_middle_regex,
|
|
||||||
\ g:crystal#indent#end_end_regex,
|
|
||||||
\ 'bW',
|
|
||||||
\ g:crystal#indent#skip_expr)
|
|
||||||
let n = line('.')
|
|
||||||
let ind = indent('.')
|
|
||||||
let msl = crystal#indent#GetMSL(n)
|
|
||||||
if msl != n
|
|
||||||
let ind = indent(msl)
|
|
||||||
end
|
|
||||||
return ind
|
|
||||||
endif
|
endif
|
||||||
end
|
endfor
|
||||||
|
|
||||||
let col = crystal#indent#Match(lnum, g:crystal#indent#crystal_indent_keywords)
|
|
||||||
if col
|
|
||||||
call cursor(lnum, col)
|
|
||||||
let ind = virtcol('.') - 1 + s:sw()
|
|
||||||
" TODO: make this better (we need to count them) (or, if a searchpair
|
|
||||||
" fails, we know that something is lacking an end and thus we indent a
|
|
||||||
" level
|
|
||||||
if crystal#indent#Match(lnum, g:crystal#indent#end_end_regex)
|
|
||||||
let ind = indent('.')
|
|
||||||
endif
|
|
||||||
return ind
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Work on the MSL line. {{{2
|
|
||||||
" ---------------------
|
|
||||||
|
|
||||||
" Set up variables to use and search for MSL to the previous line.
|
|
||||||
let p_lnum = lnum
|
|
||||||
let lnum = crystal#indent#GetMSL(lnum)
|
|
||||||
|
|
||||||
" If the previous line wasn't a MSL.
|
|
||||||
if p_lnum != lnum
|
|
||||||
" If previous line ends bracket and begins non-bracket continuation decrease indent by 1.
|
|
||||||
if crystal#indent#Match(p_lnum, g:crystal#indent#bracket_switch_continuation_regex)
|
|
||||||
return ind - 1
|
|
||||||
" If previous line is a continuation return its indent.
|
|
||||||
" TODO: the || crystal#indent#IsInString() thing worries me a bit.
|
|
||||||
elseif crystal#indent#Match(p_lnum, g:crystal#indent#non_bracket_continuation_regex) ||
|
|
||||||
\ crystal#indent#IsInString(p_lnum,strlen(line))
|
|
||||||
return ind
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Set up more variables, now that we know we wasn't continuation bound.
|
|
||||||
let line = getline(lnum)
|
|
||||||
let msl_ind = indent(lnum)
|
|
||||||
|
|
||||||
" If the MSL line had an indenting keyword in it, add a level of indent.
|
|
||||||
" TODO: this does not take into account contrived things such as
|
|
||||||
" module Foo; class Bar; end
|
|
||||||
if crystal#indent#Match(lnum, g:crystal#indent#crystal_indent_keywords)
|
|
||||||
let ind = msl_ind + s:sw()
|
|
||||||
if crystal#indent#Match(lnum, g:crystal#indent#end_end_regex)
|
|
||||||
let ind = ind - s:sw()
|
|
||||||
endif
|
|
||||||
return ind
|
|
||||||
endif
|
|
||||||
|
|
||||||
" If the previous line ended with an operator -- but wasn't a block
|
|
||||||
" ending, closing bracket, or type declaration -- indent one extra
|
|
||||||
" level.
|
|
||||||
if crystal#indent#Match(lnum, g:crystal#indent#non_bracket_continuation_regex) &&
|
|
||||||
\ !crystal#indent#Match(lnum, '^\s*\([\])}]\|end\)')
|
|
||||||
if lnum == p_lnum
|
|
||||||
let ind = msl_ind + s:sw()
|
|
||||||
else
|
|
||||||
let ind = msl_ind
|
|
||||||
endif
|
|
||||||
return ind
|
|
||||||
endif
|
|
||||||
|
|
||||||
" }}}2
|
" }}}2
|
||||||
|
|
||||||
return ind
|
" By default, just return the previous line's indent
|
||||||
|
return indent(indent_info.plnum)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" }}}1
|
" }}}1
|
||||||
|
|
||||||
let &cpo = s:cpo_save
|
" vim:sw=2 sts=2 ts=8 fdm=marker et:
|
||||||
unlet s:cpo_save
|
|
||||||
|
|
||||||
" vim:set sw=2 sts=2 ts=8 et:
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -71,8 +71,7 @@ let s:ecr_control_open = '<%%\@!-\=[=#]\@!'
|
|||||||
let s:ecr_comment_open = '<%%\@!-\=#'
|
let s:ecr_comment_open = '<%%\@!-\=#'
|
||||||
|
|
||||||
let s:ecr_indent_regex =
|
let s:ecr_indent_regex =
|
||||||
\ '\<\%(if\|unless\|else\|elsif\|case\|for\|when\|while\|until\|begin\|do\|rescue\|ensure\|' .
|
\ '\<\%(if\|unless\|else\|elsif\|case\|when\|while\|until\|begin\|do\|rescue\|ensure\|\)\>'
|
||||||
\ 'class\|module\|struct\|lib\|enum\|union\)\>'
|
|
||||||
|
|
||||||
let s:ecr_dedent_regex =
|
let s:ecr_dedent_regex =
|
||||||
\ '\<\%(end\|else\|elsif\|when\|rescue\|ensure\)\>'
|
\ '\<\%(end\|else\|elsif\|when\|rescue\|ensure\)\>'
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ endfunction
|
|||||||
function! s:getIncIndent() abort
|
function! s:getIncIndent() abort
|
||||||
" Function to determine the s:incIndent pattern
|
" Function to determine the s:incIndent pattern
|
||||||
return
|
return
|
||||||
\ '^\s*\%(class\|entity\|object\|interface\|partition\|rectangle\|enum\|namespace\|package\)\>.*{\s*$\|' .
|
\ '^\s*\%(artifact\|class\|cloud\|database\|entity\|enum\|file\|folder\|frame\|interface\|namespace\|node\|object\|package\|partition\|rectangle\|skinparam\|state\|storage\|together\)\>.*{\s*$\|' .
|
||||||
\ '^\s*\%(loop\|alt\|opt\|group\|critical\|else\|legend\|box\|if\|while\|fork\|split\)\>\|' .
|
\ '^\s*\%(loop\|alt\|opt\|group\|critical\|else\|legend\|box\|if\|while\|fork\|split\)\>\|' .
|
||||||
\ '^\s*ref\>[^:]*$\|' .
|
\ '^\s*ref\>[^:]*$\|' .
|
||||||
\ '^\s*[hr]\?note\>\%(\%("[^"]*" \<as\>\)\@![^:]\)*$\|' .
|
\ '^\s*[hr]\?note\>\%(\%("[^"]*" \<as\>\)\@![^:]\)*$\|' .
|
||||||
|
|||||||
@@ -16,10 +16,12 @@ syntax match typescriptBinaryOp contained /===\?/ nextgroup=@typescriptValue s
|
|||||||
syntax match typescriptBinaryOp contained />\(>>=\|>>\|>=\|>\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
|
syntax match typescriptBinaryOp contained />\(>>=\|>>\|>=\|>\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||||
" 4: <<=, <<, <=, <
|
" 4: <<=, <<, <=, <
|
||||||
syntax match typescriptBinaryOp contained /<\(<=\|<\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
|
syntax match typescriptBinaryOp contained /<\(<=\|<\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||||
" 3: ||, |=, |
|
" 3: ||, |=, |, ||=
|
||||||
syntax match typescriptBinaryOp contained /|\(|\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
|
syntax match typescriptBinaryOp contained /||\?=\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||||
" 3: &&, &=, &
|
" 4: &&, &=, &, &&=
|
||||||
syntax match typescriptBinaryOp contained /&\(&\|=\)\?/ nextgroup=@typescriptValue skipwhite skipempty
|
syntax match typescriptBinaryOp contained /&&\?=\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||||
|
" 2: ??, ??=
|
||||||
|
syntax match typescriptBinaryOp contained /??=\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||||
" 2: *=, *
|
" 2: *=, *
|
||||||
syntax match typescriptBinaryOp contained /\*=\?/ nextgroup=@typescriptValue skipwhite skipempty
|
syntax match typescriptBinaryOp contained /\*=\?/ nextgroup=@typescriptValue skipwhite skipempty
|
||||||
" 2: %=, %
|
" 2: %=, %
|
||||||
|
|||||||
@@ -94,9 +94,12 @@ syntax cluster typescriptTypeMember contains=
|
|||||||
\ typescriptIndexSignature,
|
\ typescriptIndexSignature,
|
||||||
\ @typescriptMembers
|
\ @typescriptMembers
|
||||||
|
|
||||||
|
syntax match typescriptTupleLable /\K\k*?\?:/
|
||||||
|
\ contained
|
||||||
|
|
||||||
syntax region typescriptTupleType matchgroup=typescriptBraces
|
syntax region typescriptTupleType matchgroup=typescriptBraces
|
||||||
\ start=/\[/ end=/\]/
|
\ start=/\[/ end=/\]/
|
||||||
\ contains=@typescriptType,@typescriptComments
|
\ contains=@typescriptType,@typescriptComments,typescriptRestOrSpread,typescriptTupleLable
|
||||||
\ contained skipwhite
|
\ contained skipwhite
|
||||||
|
|
||||||
syntax cluster typescriptTypeOperator
|
syntax cluster typescriptTypeOperator
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ if exists("did_typescript_hilink")
|
|||||||
HiLink typescriptBoolean Boolean
|
HiLink typescriptBoolean Boolean
|
||||||
HiLink typescriptObjectLabel typescriptLabel
|
HiLink typescriptObjectLabel typescriptLabel
|
||||||
HiLink typescriptLabel Label
|
HiLink typescriptLabel Label
|
||||||
|
HiLink typescriptTupleLable Label
|
||||||
HiLink typescriptStringProperty String
|
HiLink typescriptStringProperty String
|
||||||
HiLink typescriptImport Special
|
HiLink typescriptImport Special
|
||||||
HiLink typescriptImportType Special
|
HiLink typescriptImportType Special
|
||||||
|
|||||||
@@ -150,6 +150,7 @@ syn match crystalModuleName "\%(\%([.@$]\@1<!\.\)\@1<!\<\|::\)\_s*\zs\u\w
|
|||||||
syn match crystalStructName "\%(\%([.@$]\@1<!\.\)\@1<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained
|
syn match crystalStructName "\%(\%([.@$]\@1<!\.\)\@1<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained
|
||||||
syn match crystalLibName "\%(\%([.@$]\@1<!\.\)\@1<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained
|
syn match crystalLibName "\%(\%([.@$]\@1<!\.\)\@1<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained
|
||||||
syn match crystalEnumName "\%(\%([.@$]\@1<!\.\)\@1<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained
|
syn match crystalEnumName "\%(\%([.@$]\@1<!\.\)\@1<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained
|
||||||
|
syn match crystalAnnotationName "\%(\%([.@$]\@1<!\.\)\@1<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@=" contained
|
||||||
syn match crystalConstant "\%(\%([.@$]\@1<!\.\)\@1<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@="
|
syn match crystalConstant "\%(\%([.@$]\@1<!\.\)\@1<!\<\|::\)\_s*\zs\u\w*\%(\>\|::\)\@="
|
||||||
syn match crystalClassVariable "@@\%(\h\|%\|[^\x00-\x7F]\)\%(\w\|%\|[^\x00-\x7F]\)*" display
|
syn match crystalClassVariable "@@\%(\h\|%\|[^\x00-\x7F]\)\%(\w\|%\|[^\x00-\x7F]\)*" display
|
||||||
syn match crystalInstanceVariable "@\%(\h\|%\|[^\x00-\x7F]\)\%(\w\|%\|[^\x00-\x7F]\)*" display
|
syn match crystalInstanceVariable "@\%(\h\|%\|[^\x00-\x7F]\)\%(\w\|%\|[^\x00-\x7F]\)*" display
|
||||||
@@ -247,53 +248,56 @@ SynFold '<<' syn region crystalString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\
|
|||||||
SynFold '<<' syn region crystalString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<-`\z([^`]*\)`\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+3 matchgroup=crystalStringDelimiter end=+^\s*\zs\z1$+ contains=crystalHeredocStart,@crystalStringSpecial keepend
|
SynFold '<<' syn region crystalString start=+\%(\%(class\|::\)\_s*\|\%([]}).]\)\s\|\w\)\@<!<<-`\z([^`]*\)`\ze\%(.*<<-\=['`"]\=\h\)\@!+hs=s+3 matchgroup=crystalStringDelimiter end=+^\s*\zs\z1$+ contains=crystalHeredocStart,@crystalStringSpecial keepend
|
||||||
|
|
||||||
" Module, Class, Method, and Alias Declarations
|
" Module, Class, Method, and Alias Declarations
|
||||||
syn match crystalAliasDeclaration "[^[:space:];#.()]\+" contained contains=crystalSymbol,crystalGlobalVariable,crystalPredefinedVariable nextgroup=crystalAliasDeclaration2 skipwhite
|
syn match crystalAliasDeclaration "[^[:space:];#.()]\+" contained contains=crystalSymbol,crystalGlobalVariable,crystalPredefinedVariable nextgroup=crystalAliasDeclaration2 skipwhite
|
||||||
syn match crystalAliasDeclaration2 "[^[:space:];#.()]\+" contained contains=crystalSymbol,crystalGlobalVariable,crystalPredefinedVariable
|
syn match crystalAliasDeclaration2 "[^[:space:];#.()]\+" contained contains=crystalSymbol,crystalGlobalVariable,crystalPredefinedVariable
|
||||||
syn match crystalMethodDeclaration "[^[:space:];#(]\+" contained contains=crystalConstant,crystalFunction,crystalBoolean,crystalPseudoVariable,crystalInstanceVariable,crystalClassVariable,crystalGlobalVariable
|
syn match crystalMethodDeclaration "[^[:space:];#(]\+" contained contains=crystalConstant,crystalFunction,crystalBoolean,crystalPseudoVariable,crystalInstanceVariable,crystalClassVariable,crystalGlobalVariable
|
||||||
syn match crystalFunctionDeclaration "[^[:space:];#(=]\+" contained contains=crystalFunction
|
syn match crystalFunctionDeclaration "[^[:space:];#(=]\+" contained contains=crystalFunction
|
||||||
syn match crystalTypeDeclaration "[^[:space:];#=]\+" contained contains=crystalTypeName
|
syn match crystalTypeDeclaration "[^[:space:];#=]\+" contained contains=crystalTypeName
|
||||||
syn match crystalClassDeclaration "[^[:space:];#<]\+" contained contains=crystalClassName,crystalOperator
|
syn match crystalClassDeclaration "[^[:space:];#<]\+" contained contains=crystalClassName,crystalOperator
|
||||||
syn match crystalModuleDeclaration "[^[:space:];#]\+" contained contains=crystalModuleName,crystalOperator
|
syn match crystalModuleDeclaration "[^[:space:];#]\+" contained contains=crystalModuleName,crystalOperator
|
||||||
syn match crystalStructDeclaration "[^[:space:];#<]\+" contained contains=crystalStructName,crystalOperator
|
syn match crystalStructDeclaration "[^[:space:];#<]\+" contained contains=crystalStructName,crystalOperator
|
||||||
syn match crystalLibDeclaration "[^[:space:];#]\+" contained contains=crystalLibName,crystalOperator
|
syn match crystalLibDeclaration "[^[:space:];#]\+" contained contains=crystalLibName,crystalOperator
|
||||||
syn match crystalMacroDeclaration "[^[:space:];#(]\+" contained contains=crystalFunction
|
syn match crystalMacroDeclaration "[^[:space:];#(]\+" contained contains=crystalFunction
|
||||||
syn match crystalEnumDeclaration "[^[:space:];#<\"]\+" contained contains=crystalEnumName
|
syn match crystalEnumDeclaration "[^[:space:];#<\"]\+" contained contains=crystalEnumName
|
||||||
|
syn match crystalAnnotationDeclaration "[^[:space:];#]\+" contained contains=crystalAnnotationName
|
||||||
syn match crystalFunction "\<[_[:alpha:]][_[:alnum:]]*[?!=]\=[[:alnum:]_.:?!=]\@!" contained containedin=crystalMethodDeclaration,crystalFunctionDeclaration
|
syn match crystalFunction "\<[_[:alpha:]][_[:alnum:]]*[?!=]\=[[:alnum:]_.:?!=]\@!" contained containedin=crystalMethodDeclaration,crystalFunctionDeclaration
|
||||||
syn match crystalFunction "\%(\s\|^\)\@1<=[_[:alpha:]][_[:alnum:]]*[?!=]\=\%(\s\|$\)\@=" contained containedin=crystalAliasDeclaration,crystalAliasDeclaration2
|
syn match crystalFunction "\%(\s\|^\)\@1<=[_[:alpha:]][_[:alnum:]]*[?!=]\=\%(\s\|$\)\@=" contained containedin=crystalAliasDeclaration,crystalAliasDeclaration2
|
||||||
syn match crystalFunction "\%([[:space:].]\|^\)\@1<=\%(\[\][=?]\=\|\*\*\|[+-]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=crystalAliasDeclaration,crystalAliasDeclaration2,crystalMethodDeclaration,crystalFunctionDeclaration
|
syn match crystalFunction "\%([[:space:].]\|^\)\@1<=\%(\[\][=?]\=\|\*\*\|[+-]@\=\|[*/%|&^~]\|<<\|>>\|[<>]=\=\|<=>\|===\|[=!]=\|[=!]\~\|!\|`\)\%([[:space:];#(]\|$\)\@=" contained containedin=crystalAliasDeclaration,crystalAliasDeclaration2,crystalMethodDeclaration,crystalFunctionDeclaration
|
||||||
|
|
||||||
syn cluster crystalDeclaration contains=crystalAliasDeclaration,crystalAliasDeclaration2,crystalMethodDeclaration,crystalFunctionDeclaration,crystalModuleDeclaration,crystalClassDeclaration,crystalStructDeclaration,crystalLibDeclaration,crystalMacroDeclaration,crystalFunction,crystalBlockParameter,crystalTypeDeclaration,crystalEnumDeclaration
|
syn cluster crystalDeclaration contains=crystalAliasDeclaration,crystalAliasDeclaration2,crystalMethodDeclaration,crystalFunctionDeclaration,crystalModuleDeclaration,crystalClassDeclaration,crystalStructDeclaration,crystalLibDeclaration,crystalMacroDeclaration,crystalFunction,crystalBlockParameter,crystalTypeDeclaration,crystalEnumDeclaration,crystalAnnotationDeclaration
|
||||||
|
|
||||||
" Keywords
|
" Keywords
|
||||||
" Note: the following keywords have already been defined:
|
" Note: the following keywords have already been defined:
|
||||||
" begin case class def do end for if module unless until while
|
" begin case class def do end for if module unless until while
|
||||||
syn match crystalControl "\<\%(break\|next\|rescue\|return\)\>[?!]\@!"
|
syn match crystalControl "\<\%(break\|next\|rescue\|return\)\>[?!]\@!"
|
||||||
syn match crystalOperator "\<defined?" display
|
|
||||||
syn match crystalKeyword "\<\%(super\|previous_def\|yield\|of\|with\|uninitialized\|union\)\>[?!]\@!"
|
syn match crystalKeyword "\<\%(super\|previous_def\|yield\|of\|with\|uninitialized\|union\)\>[?!]\@!"
|
||||||
syn match crystalBoolean "\<\%(true\|false\)\>[?!]\@!"
|
syn match crystalBoolean "\<\%(true\|false\)\>[?!]\@!"
|
||||||
syn match crystalPseudoVariable "\<\%(nil\|self\|__DIR__\|__FILE__\|__LINE__\|__END_LINE__\)\>[?!]\@!" " TODO: reorganise
|
syn match crystalPseudoVariable "\<\%(nil\|__DIR__\|__FILE__\|__LINE__\|__END_LINE__\)\>[?!]\@!" " TODO: reorganise
|
||||||
|
syn match crystalPseudoVariable "\<self\>"
|
||||||
|
|
||||||
" Expensive Mode - match 'end' with the appropriate opening keyword for syntax
|
" Expensive Mode - match 'end' with the appropriate opening keyword for syntax
|
||||||
" based folding and special highlighting of module/class/method definitions
|
" based folding and special highlighting of module/class/method definitions
|
||||||
if !exists('b:crystal_no_expensive') && !exists('g:crystal_no_expensive')
|
if !exists('b:crystal_no_expensive') && !exists('g:crystal_no_expensive')
|
||||||
syn match crystalDefine "\<alias\>" nextgroup=crystalAliasDeclaration skipwhite skipnl
|
syn match crystalDefine "\<alias\>" nextgroup=crystalAliasDeclaration skipwhite skipnl
|
||||||
syn match crystalDefine "\<def\>" nextgroup=crystalMethodDeclaration skipwhite skipnl
|
syn match crystalDefine "\<def\>" nextgroup=crystalMethodDeclaration skipwhite skipnl
|
||||||
syn match crystalDefine "\<fun\>" nextgroup=crystalFunctionDeclaration skipwhite skipnl
|
syn match crystalDefine "\<fun\>" nextgroup=crystalFunctionDeclaration skipwhite skipnl
|
||||||
syn match crystalDefine "\<undef\>" nextgroup=crystalFunction skipwhite skipnl
|
syn match crystalDefine "\<undef\>" nextgroup=crystalFunction skipwhite skipnl
|
||||||
syn match crystalDefine "\<\%(type\|alias\)\>\%(\s*\h\w*\s*=\)\@=" nextgroup=crystalTypeDeclaration skipwhite skipnl
|
syn match crystalDefine "\<\%(type\|alias\)\>\%(\s*\h\w*\s*=\)\@=" nextgroup=crystalTypeDeclaration skipwhite skipnl
|
||||||
syn match crystalClass "\<class\>" nextgroup=crystalClassDeclaration skipwhite skipnl
|
syn match crystalClass "\<class\>" nextgroup=crystalClassDeclaration skipwhite skipnl
|
||||||
syn match crystalModule "\<module\>" nextgroup=crystalModuleDeclaration skipwhite skipnl
|
syn match crystalModule "\<module\>" nextgroup=crystalModuleDeclaration skipwhite skipnl
|
||||||
syn match crystalStruct "\<struct\>" nextgroup=crystalStructDeclaration skipwhite skipnl
|
syn match crystalStruct "\<struct\>" nextgroup=crystalStructDeclaration skipwhite skipnl
|
||||||
syn match crystalLib "\<lib\>" nextgroup=crystalLibDeclaration skipwhite skipnl
|
syn match crystalLib "\<lib\>" nextgroup=crystalLibDeclaration skipwhite skipnl
|
||||||
syn match crystalMacro "\<macro\>" nextgroup=crystalMacroDeclaration skipwhite skipnl
|
syn match crystalMacro "\<macro\>" nextgroup=crystalMacroDeclaration skipwhite skipnl
|
||||||
syn match crystalEnum "\<enum\>" nextgroup=crystalEnumDeclaration skipwhite skipnl
|
syn match crystalEnum "\<enum\>" nextgroup=crystalEnumDeclaration skipwhite skipnl
|
||||||
|
syn match crystalAnnotation "\<annotation\>" nextgroup=crystalAnnotationDeclaration skipwhite skipnl
|
||||||
|
|
||||||
SynFold 'def' syn region crystalMethodBlock start="\<\%(def\|macro\)\>" matchgroup=crystalDefine end="\%(\<\%(def\|macro\)\_s\+\)\@<!\<end\>" contains=TOP
|
SynFold 'def' syn region crystalMethodBlock start="\<\%(def\|macro\)\>" matchgroup=crystalDefine end="\%(\<\%(def\|macro\)\_s\+\)\@<!\<end\>" contains=TOP
|
||||||
SynFold 'class' syn region crystalBlock start="\<class\>" matchgroup=crystalClass end="\<end\>" contains=TOP
|
SynFold 'class' syn region crystalBlock start="\<class\>" matchgroup=crystalClass end="\<end\>" contains=TOP
|
||||||
SynFold 'module' syn region crystalBlock start="\<module\>" matchgroup=crystalModule end="\<end\>" contains=TOP
|
SynFold 'module' syn region crystalBlock start="\<module\>" matchgroup=crystalModule end="\<end\>" contains=TOP
|
||||||
SynFold 'struct' syn region crystalBlock start="\<struct\>" matchgroup=crystalStruct end="\<end\>" contains=TOP
|
SynFold 'struct' syn region crystalBlock start="\<struct\>" matchgroup=crystalStruct end="\<end\>" contains=TOP
|
||||||
SynFold 'lib' syn region crystalBlock start="\<lib\>" matchgroup=crystalLib end="\<end\>" contains=TOP
|
SynFold 'lib' syn region crystalBlock start="\<lib\>" matchgroup=crystalLib end="\<end\>" contains=TOP
|
||||||
SynFold 'enum' syn region crystalBlock start="\<enum\>" matchgroup=crystalEnum end="\<end\>" contains=TOP
|
SynFold 'enum' syn region crystalBlock start="\<enum\>" matchgroup=crystalEnum end="\<end\>" contains=TOP
|
||||||
|
SynFold 'annotation' syn region crystalBlock start="\<annotation\>" matchgroup=crystalAnnotation end="\<end\>" contains=TOP
|
||||||
|
|
||||||
" modifiers
|
" modifiers
|
||||||
syn match crystalConditionalModifier "\<\%(if\|unless\|ifdef\)\>" display
|
syn match crystalConditionalModifier "\<\%(if\|unless\|ifdef\)\>" display
|
||||||
@@ -326,14 +330,15 @@ if !exists('b:crystal_no_expensive') && !exists('g:crystal_no_expensive')
|
|||||||
exec 'syn sync minlines=' . g:crystal_minlines
|
exec 'syn sync minlines=' . g:crystal_minlines
|
||||||
else
|
else
|
||||||
" Non-expensive mode
|
" Non-expensive mode
|
||||||
syn match crystalControl "\<def\>[?!]\@!" nextgroup=crystalMethodDeclaration skipwhite skipnl
|
syn match crystalControl "\<def\>[?!]\@!" nextgroup=crystalMethodDeclaration skipwhite skipnl
|
||||||
syn match crystalControl "\<fun\>[?!]\@!" nextgroup=crystalFunctionDeclaration skipwhite skipnl
|
syn match crystalControl "\<fun\>[?!]\@!" nextgroup=crystalFunctionDeclaration skipwhite skipnl
|
||||||
syn match crystalControl "\<class\>[?!]\@!" nextgroup=crystalClassDeclaration skipwhite skipnl
|
syn match crystalControl "\<class\>[?!]\@!" nextgroup=crystalClassDeclaration skipwhite skipnl
|
||||||
syn match crystalControl "\<module\>[?!]\@!" nextgroup=crystalModuleDeclaration skipwhite skipnl
|
syn match crystalControl "\<module\>[?!]\@!" nextgroup=crystalModuleDeclaration skipwhite skipnl
|
||||||
syn match crystalControl "\<struct\>[?!]\@!" nextgroup=crystalStructDeclaration skipwhite skipnl
|
syn match crystalControl "\<struct\>[?!]\@!" nextgroup=crystalStructDeclaration skipwhite skipnl
|
||||||
syn match crystalControl "\<lib\>[?!]\@!" nextgroup=crystalLibDeclaration skipwhite skipnl
|
syn match crystalControl "\<lib\>[?!]\@!" nextgroup=crystalLibDeclaration skipwhite skipnl
|
||||||
syn match crystalControl "\<macro\>[?!]\@!" nextgroup=crystalMacroDeclaration skipwhite skipnl
|
syn match crystalControl "\<macro\>[?!]\@!" nextgroup=crystalMacroDeclaration skipwhite skipnl
|
||||||
syn match crystalControl "\<enum\>[?!]\@!" nextgroup=crystalEnumDeclaration skipwhite skipnl
|
syn match crystalControl "\<enum\>[?!]\@!" nextgroup=crystalEnumDeclaration skipwhite skipnl
|
||||||
|
syn match crystalControl "\<annotation\>[?!]\@!" nextgroup=crystalAnnotationDeclaration skipwhite skipnl
|
||||||
syn match crystalControl "\<\%(case\|begin\|do\|if\|ifdef\|unless\|while\|until\|else\|elsif\|ensure\|then\|when\|end\)\>[?!]\@!"
|
syn match crystalControl "\<\%(case\|begin\|do\|if\|ifdef\|unless\|while\|until\|else\|elsif\|ensure\|then\|when\|end\)\>[?!]\@!"
|
||||||
syn match crystalKeyword "\<\%(alias\|undef\)\>[?!]\@!"
|
syn match crystalKeyword "\<\%(alias\|undef\)\>[?!]\@!"
|
||||||
endif
|
endif
|
||||||
@@ -358,8 +363,8 @@ endif
|
|||||||
|
|
||||||
" Macro
|
" Macro
|
||||||
" Note: This definition must be put after crystalNestedCurlyBraces to give higher priority
|
" Note: This definition must be put after crystalNestedCurlyBraces to give higher priority
|
||||||
syn region crystalMacroRegion matchgroup=crystalMacroDelim start="\\\={%" end="%}" oneline display contains=@crystalMacroGroup containedin=ALL
|
syn region crystalMacroRegion matchgroup=crystalMacroDelim start="\\\={%" end="%}" display oneline contains=@crystalMacroGroup containedin=ALL
|
||||||
syn region crystalMacroRegion matchgroup=crystalMacroDelim start="\\\={{" end="}}" oneline display contains=@crystalMacroGroup containedin=ALL
|
syn region crystalMacroRegion matchgroup=crystalMacroDelim start="\\\={{" end="}}" display contains=TOP containedin=ALL
|
||||||
|
|
||||||
" Cluster for groups that can appear inside macro expressions
|
" Cluster for groups that can appear inside macro expressions
|
||||||
syn cluster crystalMacroGroup contains=@crystalTop
|
syn cluster crystalMacroGroup contains=@crystalTop
|
||||||
@@ -375,8 +380,7 @@ syn cluster crystalMacroGroup remove=@crystalExpensive
|
|||||||
" Some keywords will have to be redefined for them to be highlighted
|
" Some keywords will have to be redefined for them to be highlighted
|
||||||
" properly
|
" properly
|
||||||
syn keyword crystalMacroKeyword contained
|
syn keyword crystalMacroKeyword contained
|
||||||
\ if else elsif end for in begin do case when while until loop
|
\ if unless else elsif end for in do while until loop begin
|
||||||
\ rescue ensure
|
|
||||||
|
|
||||||
syn cluster crystalMacroGroup add=crystalMacroKeyword
|
syn cluster crystalMacroGroup add=crystalMacroKeyword
|
||||||
|
|
||||||
@@ -414,6 +418,7 @@ hi def link crystalModule crystalDefine
|
|||||||
hi def link crystalStruct crystalDefine
|
hi def link crystalStruct crystalDefine
|
||||||
hi def link crystalLib crystalDefine
|
hi def link crystalLib crystalDefine
|
||||||
hi def link crystalEnum crystalDefine
|
hi def link crystalEnum crystalDefine
|
||||||
|
hi def link crystalAnnotation crystalDefine
|
||||||
hi def link crystalMethodExceptional crystalDefine
|
hi def link crystalMethodExceptional crystalDefine
|
||||||
hi def link crystalDefine Define
|
hi def link crystalDefine Define
|
||||||
hi def link crystalFunction Function
|
hi def link crystalFunction Function
|
||||||
@@ -442,6 +447,7 @@ hi def link crystalModuleName crystalConstant
|
|||||||
hi def link crystalStructName crystalConstant
|
hi def link crystalStructName crystalConstant
|
||||||
hi def link crystalLibName crystalConstant
|
hi def link crystalLibName crystalConstant
|
||||||
hi def link crystalEnumName crystalConstant
|
hi def link crystalEnumName crystalConstant
|
||||||
|
hi def link crystalAnnotationName crystalConstant
|
||||||
hi def link crystalGlobalVariable crystalIdentifier
|
hi def link crystalGlobalVariable crystalIdentifier
|
||||||
hi def link crystalBlockParameter crystalIdentifier
|
hi def link crystalBlockParameter crystalIdentifier
|
||||||
hi def link crystalInstanceVariable crystalIdentifier
|
hi def link crystalInstanceVariable crystalIdentifier
|
||||||
@@ -478,7 +484,7 @@ hi def link crystalRegexp crystalString
|
|||||||
hi def link crystalMacro PreProc
|
hi def link crystalMacro PreProc
|
||||||
hi def link crystalMacroDelim crystalMacro
|
hi def link crystalMacroDelim crystalMacro
|
||||||
hi def link crystalMacroKeyword crystalKeyword
|
hi def link crystalMacroKeyword crystalKeyword
|
||||||
hi def link crystalLinkAttrDelim crystalMacro
|
hi def link crystalLinkAttrDelim crystalMacroDelim
|
||||||
hi def link crystalError Error
|
hi def link crystalError Error
|
||||||
hi def link crystalInvalidVariable crystalError
|
hi def link crystalInvalidVariable crystalError
|
||||||
hi def link crystalSpaceError crystalError
|
hi def link crystalSpaceError crystalError
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ syntax match dhallLabel "\v[a-z_][A-Za-z0-9\-]*"
|
|||||||
syntax match dhallType "\v[a-zA-Z]+\.[A-Z][a-z0-9A-Z_]*"
|
syntax match dhallType "\v[a-zA-Z]+\.[A-Z][a-z0-9A-Z_]*"
|
||||||
syntax match dhallParens "(\|)\|\[\|\]\|,"
|
syntax match dhallParens "(\|)\|\[\|\]\|,"
|
||||||
syntax match dhallRecord "{\|}\|:"
|
syntax match dhallRecord "{\|}\|:"
|
||||||
syntax keyword dhallKeyword let in forall constructors if then else merge env as
|
syntax keyword dhallKeyword let in forall constructors if then else merge env as with
|
||||||
syntax match dhallEsc +\\["\\abfnrtv$/]+
|
syntax match dhallEsc +\\["\\abfnrtv$/]+
|
||||||
syntax match dhallSingleSpecial +'''+
|
syntax match dhallSingleSpecial +'''+
|
||||||
syntax match dhallSingleSpecial +''${+
|
syntax match dhallSingleSpecial +''${+
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ 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
|
syntax match plantumlArrowDirectedLine /\([-.]\)\%(l\%[eft]\|r\%[ight]\|up\?\|d\%[own]\)\1/ contained
|
||||||
|
|
||||||
" Note and legend
|
" 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 region plantumlNoteMultiLine start=/\%(^\s*[rh]\?\%(note\|legend\)\)\@<=\s\%([^:"]\+$\)\@=/ end=/^\%(\s*\zeend\s*[rh]\?\%(note\|legend\)$\)\|endlegend\@=/ contains=plantumlSpecialString,plantumlNoteMultiLineStart,plantumlTag
|
||||||
syntax match plantumlNoteMultiLineStart /\%(^\s*[rh]\?\%(note\|legend\)\)\@<=\s\%([^:]\+$\)/ contained contains=plantumlKeyword,plantumlColor,plantumlString,plantumlTag
|
syntax match plantumlNoteMultiLineStart /\%(^\s*[rh]\?\%(note\|legend\)\)\@<=\s\%([^:]\+$\)/ contained contains=plantumlKeyword,plantumlColor,plantumlString,plantumlTag
|
||||||
|
|
||||||
" Class
|
" Class
|
||||||
@@ -140,11 +140,11 @@ syntax match plantumlActivityLabel /\%(^\%(#\S\+\)\?\)\@<=:\_[^;|<>/\]}]\+[;|<>/
|
|||||||
syntax match plantumlSequenceDivider /^\s*==[^=]\+==\s*$/
|
syntax match plantumlSequenceDivider /^\s*==[^=]\+==\s*$/
|
||||||
syntax match plantumlSequenceSpace /^\s*|||\+\s*$/
|
syntax match plantumlSequenceSpace /^\s*|||\+\s*$/
|
||||||
syntax match plantumlSequenceSpace /^\s*||\d\+||\+\s*$/
|
syntax match plantumlSequenceSpace /^\s*||\d\+||\+\s*$/
|
||||||
syntax match plantumlSequenceDelay /^\.\{3}$/
|
syntax match plantumlSequenceDelay /^\s*\.\{3}$/
|
||||||
syntax region plantumlText oneline matchgroup=plantumlSequenceDelay start=/^\.\{3}/ end=/\.\{3}$/
|
syntax region plantumlText oneline matchgroup=plantumlSequenceDelay start=/^\s*\.\{3}/ end=/\.\{3}$/
|
||||||
|
|
||||||
" Usecase diagram
|
" Usecase diagram
|
||||||
syntax match plantumlUsecaseActor /:.\{-1,}:/ contains=plantumlSpecialString
|
syntax match plantumlUsecaseActor /^\s*:.\{-1,}:/ contains=plantumlSpecialString
|
||||||
|
|
||||||
|
|
||||||
" Mindmap diagram
|
" Mindmap diagram
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vifm') == -1
|
|||||||
|
|
||||||
" vifm syntax file
|
" vifm syntax file
|
||||||
" Maintainer: xaizek <xaizek@posteo.net>
|
" Maintainer: xaizek <xaizek@posteo.net>
|
||||||
" Last Change: May 26, 2020
|
" Last Change: June 22, 2020
|
||||||
" Inspired By: Vim syntax file by Dr. Charles E. Campbell, Jr.
|
" Inspired By: Vim syntax file by Dr. Charles E. Campbell, Jr.
|
||||||
|
|
||||||
if exists('b:current_syntax')
|
if exists('b:current_syntax')
|
||||||
@@ -17,27 +17,27 @@ set cpo-=C
|
|||||||
" General commands
|
" General commands
|
||||||
syntax keyword vifmCommand contained
|
syntax keyword vifmCommand contained
|
||||||
\ alink apropos bmark bmarks bmgo cds change chmod chown clone compare
|
\ alink apropos bmark bmarks bmgo cds change chmod chown clone compare
|
||||||
\ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] di[splay] dirs e[dit]
|
\ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] delsession di[splay]
|
||||||
\ el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep] h[elp]
|
\ dirs e[dit] el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep]
|
||||||
\ hideui histnext his[tory] histprev jobs locate ls lstrash marks media
|
\ h[elp] hideui histnext his[tory] histprev jobs locate ls lstrash marks
|
||||||
\ mes[sages] mkdir m[ove] noh[lsearch] on[ly] popd pushd pu[t] pw[d] qa[ll]
|
\ media mes[sages] mkdir m[ove] noh[lsearch] on[ly] popd pushd pu[t] pw[d]
|
||||||
\ q[uit] redr[aw] reg[isters] regular rename restart restore rlink screen
|
\ qa[ll] q[uit] redr[aw] reg[isters] regular rename restart restore rlink
|
||||||
\ sh[ell] siblnext siblprev sor[t] sp[lit] s[ubstitute] tabc[lose] tabm[ove]
|
\ screen sh[ell] siblnext siblprev sor[t] sp[lit] s[ubstitute] tabc[lose]
|
||||||
\ tabname tabnew tabn[ext] tabo[nly] tabp[revious] touch tr trashes tree
|
\ tabm[ove] tabname tabnew tabn[ext] tabo[nly] tabp[revious] touch tr
|
||||||
\ sync undol[ist] ve[rsion] vie[w] vifm vs[plit] winc[md] w[rite] wq wqa[ll]
|
\ trashes tree session sync undol[ist] ve[rsion] vie[w] vifm vs[plit]
|
||||||
\ xa[ll] x[it] y[ank]
|
\ winc[md] w[rite] wq wqa[ll] xa[ll] x[it] y[ank]
|
||||||
\ nextgroup=vifmArgs
|
\ nextgroup=vifmArgs
|
||||||
syntax keyword vifmCommandCN contained
|
syntax keyword vifmCommandCN contained
|
||||||
\ alink apropos bmark bmarks bmgo cds change chmod chown clone compare
|
\ alink apropos bmark bmarks bmgo cds change chmod chown clone compare
|
||||||
\ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] di[splay] dirs e[dit]
|
\ cope[n] co[py] cq[uit] d[elete] delbmarks delm[arks] delsession di[splay]
|
||||||
\ el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep] h[elp]
|
\ dirs e[dit] el[se] empty en[dif] exi[t] file fin[d] fini[sh] go[to] gr[ep]
|
||||||
\ hideui histnext his[tory] histprev jobs locate ls lstrash marks media
|
\ h[elp] hideui histnext his[tory] histprev jobs locate ls lstrash marks
|
||||||
\ mes[sages] mkdir m[ove] noh[lsearch] on[ly] popd pushd pu[t] pw[d] qa[ll]
|
\ media mes[sages] mkdir m[ove] noh[lsearch] on[ly] popd pushd pu[t] pw[d]
|
||||||
\ q[uit] redr[aw] reg[isters] regular rename restart restore rlink screen
|
\ qa[ll] q[uit] redr[aw] reg[isters] regular rename restart restore rlink
|
||||||
\ sh[ell] siblnext siblprev sor[t] sp[lit] s[ubstitute] tabc[lose] tabm[ove]
|
\ screen sh[ell] siblnext siblprev sor[t] sp[lit] s[ubstitute] tabc[lose]
|
||||||
\ tabname tabnew tabn[ext] tabp[revious] touch tr trashes tree sync
|
\ tabm[ove] tabname tabnew tabn[ext] tabo[nly] tabp[revious] touch tr
|
||||||
\ undol[ist] ve[rsion] vie[w] vifm vs[plit] winc[md] w[rite] wq wqa[ll]
|
\ trashes tree session sync undol[ist] ve[rsion] vie[w] vifm vs[plit]
|
||||||
\ xa[ll] x[it] y[ank]
|
\ winc[md] w[rite] wq wqa[ll] xa[ll] x[it] y[ank]
|
||||||
\ nextgroup=vifmArgsCN
|
\ nextgroup=vifmArgsCN
|
||||||
|
|
||||||
" commands that might be prepended to a command without changing everything else
|
" commands that might be prepended to a command without changing everything else
|
||||||
@@ -144,12 +144,12 @@ syntax keyword vifmOption contained aproposprg autochpos caseoptions cdpath cd
|
|||||||
\ iec ignorecase ic iooptions incsearch is laststatus lines locateprg ls
|
\ iec ignorecase ic iooptions incsearch is laststatus lines locateprg ls
|
||||||
\ lsoptions lsview mediaprg milleroptions millerview mintimeoutlen number nu
|
\ lsoptions lsview mediaprg milleroptions millerview mintimeoutlen number nu
|
||||||
\ numberwidth nuw previewprg quickview relativenumber rnu rulerformat ruf
|
\ numberwidth nuw previewprg quickview relativenumber rnu rulerformat ruf
|
||||||
\ runexec scrollbind scb scrolloff so sort sortgroups sortorder sortnumbers
|
\ runexec scrollbind scb scrolloff sessionoptions ssop so sort sortgroups
|
||||||
\ shell sh shellflagcmd shcf shortmess shm showtabline stal sizefmt slowfs
|
\ sortorder sortnumbers shell sh shellflagcmd shcf shortmess shm showtabline
|
||||||
\ smartcase scs statusline stl suggestoptions syncregs syscalls tablabel
|
\ stal sizefmt slowfs smartcase scs statusline stl suggestoptions syncregs
|
||||||
\ tabscope tabstop timefmt timeoutlen title tm trash trashdir ts tuioptions
|
\ syscalls tablabel tabscope tabstop timefmt timeoutlen title tm trash
|
||||||
\ to undolevels ul vicmd viewcolumns vifminfo vimhelp vixcmd wildmenu wmnu
|
\ trashdir ts tuioptions to undolevels ul vicmd viewcolumns vifminfo vimhelp
|
||||||
\ wildstyle wordchars wrap wrapscan ws
|
\ vixcmd wildmenu wmnu wildstyle wordchars wrap wrapscan ws
|
||||||
|
|
||||||
" Disabled boolean options
|
" Disabled boolean options
|
||||||
syntax keyword vifmOption contained noautochpos nocf nochaselinks nodotfiles
|
syntax keyword vifmOption contained noautochpos nocf nochaselinks nodotfiles
|
||||||
|
|||||||
Reference in New Issue
Block a user