forked from aniani/vim
Update runtime files
This commit is contained in:
4
.github/CODEOWNERS
vendored
4
.github/CODEOWNERS
vendored
@@ -78,6 +78,7 @@ runtime/ftplugin/css.vim @dkearns
|
||||
runtime/ftplugin/cucumber.vim @tpope
|
||||
runtime/ftplugin/eiffel.vim @dkearns
|
||||
runtime/ftplugin/eruby.vim @tpope @dkearns
|
||||
runtime/ftplugin/fpcmake.vim @dkearns
|
||||
runtime/ftplugin/freebasic.vim @dkearns
|
||||
runtime/ftplugin/git.vim @tpope
|
||||
runtime/ftplugin/gitcommit.vim @tpope
|
||||
@@ -98,6 +99,7 @@ runtime/ftplugin/matlab.vim @cecamp
|
||||
runtime/ftplugin/modula3.vim @dkearns
|
||||
runtime/ftplugin/nroff.vim @a-vrma
|
||||
runtime/ftplugin/nsis.vim @k-takata
|
||||
runtime/ftplugin/pascal.vim @dkearns
|
||||
runtime/ftplugin/pdf.vim @tpope
|
||||
runtime/ftplugin/ps1.vim @heaths
|
||||
runtime/ftplugin/ps1xml.vim @heaths
|
||||
@@ -157,6 +159,7 @@ runtime/syntax/dtd.vim @chrisbra
|
||||
runtime/syntax/elmfilt.vim @cecamp
|
||||
runtime/syntax/eruby.vim @tpope @dkearns
|
||||
runtime/syntax/exports.vim @cecamp
|
||||
runtime/syntax/fpcmake.vim @dkearns
|
||||
runtime/syntax/git.vim @tpope
|
||||
runtime/syntax/gitcommit.vim @tpope
|
||||
runtime/syntax/gitconfig.vim @tpope
|
||||
@@ -181,6 +184,7 @@ runtime/syntax/modula3.vim @dkearns
|
||||
runtime/syntax/netrw.vim @cecamp
|
||||
runtime/syntax/nroff.vim @jmarshall
|
||||
runtime/syntax/nsis.vim @k-takata
|
||||
runtime/syntax/pascal.vim @dkearns
|
||||
runtime/syntax/pdf.vim @tpope
|
||||
runtime/syntax/php.vim @TysonAndre
|
||||
runtime/syntax/privoxy.vim @dkearns
|
||||
|
@@ -24,7 +24,7 @@ LangString ^UninstallCaption ${LANG_ENGLISH} \
|
||||
# "Destination Folder (Must end with $\"vim$\")"
|
||||
|
||||
LangString str_show_readme ${LANG_ENGLISH} \
|
||||
"Show README after installation finish"
|
||||
"Show README after installation finished"
|
||||
|
||||
# Install types:
|
||||
LangString str_type_typical ${LANG_ENGLISH} \
|
||||
|
@@ -1,12 +1,16 @@
|
||||
" Vim completion script
|
||||
" Language: All languages, uses existing syntax highlighting rules
|
||||
" Maintainer: David Fishburn <dfishburn dot vim at gmail dot com>
|
||||
" Version: 14.0
|
||||
" Last Change: 2020 Dec 30
|
||||
" Version: 15.0
|
||||
" Last Change: 2021 Apr 27
|
||||
" Usage: For detailed help, ":help ft-syntax-omni"
|
||||
|
||||
" History
|
||||
"
|
||||
" Version 15.0
|
||||
" - SyntaxComplete ignored all buffer specific overrides, always used global
|
||||
" https://github.com/vim/vim/issues/8153
|
||||
"
|
||||
" Version 14.0
|
||||
" - Fixed issue with single quotes and is_keyword
|
||||
" https://github.com/vim/vim/issues/7463
|
||||
@@ -42,7 +46,7 @@
|
||||
" let g:omni_syntax_use_single_byte = 1
|
||||
" - This by default will only allow single byte ASCII
|
||||
" characters to be added and an additional check to ensure
|
||||
" the charater is printable (see documentation for isprint).
|
||||
" the character is printable (see documentation for isprint).
|
||||
"
|
||||
" Version 9.0
|
||||
" - Add the check for cpo.
|
||||
@@ -90,7 +94,7 @@ endif
|
||||
if exists('g:loaded_syntax_completion')
|
||||
finish
|
||||
endif
|
||||
let g:loaded_syntax_completion = 130
|
||||
let g:loaded_syntax_completion = 150
|
||||
|
||||
" Turn on support for line continuations when creating the script
|
||||
let s:cpo_save = &cpo
|
||||
@@ -145,14 +149,10 @@ let s:prepended = ''
|
||||
" This function is used for the 'omnifunc' option.
|
||||
function! syntaxcomplete#Complete(findstart, base)
|
||||
|
||||
" Only display items in the completion window that are at least
|
||||
" this many characters in length
|
||||
if !exists('b:omni_syntax_ignorecase')
|
||||
if exists('g:omni_syntax_ignorecase')
|
||||
let b:omni_syntax_ignorecase = g:omni_syntax_ignorecase
|
||||
else
|
||||
let b:omni_syntax_ignorecase = &ignorecase
|
||||
endif
|
||||
" Allow user to override ignorecase per buffer
|
||||
let l:omni_syntax_ignorecase = g:omni_syntax_ignorecase
|
||||
if exists('b:omni_syntax_ignorecase')
|
||||
let l:omni_syntax_ignorecase = b:omni_syntax_ignorecase
|
||||
endif
|
||||
|
||||
if a:findstart
|
||||
@@ -183,7 +183,6 @@ function! syntaxcomplete#Complete(findstart, base)
|
||||
endif
|
||||
|
||||
" let base = s:prepended . a:base
|
||||
" let base = s:prepended
|
||||
let base = substitute(s:prepended, "'", "''", 'g')
|
||||
|
||||
let filetype = substitute(&filetype, '\.', '_', 'g')
|
||||
@@ -200,13 +199,13 @@ function! syntaxcomplete#Complete(findstart, base)
|
||||
|
||||
if base != ''
|
||||
" let compstr = join(compl_list, ' ')
|
||||
" let expr = (b:omni_syntax_ignorecase==0?'\C':'').'\<\%('.base.'\)\@!\w\+\s*'
|
||||
" let expr = (l:omni_syntax_ignorecase==0?'\C':'').'\<\%('.base.'\)\@!\w\+\s*'
|
||||
" let compstr = substitute(compstr, expr, '', 'g')
|
||||
" let compl_list = split(compstr, '\s\+')
|
||||
|
||||
" Filter the list based on the first few characters the user
|
||||
" entered
|
||||
let expr = 'v:val '.(g:omni_syntax_ignorecase==1?'=~?':'=~#')." '^".escape(base, '\\/.*$^~[]').".*'"
|
||||
let expr = 'v:val '.(l:omni_syntax_ignorecase==1?'=~?':'=~#')." '^".escape(base, '\\/.*$^~[]').".*'"
|
||||
let compl_list = filter(deepcopy(compl_list), expr)
|
||||
endif
|
||||
|
||||
@@ -227,6 +226,26 @@ function! syntaxcomplete#OmniSyntaxList(...)
|
||||
endif
|
||||
endfunc
|
||||
|
||||
function! syntaxcomplete#OmniSyntaxClearCache()
|
||||
let s:cache_name = []
|
||||
let s:cache_list = []
|
||||
endfunction
|
||||
|
||||
" To retrieve all syntax items regardless of syntax group:
|
||||
" echo OmniSyntaxList( [] )
|
||||
"
|
||||
" To retrieve only the syntax items for the sqlOperator syntax group:
|
||||
" echo OmniSyntaxList( ['sqlOperator'] )
|
||||
"
|
||||
" To retrieve all syntax items for both the sqlOperator and sqlType groups:
|
||||
" echo OmniSyntaxList( ['sqlOperator', 'sqlType'] )
|
||||
"
|
||||
" A regular expression can also be used:
|
||||
" echo OmniSyntaxList( ['sql\w\+'] )
|
||||
"
|
||||
" From within a plugin, you would typically assign the output to a List: >
|
||||
" let myKeywords = []
|
||||
" let myKeywords = OmniSyntaxList( ['sqlKeyword'] )
|
||||
function! OmniSyntaxList(...)
|
||||
let list_parms = []
|
||||
if a:0 > 0
|
||||
@@ -244,37 +263,25 @@ function! OmniSyntaxList(...)
|
||||
" let use_dictionary = a:1
|
||||
" endif
|
||||
|
||||
" Only display items in the completion window that are at least
|
||||
" this many characters in length
|
||||
if !exists('b:omni_syntax_use_iskeyword')
|
||||
if exists('g:omni_syntax_use_iskeyword')
|
||||
let b:omni_syntax_use_iskeyword = g:omni_syntax_use_iskeyword
|
||||
else
|
||||
let b:omni_syntax_use_iskeyword = 1
|
||||
endif
|
||||
endif
|
||||
|
||||
" Only display items in the completion window that are at least
|
||||
" this many characters in length
|
||||
if !exists('b:omni_syntax_minimum_length')
|
||||
if exists('g:omni_syntax_minimum_length')
|
||||
let b:omni_syntax_minimum_length = g:omni_syntax_minimum_length
|
||||
else
|
||||
let b:omni_syntax_minimum_length = 0
|
||||
endif
|
||||
endif
|
||||
|
||||
let saveL = @l
|
||||
let filetype = substitute(&filetype, '\.', '_', 'g')
|
||||
|
||||
if empty(list_parms)
|
||||
" Allow user to override per buffer
|
||||
if exists('g:omni_syntax_group_include_'.filetype)
|
||||
let l:omni_syntax_group_include_{filetype} = g:omni_syntax_group_include_{filetype}
|
||||
endif
|
||||
if exists('b:omni_syntax_group_include_'.filetype)
|
||||
let l:omni_syntax_group_include_{filetype} = b:omni_syntax_group_include_{filetype}
|
||||
endif
|
||||
|
||||
" Default the include group to include the requested syntax group
|
||||
let syntax_group_include_{filetype} = ''
|
||||
" Check if there are any overrides specified for this filetype
|
||||
if exists('g:omni_syntax_group_include_'.filetype)
|
||||
if exists('l:omni_syntax_group_include_'.filetype)
|
||||
let syntax_group_include_{filetype} =
|
||||
\ substitute( g:omni_syntax_group_include_{filetype},'\s\+','','g')
|
||||
let list_parms = split(g:omni_syntax_group_include_{filetype}, ',')
|
||||
\ substitute( l:omni_syntax_group_include_{filetype},'\s\+','','g')
|
||||
let list_parms = split(l:omni_syntax_group_include_{filetype}, ',')
|
||||
if syntax_group_include_{filetype} =~ '\w'
|
||||
let syntax_group_include_{filetype} =
|
||||
\ substitute( syntax_group_include_{filetype},
|
||||
@@ -329,11 +336,20 @@ function! OmniSyntaxList(...)
|
||||
else
|
||||
" Default the exclude group to nothing
|
||||
let syntax_group_exclude_{filetype} = ''
|
||||
" Check if there are any overrides specified for this filetype
|
||||
|
||||
" Allow user to override per buffer
|
||||
if exists('g:omni_syntax_group_exclude_'.filetype)
|
||||
let l:omni_syntax_group_exclude_{filetype} = g:omni_syntax_group_exclude_{filetype}
|
||||
endif
|
||||
if exists('b:omni_syntax_group_exclude_'.filetype)
|
||||
let l:omni_syntax_group_exclude_{filetype} = b:omni_syntax_group_exclude_{filetype}
|
||||
endif
|
||||
|
||||
" Check if there are any overrides specified for this filetype
|
||||
if exists('l:omni_syntax_group_exclude_'.filetype)
|
||||
let syntax_group_exclude_{filetype} =
|
||||
\ substitute( g:omni_syntax_group_exclude_{filetype},'\s\+','','g')
|
||||
let list_exclude_groups = split(g:omni_syntax_group_exclude_{filetype}, ',')
|
||||
\ substitute( l:omni_syntax_group_exclude_{filetype},'\s\+','','g')
|
||||
let list_exclude_groups = split(l:omni_syntax_group_exclude_{filetype}, ',')
|
||||
if syntax_group_exclude_{filetype} =~ '\w'
|
||||
let syntax_group_exclude_{filetype} =
|
||||
\ substitute( syntax_group_exclude_{filetype},
|
||||
@@ -529,6 +545,30 @@ endfunction
|
||||
|
||||
function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
|
||||
|
||||
" Allow user to override iskeyword per buffer
|
||||
let l:omni_syntax_use_iskeyword = g:omni_syntax_use_iskeyword
|
||||
if exists('b:omni_syntax_use_iskeyword')
|
||||
let l:omni_syntax_use_iskeyword = b:omni_syntax_use_iskeyword
|
||||
endif
|
||||
|
||||
" Allow user to override iskeyword_numeric per buffer
|
||||
let l:omni_syntax_use_iskeyword_numeric = g:omni_syntax_use_iskeyword_numeric
|
||||
if exists('b:omni_syntax_use_iskeyword_numeric')
|
||||
let l:omni_syntax_use_iskeyword_numeric = b:omni_syntax_use_iskeyword_numeric
|
||||
endif
|
||||
|
||||
" Allow user to override iskeyword_numeric per buffer
|
||||
let l:omni_syntax_use_single_byte = g:omni_syntax_use_single_byte
|
||||
if exists('b:omni_syntax_use_single_byte')
|
||||
let l:omni_syntax_use_single_byte = b:omni_syntax_use_single_byte
|
||||
endif
|
||||
|
||||
" Allow user to override minimum_length per buffer
|
||||
let l:omni_syntax_minimum_length = g:omni_syntax_minimum_length
|
||||
if exists('b:omni_syntax_minimum_length')
|
||||
let l:omni_syntax_minimum_length = b:omni_syntax_minimum_length
|
||||
endif
|
||||
|
||||
let syn_list = ""
|
||||
|
||||
" From the full syntax listing, strip out the portion for the
|
||||
@@ -648,13 +688,22 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
|
||||
\ , "", 'g'
|
||||
\ )
|
||||
|
||||
if b:omni_syntax_use_iskeyword == 0
|
||||
if l:omni_syntax_use_iskeyword == 0
|
||||
" There are a number of items which have non-word characters in
|
||||
" them, *'T_F1'*. vim.vim is one such file.
|
||||
" This will replace non-word characters with spaces.
|
||||
" setlocal filetype=forth
|
||||
" let g:omni_syntax_use_iskeyword = 1
|
||||
" let g:omni_syntax_use_iskeyword_numeric = 1
|
||||
" You will see entries like
|
||||
" #>>
|
||||
" (.local)
|
||||
" These were found doing a grep in vim82\syntax
|
||||
" grep iskeyword *
|
||||
" forth.vim:setlocal iskeyword=!,@,33-35,%,$,38-64,A-Z,91-96,a-z,123-126,128-255
|
||||
let syn_list = substitute( syn_list, '[^0-9A-Za-z_ ]', ' ', 'g' )
|
||||
else
|
||||
if g:omni_syntax_use_iskeyword_numeric == 1
|
||||
if l:omni_syntax_use_iskeyword_numeric == 1
|
||||
" iskeyword can contain value like this
|
||||
" 38,42,43,45,47-58,60-62,64-90,97-122,_,+,-,*,/,%,<,=,>,:,$,?,!,@-@,94
|
||||
" Numeric values convert to their ASCII equivalent using the
|
||||
@@ -674,7 +723,7 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
|
||||
" cycle through each character within the range
|
||||
let [b:start, b:end] = split(item, '-')
|
||||
for range_item in range( b:start, b:end )
|
||||
if range_item <= 127 || g:omni_syntax_use_single_byte == 0
|
||||
if range_item <= 127 || l:omni_syntax_use_single_byte == 0
|
||||
if nr2char(range_item) =~ '\p'
|
||||
let accepted_chars = accepted_chars . nr2char(range_item)
|
||||
endif
|
||||
@@ -682,13 +731,13 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
|
||||
endfor
|
||||
elseif item =~ '^\d\+$'
|
||||
" Only numeric, translate to a character
|
||||
if item < 127 || g:omni_syntax_use_single_byte == 0
|
||||
if item < 127 || l:omni_syntax_use_single_byte == 0
|
||||
if nr2char(item) =~ '\p'
|
||||
let accepted_chars = accepted_chars . nr2char(item)
|
||||
endif
|
||||
endif
|
||||
else
|
||||
if char2nr(item) < 127 || g:omni_syntax_use_single_byte == 0
|
||||
if char2nr(item) < 127 || l:omni_syntax_use_single_byte == 0
|
||||
if item =~ '\p'
|
||||
let accepted_chars = accepted_chars . item
|
||||
endif
|
||||
@@ -724,9 +773,9 @@ function! s:SyntaxCSyntaxGroupItems( group_name, syntax_full )
|
||||
endif
|
||||
endif
|
||||
|
||||
if b:omni_syntax_minimum_length > 0
|
||||
if l:omni_syntax_minimum_length > 0
|
||||
" If the user specified a minimum length, enforce it
|
||||
let syn_list = substitute(' '.syn_list.' ', ' \S\{,'.b:omni_syntax_minimum_length.'}\ze ', ' ', 'g')
|
||||
let syn_list = substitute(' '.syn_list.' ', ' \S\{,'.l:omni_syntax_minimum_length.'}\ze ', ' ', 'g')
|
||||
endif
|
||||
else
|
||||
let syn_list = ''
|
||||
@@ -756,5 +805,6 @@ function! OmniSyntaxShowChars(spec)
|
||||
endfor
|
||||
return join(map(result, 'nr2char(v:val)'), ', ')
|
||||
endfunction
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
@@ -1,4 +1,4 @@
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2021 Mar 13
|
||||
*autocmd.txt* For Vim version 8.2. Last change: 2021 Apr 25
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1522,7 +1522,14 @@ option will not cause any commands to be executed.
|
||||
loaded buffer. The current buffer is done last.
|
||||
|
||||
Note that [fname] is used to select the autocommands,
|
||||
not the buffers to which they are applied.
|
||||
not the buffers to which they are applied. Example: >
|
||||
augroup mine
|
||||
autocmd!
|
||||
autocmd FileType * echo expand('<amatch>')
|
||||
augroup END
|
||||
doautoall mine FileType Loaded-Buffer
|
||||
< Sourcing this script, you'll see as many
|
||||
"Loaded-Buffer" echoed as there are loaded buffers.
|
||||
|
||||
Careful: Don't use this for autocommands that delete a
|
||||
buffer, change to another buffer or change the
|
||||
|
@@ -1,4 +1,4 @@
|
||||
*eval.txt* For Vim version 8.2. Last change: 2021 Apr 07
|
||||
*eval.txt* For Vim version 8.2. Last change: 2021 Apr 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1962,6 +1962,9 @@ v:fcs_choice What should happen after a |FileChangedShell| event was
|
||||
The default is empty. If another (invalid) value is used then
|
||||
Vim behaves like it is empty, there is no warning message.
|
||||
|
||||
*v:fname* *fname-variable*
|
||||
v:fname The file name set by 'includeexpr'. Empty otherwise.
|
||||
|
||||
*v:fname_in* *fname_in-variable*
|
||||
v:fname_in The name of the input file. Valid while evaluating:
|
||||
option used for ~
|
||||
@@ -5775,7 +5778,6 @@ getmousepos() *getmousepos()*
|
||||
|
||||
If the mouse is over a popup window then that window is used.
|
||||
|
||||
|
||||
When using |getchar()| the Vim variables |v:mouse_lnum|,
|
||||
|v:mouse_col| and |v:mouse_winid| also provide these values.
|
||||
|
||||
@@ -6721,6 +6723,7 @@ islocked({expr}) *islocked()* *E786*
|
||||
|
||||
< When {expr} is a variable that does not exist you get an error
|
||||
message. Use |exists()| to check for existence.
|
||||
In Vim9 script it does not work for local variables.
|
||||
|
||||
Can also be used as a |method|: >
|
||||
GetName()->islocked()
|
||||
|
@@ -1,4 +1,4 @@
|
||||
*gui.txt* For Vim version 8.2. Last change: 2020 Sep 28
|
||||
*gui.txt* For Vim version 8.2. Last change: 2021 May 01
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -620,6 +620,11 @@ expression register: >
|
||||
|
||||
:amenu Insert.foobar "='foobar'<CR>P
|
||||
|
||||
The special text <Cmd> begins a "command menu", it executes the command
|
||||
directly without changing modes. Where you might use ":...<CR>" you can
|
||||
instead use "<Cmd>...<CR>". See |<Cmd>| for more info. Example: >
|
||||
anoremenu File.Next <Cmd>next<CR>
|
||||
|
||||
Note that the '<' and 'k' flags in 'cpoptions' also apply here (when
|
||||
included they make the <> form and raw key codes not being recognized).
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
*index.txt* For Vim version 8.2. Last change: 2021 Mar 22
|
||||
*index.txt* For Vim version 8.2. Last change: 2021 Apr 24
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
|
@@ -1,4 +1,4 @@
|
||||
*map.txt* For Vim version 8.2. Last change: 2021 Mar 17
|
||||
*map.txt* For Vim version 8.2. Last change: 2021 Apr 23
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -244,9 +244,12 @@ have a look at |maparg()|.
|
||||
If the first argument to one of these commands is "<expr>" and it is used to
|
||||
define a new mapping or abbreviation, the argument is an expression. The
|
||||
expression is evaluated to obtain the {rhs} that is used. Example: >
|
||||
:inoremap <expr> . InsertDot()
|
||||
The result of the InsertDot() function will be inserted. It could check the
|
||||
:inoremap <expr> . <SID>InsertDot()
|
||||
The result of the s:InsertDot() function will be inserted. It could check the
|
||||
text before the cursor and start omni completion when some condition is met.
|
||||
Using a script-local function is preferred, to avoid polluting the global
|
||||
namespace. Use <SID> in the RHS so that the script that the mapping was
|
||||
defined in can be found.
|
||||
|
||||
For abbreviations |v:char| is set to the character that was typed to trigger
|
||||
the abbreviation. You can use this to decide how to expand the {lhs}. You
|
||||
@@ -261,7 +264,7 @@ input. Example: >
|
||||
call popup_create(... arguments ...)
|
||||
return "\<Ignore>"
|
||||
endfunc
|
||||
nnoremap <expr> <F3> <Sid>OpenPopup()
|
||||
nnoremap <expr> <F3> <SID>OpenPopup()
|
||||
|
||||
Also, keep in mind that the expression may be evaluated when looking for
|
||||
typeahead, before the previous command has been executed. For example: >
|
||||
|
@@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 8.2. Last change: 2021 Apr 17
|
||||
*options.txt* For Vim version 8.2. Last change: 2021 Apr 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -4564,7 +4564,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
Keywords are used in searching and recognizing with many commands:
|
||||
"w", "*", "[i", etc. It is also used for "\k" in a |pattern|. See
|
||||
'isfname' for a description of the format of this option. For '@'
|
||||
characters above 255 check the "word" character class.
|
||||
characters above 255 check the "word" character class (any character
|
||||
that is not white space or punctuation).
|
||||
For C programs you could use "a-z,A-Z,48-57,_,.,-,>".
|
||||
For a help file it is set to all non-blank printable characters except
|
||||
'*', '"' and '|' (so that CTRL-] on a command finds the help for that
|
||||
|
@@ -1,4 +1,4 @@
|
||||
*quickfix.txt* For Vim version 8.2. Last change: 2021 Feb 05
|
||||
*quickfix.txt* For Vim version 8.2. Last change: 2021 Apr 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -1013,8 +1013,6 @@ commands can be combined to create a NewGrep command: >
|
||||
the error list to the matches. Files matching
|
||||
'wildignore' are ignored; files in 'suffixes' are
|
||||
searched last.
|
||||
Without the 'g' flag each line is added only once.
|
||||
With 'g' every match is added.
|
||||
|
||||
{pattern} is a Vim search pattern. Instead of
|
||||
enclosing it in / any non-ID character (see
|
||||
@@ -1026,6 +1024,22 @@ commands can be combined to create a NewGrep command: >
|
||||
If {pattern} is empty (e.g. // is specified), the last
|
||||
used search pattern is used. |last-pattern|
|
||||
|
||||
Flags:
|
||||
'g' Without the 'g' flag each line is added only
|
||||
once. With 'g' every match is added.
|
||||
|
||||
'j' Without the 'j' flag Vim jumps to the first
|
||||
match. With 'j' only the quickfix list is
|
||||
updated. With the [!] any changes in the current
|
||||
buffer are abandoned.
|
||||
|
||||
'f' When the 'f' flag is specified, fuzzy string
|
||||
matching is used to find matching lines. In this
|
||||
case, {pattern} is treated as a literal string
|
||||
instead of a regular expression. See
|
||||
|matchfuzzy()| for more info about fuzzy
|
||||
matching.
|
||||
|
||||
|QuickFixCmdPre| and |QuickFixCmdPost| are triggered.
|
||||
A file that is opened for matching may use a buffer
|
||||
number, but it is reused if possible to avoid
|
||||
@@ -1038,11 +1052,6 @@ commands can be combined to create a NewGrep command: >
|
||||
Useful if you only want to check if there is a match
|
||||
and quit quickly when it's found.
|
||||
|
||||
Without the 'j' flag Vim jumps to the first match.
|
||||
With 'j' only the quickfix list is updated.
|
||||
With the [!] any changes in the current buffer are
|
||||
abandoned.
|
||||
|
||||
Every second or so the searched file name is displayed
|
||||
to give you an idea of the progress made.
|
||||
Examples: >
|
||||
|
@@ -2630,6 +2630,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
|
||||
:left change.txt /*:left*
|
||||
:lefta windows.txt /*:lefta*
|
||||
:leftabove windows.txt /*:leftabove*
|
||||
:leg vim9.txt /*:leg*
|
||||
:legacy vim9.txt /*:legacy*
|
||||
:let eval.txt /*:let*
|
||||
:let%= eval.txt /*:let%=*
|
||||
:let+= eval.txt /*:let+=*
|
||||
@@ -6439,6 +6441,7 @@ floating-point-format eval.txt /*floating-point-format*
|
||||
floating-point-precision eval.txt /*floating-point-precision*
|
||||
floor() eval.txt /*floor()*
|
||||
fmod() eval.txt /*fmod()*
|
||||
fname-variable eval.txt /*fname-variable*
|
||||
fname_diff-variable eval.txt /*fname_diff-variable*
|
||||
fname_in-variable eval.txt /*fname_in-variable*
|
||||
fname_new-variable eval.txt /*fname_new-variable*
|
||||
@@ -9875,6 +9878,7 @@ v:exiting eval.txt /*v:exiting*
|
||||
v:false eval.txt /*v:false*
|
||||
v:fcs_choice eval.txt /*v:fcs_choice*
|
||||
v:fcs_reason eval.txt /*v:fcs_reason*
|
||||
v:fname eval.txt /*v:fname*
|
||||
v:fname_diff eval.txt /*v:fname_diff*
|
||||
v:fname_in eval.txt /*v:fname_in*
|
||||
v:fname_new eval.txt /*v:fname_new*
|
||||
|
@@ -1,4 +1,4 @@
|
||||
*todo.txt* For Vim version 8.2. Last change: 2021 Apr 21
|
||||
*todo.txt* For Vim version 8.2. Last change: 2021 Apr 29
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -39,13 +39,6 @@ browser use: https://github.com/vim/vim/issues/1234
|
||||
-------------------- Known bugs and current work -----------------------
|
||||
|
||||
Vim9 - Make everything work:
|
||||
- Compile builtin functions that access local variables:
|
||||
islocked()
|
||||
- When evaluating constants for script variables, some functions could work:
|
||||
has('asdf'), len('string')
|
||||
eval_variable(). Should pass the ".xxx" that follows and return that.
|
||||
- Make "++nr" work. "++g:count" doesn't work, thinks it is a range.
|
||||
- Reload: How to make sure type of script function hasn't changed?
|
||||
- expandcmd() with `=expr` in filename uses legacy expression.
|
||||
- eval_expr() in ex_cexpr()
|
||||
- eval_expr() call in dbg_parsearg() and debuggy_find()
|
||||
@@ -64,6 +57,17 @@ Vim9 - Make everything work:
|
||||
the type of the list or dict member. (#8092)
|
||||
- Allow for using an autoload function name without quotes. It is then loaded
|
||||
(and compiled) right away. #8124
|
||||
- Test more expressions in legacy and Vim9 script, using
|
||||
CheckLegacyAndVim9Success()
|
||||
- Test try/catch and throw better, also nested.
|
||||
Test that return inside try/finally jumps to finally and then returns.
|
||||
- Test that a function defined inside a :def function is local to that
|
||||
function, g: functions can be defined and script-local functions cannot be
|
||||
defined.
|
||||
- Make debugging work - at least per function. Need to recompile a function
|
||||
to step through it line-by-line? Evaluate the stack and variables on the
|
||||
stack?
|
||||
- Reserve command for future use: :type, :class, :enum
|
||||
|
||||
Once Vim9 is stable:
|
||||
- Change the help to prefer Vim9 syntax where appropriate
|
||||
@@ -73,34 +77,17 @@ Once Vim9 is stable:
|
||||
- Use Vim9 for runtime files.
|
||||
PR #7497 for autoload/ccomplete.vim
|
||||
|
||||
Also for Vim9:
|
||||
Further Vim9 improvements, possibly after launch:
|
||||
- better implementation for partial and tests for that.
|
||||
- Make "g:imported = Export.exported" work in Vim9 script.
|
||||
- Make Foo.Bar() work to call the dict function. (#5676)
|
||||
- Error in any command in "vim9script" aborts sourcing.
|
||||
- Find a way to test expressions in legacy and Vim9 script without duplication
|
||||
- Test try/catch and throw better, also nested.
|
||||
Test that return inside try/finally jumps to finally and then returns.
|
||||
- Test that a function defined inside a :def function is local to that
|
||||
function, g: functions can be defined and script-local functions cannot be
|
||||
defined.
|
||||
- compile options that are an expression, e.g. "expr:" in 'spellsuggest',
|
||||
- Compile options that are an expression, e.g. "expr:" in 'spellsuggest',
|
||||
'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert',
|
||||
'balloonexpr', 'includeexpr', 'indentexpr', 'formatexpr'.
|
||||
Give an error if compilation fails. (#7625)
|
||||
Use the location where the option was set for deciding whether it's to be
|
||||
evaluated in Vim9 script context.
|
||||
- implement :type; import type declaration.
|
||||
- implement enum; import enum.
|
||||
- implement :type, import type declaration.
|
||||
- implement enum, import enum.
|
||||
- Future work: See |vim9-classes|
|
||||
Define the keywords and commands to make sure it will be backwards
|
||||
compatible.
|
||||
- Make debugging work - at least per function. Need to recompile a function
|
||||
to step through it line-by-line? Evaluate the stack and variables on the
|
||||
stack?
|
||||
- List commands when 'verbose' is set or :verbose is used.
|
||||
|
||||
Further Vim9 improvements, possibly after launch:
|
||||
- For range: make table of first ASCII character with flag to quickly check if
|
||||
it can be a Vim9 command. E.g. "+" can, but "." can't.
|
||||
- compile get_lambda_tv() in popup_add_timeout()
|
||||
@@ -108,6 +95,9 @@ Further Vim9 improvements, possibly after launch:
|
||||
- Make accessing varargs faster: arg[expr]
|
||||
EVAL expr
|
||||
LOADVARARG (varargs idx)
|
||||
- When evaluating constants for script variables, some functions could work:
|
||||
has(featureName), len(someString)
|
||||
- Implement as part of an expression: ++expr, --expr, expr++, expr--.
|
||||
|
||||
|
||||
Popup windows:
|
||||
@@ -1404,9 +1394,6 @@ Patch to make tests pass with EBCDIC. (Owen Leibman, 2016 Apr 10)
|
||||
Add ":read :command", to insert the output of an Ex command?
|
||||
Can already do it with ":$put =execute('command')".
|
||||
|
||||
When repeating the 'confirm' dialog one needs to press Enter. (ds26gte, 2016
|
||||
Apr 17) #762
|
||||
|
||||
exists(":tearoff") does not tell you if the command is implemented. (Tony
|
||||
Mechelynck) Perhaps use exists("::tearoff") to check?
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
*usr_02.txt* For Vim version 8.2. Last change: 2019 Nov 21
|
||||
*usr_02.txt* For Vim version 8.2. Last change: 2021 Apr 24
|
||||
|
||||
VIM USER MANUAL - by Bram Moolenaar
|
||||
|
||||
@@ -532,7 +532,7 @@ Summary: *help-summary* >
|
||||
< for the corresponding flag of the 'cpoptions' settings, substitute <letter>
|
||||
by a specific flag, e.g.: >
|
||||
:help cpo-;
|
||||
< And for the guioption flags: >
|
||||
< And for the 'guioptions' flags: >
|
||||
:help go-<letter>
|
||||
|
||||
4) Normal mode commands do not have a prefix. To go to the help page for the
|
||||
|
@@ -1,4 +1,4 @@
|
||||
*vim9.txt* For Vim version 8.2. Last change: 2021 Apr 11
|
||||
*vim9.txt* For Vim version 8.2. Last change: 2021 Apr 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -157,6 +157,11 @@ Compilation is done when any of these is encountered:
|
||||
*E1091*
|
||||
If compilation fails it is not tried again on the next call, instead this
|
||||
error is given: "E1091: Function is not compiled: {name}".
|
||||
Compilation will fail when encountering a user command that has not been
|
||||
created yet. In this case you can call `execute()` to invoke it at runtime. >
|
||||
def MyFunc()
|
||||
execute('DefinedLater')
|
||||
enddef
|
||||
|
||||
`:def` has no options like `:function` does: "range", "abort", "dict" or
|
||||
"closure". A `:def` function always aborts on an error (unless `:silent!` was
|
||||
@@ -605,6 +610,44 @@ Notes:
|
||||
echo [1, 2]
|
||||
[3, 4]
|
||||
|
||||
|
||||
White space ~
|
||||
|
||||
Vim9 script enforces proper use of white space. This is no longer allowed: >
|
||||
var name=234 # Error!
|
||||
var name= 234 # Error!
|
||||
var name =234 # Error!
|
||||
There must be white space before and after the "=": >
|
||||
var name = 234 # OK
|
||||
White space must also be put before the # that starts a comment after a
|
||||
command: >
|
||||
var name = 234# Error!
|
||||
var name = 234 # OK
|
||||
|
||||
White space is required around most operators.
|
||||
|
||||
White space is required in a sublist (list slice) around the ":", except at
|
||||
the start and end: >
|
||||
otherlist = mylist[v : count] # v:count has a different meaning
|
||||
otherlist = mylist[:] # make a copy of the List
|
||||
otherlist = mylist[v :]
|
||||
otherlist = mylist[: v]
|
||||
|
||||
White space is not allowed:
|
||||
- Between a function name and the "(": >
|
||||
Func (arg) # Error!
|
||||
Func
|
||||
\ (arg) # Error!
|
||||
Func
|
||||
(arg) # Error!
|
||||
Func(arg) # OK
|
||||
Func(
|
||||
arg) # OK
|
||||
Func(
|
||||
arg # OK
|
||||
)
|
||||
|
||||
|
||||
No curly braces expansion ~
|
||||
|
||||
|curly-braces-names| cannot be used.
|
||||
@@ -656,6 +699,17 @@ Comparators ~
|
||||
The 'ignorecase' option is not used for comparators that use strings.
|
||||
|
||||
|
||||
Abort after error ~
|
||||
|
||||
In legacy script, when an error is encountered, Vim continues to execute
|
||||
following lines. This can lead to a long sequence of errors and need to type
|
||||
CTRL-C to stop it. In Vim9 script execution of commands stops at the first
|
||||
error. Example: >
|
||||
vim9script
|
||||
var x = does-not-exist
|
||||
echo 'not executed'
|
||||
|
||||
|
||||
For loop ~
|
||||
|
||||
Legacy Vim script has some tricks to make a for loop over a list handle
|
||||
@@ -679,43 +733,6 @@ Generally, you should not change the list that is iterated over. Make a copy
|
||||
first if needed.
|
||||
|
||||
|
||||
White space ~
|
||||
|
||||
Vim9 script enforces proper use of white space. This is no longer allowed: >
|
||||
var name=234 # Error!
|
||||
var name= 234 # Error!
|
||||
var name =234 # Error!
|
||||
There must be white space before and after the "=": >
|
||||
var name = 234 # OK
|
||||
White space must also be put before the # that starts a comment after a
|
||||
command: >
|
||||
var name = 234# Error!
|
||||
var name = 234 # OK
|
||||
|
||||
White space is required around most operators.
|
||||
|
||||
White space is required in a sublist (list slice) around the ":", except at
|
||||
the start and end: >
|
||||
otherlist = mylist[v : count] # v:count has a different meaning
|
||||
otherlist = mylist[:] # make a copy of the List
|
||||
otherlist = mylist[v :]
|
||||
otherlist = mylist[: v]
|
||||
|
||||
White space is not allowed:
|
||||
- Between a function name and the "(": >
|
||||
Func (arg) # Error!
|
||||
Func
|
||||
\ (arg) # Error!
|
||||
Func
|
||||
(arg) # Error!
|
||||
Func(arg) # OK
|
||||
Func(
|
||||
arg) # OK
|
||||
Func(
|
||||
arg # OK
|
||||
)
|
||||
|
||||
|
||||
Conditions and expressions ~
|
||||
|
||||
Conditions and expressions are mostly working like they do in other languages.
|
||||
|
25
runtime/ftplugin/fpcmake.vim
Normal file
25
runtime/ftplugin/fpcmake.vim
Normal file
@@ -0,0 +1,25 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: Free Pascal Makefile Generator
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2021 Apr 23
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
runtime! ftplugin/make.vim
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Free Pascal Makefile Definition Files (*.fpc)\t*.fpc\n" ..
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
|
||||
let b:undo_ftplugin = b:undo_ftplugin .. " | unlet! b:browsefilter"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8 noet:
|
@@ -1,20 +1,50 @@
|
||||
" Vim filetype plugin file
|
||||
" Language: pascal
|
||||
" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
|
||||
" Last Changed: 11 Apr 2011
|
||||
" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin
|
||||
" Language: Pascal
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net>
|
||||
" Last Change: 2021 Apr 23
|
||||
|
||||
if exists("b:did_ftplugin") | finish | endif
|
||||
let b:did_ftplugin = 1
|
||||
|
||||
if exists("loaded_matchit")
|
||||
let b:match_ignorecase = 1 " (pascal is case-insensitive)
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
let b:match_words = '\<\%(begin\|case\|record\|object\|try\)\>'
|
||||
let b:match_words .= ':\<^\s*\%(except\|finally\)\>:\<end\>'
|
||||
let b:match_words .= ',\<repeat\>:\<until\>'
|
||||
let b:match_words .= ',\<if\>:\<else\>'
|
||||
set comments=s:(*,m:\ ,e:*),s:{,m:\ ,e:}
|
||||
set commentstring={%s}
|
||||
|
||||
if exists("pascal_delphi")
|
||||
set comments+=:///
|
||||
endif
|
||||
|
||||
" Undo the stuff we changed.
|
||||
let b:undo_ftplugin = "unlet! b:match_words"
|
||||
if !exists("pascal_traditional")
|
||||
set commentstring=//\ %s
|
||||
set comments+=://
|
||||
endif
|
||||
|
||||
setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
if exists("loaded_matchit")
|
||||
let b:match_ignorecase = 1 " (Pascal is case-insensitive)
|
||||
|
||||
let b:match_words = '\<\%(asm\|begin\|case\|\%(\%(=\|packed\)\s*\)\@<=\%(class\|object\)\|\%(=\s*\)\@<=interface\|record\|try\)\>'
|
||||
let b:match_words .= ':\%(^\s*\)\@<=\%(except\|finally\|else\|otherwise\)\>'
|
||||
let b:match_words .= ':\<end\>\.\@!'
|
||||
|
||||
let b:match_words .= ',\<repeat\>:\<until\>'
|
||||
" let b:match_words .= ',\<if\>:\<else\>' " FIXME - else clashing with middle else. It seems like a debatable use anyway.
|
||||
let b:match_words .= ',\<unit\>:\<\%(\%(^\s*\)\@<=interface\|implementation\|initialization\|finalization\)\>:\<end\.'
|
||||
endif
|
||||
|
||||
if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
|
||||
let b:browsefilter = "Pascal Source Files (*.pas *.pp *.inc)\t*.pas;*.pp;*.inc\n" .
|
||||
\ "All Files (*.*)\t*.*\n"
|
||||
endif
|
||||
|
||||
let b:undo_ftplugin = "setl fo< cms< com< " ..
|
||||
\ "| unlet! b:browsefilter b:match_words b:match_ignorecase"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8 noet:
|
||||
|
@@ -20,8 +20,8 @@ let s:comment_rx = '^\s*#'
|
||||
let s:rule_rx = '^[^ \t#:][^#:]*:\{1,2}\%([^=:]\|$\)'
|
||||
let s:continued_rule_rx = '^[^#:]*:\{1,2}\%([^=:]\|$\)'
|
||||
let s:continuation_rx = '\\$'
|
||||
let s:assignment_rx = '^\s*\h\w*\s*[+?]\==\s*\zs.*\\$'
|
||||
let s:folded_assignment_rx = '^\s*\h\w*\s*[+?]\=='
|
||||
let s:assignment_rx = '^\s*\h\w*\s*[+:?]\==\s*\zs.*\\$'
|
||||
let s:folded_assignment_rx = '^\s*\h\w*\s*[+:?]\=='
|
||||
" TODO: This needs to be a lot more restrictive in what it matches.
|
||||
let s:just_inserted_rule_rx = '^\s*[^#:]\+:\{1,2}$'
|
||||
let s:conditional_directive_rx = '^ *\%(ifn\=\%(eq\|def\)\|else\)\>'
|
||||
|
@@ -1,7 +1,7 @@
|
||||
" Vim syntax file
|
||||
" Language: generic configure file
|
||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||
" Last Change: 2005 Jun 20
|
||||
" Last Change: 2021 May 01
|
||||
|
||||
" Quit when a (custom) syntax file was already loaded
|
||||
if exists("b:current_syntax")
|
||||
@@ -10,8 +10,8 @@ endif
|
||||
|
||||
syn keyword confTodo contained TODO FIXME XXX
|
||||
" Avoid matching "text#text", used in /etc/disktab and /etc/gettytab
|
||||
syn match confComment "^#.*" contains=confTodo
|
||||
syn match confComment "\s#.*"ms=s+1 contains=confTodo
|
||||
syn match confComment "^#.*" contains=confTodo,@Spell
|
||||
syn match confComment "\s#.*"ms=s+1 contains=confTodo,@Spell
|
||||
syn region confString start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline
|
||||
syn region confString start=+'+ skip=+\\\\\|\\'+ end=+'+ oneline
|
||||
|
||||
|
58
runtime/syntax/fpcmake.vim
Normal file
58
runtime/syntax/fpcmake.vim
Normal file
@@ -0,0 +1,58 @@
|
||||
" Vim syntax file
|
||||
" Language: Free Pascal Makefile Definition Files
|
||||
" Maintainer: Doug Kearns <dougkearns@gmail.com>
|
||||
" Last Change: 2021 Apr 23
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
runtime! syntax/make.vim
|
||||
|
||||
" NOTE: using start-of-line anchored syn-match groups is simpler than other
|
||||
" alternatives when interacting with the sourced make.vim syntax groups
|
||||
|
||||
" Sections
|
||||
syn region fpcmakeSection matchgroup=fpcmakeSectionDelimiter start="^\s*\[" end="]" contains=fpcmakeSectionName
|
||||
|
||||
syn keyword fpcmakeSectionName contained clean compiler default dist install
|
||||
syn keyword fpcmakeSectionName contained lib package prerules require rules
|
||||
syn keyword fpcmakeSectionName contained shared target
|
||||
|
||||
" [clean]
|
||||
syn match fpcmakeRule "^\s*\(units\|files\)\>"
|
||||
" [compiler]
|
||||
syn match fpcmakeRule "^\s*\(options\|version\|unitdir\|librarydir\|objectdir\)\>"
|
||||
syn match fpcmakeRule "^\s*\(targetdir\|sourcedir\|unittargetdir\|includedir\)\>"
|
||||
" [default]
|
||||
syn match fpcmakeRule "^\s*\(cpu\|dir\|fpcdir\|rule\|target\)\>"
|
||||
" [dist]
|
||||
syn match fpcmakeRule "^\s*\(destdir\|zipname\|ziptarget\)\>"
|
||||
" [install]
|
||||
syn match fpcmakeRule "^\s*\(basedir\|datadir\|fpcpackage\|files\|prefix\)\>"
|
||||
syn match fpcmakeRule "^\s*\(units\)\>"
|
||||
" [package]
|
||||
syn match fpcmakeRule "^\s*\(name\|version\|main\)\>"
|
||||
" [requires]
|
||||
syn match fpcmakeRule "^\s*\(fpcmake\|packages\|libc\|nortl\|unitdir\)\>"
|
||||
syn match fpcmakeRule "^\s*\(packagedir\|tools\)\>"
|
||||
" [shared]
|
||||
syn match fpcmakeRule "^\s*\(build\|libname\|libversion\|libunits\)\>"
|
||||
" [target]
|
||||
syn match fpcmakeRule "^\s*\(dirs\|exampledirs\|examples\|loaders\|programs\)\>"
|
||||
syn match fpcmakeRule "^\s*\(rsts\|units\)\>"
|
||||
|
||||
" Comments
|
||||
syn keyword fpcmakeTodo TODO FIXME XXX contained
|
||||
syn match fpcmakeComment "#.*" contains=fpcmakeTodo,@Spell
|
||||
|
||||
" Default highlighting
|
||||
hi def link fpcmakeSectionDelimiter Delimiter
|
||||
hi def link fpcmakeSectionName Type
|
||||
hi def link fpcmakeComment Comment
|
||||
hi def link fpcmakeTodo Todo
|
||||
hi def link fpcmakeRule Identifier
|
||||
|
||||
let b:current_syntax = "fpcmake"
|
||||
|
||||
" vim: nowrap sw=2 sts=2 ts=8 noet:
|
@@ -1,9 +1,9 @@
|
||||
" Vim syntax file
|
||||
" Language: Pascal
|
||||
" Version: 2.8
|
||||
" Last Change: 2004/10/17 17:47:30
|
||||
" Maintainer: Xavier Crégut <xavier.cregut@enseeiht.fr>
|
||||
" Previous Maintainer: Mario Eusebio <bio@dq.fct.unl.pt>
|
||||
" 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
|
||||
|
||||
" Contributors: Tim Chase <tchase@csc.com>,
|
||||
" Stas Grabois <stsi@vtrails.com>,
|
||||
@@ -25,10 +25,10 @@ syn keyword pascalBoolean true false
|
||||
syn keyword pascalConditional if else then
|
||||
syn keyword pascalConstant nil maxint
|
||||
syn keyword pascalLabel case goto label
|
||||
syn keyword pascalOperator and div downto in mod not of or packed with
|
||||
syn keyword pascalOperator and div downto in mod not of or packed
|
||||
syn keyword pascalRepeat do for do repeat while to until
|
||||
syn keyword pascalStatement procedure function
|
||||
syn keyword pascalStatement program begin end const var type
|
||||
syn keyword pascalStatement program begin end const var type with
|
||||
syn keyword pascalStruct record
|
||||
syn keyword pascalType array boolean char integer file pointer real set
|
||||
syn keyword pascalType string text variant
|
||||
@@ -98,9 +98,24 @@ if exists("pascal_symbol_operator")
|
||||
endif
|
||||
|
||||
syn match pascalNumber "-\=\<\d\+\>"
|
||||
if !exists("pascal_traditional")
|
||||
syn match pascalHexNumber "\$\x\+\>"
|
||||
endif
|
||||
if exists("pascal_fpc")
|
||||
syn match pascalOctNumber "&\o\+\>"
|
||||
syn match pascalBinNumber "%[01]\+\>"
|
||||
endif
|
||||
if exists("pascal_gpc")
|
||||
syn match pascalExtendedNumber "\%([2-9]\|[12]\d\|3[0-6]\)#[[:alnum:]]\+\>"
|
||||
endif
|
||||
|
||||
syn match pascalFloat "-\=\<\d\+\.\d\+\>"
|
||||
syn match pascalFloat "-\=\<\d\+\.\d\+[eE]-\=\d\+\>"
|
||||
syn match pascalHexNumber "\$[0-9a-fA-F]\+\>"
|
||||
|
||||
if !exists("pascal_traditional")
|
||||
" allow leading zeros
|
||||
syn match pascalControlCharacter "#\%([01]\=\d\=\d\|2[0-4]\d\|25[0-5]\)\>"
|
||||
endif
|
||||
|
||||
if exists("pascal_no_tabs")
|
||||
syn match pascalShowTab "\t"
|
||||
@@ -142,7 +157,7 @@ if !exists("pascal_traditional")
|
||||
syn keyword pascalStatement interface unit uses
|
||||
syn keyword pascalModifier absolute assembler external far forward inline
|
||||
syn keyword pascalModifier interrupt near virtual
|
||||
syn keyword pascalAcces private public
|
||||
syn keyword pascalAccess private public strict
|
||||
syn keyword pascalStruct object
|
||||
syn keyword pascalOperator shl shr xor
|
||||
|
||||
@@ -157,6 +172,7 @@ if !exists("pascal_traditional")
|
||||
syn keyword pascalType Single Double Extended Comp
|
||||
syn keyword pascalType PChar
|
||||
|
||||
syn keyword pascalPredefined self
|
||||
|
||||
if !exists ("pascal_fpc")
|
||||
syn keyword pascalPredefined Result
|
||||
@@ -166,11 +182,11 @@ if !exists("pascal_traditional")
|
||||
syn region pascalComment start="//" end="$" contains=pascalTodo,pascalSpaceError
|
||||
syn keyword pascalStatement fail otherwise operator
|
||||
syn keyword pascalDirective popstack
|
||||
syn keyword pascalPredefined self
|
||||
syn keyword pascalType ShortString AnsiString WideString
|
||||
endif
|
||||
|
||||
if exists("pascal_gpc")
|
||||
syn region pascalComment start="//" end="$" contains=pascalTodo,pascalSpaceError
|
||||
syn keyword pascalType SmallInt
|
||||
syn keyword pascalType AnsiChar
|
||||
syn keyword pascalType PAnsiChar
|
||||
@@ -178,6 +194,8 @@ if !exists("pascal_traditional")
|
||||
|
||||
if exists("pascal_delphi")
|
||||
syn region pascalComment start="//" end="$" contains=pascalTodo,pascalSpaceError
|
||||
syn region pascalDocumentation start="///" end="$" contains=pascalTodo,pascalSpaceError
|
||||
syn region pascalDocumentation start="{!" end="}" contains=pascalTodo,pascalSpaceError
|
||||
syn keyword pascalType SmallInt Int64
|
||||
syn keyword pascalType Real48 Currency
|
||||
syn keyword pascalType AnsiChar WideChar
|
||||
@@ -192,11 +210,11 @@ if !exists("pascal_traditional")
|
||||
syn keyword pascalStatement initialization finalization uses exports
|
||||
syn keyword pascalStatement property out resourcestring threadvar
|
||||
syn keyword pascalModifier contains
|
||||
syn keyword pascalModifier overridden reintroduce abstract
|
||||
syn keyword pascalModifier overridden reintroduce abstract sealed
|
||||
syn keyword pascalModifier override export dynamic name message
|
||||
syn keyword pascalModifier dispid index stored default nodefault readonly
|
||||
syn keyword pascalModifier writeonly implements overload requires resident
|
||||
syn keyword pascalAcces protected published automated
|
||||
syn keyword pascalAccess protected published automated
|
||||
syn keyword pascalDirective register pascal cvar cdecl stdcall safecall
|
||||
syn keyword pascalOperator as is
|
||||
endif
|
||||
@@ -319,11 +337,13 @@ endif
|
||||
" Define the default highlighting.
|
||||
" Only when an item doesn't have highlighting yet
|
||||
|
||||
hi def link pascalAcces pascalStatement
|
||||
hi def link pascalAccess pascalStatement
|
||||
hi def link pascalBoolean Boolean
|
||||
hi def link pascalComment Comment
|
||||
hi def link pascalDocumentation Comment
|
||||
hi def link pascalConditional Conditional
|
||||
hi def link pascalConstant Constant
|
||||
hi def link pascalControlCharacter Character
|
||||
hi def link pascalDelimiter Identifier
|
||||
hi def link pascalDirective pascalStatement
|
||||
hi def link pascalException Exception
|
||||
@@ -333,6 +353,10 @@ hi def link pascalLabel Label
|
||||
hi def link pascalMatrixDelimiter Identifier
|
||||
hi def link pascalModifier Type
|
||||
hi def link pascalNumber Number
|
||||
hi def link pascalExtendedNumber Number
|
||||
hi def link pascalBinNumber pascalNumber
|
||||
hi def link pascalHexNumber pascalNumber
|
||||
hi def link pascalOctNumber pascalNumber
|
||||
hi def link pascalOperator Operator
|
||||
hi def link pascalPredefined pascalStatement
|
||||
hi def link pascalPreProc PreProc
|
||||
@@ -357,4 +381,4 @@ hi def link pascalShowTab Error
|
||||
|
||||
let b:current_syntax = "pascal"
|
||||
|
||||
" vim: ts=8 sw=2
|
||||
" vim: nowrap sw=2 sts=2 ts=8 noet:
|
||||
|
Reference in New Issue
Block a user