mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-08 11:33:52 -05:00
Update
This commit is contained in:
@@ -31,9 +31,9 @@ endfunction
|
||||
|
||||
function! dart#fmt(...) abort
|
||||
let l:dartfmt = s:FindDartFmt()
|
||||
if type(l:dartfmt) != type('') | return | endif
|
||||
if empty(l:dartfmt) | return | endif
|
||||
let buffer_content = getline(1, '$')
|
||||
let l:cmd = [l:dartfmt, '--stdin-name', shellescape(expand('%'))]
|
||||
let l:cmd = extend(l:dartfmt, ['--stdin-name', shellescape(expand('%'))])
|
||||
if exists('g:dartfmt_options')
|
||||
call extend(l:cmd, g:dartfmt_options)
|
||||
endif
|
||||
@@ -64,14 +64,30 @@ function! dart#fmt(...) abort
|
||||
endfunction
|
||||
|
||||
function! s:FindDartFmt() abort
|
||||
if executable('dartfmt') | return 'dartfmt' | endif
|
||||
if executable('dart')
|
||||
let l:version_text = system('dart --version')
|
||||
let l:match = matchlist(l:version_text,
|
||||
\ '\vDart SDK version: (\d+)\.(\d+)\.\d+.*')
|
||||
if empty(l:match)
|
||||
call s:error('Unable to determine dart version')
|
||||
return []
|
||||
endif
|
||||
let l:major = l:match[1]
|
||||
let l:minor = l:match[2]
|
||||
if l:major > 2 || l:major == 2 && l:minor >= 14
|
||||
return ['dart', 'format']
|
||||
endif
|
||||
endif
|
||||
" Legacy fallback for Dart SDK pre 2.14
|
||||
if executable('dartfmt') | return ['dartfmt'] | endif
|
||||
if executable('flutter')
|
||||
let l:flutter_cmd = resolve(exepath('flutter'))
|
||||
let l:bin = fnamemodify(l:flutter_cmd, ':h')
|
||||
let l:dartfmt = l:bin.'/cache/dart-sdk/bin/dartfmt'
|
||||
if executable(l:dartfmt) | return l:dartfmt | endif
|
||||
if executable(l:dartfmt) | return [l:dartfmt] | endif
|
||||
endif
|
||||
call s:error('Cannot find a `dartfmt` command')
|
||||
return []
|
||||
endfunction
|
||||
|
||||
function! dart#analyzer(q_args) abort
|
||||
|
||||
@@ -24,6 +24,7 @@ function! elixir#indent#indent(lnum)
|
||||
call cursor(lnum, 0)
|
||||
|
||||
let handlers = [
|
||||
\'inside_embedded_view',
|
||||
\'top_of_file',
|
||||
\'starts_with_string_continuation',
|
||||
\'following_trailing_binary_operator',
|
||||
@@ -69,6 +70,17 @@ function! s:prev_starts_with(context, expr)
|
||||
return s:_starts_with(a:context.prev_nb_text, a:expr, a:context.prev_nb_lnum)
|
||||
endfunction
|
||||
|
||||
function! s:in_embedded_view()
|
||||
let groups = map(synstack(line('.'), col('.')), "synIDattr(v:val, 'name')")
|
||||
for group in ['elixirPhoenixESigil', 'elixirLiveViewSigil', 'elixirSurfaceSigil']
|
||||
if index(groups, group) >= 0
|
||||
return 1
|
||||
endif
|
||||
endfor
|
||||
|
||||
return 0
|
||||
endfunction
|
||||
|
||||
" Returns 0 or 1 based on whether or not the text starts with the given
|
||||
" expression and is not a string or comment
|
||||
function! s:_starts_with(text, expr, lnum)
|
||||
@@ -160,6 +172,104 @@ function! s:find_last_pos(lnum, text, match)
|
||||
return -1
|
||||
endfunction
|
||||
|
||||
function! elixir#indent#handle_inside_embedded_view(context)
|
||||
if !s:in_embedded_view()
|
||||
return -1
|
||||
endif
|
||||
|
||||
" Multi-line Surface data delimiters
|
||||
let pair_lnum = searchpair('{{', '', '}}', 'bW', "line('.') == ".a:context.lnum." || s:is_string_or_comment(line('.'), col('.'))", max([0, a:context.lnum - g:elixir_indent_max_lookbehind]))
|
||||
if pair_lnum
|
||||
if a:context.text =~ '}}$'
|
||||
return indent(pair_lnum)
|
||||
elseif a:context.text =~ '}}*>$'
|
||||
return -1
|
||||
elseif s:prev_ends_with(a:context, '[\|%{')
|
||||
return indent(a:context.prev_nb_lnum) + s:sw()
|
||||
elseif a:context.prev_nb_text =~ ',$'
|
||||
return indent(a:context.prev_nb_lnum)
|
||||
else
|
||||
return indent(pair_lnum) + s:sw()
|
||||
endif
|
||||
endif
|
||||
|
||||
" Multi-line opening tag -- >, />, or %> are on a different line that their opening <
|
||||
let pair_lnum = searchpair('^\s\+<.*[^>]$', '', '^[^<]*[/%}]\?>$', 'bW', "line('.') == ".a:context.lnum." || s:is_string_or_comment(line('.'), col('.'))", max([0, a:context.lnum - g:elixir_indent_max_lookbehind]))
|
||||
if pair_lnum
|
||||
if a:context.text =~ '^\s\+\%\(>\|\/>\|%>\|}}>\)$'
|
||||
call s:debug("current line is a lone >, />, or %>")
|
||||
return indent(pair_lnum)
|
||||
elseif a:context.text =~ '\%\(>\|\/>\|%>\|}}>\)$'
|
||||
call s:debug("current line ends in >, />, or %>")
|
||||
if s:prev_ends_with(a:context, ',')
|
||||
return indent(a:context.prev_nb_lnum)
|
||||
else
|
||||
return -1
|
||||
endif
|
||||
else
|
||||
call s:debug("in the body of a multi-line opening tag")
|
||||
return indent(pair_lnum) + s:sw()
|
||||
endif
|
||||
endif
|
||||
|
||||
" Special cases
|
||||
if s:prev_ends_with(a:context, '^[^<]*do\s%>')
|
||||
call s:debug("prev line closes a multi-line do block")
|
||||
return indent(a:context.prev_nb_lnum)
|
||||
elseif a:context.prev_nb_text =~ 'do\s*%>$'
|
||||
call s:debug("prev line opens a do block")
|
||||
return indent(a:context.prev_nb_lnum) + s:sw()
|
||||
elseif a:context.text =~ '^\s\+<\/[a-zA-Z0-9\.\-_]\+>\|<% end %>'
|
||||
call s:debug("a single closing tag")
|
||||
if a:context.prev_nb_text =~ '^\s\+<[^%\/]*[^/]>.*<\/[a-zA-Z0-9\.\-_]\+>$'
|
||||
call s:debug("opening and closing tags are on the same line")
|
||||
return indent(a:context.prev_nb_lnum) - s:sw()
|
||||
elseif a:context.prev_nb_text =~ '^\s\+<[^%\/]*[^/]>\|\s\+>'
|
||||
call s:debug("prev line is opening html tag or single >")
|
||||
return indent(a:context.prev_nb_lnum)
|
||||
elseif s:prev_ends_with(a:context, '^[^<]*\%\(do\s\)\@<!%>')
|
||||
call s:debug("prev line closes a multi-line eex tag")
|
||||
return indent(a:context.prev_nb_lnum) - 2 * s:sw()
|
||||
else
|
||||
return indent(a:context.prev_nb_lnum) - s:sw()
|
||||
endif
|
||||
elseif a:context.text =~ '^\s*<%\s*\%(end\|else\|catch\|rescue\)\>.*%>'
|
||||
call s:debug("eex middle or closing eex tag")
|
||||
return indent(a:context.prev_nb_lnum) - s:sw()
|
||||
elseif a:context.prev_nb_text =~ '\s*<\/\|<% end %>$'
|
||||
call s:debug("prev is closing tag")
|
||||
return indent(a:context.prev_nb_lnum)
|
||||
elseif a:context.prev_nb_text =~ '^\s\+<[^%\/]*[^/]>.*<\/[a-zA-Z0-9\.\-_]\+>$'
|
||||
call s:debug("opening and closing tags are on the same line")
|
||||
return indent(a:context.prev_nb_lnum)
|
||||
elseif s:prev_ends_with(a:context, '\s\+\/>')
|
||||
call s:debug("prev ends with a single \>")
|
||||
return indent(a:context.prev_nb_lnum)
|
||||
elseif s:prev_ends_with(a:context, '^[^<]*\/>')
|
||||
call s:debug("prev line is closing a multi-line self-closing tag")
|
||||
return indent(a:context.prev_nb_lnum) - s:sw()
|
||||
elseif s:prev_ends_with(a:context, '^\s\+<.*\/>')
|
||||
call s:debug("prev line is closing self-closing tag")
|
||||
return indent(a:context.prev_nb_lnum)
|
||||
elseif a:context.prev_nb_text =~ '^\s\+%\?>$'
|
||||
call s:debug("prev line is a single > or %>")
|
||||
return indent(a:context.prev_nb_lnum) + s:sw()
|
||||
endif
|
||||
|
||||
" Simple HTML (ie, opening tag is not split across lines)
|
||||
let pair_lnum = searchpair('^\s\+<[^%\/].*[^\/>]>$', '', '^\s\+<\/\w\+>$', 'bW', "line('.') == ".a:context.lnum." || s:is_string_or_comment(line('.'), col('.'))", max([0, a:context.lnum - g:elixir_indent_max_lookbehind]))
|
||||
if pair_lnum
|
||||
call s:debug("simple HTML")
|
||||
if a:context.text =~ '^\s\+<\/\w\+>$'
|
||||
return indent(pair_lnum)
|
||||
else
|
||||
return indent(pair_lnum) + s:sw()
|
||||
endif
|
||||
endif
|
||||
|
||||
return -1
|
||||
endfunction
|
||||
|
||||
function! elixir#indent#handle_top_of_file(context)
|
||||
if a:context.prev_nb_lnum == 0
|
||||
return 0
|
||||
|
||||
@@ -233,6 +233,107 @@ function! fsharp#updateServerConfig()
|
||||
call s:notify('workspace/didChangeConfiguration', settings)
|
||||
endfunction
|
||||
|
||||
function! fsharp#loadConfig()
|
||||
if exists('s:config_is_loaded')
|
||||
return
|
||||
endif
|
||||
|
||||
if !exists('g:fsharp#fsautocomplete_command')
|
||||
let s:fsac = fnamemodify(s:script_root_dir . "fsac/fsautocomplete.dll", ":p")
|
||||
|
||||
" check if FSAC exists
|
||||
if empty(glob(s:fsac))
|
||||
echoerr "FSAC not found. :FSharpUpdateFSAC to download."
|
||||
let &cpo = s:cpo_save
|
||||
finish
|
||||
endif
|
||||
|
||||
let g:fsharp#fsautocomplete_command =
|
||||
\ ['dotnet', s:fsac,
|
||||
\ '--background-service-enabled'
|
||||
\ ]
|
||||
endif
|
||||
if !exists('g:fsharp#use_recommended_server_config')
|
||||
let g:fsharp#use_recommended_server_config = 1
|
||||
endif
|
||||
call fsharp#getServerConfig()
|
||||
if !exists('g:fsharp#automatic_workspace_init')
|
||||
let g:fsharp#automatic_workspace_init = 1
|
||||
endif
|
||||
if !exists('g:fsharp#automatic_reload_workspace')
|
||||
let g:fsharp#automatic_reload_workspace = 1
|
||||
endif
|
||||
if !exists('g:fsharp#show_signature_on_cursor_move')
|
||||
let g:fsharp#show_signature_on_cursor_move = 1
|
||||
endif
|
||||
if !exists('g:fsharp#fsi_command')
|
||||
let g:fsharp#fsi_command = "dotnet fsi"
|
||||
endif
|
||||
if !exists('g:fsharp#fsi_keymap')
|
||||
let g:fsharp#fsi_keymap = "vscode"
|
||||
endif
|
||||
if !exists('g:fsharp#fsi_window_command')
|
||||
let g:fsharp#fsi_window_command = "botright 10new"
|
||||
endif
|
||||
if !exists('g:fsharp#fsi_focus_on_send')
|
||||
let g:fsharp#fsi_focus_on_send = 0
|
||||
endif
|
||||
if !exists('g:fsharp#backend')
|
||||
if has('nvim-0.5')
|
||||
if exists('g:LanguageClient_loaded')
|
||||
let g:fsharp#backend = "languageclient-neovim"
|
||||
else
|
||||
let g:fsharp#backend = "nvim"
|
||||
endif
|
||||
else
|
||||
let g:fsharp#backend = "languageclient-neovim"
|
||||
endif
|
||||
endif
|
||||
|
||||
" backend configuration
|
||||
if g:fsharp#backend == 'languageclient-neovim'
|
||||
if !exists('g:LanguageClient_serverCommands')
|
||||
let g:LanguageClient_serverCommands = {}
|
||||
endif
|
||||
if !has_key(g:LanguageClient_serverCommands, 'fsharp')
|
||||
let g:LanguageClient_serverCommands.fsharp = {
|
||||
\ 'name': 'fsautocomplete',
|
||||
\ 'command': g:fsharp#fsautocomplete_command,
|
||||
\ 'initializationOptions': {},
|
||||
\}
|
||||
if g:fsharp#automatic_workspace_init
|
||||
let g:LanguageClient_serverCommands.fsharp.initializationOptions = {
|
||||
\ 'AutomaticWorkspaceInit': v:true,
|
||||
\}
|
||||
endif
|
||||
endif
|
||||
|
||||
if !exists('g:LanguageClient_rootMarkers')
|
||||
let g:LanguageClient_rootMarkers = {}
|
||||
endif
|
||||
if !has_key(g:LanguageClient_rootMarkers, 'fsharp')
|
||||
let g:LanguageClient_rootMarkers.fsharp = ['*.sln', '*.fsproj', '.git']
|
||||
endif
|
||||
elseif g:fsharp#backend == 'nvim'
|
||||
if !exists('g:fsharp#lsp_auto_setup')
|
||||
let g:fsharp#lsp_auto_setup = 1
|
||||
endif
|
||||
if !exists('g:fsharp#lsp_recommended_colorscheme')
|
||||
let g:fsharp#lsp_recommended_colorscheme = 1
|
||||
endif
|
||||
if !exists('g:fsharp#lsp_codelens')
|
||||
let g:fsharp#lsp_codelens = 1
|
||||
endif
|
||||
|
||||
else
|
||||
if g:fsharp#backend != 'disable'
|
||||
echoerr "[FSAC] Invalid backend: " . g:fsharp#backend
|
||||
endif
|
||||
endif
|
||||
|
||||
let s:config_is_loaded = 1
|
||||
endfunction
|
||||
|
||||
|
||||
" handlers for notifications
|
||||
|
||||
@@ -617,7 +718,6 @@ function! fsharp#sendAllToFsi()
|
||||
return fsharp#sendFsi(text)
|
||||
endfunction
|
||||
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
|
||||
@@ -264,6 +264,13 @@ func polyglot#ft#ProtoCheck(default)
|
||||
endfunc
|
||||
|
||||
func polyglot#ft#FTm()
|
||||
if exists("g:filetype_m")
|
||||
exe "setf " . g:filetype_m
|
||||
return
|
||||
endif
|
||||
|
||||
let octave_block_terminators = '\<end\%(_try_catch\|classdef\|enumeration\|events\|for\|function\|if\|methods\|parfor\|properties\|switch\|while\)\>'
|
||||
|
||||
let n = 1
|
||||
let saw_comment = 0 " Whether we've seen a multiline comment leader.
|
||||
while n < 100
|
||||
@@ -278,6 +285,13 @@ func polyglot#ft#FTm()
|
||||
setf objc
|
||||
return
|
||||
endif
|
||||
if line =~ '^\s*\%(#\|%!\|[#%]{\=\s*$\)' ||
|
||||
\ line =~ '^\s*unwind_protect\>' ||
|
||||
\ line =~ '\%(^\|;\)\s*' .. octave_block_terminators
|
||||
setf octave
|
||||
return
|
||||
endif
|
||||
" TODO: could be Matlab or Octave
|
||||
if line =~ '^\s*%'
|
||||
setf matlab
|
||||
return
|
||||
@@ -298,11 +312,8 @@ func polyglot#ft#FTm()
|
||||
" or Murphi based on the comment leader. Assume the former as it is more
|
||||
" common.
|
||||
setf objc
|
||||
elseif exists("g:filetype_m")
|
||||
" Use user specified default filetype for .m
|
||||
exe "setf " . g:filetype_m
|
||||
else
|
||||
" Default is matlab
|
||||
" Default is Matlab
|
||||
setf matlab
|
||||
endif
|
||||
endfunc
|
||||
|
||||
@@ -2265,7 +2265,7 @@ if !has_key(g:polyglot_is_disabled, 'jsonnet')
|
||||
endif
|
||||
|
||||
if !has_key(g:polyglot_is_disabled, 'json')
|
||||
au BufNewFile,BufRead *.JSON-tmLanguage,*.avsc,*.geojson,*.gltf,*.har,*.ice,*.json,*.jsonl,*.jsonp,*.mcmeta,*.template,*.tfstate,*.tfstate.backup,*.topojson,*.webapp,*.webmanifest,*.yy,*.yyp,{.,}arcconfig,{.,}htmlhintrc,{.,}imgbotconfig,{.,}tern-config,{.,}tern-project,{.,}watchmanconfig,Pipfile.lock,composer.lock,mcmod.info setf json
|
||||
au BufNewFile,BufRead *.JSON-tmLanguage,*.avsc,*.geojson,*.gltf,*.har,*.ice,*.json,*.jsonl,*.jsonp,*.mcmeta,*.template,*.tfstate,*.tfstate.backup,*.topojson,*.webapp,*.webmanifest,*.yy,*.yyp,{.,}arcconfig,{.,}auto-changelog,{.,}c8rc,{.,}htmlhintrc,{.,}imgbotconfig,{.,}nycrc,{.,}tern-config,{.,}tern-project,{.,}watchmanconfig,Pipfile.lock,composer.lock,mcmod.info setf json
|
||||
endif
|
||||
|
||||
if !has_key(g:polyglot_is_disabled, 'json5')
|
||||
|
||||
@@ -264,7 +264,7 @@ let s:globs = {
|
||||
\ 'jovial': '*.jov,*.j73,*.jovial',
|
||||
\ 'jproperties': '*.properties,*.properties_??,*.properties_??_??,*.properties_??_??_*',
|
||||
\ 'jq': '*.jq,.jqrc,.jqrc*',
|
||||
\ 'json': '*.json,*.avsc,*.geojson,*.gltf,*.har,*.ice,*.JSON-tmLanguage,*.jsonl,*.mcmeta,*.tfstate,*.tfstate.backup,*.topojson,*.webapp,*.webmanifest,*.yy,*.yyp,*.jsonp,*.template,.arcconfig,.htmlhintrc,.imgbotconfig,.tern-config,.tern-project,.watchmanconfig,Pipfile.lock,composer.lock,mcmod.info',
|
||||
\ 'json': '*.json,*.avsc,*.geojson,*.gltf,*.har,*.ice,*.JSON-tmLanguage,*.jsonl,*.mcmeta,*.tfstate,*.tfstate.backup,*.topojson,*.webapp,*.webmanifest,*.yy,*.yyp,*.jsonp,*.template,.arcconfig,.auto-changelog,.c8rc,.htmlhintrc,.imgbotconfig,.nycrc,.tern-config,.tern-project,.watchmanconfig,Pipfile.lock,composer.lock,mcmod.info',
|
||||
\ 'json5': '*.json5',
|
||||
\ 'jsonc': '*.cjson,*.jsonc,coc-settings.json,.eslintrc.json,.babelrc,.jshintrc,.jslintrc,.mocharc.json,coffeelint.json,tsconfig.json,jsconfig.json',
|
||||
\ 'jsonnet': '*.jsonnet,*.libsonnet',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
" Vim support file to detect file types
|
||||
"
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2021 Jul 03
|
||||
" Last Change: 2021 Aug 23
|
||||
|
||||
" Listen very carefully, I will say this only once
|
||||
if exists("did_load_filetypes")
|
||||
@@ -537,8 +537,13 @@ au BufNewFile,BufRead *.drac,*.drc,*lvs,*lpe setf dracula
|
||||
" Datascript
|
||||
au BufNewFile,BufRead *.ds setf datascript
|
||||
|
||||
" dsl
|
||||
au BufNewFile,BufRead *.dsl setf dsl
|
||||
" dsl: DSSSL or Structurizr
|
||||
au BufNewFile,BufRead *.dsl
|
||||
\ if getline(1) =~ '^\s*<\!' |
|
||||
\ setf dsl |
|
||||
\ else |
|
||||
\ setf structurizr |
|
||||
\ endif
|
||||
|
||||
" DTD (Document Type Definition for XML)
|
||||
au BufNewFile,BufRead *.dtd setf dtd
|
||||
@@ -874,6 +879,9 @@ au BufNewFile,BufRead *.ipynb setf json
|
||||
" JSONC
|
||||
au BufNewFile,BufRead *.jsonc setf jsonc
|
||||
|
||||
" Julia
|
||||
au BufNewFile,BufRead *.jl setf julia
|
||||
|
||||
" Kixtart
|
||||
au BufNewFile,BufRead *.kix setf kix
|
||||
|
||||
@@ -1021,7 +1029,7 @@ au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md setf markdown
|
||||
" Mason
|
||||
au BufNewFile,BufRead *.mason,*.mhtml,*.comp setf mason
|
||||
|
||||
" Mathematica, Matlab, Murphi or Objective C
|
||||
" Mathematica, Matlab, Murphi, Objective C or Octave
|
||||
au BufNewFile,BufRead *.m call polyglot#ft#FTm()
|
||||
|
||||
" Mathematica notebook
|
||||
@@ -1167,6 +1175,9 @@ au BufNewFile,BufRead *.ml,*.mli,*.mll,*.mly,.ocamlinit,*.mlt,*.mlp,*.mlip,*.mli
|
||||
" Occam
|
||||
au BufNewFile,BufRead *.occ setf occam
|
||||
|
||||
" Octave
|
||||
au BufNewFile,BufRead octave.conf,.octaverc,octaverc setf octave
|
||||
|
||||
" Omnimark
|
||||
au BufNewFile,BufRead *.xom,*.xin setf omnimark
|
||||
|
||||
@@ -1375,6 +1386,9 @@ au BufNewFile,BufRead *.pk setf poke
|
||||
" Protocols
|
||||
au BufNewFile,BufRead */etc/protocols setf protocols
|
||||
|
||||
" Pyret
|
||||
au BufNewFile,BufRead *.arr setf pyret
|
||||
|
||||
" Pyrex
|
||||
au BufNewFile,BufRead *.pyx,*.pxd setf pyrex
|
||||
|
||||
@@ -1523,6 +1537,9 @@ au BufNewFile,BufRead *.sbt setf sbt
|
||||
" Scilab
|
||||
au BufNewFile,BufRead *.sci,*.sce setf scilab
|
||||
|
||||
" scdoc
|
||||
au BufNewFile,BufRead *.scd setf scdoc
|
||||
|
||||
" SCSS
|
||||
au BufNewFile,BufRead *.scss setf scss
|
||||
|
||||
@@ -1612,7 +1629,7 @@ au BufNewFile,BufRead .zshrc,.zshenv,.zlogin,.zlogout,.zcompdump setf zsh
|
||||
au BufNewFile,BufRead *.zsh setf zsh
|
||||
|
||||
" Scheme
|
||||
au BufNewFile,BufRead *.scm,*.ss,*.rkt setf scheme
|
||||
au BufNewFile,BufRead *.scm,*.ss,*.rkt,*.rktd,*.rktl setf scheme
|
||||
|
||||
" Screen RC
|
||||
au BufNewFile,BufRead .screenrc,screenrc setf screen
|
||||
|
||||
@@ -23,6 +23,9 @@ if !exists("b:eelixir_subtype")
|
||||
if b:eelixir_subtype == ''
|
||||
let b:eelixir_subtype = matchstr(&filetype,'^eex\.\zs\w\+')
|
||||
endif
|
||||
if b:eelixir_subtype == ''
|
||||
let b:eelixir_subtype = matchstr(&filetype,'^heex\.\zs\w\+')
|
||||
endif
|
||||
if b:eelixir_subtype == ''
|
||||
let b:eelixir_subtype = matchstr(&filetype,'^leex\.\zs\w\+')
|
||||
endif
|
||||
@@ -30,7 +33,7 @@ if !exists("b:eelixir_subtype")
|
||||
let b:eelixir_subtype = matchstr(&filetype,'^sface\.\zs\w\+')
|
||||
endif
|
||||
if b:eelixir_subtype == ''
|
||||
let b:eelixir_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.eex\|\.sface\|\.leex\|\.eelixir\)\+$','',''),'\.\zs\w\+$')
|
||||
let b:eelixir_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.eex\|\.heex\|\.leex\|\.sface\|\.eelixir\)\+$','',''),'\.\zs\w\+$')
|
||||
endif
|
||||
if b:eelixir_subtype == 'ex'
|
||||
let b:eelixir_subtype = 'elixir'
|
||||
|
||||
@@ -33,7 +33,7 @@ let &l:path =
|
||||
\ &g:path
|
||||
\ ], ',')
|
||||
setlocal includeexpr=elixir#util#get_filename(v:fname)
|
||||
setlocal suffixesadd=.ex,.exs,.eex,.leex,.sface,.erl,.xrl,.yrl,.hrl
|
||||
setlocal suffixesadd=.ex,.exs,.eex,.heex,.leex,.sface,.erl,.xrl,.yrl,.hrl
|
||||
|
||||
let &l:define = 'def\(macro\|guard\|delegate\)\=p\='
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo-=C
|
||||
set cpo&vim
|
||||
|
||||
setlocal include=^\\s*\\%(reload\\\|include\\)\\>
|
||||
setlocal suffixesadd=.jl
|
||||
@@ -89,7 +89,6 @@ if exists("loaded_matchit")
|
||||
\ . " | unlet! b:match_words b:match_skip b:match_ignorecase"
|
||||
\ . " | unlet! b:julia_begin_keywords b:julia_end_keywords"
|
||||
\ . " | delfunction JuliaGetMatchWords"
|
||||
\ . " | call julia_blocks#remove_mappings()"
|
||||
|
||||
if get(g:, "julia_blocks", 1)
|
||||
call julia_blocks#init_mappings()
|
||||
|
||||
@@ -11,7 +11,7 @@ endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo-=C
|
||||
set cpo&vim
|
||||
|
||||
setlocal conceallevel=2
|
||||
setlocal concealcursor=nc
|
||||
|
||||
@@ -373,7 +373,7 @@ endfunction
|
||||
endif
|
||||
else
|
||||
let annot_file_name = ''
|
||||
"(Pierre Vittet: I have commented 4b because this was chrashing
|
||||
"(Pierre Vittet: I have commented 4b because this was crashing
|
||||
"my vim (it produced infinite loop))
|
||||
"
|
||||
" 4b. anarchy : the renamed _build directory may be higher in the hierarchy
|
||||
@@ -464,8 +464,8 @@ endfunction
|
||||
|
||||
"b. 'search' and 'match' work to find the type information
|
||||
|
||||
"In: - lin1,col1: postion of expression first char
|
||||
" - lin2,col2: postion of expression last char
|
||||
"In: - lin1,col1: position of expression first char
|
||||
" - lin2,col2: position of expression last char
|
||||
"Out: - the pattern to be looked for to find the block
|
||||
" Must be called in the source buffer (use of line2byte)
|
||||
function! s:Block_pattern(lin1,lin2,col1,col2)
|
||||
@@ -583,7 +583,7 @@ endfunction
|
||||
let res = substitute (a:res, "\n", "", "g" )
|
||||
"remove double space
|
||||
let res =substitute(res , " ", " ", "g")
|
||||
"remove space at begining of string.
|
||||
"remove space at beginning of string.
|
||||
let res = substitute(res, "^ *", "", "g")
|
||||
return res
|
||||
endfunction
|
||||
|
||||
@@ -18,9 +18,11 @@ setlocal softtabstop=2
|
||||
setlocal shiftwidth=2
|
||||
setlocal expandtab
|
||||
setlocal keywordprg=puppet\ describe\ --providers
|
||||
setlocal iskeyword=:,@,48-57,_,192-255
|
||||
setlocal comments=sr:/*,mb:*,ex:*/,b:#
|
||||
setlocal commentstring=#\ %s
|
||||
" adding : to iskeyword is tempting in order to make word movements skip over a
|
||||
" full resource name, however since : is used in many non-keyword contexts it
|
||||
" is a bad idea to add it to the option.
|
||||
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
setlocal formatexpr=puppet#format#Format()
|
||||
|
||||
@@ -4,10 +4,11 @@ endif
|
||||
|
||||
" Vim filetype plugin file
|
||||
" Language: Scheme (R7RS)
|
||||
" Last Change: 2019 Nov 18
|
||||
" Last Change: 2019-11-19
|
||||
" Author: Evan Hanson <evhan@foldling.org>
|
||||
" Maintainer: Evan Hanson <evhan@foldling.org>
|
||||
" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
||||
" Repository: https://git.foldling.org/vim-scheme.git
|
||||
" URL: https://foldling.org/vim/ftplugin/scheme.vim
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
@@ -52,7 +53,7 @@ let b:undo_ftplugin = b:undo_ftplugin . ' lispwords<'
|
||||
let b:did_scheme_ftplugin = 1
|
||||
|
||||
if exists('b:is_chicken') || exists('g:is_chicken')
|
||||
exe 'ru! ftplugin/chicken.vim'
|
||||
runtime! ftplugin/chicken.vim
|
||||
endif
|
||||
|
||||
unlet b:did_scheme_ftplugin
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
if polyglot#init#is_disabled(expand('<sfile>:p'), 'toml', 'ftplugin/toml.vim')
|
||||
finish
|
||||
endif
|
||||
|
||||
" File: ftplugin/toml.vim
|
||||
" Author: Kevin Ballard <kevin@sb.org>
|
||||
" Description: FileType Plugin for Toml
|
||||
" Last Change: Feb 12, 2019
|
||||
|
||||
if exists('b:did_ftplugin')
|
||||
finish
|
||||
endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
let s:save_cpo = &cpo
|
||||
set cpo&vim
|
||||
let b:undo_ftplugin = 'setlocal commentstring< comments<'
|
||||
|
||||
setlocal commentstring=#\ %s
|
||||
setlocal comments=:#
|
||||
|
||||
let &cpo = s:save_cpo
|
||||
unlet s:save_cpo
|
||||
|
||||
" vim: set et sw=4 ts=4:
|
||||
@@ -47,7 +47,7 @@ function! Fixedgq(lnum, count)
|
||||
return 1
|
||||
endif
|
||||
|
||||
" Put all the lines on one line and do normal spliting after that
|
||||
" Put all the lines on one line and do normal splitting after that
|
||||
if l:count > 1
|
||||
while l:count > 1
|
||||
let l:count -= 1
|
||||
|
||||
@@ -5,7 +5,7 @@ endif
|
||||
" Vim indent file
|
||||
" Language: Bazel (http://bazel.io)
|
||||
" Maintainer: David Barnett (https://github.com/google/vim-ft-bzl)
|
||||
" Last Change: 2017 Jun 13
|
||||
" Last Change: 2021 Jul 08
|
||||
|
||||
if exists('b:did_indent')
|
||||
finish
|
||||
@@ -45,13 +45,29 @@ function GetBzlIndent(lnum) abort
|
||||
if exists('g:pyindent_open_paren')
|
||||
let l:pyindent_open_paren = g:pyindent_open_paren
|
||||
endif
|
||||
let g:pyindent_nested_paren = 'shiftwidth() * 2'
|
||||
let g:pyindent_open_paren = 'shiftwidth() * 2'
|
||||
let g:pyindent_nested_paren = 'shiftwidth()'
|
||||
let g:pyindent_open_paren = 'shiftwidth()'
|
||||
endif
|
||||
|
||||
let l:indent = -1
|
||||
|
||||
call cursor(a:lnum, 1)
|
||||
let [l:par_line, l:par_col] = searchpairpos('(\|{\|\[', '', ')\|}\|\]', 'bW',
|
||||
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" .
|
||||
\ " synIDattr(synID(line('.'), col('.'), 1), 'name')" .
|
||||
\ " =~ '\\(Comment\\|String\\)$'")
|
||||
if l:par_line > 0
|
||||
" Indent inside parens.
|
||||
if searchpair('(\|{\|\[', '', ')\|}\|\]', 'W',
|
||||
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" .
|
||||
\ " synIDattr(synID(line('.'), col('.'), 1), 'name')" .
|
||||
\ " =~ '\\(Comment\\|String\\)$'") && line('.') == a:lnum
|
||||
" If cursor is at close parens, match indent with open parens.
|
||||
" E.g.
|
||||
" foo(
|
||||
" )
|
||||
let l:indent = indent(l:par_line)
|
||||
else
|
||||
" Align with the open paren unless it is at the end of the line.
|
||||
" E.g.
|
||||
" open_paren_not_at_EOL(100,
|
||||
@@ -60,17 +76,12 @@ function GetBzlIndent(lnum) abort
|
||||
" 400)
|
||||
" open_paren_at_EOL(
|
||||
" 100, 200, 300, 400)
|
||||
call cursor(a:lnum, 1)
|
||||
let [l:par_line, l:par_col] = searchpairpos('(\|{\|\[', '', ')\|}\|\]', 'bW',
|
||||
\ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" .
|
||||
\ " synIDattr(synID(line('.'), col('.'), 1), 'name')" .
|
||||
\ " =~ '\\(Comment\\|String\\)$'")
|
||||
if l:par_line > 0
|
||||
call cursor(l:par_line, 1)
|
||||
if l:par_col != col('$') - 1
|
||||
let l:indent = l:par_col
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
" Delegate the rest to the original function.
|
||||
if l:indent == -1
|
||||
|
||||
@@ -10,7 +10,7 @@ let b:did_indent = 1
|
||||
setlocal indentexpr=elixir#indent(v:lnum)
|
||||
|
||||
setlocal indentkeys+==after,=catch,=do,=else,=end,=rescue,
|
||||
setlocal indentkeys+=*<Return>,=->,=\|>,=<>,0},0],0)
|
||||
setlocal indentkeys+=*<Return>,=->,=\|>,=<>,0},0],0),>
|
||||
|
||||
" TODO: @jbodah 2017-02-27: all operators should cause reindent when typed
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ endfunction
|
||||
" ======================
|
||||
|
||||
" Indtokens are "indentation tokens". See their exact format in the
|
||||
" documentaiton of the s:GetTokensFromLine function.
|
||||
" documentation of the s:GetTokensFromLine function.
|
||||
|
||||
" Purpose:
|
||||
" Calculate the new virtual column after the given segment of a line.
|
||||
@@ -79,7 +79,7 @@ endfunction
|
||||
" s:CalcVCol("\t'\tx', b", 1, 4, 4) -> 10
|
||||
function! s:CalcVCol(line, first_index, last_index, vcol, tabstop)
|
||||
|
||||
" We copy the relevent segment of the line, otherwise if the line were
|
||||
" We copy the relevant segment of the line, otherwise if the line were
|
||||
" e.g. `"\t", term` then the else branch below would consume the `", term`
|
||||
" part at once.
|
||||
let line = a:line[a:first_index : a:last_index]
|
||||
@@ -608,7 +608,7 @@ endfunction
|
||||
function! s:BeginElementFoundIfEmpty(stack, token, curr_vcol, stored_vcol, sw)
|
||||
if empty(a:stack)
|
||||
if a:stored_vcol ==# -1
|
||||
call s:Log(' "' . a:token . '" directly preceeds LTI -> return')
|
||||
call s:Log(' "' . a:token . '" directly precedes LTI -> return')
|
||||
return [1, a:curr_vcol + a:sw]
|
||||
else
|
||||
call s:Log(' "' . a:token .
|
||||
@@ -829,7 +829,7 @@ function! s:ErlangCalcIndent2(lnum, stack)
|
||||
if ret | return res | endif
|
||||
|
||||
if stored_vcol ==# -1
|
||||
call s:Log(' End of clause directly preceeds LTI -> return')
|
||||
call s:Log(' End of clause directly precedes LTI -> return')
|
||||
return 0
|
||||
else
|
||||
call s:Log(' End of clause (but not end of line) -> return')
|
||||
|
||||
@@ -287,7 +287,7 @@ function! GetRubyIndent(...) abort
|
||||
\ ]
|
||||
|
||||
" Most Significant line based on the previous one -- in case it's a
|
||||
" contination of something above
|
||||
" continuation of something above
|
||||
let indent_info.plnum_msl = s:GetMSL(indent_info.plnum)
|
||||
|
||||
for callback_name in indent_callback_names
|
||||
|
||||
@@ -416,19 +416,19 @@ function! GetScalaIndent()
|
||||
if prevline =~ '^\s*\.'
|
||||
return ind
|
||||
else
|
||||
return ind + &shiftwidth
|
||||
return ind + shiftwidth()
|
||||
endif
|
||||
endif
|
||||
|
||||
" Indent html literals
|
||||
if prevline !~ '/>\s*$' && prevline =~ '^\s*<[a-zA-Z][^>]*>\s*$'
|
||||
call scala#ConditionalConfirm("3")
|
||||
return ind + &shiftwidth
|
||||
return ind + shiftwidth()
|
||||
endif
|
||||
|
||||
" assumes curly braces around try-block
|
||||
if curline =~ '^\s*}\s*\<catch\>'
|
||||
return ind - &shiftwidth
|
||||
return ind - shiftwidth()
|
||||
elseif curline =~ '^\s*\<catch\>'
|
||||
return ind
|
||||
endif
|
||||
@@ -442,7 +442,7 @@ function! GetScalaIndent()
|
||||
\ || prevline =~ '^\s*\%(}\s*\)\?\<else\>\s*$'
|
||||
\ || prevline =~ '=\s*$'
|
||||
call scala#ConditionalConfirm("4")
|
||||
let ind = ind + &shiftwidth
|
||||
let ind = ind + shiftwidth()
|
||||
elseif prevline =~ '^\s*\<\%(}\?\s*else\s\+\)\?if\>' && curline =~ '^\s*}\?\s*\<else\>'
|
||||
return ind
|
||||
endif
|
||||
@@ -451,7 +451,7 @@ function! GetScalaIndent()
|
||||
let bracketCount = scala#CountBrackets(prevline, '{', '}')
|
||||
if bracketCount > 0 || prevline =~ '.*{\s*$'
|
||||
call scala#ConditionalConfirm("5b")
|
||||
let ind = ind + &shiftwidth
|
||||
let ind = ind + shiftwidth()
|
||||
elseif bracketCount < 0
|
||||
call scala#ConditionalConfirm("6b")
|
||||
" if the closing brace actually completes the braces entirely, then we
|
||||
@@ -479,7 +479,7 @@ function! GetScalaIndent()
|
||||
let bracketCount = scala#CountBrackets(prevline, '(', ')')
|
||||
if bracketCount > 0 || prevline =~ '.*(\s*$'
|
||||
call scala#ConditionalConfirm("5a")
|
||||
let ind = ind + &shiftwidth
|
||||
let ind = ind + shiftwidth()
|
||||
elseif bracketCount < 0
|
||||
call scala#ConditionalConfirm("6a")
|
||||
" if the closing brace actually completes the braces entirely, then we
|
||||
@@ -501,7 +501,7 @@ function! GetScalaIndent()
|
||||
else
|
||||
" This is the only part that's different from from the '{', '}' one below
|
||||
" Yup... some refactoring is necessary at some point.
|
||||
let ind = ind + (bracketCount * &shiftwidth)
|
||||
let ind = ind + (bracketCount * shiftwidth())
|
||||
let lineCompletedBrackets = 1
|
||||
endif
|
||||
endif
|
||||
@@ -510,7 +510,7 @@ function! GetScalaIndent()
|
||||
if curline =~ '^\s*}\?\s*\<else\>\%(\s\+\<if\>\s*(.*)\)\?\s*{\?\s*$' &&
|
||||
\ ! scala#LineIsCompleteIf(prevline) &&
|
||||
\ prevline !~ '^.*}\s*$'
|
||||
let ind = ind - &shiftwidth
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
|
||||
" Subtract a 'shiftwidth' on '}' or html
|
||||
@@ -521,7 +521,7 @@ function! GetScalaIndent()
|
||||
return indent(matchline)
|
||||
elseif curline =~ '^\s*</[a-zA-Z][^>]*>'
|
||||
call scala#ConditionalConfirm("14c")
|
||||
return ind - &shiftwidth
|
||||
return ind - shiftwidth()
|
||||
endif
|
||||
|
||||
let prevParenCount = scala#CountParens(prevline)
|
||||
@@ -533,7 +533,7 @@ function! GetScalaIndent()
|
||||
let prevCurlyCount = scala#CountCurlies(prevline)
|
||||
if prevCurlyCount == 0 && prevline =~ '^.*\%(=>\|⇒\)\s*$' && prevline !~ '^\s*this\s*:.*\%(=>\|⇒\)\s*$' && curline !~ '^\s*\<case\>'
|
||||
call scala#ConditionalConfirm("16")
|
||||
let ind = ind + &shiftwidth
|
||||
let ind = ind + shiftwidth()
|
||||
endif
|
||||
|
||||
if ind == originalIndentValue && curline =~ '^\s*\<case\>'
|
||||
@@ -559,7 +559,7 @@ function! GetScalaIndent()
|
||||
if scala#LineIsAClosingXML(prevline)
|
||||
if scala#LineCompletesXML(prevlnum, prevline)
|
||||
call scala#ConditionalConfirm("20a")
|
||||
return ind - &shiftwidth
|
||||
return ind - shiftwidth()
|
||||
else
|
||||
call scala#ConditionalConfirm("20b")
|
||||
return ind
|
||||
@@ -570,7 +570,7 @@ function! GetScalaIndent()
|
||||
"let indentMultiplier = scala#LineCompletesDefValr(prevlnum, prevline)
|
||||
"if indentMultiplier != 0
|
||||
" call scala#ConditionalConfirm("19a")
|
||||
" let ind = ind - (indentMultiplier * &shiftwidth)
|
||||
" let ind = ind - (indentMultiplier * shiftwidth())
|
||||
let defValrLine = scala#Test(prevlnum, prevline, '{', '}')
|
||||
if defValrLine != -1
|
||||
call scala#ConditionalConfirm("21a")
|
||||
@@ -579,10 +579,10 @@ function! GetScalaIndent()
|
||||
call scala#ConditionalConfirm("21b")
|
||||
if scala#GetLine(prevnonblank(prevlnum - 1)) =~ '^.*\<else\>\s*\%(//.*\)\?$'
|
||||
call scala#ConditionalConfirm("21c")
|
||||
let ind = ind - &shiftwidth
|
||||
let ind = ind - shiftwidth()
|
||||
elseif scala#LineCompletesIfElse(prevlnum, prevline)
|
||||
call scala#ConditionalConfirm("21d")
|
||||
let ind = ind - &shiftwidth
|
||||
let ind = ind - shiftwidth()
|
||||
elseif scala#CountParens(curline) < 0 && curline =~ '^\s*)' && scala#GetLine(scala#GetLineThatMatchesBracket('(', ')')) =~ '.*(\s*$'
|
||||
" Handles situations that look like this:
|
||||
"
|
||||
@@ -596,7 +596,7 @@ function! GetScalaIndent()
|
||||
" 10
|
||||
" ).somethingHere()
|
||||
call scala#ConditionalConfirm("21e")
|
||||
let ind = ind - &shiftwidth
|
||||
let ind = ind - shiftwidth()
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -5,7 +5,7 @@ endif
|
||||
" Vim syntax file
|
||||
" Language: APT config file
|
||||
" Maintainer: Yann Amar <quidame@poivron.org>
|
||||
" Last Change: 2015 Dec 22
|
||||
" Last Change: 2021 Jul 12
|
||||
|
||||
" quit when a syntax file was already loaded
|
||||
if !exists("main_syntax")
|
||||
@@ -400,10 +400,13 @@ syn cluster aptconfSynaptic_ contains=aptconfSynaptic,
|
||||
" }}}
|
||||
" Unattended Upgrade: {{{
|
||||
syn keyword aptconfUnattendedUpgrade contained
|
||||
\ AutoFixInterruptedDpkg Automatic-Reboot Automatic-Reboot-Time
|
||||
\ Automatic-Reboot-WithUsers InstallOnShutdown Mail MailOnlyOnError
|
||||
\ MinimalSteps Origins-Pattern Package-Blacklist
|
||||
\ Remove-Unused-Dependencies
|
||||
\ Allow-APT-Mark-Fallback Allow-downgrade AutoFixInterruptedDpkg
|
||||
\ Automatic-Reboot Automatic-Reboot-Time Automatic-Reboot-WithUsers
|
||||
\ Debug InstallOnShutdown Mail MailOnlyOnError MailReport MinimalSteps
|
||||
\ OnlyOnACPower Origins-Pattern Package-Blacklist
|
||||
\ Remove-New-Unused-Dependencies Remove-Unused-Dependencies
|
||||
\ Remove-Unused-Kernel-Packages Skip-Updates-On-Metered-Connections
|
||||
\ SyslogEnable SyslogFacility Verbose
|
||||
|
||||
syn cluster aptconfUnattendedUpgrade_ contains=aptconfUnattendedUpgrade
|
||||
" }}}
|
||||
|
||||
@@ -5,7 +5,7 @@ endif
|
||||
" Vim syntax file
|
||||
" Language: C
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2021 Jan 11
|
||||
" Last Change: 2021 May 24
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -418,6 +418,9 @@ if exists("c_autodoc")
|
||||
syn cluster cPreProcGroup add=cAutodocReal
|
||||
endif
|
||||
|
||||
" be able to fold #pragma regions
|
||||
syn region cPragma start="^\s*#pragma\s\+region\>" end="^\s*#pragma\s\+endregion\>" transparent keepend extend fold
|
||||
|
||||
" 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")
|
||||
|
||||
@@ -64,7 +64,7 @@ if !exists("cpp_no_cpp14")
|
||||
syn match cppFloat display contained "\<\d\+\.\d*\(e[-+]\=\d\+\)\=\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
|
||||
syn match cppFloat display contained "\<\.\d\+\(e[-+]\=\d\+\)\=\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
|
||||
syn match cppFloat display contained "\<\d\+e[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
|
||||
syn region cppString start=+\(L\|u\|u8\|U\|R\|LR\|u8R\|uR\|UR\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"\(sv\|s\|_\i*\)\=+ end='$' contains=cSpecial,cFormat,@Spell
|
||||
syn region cppString start=+\(L\|u\|u8\|U\)\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"\(sv\|s\|_\i*\)\=+ end='$' contains=cSpecial,cFormat,@Spell
|
||||
endif
|
||||
|
||||
" C++ 17 extensions
|
||||
@@ -73,6 +73,20 @@ if !exists("cpp_no_cpp17")
|
||||
syn match cppCast "\<reinterpret_pointer_cast\s*$"
|
||||
syn match cppFloat display contained "\<0x\x*\.\x\+p[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
|
||||
syn match cppFloat display contained "\<0x\x\+\.\=p[-+]\=\d\+\([FfLl]\|i[fl]\=\|h\|min\|s\|ms\|us\|ns\|_\i*\)\=\>"
|
||||
|
||||
" TODO: push this up to c.vim if/when supported in C23
|
||||
syn match cppCharacter "u8'[^\\]'"
|
||||
syn match cppCharacter "u8'[^']*'" contains=cSpecial
|
||||
if exists("c_gnu")
|
||||
syn match cppSpecialError "u8'\\[^'\"?\\abefnrtv]'"
|
||||
syn match cppSpecialCharacter "u8'\\['\"?\\abefnrtv]'"
|
||||
else
|
||||
syn match cppSpecialError "u8'\\[^'\"?\\abfnrtv]'"
|
||||
syn match cppSpecialCharacter "u8'\\['\"?\\abfnrtv]'"
|
||||
endif
|
||||
syn match cppSpecialCharacter display "u8'\\\o\{1,3}'"
|
||||
syn match cppSpecialCharacter display "u8'\\x\x\+'"
|
||||
|
||||
endif
|
||||
|
||||
" C++ 20 extensions
|
||||
@@ -103,6 +117,9 @@ hi def link cppType Type
|
||||
hi def link cppStorageClass StorageClass
|
||||
hi def link cppStructure Structure
|
||||
hi def link cppBoolean Boolean
|
||||
hi def link cppCharacter cCharacter
|
||||
hi def link cppSpecialCharacter cSpecialCharacter
|
||||
hi def link cppSpecialError cSpecialError
|
||||
hi def link cppConstant Constant
|
||||
hi def link cppRawStringDelimiter Delimiter
|
||||
hi def link cppRawString String
|
||||
|
||||
@@ -7,7 +7,7 @@ endif
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
|
||||
" Wichert Akkerman <wakkerma@debian.org>
|
||||
" Last Change: 2020 Nov 28
|
||||
" Last Change: 2021 Aug 03
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
@@ -28,7 +28,7 @@ let s:supported = [
|
||||
\ 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
|
||||
\ 'trixie', 'sid', 'rc-buggy',
|
||||
\
|
||||
\ 'trusty', 'xenial', 'bionic', 'focal', 'groovy', 'hirsute', 'devel'
|
||||
\ 'trusty', 'xenial', 'bionic', 'focal', 'hirsute', 'impish', 'devel'
|
||||
\ ]
|
||||
let s:unsupported = [
|
||||
\ 'frozen', 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
|
||||
@@ -38,7 +38,7 @@ let s:unsupported = [
|
||||
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
|
||||
\ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
|
||||
\ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic',
|
||||
\ 'disco', 'eoan'
|
||||
\ 'disco', 'eoan', 'groovy'
|
||||
\ ]
|
||||
let &cpo=s:cpo
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ endif
|
||||
" Language: Debian sources.list
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
|
||||
" Last Change: 2020 Nov 28
|
||||
" Last Change: 2021 Aug 03
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debsources.vim
|
||||
|
||||
" Standard syntax initialization
|
||||
@@ -30,7 +30,7 @@ let s:supported = [
|
||||
\ 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
|
||||
\ 'trixie', 'sid', 'rc-buggy',
|
||||
\
|
||||
\ 'trusty', 'xenial', 'bionic', 'focal', 'groovy', 'hirsute', 'devel'
|
||||
\ 'trusty', 'xenial', 'bionic', 'focal', 'hirsute', 'impish', 'devel'
|
||||
\ ]
|
||||
let s:unsupported = [
|
||||
\ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
|
||||
@@ -40,7 +40,7 @@ let s:unsupported = [
|
||||
\ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
|
||||
\ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
|
||||
\ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic',
|
||||
\ 'disco', 'eoan'
|
||||
\ 'disco', 'eoan', 'groovy'
|
||||
\ ]
|
||||
let &cpo=s:cpo
|
||||
|
||||
|
||||
@@ -23,6 +23,9 @@ if !exists("b:eelixir_subtype")
|
||||
if b:eelixir_subtype == ''
|
||||
let b:eelixir_subtype = matchstr(&filetype,'^eex\.\zs\w\+')
|
||||
endif
|
||||
if b:eelixir_subtype == ''
|
||||
let b:eelixir_subtype = matchstr(&filetype,'^heex\.\zs\w\+')
|
||||
endif
|
||||
if b:eelixir_subtype == ''
|
||||
let b:eelixir_subtype = matchstr(&filetype,'^leex\.\zs\w\+')
|
||||
endif
|
||||
@@ -30,7 +33,7 @@ if !exists("b:eelixir_subtype")
|
||||
let b:eelixir_subtype = matchstr(&filetype,'^sface\.\zs\w\+')
|
||||
endif
|
||||
if b:eelixir_subtype == ''
|
||||
let b:eelixir_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.eex\|\.sface\|\.leex\|\.eelixir\)\+$','',''),'\.\zs\w\+$')
|
||||
let b:eelixir_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.eex\|\.heex\|\.leex\|\.sface\|\.eelixir\)\+$','',''),'\.\zs\w\+$')
|
||||
endif
|
||||
if b:eelixir_subtype == 'ex'
|
||||
let b:eelixir_subtype = 'elixir'
|
||||
|
||||
@@ -16,12 +16,28 @@ syn sync minlines=50
|
||||
|
||||
syn include @gitDiff syntax/diff.vim
|
||||
|
||||
syn region gitHead start=/\%^/ end=/^$/ contains=@NoSpell
|
||||
syn region gitHead start=/\%(^commit\%( \x\{40\}\)\{1,\}\%(\s*(.*)\)\=$\)\@=/ end=/^$/ contains=@NoSpell
|
||||
|
||||
" For git reflog and git show ...^{tree}, avoid sync issues
|
||||
syn match gitHead /^\d\{6\} \%(\w\{4} \)\=\x\{40\}\%( [0-3]\)\=\t.*/ contains=@NoSpell
|
||||
syn match gitHead /^\x\{40\} \x\{40}\t.*/ contains=@NoSpell
|
||||
syn region gitHead start=/\%^\%(tag \|tree \|object \)\@=/ end=/^$/ contains=@NoSpell
|
||||
syn region gitHead start=/\%(^commit\%( \x\{4,\}\)\{1,\}\%(\s*(.*)\)\=$\)\@=/ end=/^$/ contains=@NoSpell
|
||||
" git log --oneline
|
||||
" minimize false positives by verifying contents of buffer
|
||||
if getline(1) =~# '^\x\{7,\} ' && getline('$') =~# '^\x\{7,\} '
|
||||
syn match gitHashAbbrev /^\x\{7,\} \@=/ contains=@NoSpell
|
||||
elseif getline(1) =~# '^[|\/\\_ ]\{-\}\*[|\/\\_ ]\{-\} \x\{7,\} '
|
||||
syn match gitHashAbbrev /^[|\/\\_ ]\{-\}\*[|\/\\_ ]\{-\} \zs\x\{7,\} \@=/ contains=@NoSpell
|
||||
endif
|
||||
" git log --graph
|
||||
syn region gitGraph start=/\%(^[|\/\\_ ]*\*[|\/\\_ ]\{-\} commit\%( \x\{4,\}\)\{1,\}\%(\s*(.*)\)\=$\)\@=/ end=/^\%([|\/\\_ ]*$\)\@=/ contains=@NoSpell
|
||||
" git blame --porcelain
|
||||
syn region gitHead start=/\%(^\x\{40,\} \d\+ \d\+\%( \d\+\)\=$\)\@=/ end=/^\t\@=/ contains=@NoSpell
|
||||
" git ls-tree
|
||||
syn match gitMode /^\d\{6\}\%( \%(blob\|tree\) \x\{4,\}\t\)\@=/ nextgroup=gitType skipwhite contains=@NoSpell
|
||||
" git ls-files --stage
|
||||
syn match gitMode /^\d\{6\}\%( \x\{4,\} [0-3]\t\)\@=/ nextgroup=gitHashStage skipwhite contains=@NoSpell
|
||||
" .git/HEAD, .git/refs/
|
||||
syn match gitKeyword /\%^ref: \@=/ nextgroup=gitReference skipwhite contains=@NoSpell
|
||||
syn match gitHash /\%^\x\{40,}\%$/ skipwhite contains=@NoSpell
|
||||
" .git/logs/
|
||||
syn match gitReflog /^\x\{40,\} \x\{40,\} .\{-\}\d\+\s-\d\{4\}\t.*/ skipwhite contains=@NoSpell,gitReflogOld
|
||||
|
||||
syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold
|
||||
syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --\%(git\|cc\|combined\) \|$\)\@=/ contains=@gitDiff
|
||||
@@ -33,31 +49,43 @@ syn match gitDiffAdded "{+[^}]*+}" contained containedin=gitDiff
|
||||
syn match gitDiffRemoved "^ \+-.*" contained containedin=gitDiffMerge
|
||||
syn match gitDiffRemoved "\[-[^]]*-\]" contained containedin=gitDiff
|
||||
|
||||
syn match gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\|gpgsig\%(-\w\+\)\=\|summary\|boundary\|filename\|previous\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^commit \@=/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^\%(object\|tree\|parent\|encoding\|gpgsig\%(-\w\+\)\=\|previous\) \@=/ contained containedin=gitHead nextgroup=gitHash skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^Merge:/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitMode /^\d\{6\}\>/ contained containedin=gitHead nextgroup=gitType,gitHash skipwhite
|
||||
syn match gitIdentityKeyword /^\%(author\|committer\|tagger\)\%(-mail\|-time\|-tz\)\=\>/ contained containedin=gitHead nextgroup=gitIdentity 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
|
||||
|
||||
syn match gitKeyword /^[*|\/\\_ ]\+\zscommit \@=/ contained containedin=gitGraph nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^[|\/\\_ ]\+\zs\%(object\|tree\|parent\|encoding\|gpgsig\%(-\w\+\)\=\|previous\) \@=/ contained containedin=gitGraph nextgroup=gitHash skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^[|\/\\_ ]\+\zsMerge:/ contained containedin=gitGraph nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitIdentityKeyword /^[|\/\\_ ]\+\zs\%(author\|committer\|tagger\) \@=/ contained containedin=gitGraph nextgroup=gitIdentity skipwhite
|
||||
syn match gitIdentityHeader /^[|\/\\_ ]\+\zs\%(Author\|Commit\|Tagger\):/ contained containedin=gitGraph nextgroup=gitIdentity skipwhite
|
||||
syn match gitDateHeader /^[|\/\\_ ]\+\zs\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitGraph nextgroup=gitDate skipwhite
|
||||
|
||||
syn match gitKeyword /^type \@=/ contained containedin=gitHead nextgroup=gitType skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^\%(summary\|boundary\|filename\|\%(author\|committer\)-\%(time\|tz\)\) \@=/ contained containedin=gitHead skipwhite contains=@NoSpell
|
||||
syn match gitKeyword /^tag \@=/ contained containedin=gitHead nextgroup=gitReference skipwhite contains=@NoSpell
|
||||
syn match gitIdentityKeyword /^\%(author\|committer\)-mail \@=/ contained containedin=gitHead nextgroup=gitEmail skipwhite
|
||||
syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite
|
||||
syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite
|
||||
syn match gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity
|
||||
|
||||
syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite
|
||||
syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity
|
||||
syn match gitDate /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained
|
||||
syn match gitDate /-\=\d\+ [+-]\d\d\d\d\>/ contained
|
||||
syn match gitDate /\<\d\+ \l\+ ago\>/ contained
|
||||
syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHash skipwhite
|
||||
syn match gitStage /\<\d\t\@=/ contained
|
||||
syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHashAbbrev skipwhite
|
||||
syn match gitReference /\S\+\S\@!/ contained
|
||||
syn match gitHash /\<\x\{40\}\>/ contained nextgroup=gitIdentity,gitStage,gitHash skipwhite contains=@NoSpell
|
||||
syn match gitHash /^\<\x\{40\}\>/ containedin=gitHead contained nextgroup=gitHash skipwhite contains=@NoSpell
|
||||
syn match gitHashAbbrev /\<\x\{4,40\}\>/ contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitHash /\<\x\{40,\}\>/ contained nextgroup=gitIdentity,gitHash skipwhite contains=@NoSpell
|
||||
syn match gitReflogOld /^\x\{40,\} \@=/ contained nextgroup=gitReflogNew skipwhite contains=@NoSpell
|
||||
syn match gitReflogNew /\<\x\{40,\} \@=/ contained nextgroup=gitIdentity skipwhite contains=@NoSpell
|
||||
syn match gitHashAbbrev /\<\x\{4,\}\>/ contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell
|
||||
syn match gitHashStage /\<\x\{4,\}\>/ contained nextgroup=gitStage skipwhite contains=@NoSpell
|
||||
syn match gitStage /\<\d\t\@=/ contained
|
||||
|
||||
syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite
|
||||
syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity
|
||||
|
||||
syn match gitNotesHeader /^Notes:\ze\n /
|
||||
|
||||
@@ -72,7 +100,10 @@ hi def link gitEmailDelimiter Delimiter
|
||||
hi def link gitEmail Special
|
||||
hi def link gitDate Number
|
||||
hi def link gitMode Number
|
||||
hi def link gitHashStage gitHash
|
||||
hi def link gitHashAbbrev gitHash
|
||||
hi def link gitReflogOld gitHash
|
||||
hi def link gitReflogNew gitHash
|
||||
hi def link gitHash Identifier
|
||||
hi def link gitReflogMiddle gitReference
|
||||
hi def link gitReference Function
|
||||
|
||||
@@ -13,6 +13,9 @@ elseif exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
if version < 704
|
||||
" this is used to disable regex syntax like `\@3<='
|
||||
" on older vim versions
|
||||
@@ -40,9 +43,9 @@ let s:julia_highlight_operators = get(g:, "julia_highlight_operators", 1)
|
||||
" It doesn't include a few characters (spaces and all closing parentheses)
|
||||
" because those may or may not be valid in the lookbehind on a case-by-case
|
||||
" basis.
|
||||
let s:nonid_chars = '\U00-\U08' . '\U0A-\U1F' .
|
||||
\ '\U21-\U28' . '\U2A-\U2F' . '\U3A-\U40' . '\U5B-\U5E' . '\U60' . '\U7B\U7C' .
|
||||
\ '\U7E-\UA1' . '\UA7\UA8' . '\UAB-\UAD' . '\UAF\UB1\UB4' . '\UB6-\UB8' . '\UBB\UBF' . '\UD7\UF7'
|
||||
let s:nonid_chars = '\U00-\U08' . '\U0A-\U1F'
|
||||
\ . '\U21-\U28' . '\U2A-\U2F' . '\U3A-\U40' . '\U5B-\U5E' . '\U60' . '\U7B\U7C'
|
||||
\ . '\U7E-\UA1' . '\UA7\UA8' . '\UAB-\UAD' . '\UAF\UB1\UB4' . '\UB6-\UB8' . '\UBB\UBF' . '\UD7\UF7'
|
||||
|
||||
" The complete list
|
||||
let s:nonidS_chars = '[:space:])\U5D}' . s:nonid_chars
|
||||
@@ -60,10 +63,10 @@ let s:op_chars = '\U25\U26\U2A\U2B\U2D\U2F\U3C-\U3E\U5C\U5E\U7C\U7E\UAC\UB1\UD7\
|
||||
let s:op_chars_wc = '\U2026\U205D\U214B\U2190-\U2194\U219A-\U219E\U21A0\U21A2-\U21A4\U21A6\U21A9-\U21AC\U21AE\U21B6\U21B7\U21BA-\U21BD\U21C0\U21C1\U21C4\U21C6\U21C7\U21C9\U21CB-\U21D0\U21D2\U21D4\U21DA-\U21DD\U21E0\U21E2\U21F4-\U21FF\U2208-\U220D\U2213\U2214\U2217-\U221D\U2224-\U222A\U2237\U2238\U223A\U223B\U223D\U223E\U2240-\U228B\U228D-\U229C\U229E-\U22A3\U22A9\U22AC\U22AE\U22B0-\U22B7\U22BB-\U22BD\U22C4-\U22C7\U22C9-\U22D3\U22D5-\U22FF\U233F\U25B7\U27C2\U27C8\U27C9\U27D1\U27D2\U27D5-\U27D7\U27F0\U27F1\U27F5-\U27F7\U27F9-\U27FF\U2900-\U2918\U291D-\U2920\U2944-\U2970\U29B7\U29B8\U29BC\U29BE-\U29C1\U29E1\U29E3-\U29E5\U29F4\U29F6\U29F7\U29FA\U29FB\U2A07\U2A08\U2A1D\U2A1F\U2A22-\U2A2E\U2A30-\U2A3D\U2A40-\U2A45\U2A4A-\U2A58\U2A5A-\U2A63\U2A66\U2A67\U2A6A-\U2AD9\U2ADB\U2AF7-\U2AFA\U2B30-\U2B44\U2B47-\U2B4C\UFFE9-\UFFEC'
|
||||
|
||||
" Full operators regex
|
||||
let s:operators = '\%(' . '\.\%([-+*/^÷%|&⊻]\|//\|\\\|>>\|>>>\?\)\?=' .
|
||||
\ '\|' . '[:<>]=\|||\|&&\||>\|<|\|[<>:]:\|<<\|>>>\?\|//\|[-=]>\|\.\.\.\?' .
|
||||
\ '\|' . '\.\?[!' . s:op_chars . s:op_chars_wc . ']' .
|
||||
\ '\)'
|
||||
let s:operators = '\%(' . '\.\%([-+*/^÷%|&⊻]\|//\|\\\|>>\|>>>\?\)\?='
|
||||
\ . '\|' . '[:<>]=\|||\|&&\||>\|<|\|[<>:]:\|<<\|>>>\?\|//\|[-=]>\|\.\.\.\?'
|
||||
\ . '\|' . '\.\?[!' . s:op_chars . s:op_chars_wc . ']'
|
||||
\ . '\)'
|
||||
|
||||
|
||||
" Characters that can be used to start an identifier. Above \UBF we don't
|
||||
@@ -247,11 +250,11 @@ let s:hex_regex = '0x\x\%(_\?\x\)*\%(\>\|im\>\|\ze\X\)'
|
||||
let s:bin_regex = '0b[01]\%(_\?[01]\)*\%(\>\|im\>\|\ze[^01]\)'
|
||||
let s:oct_regex = '0o\o\%(_\?\o\)*\%(\>\|im\>\|\ze\O\)'
|
||||
|
||||
let s:int_regex = '\%(' . s:hex_regex .
|
||||
\ '\|' . s:bin_regex .
|
||||
\ '\|' . s:oct_regex .
|
||||
\ '\|' . s:dec_regex .
|
||||
\ '\)'
|
||||
let s:int_regex = '\%(' . s:hex_regex
|
||||
\ . '\|' . s:bin_regex
|
||||
\ . '\|' . s:oct_regex
|
||||
\ . '\|' . s:dec_regex
|
||||
\ . '\)'
|
||||
|
||||
"floating point regexes
|
||||
" starting with a dot, optional exponent
|
||||
@@ -267,12 +270,12 @@ let s:hexfloat_regex1 = '0x\.\%\(\x\%(_\?\x\)*\)\?[pP][-+]\?\d\+\%(\>\|im\>\|\ze
|
||||
" starting with a digit
|
||||
let s:hexfloat_regex2 = '0x\x\%(_\?\x\)*\%\(\.\%\(\x\%(_\?\x\)*\)\?\)\?[pP][-+]\?\d\+\%(\>\|im\>\|\ze\X\)'
|
||||
|
||||
let s:float_regex = '\%(' . s:float_regex3 .
|
||||
\ '\|' . s:float_regex2 .
|
||||
\ '\|' . s:float_regex1 .
|
||||
\ '\|' . s:hexfloat_regex2 .
|
||||
\ '\|' . s:hexfloat_regex1 .
|
||||
\ '\)'
|
||||
let s:float_regex = '\%(' . s:float_regex3
|
||||
\ . '\|' . s:float_regex2
|
||||
\ . '\|' . s:float_regex1
|
||||
\ . '\|' . s:hexfloat_regex2
|
||||
\ . '\|' . s:hexfloat_regex1
|
||||
\ . '\)'
|
||||
|
||||
exec 'syntax match juliaNumber contained "' . s:int_regex . '" contains=juliaComplexUnit'
|
||||
exec 'syntax match juliaFloat contained "' . s:float_regex . '" contains=juliaComplexUnit'
|
||||
@@ -545,3 +548,6 @@ hi def link juliaError Error
|
||||
syntax sync fromstart
|
||||
|
||||
let b:current_syntax = "julia"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -9,6 +9,9 @@ if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syntax sync fromstart
|
||||
|
||||
syntax region juliadocCode matchgroup=juliadocCodeDelimiter start="`" end="`" concealends display oneline
|
||||
@@ -67,3 +70,6 @@ highlight default link juliadocAdmonitionsType Todo
|
||||
highlight default link juliadocAdmonitionsTitle Title
|
||||
|
||||
let b:current_syntax = "juliadoc"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
@@ -7,7 +7,7 @@ endif
|
||||
" License: VIM License
|
||||
" Maintainer: Nirbheek Chauhan <nirbheek.chauhan@gmail.com>
|
||||
" Liam Beguin <liambeguin@gmail.com>
|
||||
" Last Change: 2016 Dec 7
|
||||
" Last Change: 2021 Aug 16
|
||||
" Credits: Zvezdan Petkovic <zpetkovic@acm.org>
|
||||
" Neil Schemenauer <nas@meson.ca>
|
||||
" Dmitry Vasiliev
|
||||
@@ -122,6 +122,7 @@ syn keyword mesonBuiltin
|
||||
\ summary
|
||||
\ target_machine
|
||||
\ test
|
||||
\ unset_variable
|
||||
\ vcs_tag
|
||||
\ warning
|
||||
\ range
|
||||
|
||||
@@ -7,7 +7,7 @@ endif
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainers: Xavier Crégut <xavier.cregut@enseeiht.fr>
|
||||
" Mario Eusebio <bio@dq.fct.unl.pt>
|
||||
" Last Change: 2021 Apr 23
|
||||
" Last Change: 2021 May 20
|
||||
|
||||
" Contributors: Tim Chase <tchase@csc.com>,
|
||||
" Stas Grabois <stsi@vtrails.com>,
|
||||
|
||||
@@ -49,9 +49,11 @@ syntax keyword plantumlKeyword split start stereotype stop title top up while
|
||||
" Not in 'java - jar plantuml.jar - language' results
|
||||
syntax keyword plantumlKeyword endlegend 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 in at are to the and
|
||||
|
||||
syntax keyword plantumlTypeKeyword monday tuesday wednesday thursday friday saturday sunday today
|
||||
syntax keyword plantumlTypeKeyword project Project labels Labels last first column
|
||||
syntax keyword plantumlKeyword starts ends start end closed after colored lasts happens in at are to the and
|
||||
syntax keyword plantumlKeyword printscale ganttscale projectscale daily weekly monthly quarterly yearly zoom
|
||||
syntax keyword plantumlKeyword day days week weeks today then complete displays same row pauses
|
||||
|
||||
syntax keyword plantumlCommentTODO XXX TODO FIXME NOTE contained
|
||||
syntax match plantumlColor /#[0-9A-Fa-f]\{6\}\>/
|
||||
|
||||
@@ -70,11 +70,13 @@ syn match scalaChar /'\\u[A-Fa-f0-9]\{4}'/ contains=scalaUnicodeChar
|
||||
syn match scalaEscapedChar /\\[\\"'ntbrf]/
|
||||
syn match scalaUnicodeChar /\\u[A-Fa-f0-9]\{4}/
|
||||
hi link scalaChar Character
|
||||
hi link scalaEscapedChar Function
|
||||
hi link scalaEscapedChar Special
|
||||
hi link scalaUnicodeChar Special
|
||||
|
||||
syn match scalaOperator "||"
|
||||
syn match scalaOperator "&&"
|
||||
syn match scalaOperator "|"
|
||||
syn match scalaOperator "&"
|
||||
hi link scalaOperator Special
|
||||
|
||||
syn match scalaNameDefinition /\<[_A-Za-z0-9$]\+\>/ contained nextgroup=scalaPostNameDefinition,scalaVariableDeclarationList
|
||||
@@ -122,7 +124,7 @@ hi link scalaTypePostExtension Keyword
|
||||
|
||||
syn match scalaTypeAnnotation /\%([_a-zA-Z0-9$\s]:\_s*\)\ze[_=(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeDeclaration contains=scalaRoundBrackets
|
||||
syn match scalaTypeAnnotation /)\_s*:\_s*\ze[_=(\.A-Za-z0-9$]\+/ skipwhite nextgroup=scalaTypeDeclaration
|
||||
hi link scalaTypeAnnotation Normal
|
||||
hi clear scalaTypeAnnotation
|
||||
|
||||
syn match scalaCaseFollowing /\<[_\.A-Za-z0-9$]\+\>/ contained contains=scalaCapitalWord
|
||||
syn match scalaCaseFollowing /`[^`]\+`/ contained contains=scalaCapitalWord
|
||||
@@ -148,21 +150,21 @@ hi link scalaString String
|
||||
hi link scalaStringEmbeddedQuote String
|
||||
|
||||
syn region scalaIString matchgroup=scalaInterpolationBrackets start=/\<[a-zA-Z][a-zA-Z0-9_]*"/ skip=/\\"/ end=/"/ contains=scalaInterpolation,scalaInterpolationB,scalaEscapedChar,scalaUnicodeChar
|
||||
syn region scalaTripleIString matchgroup=scalaInterpolationBrackets start=/\<[a-zA-Z][a-zA-Z0-9_]*"""/ end=/"""\%([^"]\|$\)/ contains=scalaInterpolation,scalaInterpolationB,scalaEscapedChar,scalaUnicodeChar
|
||||
syn region scalaTripleIString matchgroup=scalaInterpolationBrackets start=/\<[a-zA-Z][a-zA-Z0-9_]*"""/ end=/"""\ze\%([^"]\|$\)/ contains=scalaInterpolation,scalaInterpolationB,scalaEscapedChar,scalaUnicodeChar
|
||||
hi link scalaIString String
|
||||
hi link scalaTripleIString String
|
||||
|
||||
syn match scalaInterpolation /\$[a-zA-Z0-9_$]\+/ contained
|
||||
exe 'syn region scalaInterpolationB matchgroup=scalaInterpolationBoundary start=/\${/ end=/}/ contained contains=' . s:ContainedGroup()
|
||||
hi link scalaInterpolation Function
|
||||
hi link scalaInterpolationB Normal
|
||||
hi clear scalaInterpolationB
|
||||
|
||||
syn region scalaFString matchgroup=scalaInterpolationBrackets start=/f"/ skip=/\\"/ end=/"/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar
|
||||
syn match scalaFInterpolation /\$[a-zA-Z0-9_$]\+\(%[-A-Za-z0-9\.]\+\)\?/ contained
|
||||
exe 'syn region scalaFInterpolationB matchgroup=scalaInterpolationBoundary start=/${/ end=/}\(%[-A-Za-z0-9\.]\+\)\?/ contained contains=' . s:ContainedGroup()
|
||||
hi link scalaFString String
|
||||
hi link scalaFInterpolation Function
|
||||
hi link scalaFInterpolationB Normal
|
||||
hi clear scalaFInterpolationB
|
||||
|
||||
syn region scalaTripleString start=/"""/ end=/"""\%([^"]\|$\)/ contains=scalaEscapedChar,scalaUnicodeChar
|
||||
syn region scalaTripleFString matchgroup=scalaInterpolationBrackets start=/f"""/ end=/"""\%([^"]\|$\)/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar
|
||||
|
||||
@@ -4,11 +4,12 @@ endif
|
||||
|
||||
" Vim syntax file
|
||||
" Language: Scheme (R7RS)
|
||||
" Last Change: 2018-01-06
|
||||
" Last Change: 2021-01-03
|
||||
" Author: Evan Hanson <evhan@foldling.org>
|
||||
" Maintainer: Evan Hanson <evhan@foldling.org>
|
||||
" Previous Author: Dirk van Deun <dirk@igwe.vub.ac.be>
|
||||
" Previous Maintainer: Sergey Khorev <sergey.khorev@gmail.com>
|
||||
" Repository: https://git.foldling.org/vim-scheme.git
|
||||
" URL: https://foldling.org/vim/syntax/scheme.vim
|
||||
|
||||
if exists('b:current_syntax')
|
||||
@@ -18,6 +19,8 @@ endif
|
||||
let s:cpo = &cpo
|
||||
set cpo&vim
|
||||
|
||||
syn spell notoplevel
|
||||
|
||||
syn match schemeParentheses "[^ '`\t\n()\[\]";]\+"
|
||||
syn match schemeParentheses "[)\]]"
|
||||
|
||||
@@ -39,7 +42,7 @@ syn region schemeUnquote matchgroup=schemeParentheses start=/,@(/ end=/)/ contai
|
||||
syn region schemeQuoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuasiquote,schemeQuasiquoteForm,schemeUnquote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
|
||||
syn region schemeQuasiquoteForm matchgroup=schemeData start=/(/ end=/)/ contained contains=ALLBUT,schemeQuote,schemeForm,schemeDatumCommentForm,schemeImport,@schemeImportCluster,@schemeSyntaxCluster
|
||||
|
||||
syn region schemeString start=/\(\\\)\@<!"/ skip=/\\[\\"]/ end=/"/
|
||||
syn region schemeString start=/\(\\\)\@<!"/ skip=/\\[\\"]/ end=/"/ contains=@Spell
|
||||
syn region schemeSymbol start=/\(\\\)\@<!|/ skip=/\\[\\|]/ end=/|/
|
||||
|
||||
syn match schemeNumber /\(#[dbeio]\)*[+\-]*\([0-9]\+\|inf.0\|nan.0\)\(\/\|\.\)\?[0-9+\-@\ilns]*\>/
|
||||
@@ -51,9 +54,9 @@ syn match schemeBoolean /#f\(alse\)\?/
|
||||
syn match schemeCharacter /#\\.[^ `'\t\n\[\]()]*/
|
||||
syn match schemeCharacter /#\\x[0-9a-fA-F]\+/
|
||||
|
||||
syn match schemeComment /;.*$/
|
||||
syn match schemeComment /;.*$/ contains=@Spell
|
||||
|
||||
syn region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment
|
||||
syn region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment,@Spell
|
||||
|
||||
syn region schemeForm matchgroup=schemeParentheses start="(" end=")" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster
|
||||
syn region schemeForm matchgroup=schemeParentheses start="\[" end="\]" contains=ALLBUT,schemeUnquote,schemeDatumCommentForm,@schemeImportCluster
|
||||
@@ -67,7 +70,7 @@ else
|
||||
syn region schemeImport matchgroup=schemeImport start="\(([ \t\n]*\)\@<=\(import\)\>" end=")"me=e-1 contained contains=schemeImportForm,schemeIdentifier,schemeComment,schemeDatumComment
|
||||
endif
|
||||
|
||||
syn match schemeImportKeyword "\(([ \t\n]*\)\@<=\(except\|only\|prefix\|rename\|srfi\)\>"
|
||||
syn match schemeImportKeyword "\(([ \t\n]*\)\@<=\(except\|only\|prefix\|rename\)\>"
|
||||
syn region schemeImportForm matchgroup=schemeParentheses start="(" end=")" contained contains=schemeIdentifier,schemeComment,schemeDatumComment,@schemeImportCluster
|
||||
syn cluster schemeImportCluster contains=schemeImportForm,schemeImportKeyword
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ if polyglot#init#is_disabled(expand('<sfile>:p'), 'tmux', 'syntax/tmux.vim')
|
||||
endif
|
||||
|
||||
" Language: tmux(1) configuration file
|
||||
" Version: to_merge (git-c03b5746)
|
||||
" Version: 3.2a (git-44ada9cd)
|
||||
" 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)
|
||||
@@ -84,8 +84,8 @@ syn keyword tmuxOptions
|
||||
\ 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-lines pane-border-status pane-border-style prefix prefix2
|
||||
\ prompt-history-limit remain-on-exit renumber-windows repeat-time
|
||||
\ pane-border-lines pane-border-status pane-border-style pane-colours prefix
|
||||
\ prefix2 prompt-history-limit 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
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
if polyglot#init#is_disabled(expand('<sfile>:p'), 'toml', 'syntax/toml.vim')
|
||||
finish
|
||||
endif
|
||||
|
||||
" Language: TOML
|
||||
" Maintainer: Caleb Spare <cespare@gmail.com>
|
||||
" URL: https://github.com/cespare/vim-toml
|
||||
" LICENSE: MIT
|
||||
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
syn match tomlEscape /\\[btnfr"/\\]/ display contained
|
||||
syn match tomlEscape /\\u\x\{4}/ contained
|
||||
syn match tomlEscape /\\U\x\{8}/ contained
|
||||
hi def link tomlEscape SpecialChar
|
||||
|
||||
syn match tomlLineEscape /\\$/ contained
|
||||
hi def link tomlLineEscape SpecialChar
|
||||
|
||||
" Basic strings
|
||||
syn region tomlString oneline start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=tomlEscape
|
||||
" Multi-line basic strings
|
||||
syn region tomlString start=/"""/ end=/"""/ contains=tomlEscape,tomlLineEscape
|
||||
" Literal strings
|
||||
syn region tomlString oneline start=/'/ end=/'/
|
||||
" Multi-line literal strings
|
||||
syn region tomlString start=/'''/ end=/'''/
|
||||
hi def link tomlString String
|
||||
|
||||
syn match tomlInteger /[+-]\=\<[1-9]\(_\=\d\)*\>/ display
|
||||
syn match tomlInteger /[+-]\=\<0\>/ display
|
||||
syn match tomlInteger /[+-]\=\<0x[[:xdigit:]]\(_\=[[:xdigit:]]\)*\>/ display
|
||||
syn match tomlInteger /[+-]\=\<0o[0-7]\(_\=[0-7]\)*\>/ display
|
||||
syn match tomlInteger /[+-]\=\<0b[01]\(_\=[01]\)*\>/ display
|
||||
syn match tomlInteger /[+-]\=\<\(inf\|nan\)\>/ display
|
||||
hi def link tomlInteger Number
|
||||
|
||||
syn match tomlFloat /[+-]\=\<\d\(_\=\d\)*\.\d\+\>/ display
|
||||
syn match tomlFloat /[+-]\=\<\d\(_\=\d\)*\(\.\d\(_\=\d\)*\)\=[eE][+-]\=\d\(_\=\d\)*\>/ display
|
||||
hi def link tomlFloat Float
|
||||
|
||||
syn match tomlBoolean /\<\%(true\|false\)\>/ display
|
||||
hi def link tomlBoolean Boolean
|
||||
|
||||
" https://tools.ietf.org/html/rfc3339
|
||||
syn match tomlDate /\d\{4\}-\d\{2\}-\d\{2\}/ display
|
||||
syn match tomlDate /\d\{2\}:\d\{2\}:\d\{2\}\%(\.\d\+\)\?/ display
|
||||
syn match tomlDate /\d\{4\}-\d\{2\}-\d\{2\}[T ]\d\{2\}:\d\{2\}:\d\{2\}\%(\.\d\+\)\?\%(Z\|[+-]\d\{2\}:\d\{2\}\)\?/ display
|
||||
hi def link tomlDate Constant
|
||||
|
||||
syn match tomlKey /\v(^|[{,])\s*\zs[[:alnum:]._-]+\ze\s*\=/ display
|
||||
hi def link tomlKey Identifier
|
||||
|
||||
syn region tomlKeyDq oneline start=/\v(^|[{,])\s*\zs"/ end=/"\ze\s*=/ contains=tomlEscape
|
||||
hi def link tomlKeyDq Identifier
|
||||
|
||||
syn region tomlKeySq oneline start=/\v(^|[{,])\s*\zs'/ end=/'\ze\s*=/
|
||||
hi def link tomlKeySq Identifier
|
||||
|
||||
syn region tomlTable oneline start=/^\s*\[[^\[]/ end=/\]/ contains=tomlKey,tomlKeyDq,tomlKeySq
|
||||
hi def link tomlTable Title
|
||||
|
||||
syn region tomlTableArray oneline start=/^\s*\[\[/ end=/\]\]/ contains=tomlKey,tomlKeyDq,tomlKeySq
|
||||
hi def link tomlTableArray Title
|
||||
|
||||
syn cluster tomlValue contains=tomlArray,tomlString,tomlInteger,tomlFloat,tomlBoolean,tomlDate,tomlComment
|
||||
syn region tomlKeyValueArray start=/=\s*\[\zs/ end=/\]/ contains=@tomlValue
|
||||
syn region tomlArray start=/\[/ end=/\]/ contains=@tomlValue contained
|
||||
|
||||
syn keyword tomlTodo TODO FIXME XXX BUG contained
|
||||
hi def link tomlTodo Todo
|
||||
|
||||
syn match tomlComment /#.*/ contains=@Spell,tomlTodo
|
||||
hi def link tomlComment Comment
|
||||
|
||||
syn sync minlines=500
|
||||
|
||||
let b:current_syntax = 'toml'
|
||||
Reference in New Issue
Block a user