mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-10 04:23:51 -05:00
Update
This commit is contained in:
@@ -6,10 +6,6 @@ endif
|
|||||||
let s:cpo_save = &cpo
|
let s:cpo_save = &cpo
|
||||||
set cpo&vim
|
set cpo&vim
|
||||||
|
|
||||||
function! go#config#AutodetectGopath() abort
|
|
||||||
return get(g:, 'go_autodetect_gopath', 0)
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
function! go#config#ListTypeCommands() abort
|
function! go#config#ListTypeCommands() abort
|
||||||
return get(g:, 'go_list_type_commands', {})
|
return get(g:, 'go_list_type_commands', {})
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
20
autoload/yats.vim
Normal file
20
autoload/yats.vim
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
if has_key(g:polyglot_is_disabled, 'typescript')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Regex of syntax group names that are strings or documentation.
|
||||||
|
let s:syng_multiline = 'comment\c'
|
||||||
|
|
||||||
|
" Regex of syntax group names that are line comment.
|
||||||
|
let s:syng_linecom = 'linecomment\c'
|
||||||
|
|
||||||
|
" Check if the character at lnum:col is inside a multi-line comment.
|
||||||
|
function yats#IsInMultilineComment(lnum, col)
|
||||||
|
return !s:IsLineComment(a:lnum, a:col) && synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_multiline
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
" Check if the character at lnum:col is a line comment.
|
||||||
|
function yats#IsLineComment(lnum, col)
|
||||||
|
return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_linecom
|
||||||
|
endfunction
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
" Vim support file to detect file types
|
" Vim support file to detect file types
|
||||||
"
|
"
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2020 Sep 30
|
" Last Change: 2020 Oct 24
|
||||||
|
|
||||||
" Listen very carefully, I will say this only once
|
" Listen very carefully, I will say this only once
|
||||||
if exists("did_load_filetypes")
|
if exists("did_load_filetypes")
|
||||||
@@ -1506,9 +1506,10 @@ au BufNewFile,BufRead *.decl,*.dcl,*.dec
|
|||||||
au BufNewFile,BufRead catalog setf catalog
|
au BufNewFile,BufRead catalog setf catalog
|
||||||
|
|
||||||
" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
|
" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
|
||||||
" Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts
|
" Gentoo ebuilds, Arch Linux PKGBUILDs and Alpine Linux APKBUILDs are actually
|
||||||
|
" bash scripts.
|
||||||
" NOTE: Patterns ending in a star are further down, these have lower priority.
|
" NOTE: Patterns ending in a star are further down, these have lower priority.
|
||||||
au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.eclass,PKGBUILD call polyglot#ft#SetFileTypeSH("bash")
|
au BufNewFile,BufRead .bashrc,bashrc,bash.bashrc,.bash[_-]profile,.bash[_-]logout,.bash[_-]aliases,bash-fc[-.],*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.eclass,PKGBUILD,APKBUILD call polyglot#ft#SetFileTypeSH("bash")
|
||||||
au BufNewFile,BufRead .kshrc,*.ksh call polyglot#ft#SetFileTypeSH("ksh")
|
au BufNewFile,BufRead .kshrc,*.ksh call polyglot#ft#SetFileTypeSH("ksh")
|
||||||
au BufNewFile,BufRead */etc/profile,.profile,*.sh,*.env call polyglot#ft#SetFileTypeSH(getline(1))
|
au BufNewFile,BufRead */etc/profile,.profile,*.sh,*.env call polyglot#ft#SetFileTypeSH(getline(1))
|
||||||
|
|
||||||
@@ -2161,7 +2162,7 @@ au BufNewFile,BufRead .reminders* call s:StarSetf('remind')
|
|||||||
au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog')
|
au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog')
|
||||||
|
|
||||||
" Shell scripts ending in a star
|
" Shell scripts ending in a star
|
||||||
au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,,PKGBUILD* call polyglot#ft#SetFileTypeSH("bash")
|
au BufNewFile,BufRead .bashrc*,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,PKGBUILD*,APKBUILD* call polyglot#ft#SetFileTypeSH("bash")
|
||||||
au BufNewFile,BufRead .kshrc* call polyglot#ft#SetFileTypeSH("ksh")
|
au BufNewFile,BufRead .kshrc* call polyglot#ft#SetFileTypeSH("ksh")
|
||||||
au BufNewFile,BufRead .profile* call polyglot#ft#SetFileTypeSH(getline(1))
|
au BufNewFile,BufRead .profile* call polyglot#ft#SetFileTypeSH(getline(1))
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ endif
|
|||||||
" Vim filetype plugin file
|
" Vim filetype plugin file
|
||||||
" Language: Make
|
" Language: Make
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2019 Apr 02
|
" Last Change: 2020 Oct 16
|
||||||
|
|
||||||
" Only do this when not done yet for this buffer
|
" Only do this when not done yet for this buffer
|
||||||
if exists("b:did_ftplugin")
|
if exists("b:did_ftplugin")
|
||||||
@@ -13,10 +13,10 @@ if exists("b:did_ftplugin")
|
|||||||
endif
|
endif
|
||||||
let b:did_ftplugin = 1
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
let b:undo_ftplugin = "setl et< sts< fo< com< cms< inc<"
|
let b:undo_ftplugin = "setl et< sts< sw< fo< com< cms< inc<"
|
||||||
|
|
||||||
" Make sure a hard tab is used, required for most make programs
|
" Make sure a hard tab is used, required for most make programs
|
||||||
setlocal noexpandtab softtabstop=0
|
setlocal noexpandtab softtabstop=0 shiftwidth=0
|
||||||
|
|
||||||
" Set 'formatoptions' to break comment lines but not other lines,
|
" Set 'formatoptions' to break comment lines but not other lines,
|
||||||
" and insert the comment leader when hitting <CR> or using "o".
|
" and insert the comment leader when hitting <CR> or using "o".
|
||||||
|
|||||||
@@ -19,11 +19,76 @@ setlocal commentstring=//\ %s
|
|||||||
" " and insert the comment leader when hitting <CR> or using "o".
|
" " and insert the comment leader when hitting <CR> or using "o".
|
||||||
setlocal formatoptions-=t formatoptions+=croql
|
setlocal formatoptions-=t formatoptions+=croql
|
||||||
|
|
||||||
|
if !&l:formatexpr && !&l:formatprg
|
||||||
|
setlocal formatprg=Fixedgq(v:lnum,v:count)
|
||||||
|
endif
|
||||||
|
|
||||||
" setlocal foldmethod=syntax
|
" setlocal foldmethod=syntax
|
||||||
|
|
||||||
let &cpo = s:cpo_save
|
let &cpo = s:cpo_save
|
||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
|
function! Fixedgq(lnum, count)
|
||||||
|
let l:tw = &tw ? &tw : 80
|
||||||
|
|
||||||
|
let l:count = a:count
|
||||||
|
let l:first_char = indent(a:lnum) + 1
|
||||||
|
|
||||||
|
if mode() == 'i' " gq was not pressed, but tw was set
|
||||||
|
return 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" This gq is only meant to do code with strings, not comments
|
||||||
|
if yats#IsLineComment(a:lnum, l:first_char) || yats#IsInMultilineComment(a:lnum, l:first_char)
|
||||||
|
return 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
if len(getline(a:lnum)) < l:tw && l:count == 1 " No need for gq
|
||||||
|
return 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Put all the lines on one line and do normal spliting after that
|
||||||
|
if l:count > 1
|
||||||
|
while l:count > 1
|
||||||
|
let l:count -= 1
|
||||||
|
normal! J
|
||||||
|
endwhile
|
||||||
|
endif
|
||||||
|
|
||||||
|
let l:winview = winsaveview()
|
||||||
|
|
||||||
|
call cursor(a:lnum, l:tw + 1)
|
||||||
|
let orig_breakpoint = searchpairpos(' ', '', '\.', 'bcW', '', a:lnum)
|
||||||
|
call cursor(a:lnum, l:tw + 1)
|
||||||
|
let breakpoint = searchpairpos(' ', '', '\.', 'bcW', s:skip_expr, a:lnum)
|
||||||
|
|
||||||
|
" No need for special treatment, normal gq handles edgecases better
|
||||||
|
if breakpoint[1] == orig_breakpoint[1]
|
||||||
|
call winrestview(l:winview)
|
||||||
|
return 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Try breaking after string
|
||||||
|
if breakpoint[1] <= indent(a:lnum)
|
||||||
|
call cursor(a:lnum, l:tw + 1)
|
||||||
|
let breakpoint = searchpairpos('\.', '', ' ', 'cW', s:skip_expr, a:lnum)
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
if breakpoint[1] != 0
|
||||||
|
call feedkeys("r\<CR>")
|
||||||
|
else
|
||||||
|
let l:count = l:count - 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
" run gq on new lines
|
||||||
|
if l:count == 1
|
||||||
|
call feedkeys("gqq")
|
||||||
|
endif
|
||||||
|
|
||||||
|
return 0
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! TsIncludeExpr(file)
|
function! TsIncludeExpr(file)
|
||||||
if (filereadable(a:file))
|
if (filereadable(a:file))
|
||||||
return l:file
|
return l:file
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ 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=GetTypescriptIndent()
|
setlocal indentexpr=GetTypescriptIndent()
|
||||||
setlocal formatexpr=Fixedgq(v:lnum,v:count)
|
|
||||||
setlocal indentkeys=0{,0},0),0],0\,,!^F,o,O,e
|
setlocal indentkeys=0{,0},0),0],0\,,!^F,o,O,e
|
||||||
|
|
||||||
" Only define the function once.
|
" Only define the function once.
|
||||||
@@ -41,12 +40,6 @@ let s:syng_strcom = 'string\|regex\|comment\c'
|
|||||||
" Regex of syntax group names that are strings.
|
" Regex of syntax group names that are strings.
|
||||||
let s:syng_string = 'regex\c'
|
let s:syng_string = 'regex\c'
|
||||||
|
|
||||||
" Regex of syntax group names that are strings or documentation.
|
|
||||||
let s:syng_multiline = 'comment\c'
|
|
||||||
|
|
||||||
" Regex of syntax group names that are line comment.
|
|
||||||
let s:syng_linecom = 'linecomment\c'
|
|
||||||
|
|
||||||
" Expression used to check whether we should skip a match with searchpair().
|
" Expression used to check whether we should skip a match with searchpair().
|
||||||
let s:skip_expr = "synIDattr(synID(line('.'),col('.'),1),'name') =~ '".s:syng_strcom."'"
|
let s:skip_expr = "synIDattr(synID(line('.'),col('.'),1),'name') =~ '".s:syng_strcom."'"
|
||||||
|
|
||||||
@@ -85,16 +78,6 @@ function s:IsInString(lnum, col)
|
|||||||
return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_string
|
return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_string
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" Check if the character at lnum:col is inside a multi-line comment.
|
|
||||||
function s:IsInMultilineComment(lnum, col)
|
|
||||||
return !s:IsLineComment(a:lnum, a:col) && synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_multiline
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Check if the character at lnum:col is a line comment.
|
|
||||||
function s:IsLineComment(lnum, col)
|
|
||||||
return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_linecom
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Find line above 'lnum' that isn't empty, in a comment, or in a string.
|
" Find line above 'lnum' that isn't empty, in a comment, or in a string.
|
||||||
function s:PrevNonBlankNonString(lnum)
|
function s:PrevNonBlankNonString(lnum)
|
||||||
let in_block = 0
|
let in_block = 0
|
||||||
@@ -356,7 +339,7 @@ function GetTypescriptIndent()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
" If we are in a multi-line comment, cindent does the right thing.
|
" If we are in a multi-line comment, cindent does the right thing.
|
||||||
if s:IsInMultilineComment(v:lnum, 1) && !s:IsLineComment(v:lnum, 1)
|
if yats#IsInMultilineComment(v:lnum, 1) && !yats#IsLineComment(v:lnum, 1)
|
||||||
return cindent(v:lnum)
|
return cindent(v:lnum)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -442,64 +425,3 @@ endfunction
|
|||||||
|
|
||||||
let &cpo = s:cpo_save
|
let &cpo = s:cpo_save
|
||||||
unlet s:cpo_save
|
unlet s:cpo_save
|
||||||
|
|
||||||
function! Fixedgq(lnum, count)
|
|
||||||
let l:tw = &tw ? &tw : 80;
|
|
||||||
|
|
||||||
let l:count = a:count
|
|
||||||
let l:first_char = indent(a:lnum) + 1
|
|
||||||
|
|
||||||
if mode() == 'i' " gq was not pressed, but tw was set
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
" This gq is only meant to do code with strings, not comments
|
|
||||||
if s:IsLineComment(a:lnum, l:first_char) || s:IsInMultilineComment(a:lnum, l:first_char)
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
if len(getline(a:lnum)) < l:tw && l:count == 1 " No need for gq
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Put all the lines on one line and do normal spliting after that
|
|
||||||
if l:count > 1
|
|
||||||
while l:count > 1
|
|
||||||
let l:count -= 1
|
|
||||||
normal! J
|
|
||||||
endwhile
|
|
||||||
endif
|
|
||||||
|
|
||||||
let l:winview = winsaveview()
|
|
||||||
|
|
||||||
call cursor(a:lnum, l:tw + 1)
|
|
||||||
let orig_breakpoint = searchpairpos(' ', '', '\.', 'bcW', '', a:lnum)
|
|
||||||
call cursor(a:lnum, l:tw + 1)
|
|
||||||
let breakpoint = searchpairpos(' ', '', '\.', 'bcW', s:skip_expr, a:lnum)
|
|
||||||
|
|
||||||
" No need for special treatment, normal gq handles edgecases better
|
|
||||||
if breakpoint[1] == orig_breakpoint[1]
|
|
||||||
call winrestview(l:winview)
|
|
||||||
return 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Try breaking after string
|
|
||||||
if breakpoint[1] <= indent(a:lnum)
|
|
||||||
call cursor(a:lnum, l:tw + 1)
|
|
||||||
let breakpoint = searchpairpos('\.', '', ' ', 'cW', s:skip_expr, a:lnum)
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
if breakpoint[1] != 0
|
|
||||||
call feedkeys("r\<CR>")
|
|
||||||
else
|
|
||||||
let l:count = l:count - 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
" run gq on new lines
|
|
||||||
if l:count == 1
|
|
||||||
call feedkeys("gqq")
|
|
||||||
endif
|
|
||||||
|
|
||||||
return 0
|
|
||||||
endfunction
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ endif
|
|||||||
|
|
||||||
syntax region typescriptObjectLiteral matchgroup=typescriptBraces
|
syntax region typescriptObjectLiteral matchgroup=typescriptBraces
|
||||||
\ start=/{/ end=/}/
|
\ start=/{/ end=/}/
|
||||||
\ contains=@typescriptComments,typescriptObjectLabel,typescriptStringProperty,typescriptComputedPropertyName,typescriptObjectAsyncKeyword
|
\ contains=@typescriptComments,typescriptObjectLabel,typescriptStringProperty,typescriptComputedPropertyName,typescriptObjectAsyncKeyword,typescriptTernary
|
||||||
\ fold contained
|
\ fold contained
|
||||||
|
|
||||||
syntax keyword typescriptObjectAsyncKeyword async contained
|
syntax keyword typescriptObjectAsyncKeyword async contained
|
||||||
|
|||||||
343
syntax/cmake.vim
343
syntax/cmake.vim
File diff suppressed because it is too large
Load Diff
@@ -73,7 +73,7 @@ syn match ktComment "/\*\*/"
|
|||||||
syn match ktSpecialCharError "\v\\." contained
|
syn match ktSpecialCharError "\v\\." contained
|
||||||
syn match ktSpecialChar "\v\\([tbnr'"$\\]|u\x{4})" contained
|
syn match ktSpecialChar "\v\\([tbnr'"$\\]|u\x{4})" contained
|
||||||
syn region ktString start='"' skip='\\"' end='"' contains=ktSimpleInterpolation,ktComplexInterpolation,ktSpecialChar,ktSpecialCharError
|
syn region ktString start='"' skip='\\"' end='"' contains=ktSimpleInterpolation,ktComplexInterpolation,ktSpecialChar,ktSpecialCharError
|
||||||
syn region ktString start='"""' end='""""*' contains=ktSimpleInterpolation,ktComplexInterpolation,ktSpecialChar,ktSpecialCharError
|
syn region ktString start='"""' end='""""*' contains=ktSimpleInterpolation,ktComplexInterpolation
|
||||||
syn match ktCharacter "\v'[^']*'" contains=ktSpecialChar,ktSpecialCharError
|
syn match ktCharacter "\v'[^']*'" contains=ktSpecialChar,ktSpecialCharError
|
||||||
syn match ktCharacter "\v'\\''" contains=ktSpecialChar
|
syn match ktCharacter "\v'\\''" contains=ktSpecialChar
|
||||||
syn match ktCharacter "\v'[^\\]'"
|
syn match ktCharacter "\v'[^\\]'"
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ endif
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: MOO
|
" Language: MOO
|
||||||
" Maintainer: Timo Frenay <timo@frenay.net>
|
" Maintainer: Timo Frenay <timo@frenay.net>
|
||||||
" Last Change: 2001 Oct 06
|
" Last Change: 2020 Oct 19
|
||||||
" Note: Requires Vim 6.0 or above
|
" Note: Requires Vim 6.0 or above
|
||||||
|
|
||||||
" quit when a syntax file was already loaded
|
" quit when a syntax file was already loaded
|
||||||
@@ -99,7 +99,7 @@ if exists("moo_unknown_builtin_functions")
|
|||||||
syn keyword mooKnownBuiltinFunction abs acos add_property add_verb asin atan binary_hash boot_player buffered_output_length callers caller_perms call_function ceil children chparent clear_property connected_players connected_seconds connection_name connection_option connection_options cos cosh create crypt ctime db_disk_size decode_binary delete_property delete_verb disassemble dump_database encode_binary equal eval exp floatstr floor flush_input force_input function_info idle_seconds index is_clear_property is_member is_player kill_task length listappend listdelete listen listeners listinsert listset log log10 match max max_object memory_usage min move notify object_bytes open_network_connection output_delimiters parent pass players properties property_info queued_tasks queue_info raise random read recycle renumber reset_max_object resume rindex rmatch seconds_left server_log server_version setadd setremove set_connection_option set_player_flag set_property_info set_task_perms set_verb_args set_verb_code set_verb_info shutdown sin sinh sqrt strcmp string_hash strsub substitute suspend tan tanh task_id task_stack ticks_left time tofloat toint toliteral tonum toobj tostr trunc typeof unlisten valid value_bytes value_hash verbs verb_args verb_code verb_info contained
|
syn keyword mooKnownBuiltinFunction abs acos add_property add_verb asin atan binary_hash boot_player buffered_output_length callers caller_perms call_function ceil children chparent clear_property connected_players connected_seconds connection_name connection_option connection_options cos cosh create crypt ctime db_disk_size decode_binary delete_property delete_verb disassemble dump_database encode_binary equal eval exp floatstr floor flush_input force_input function_info idle_seconds index is_clear_property is_member is_player kill_task length listappend listdelete listen listeners listinsert listset log log10 match max max_object memory_usage min move notify object_bytes open_network_connection output_delimiters parent pass players properties property_info queued_tasks queue_info raise random read recycle renumber reset_max_object resume rindex rmatch seconds_left server_log server_version setadd setremove set_connection_option set_player_flag set_property_info set_task_perms set_verb_args set_verb_code set_verb_info shutdown sin sinh sqrt strcmp string_hash strsub substitute suspend tan tanh task_id task_stack ticks_left time tofloat toint toliteral tonum toobj tostr trunc typeof unlisten valid value_bytes value_hash verbs verb_args verb_code verb_info contained
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Enclosed expressions
|
" Enclosed expressions
|
||||||
syn match mooUnenclosedError display ~[')\]|}]~
|
syn match mooUnenclosedError display ~[')\]|}]~
|
||||||
syn match mooParenthesesError display ~[';\]|}]~ contained
|
syn match mooParenthesesError display ~[';\]|}]~ contained
|
||||||
syn region mooParentheses start=~(~ end=~)~ transparent contains=@mooEnclosedContents,mooParenthesesError
|
syn region mooParentheses start=~(~ end=~)~ transparent contains=@mooEnclosedContents,mooParenthesesError
|
||||||
|
|||||||
Reference in New Issue
Block a user