Update runtime files.

This commit is contained in:
Bram Moolenaar
2021-01-02 16:39:53 +01:00
parent 02faa944c6
commit 7e6a515ed1
33 changed files with 1711 additions and 673 deletions

1
.github/CODEOWNERS vendored
View File

@ -132,7 +132,6 @@ runtime/syntax/cabal.vim @coot
runtime/syntax/cabalconfig.vim @coot
runtime/syntax/cabalproject.vim @coot
runtime/syntax/cs.vim @nickspoons
runtime/syntax/cs.vim @nickspoons
runtime/syntax/csh.vim @cecamp
runtime/syntax/cucumber.vim @tpope
runtime/syntax/datascript.vim @dpelle

View File

@ -1,11 +1,11 @@
" Vim Compiler File
" Compiler: ocaml
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
" URL: https://github.com/rgrinberg/vim-ocaml
" URL: https://github.com/ocaml/vim-ocaml
" Last Change:
" 2020 Mar 28 - Improved error format (Thomas Leonard)
" 2017 Nov 26 - Improved error format (Markus Mottl)
" 2013 Aug 27 - Added a new OCaml error format (Markus Mottl)
" 2013 Jun 30 - Initial version (Marc Weber)
"
" Marc Weber's comments:
" Setting makeprg doesn't make sense, because there is ocamlc, ocamlopt,
@ -21,6 +21,7 @@
"
" So having it here makes people opt-in
if exists("current_compiler")
finish
endif
@ -30,6 +31,7 @@ let s:cpo_save = &cpo
set cpo&vim
CompilerSet errorformat =
\%EFile\ \"%f\"\\,\ lines\ %*\\d-%l\\,\ characters\ %c-%*\\d:,
\%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d:,
\%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d\ %.%#,
\%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m,

View File

@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 8.2. Last change: 2020 Sep 14
*cmdline.txt* For Vim version 8.2. Last change: 2020 Dec 26
VIM REFERENCE MANUAL by Bram Moolenaar
@ -849,6 +849,16 @@ function |expand()|.
file name n. See |:oldfiles| or |v:oldfiles| to get the
number. *E809*
{only when compiled with the |+eval| and |+viminfo| features}
In |Vim9-script| # is used to start a comment, use %% for the alternate file
name:
% Is replaced with the current file name.
%% Is replaced with the alternate file name. *:_%%* *c_%%*
%%n (where n is a number) is replaced with *:_%%0* *:_%%n*
the file name of buffer n. "%%0" is the same as "%%". *c_%%n*
%%% Is replaced with all names in the argument *:_%%%* *c_%%%#*
list concatenated, separated by spaces.
%%<n (where n is a number > 0) is replaced with old *:_%%<* *c_%%<*
file name n.
Note that these, except "#<n", give the file name as it was typed. If an
absolute path is needed (when using the file name from a different directory),

View File

@ -1,4 +1,4 @@
*eval.txt* For Vim version 8.2. Last change: 2020 Dec 22
*eval.txt* For Vim version 8.2. Last change: 2020 Dec 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -8960,7 +8960,7 @@ searchcount([{options}]) *searchcount()*
result. if search exceeded
total count, "total" value
becomes `maxcount + 1`
(default: 0)
(default: 99)
pos |List| `[lnum, col, off]` value
when recomputing the result.
this changes "current" result
@ -10874,7 +10874,7 @@ timer_start({time}, {callback} [, {options}])
is the timer ID. The callback is only invoked when Vim is
waiting for input.
If you want to show a message look at |popup_notification()|
to avoid intefering with what the user is doing.
to avoid interfering with what the user is doing.
{options} is a dictionary. Supported entries:
"repeat" Number of times to repeat calling the
@ -12952,7 +12952,7 @@ text...
:exe[cute] {expr1} .. Executes the string that results from the evaluation
of {expr1} as an Ex command.
Multiple arguments are concatenated, with a space in
between. To avoid the extra space use the "."
between. To avoid the extra space use the ".."
operator to concatenate strings into one argument.
{expr1} is used as the processed command, command line
editing keys are not recognized.

View File

@ -1,4 +1,4 @@
*helphelp.txt* For Vim version 8.2. Last change: 2020 Dec 19
*helphelp.txt* For Vim version 8.2. Last change: 2020 Dec 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -158,6 +158,9 @@ When no argument is given to |:help| the file given with the 'helpfile' option
will be opened. Otherwise the specified tag is searched for in all "doc/tags"
files in the directories specified in the 'runtimepath' option.
If you would like to open the help in the current window, see this tip:
|help-curwin|.
The initial height of the help window can be set with the 'helpheight' option
(default 20).

View File

@ -1,4 +1,4 @@
*intro.txt* For Vim version 8.2. Last change: 2020 Dec 19
*intro.txt* For Vim version 8.2. Last change: 2020 Dec 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -678,8 +678,8 @@ Normal mode from any other mode. This can be used to make sure Vim is in
Normal mode, without causing a beep like <Esc> would. However, this does not
work in Ex mode. When used after a command that takes an argument, such as
|f| or |m|, the timeout set with 'ttimeoutlen' applies.
When focus is in a terminal window, CTRL-\ CTRL-N goes to Normal mode for only
one command, see |t_CTRL-\_CTRL-N|.
When focus is in a terminal window, CTRL-\ CTRL-N goes to Normal mode until an
edit command is entered, see |t_CTRL-\_CTRL-N|.
*CTRL-\_CTRL-G* *i_CTRL-\_CTRL-G* *c_CTRL-\_CTRL-G* *v_CTRL-\_CTRL-G*
The command CTRL-\ CTRL-G or <C-\><C-G> can be used to go to Insert mode when

View File

@ -1,4 +1,4 @@
*message.txt* For Vim version 8.2. Last change: 2020 Sep 07
*message.txt* For Vim version 8.2. Last change: 2020 Dec 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -794,6 +794,9 @@ and the screen is about to be redrawn:
-> Press <Enter> or <Space> to redraw the screen and continue, without that
key being used otherwise.
-> Press ':' or any other Normal mode command character to start that command.
Note that after an external command some special keys, such as the cursor
keys, may not work normally, because the terminal is still set to a state
for executing the external command.
-> Press 'k', <Up>, 'u', 'b' or 'g' to scroll back in the messages. This
works the same way as at the |more-prompt|. Only works when 'compatible'
is off and 'more' is on.

View File

@ -1,4 +1,4 @@
*os_vms.txt* For Vim version 8.2. Last change: 2020 Jun 07
*os_vms.txt* For Vim version 8.2. Last change: 2020 Dec 30
VIM REFERENCE MANUAL
@ -72,7 +72,7 @@ See the file [.SRC]INSTALLVMS.TXT.
4. Problems *vms-problems*
The code has been tested under Open VMS 6.2 - 8.2 on Alpha, VAX and IA64
platforms with the DEC C compiler. It should work without big problems.
platforms with the DEC C compiler. It should work without major problems.
If your system does not have some include libraries you can tune up in
OS_VMS_CONF.H file.
@ -765,6 +765,13 @@ GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/
9. VMS related changes *vms-changes*
Version 8.2
- make all changes needed for clean compile build of v8.2 on VMS on all platforms
- test on VSI OpenVMS platforms
- added XPM support - Motif GUI with toolbar on all platforms
- XPM v3.4.11 libraries for IA64, AXP and VAX are added
- start integrating the new test scripts
Version 8.1
- make necessary changes to build v8.1 on VMS

View File

@ -1,4 +1,4 @@
*pattern.txt* For Vim version 8.2. Last change: 2020 Dec 06
*pattern.txt* For Vim version 8.2. Last change: 2020 Dec 25
VIM REFERENCE MANUAL by Bram Moolenaar
@ -394,15 +394,19 @@ the pattern will not match. This is only useful when debugging Vim.
==============================================================================
3. Magic */magic*
Some characters in the pattern are taken literally. They match with the same
character in the text. When preceded with a backslash however, these
characters get a special meaning.
Some characters in the pattern, such as letters, are taken literally. They
match exactly the same character in the text. When preceded with a backslash
however, these characters may get a special meaning. For example, "a" matches
the letter "a", while "\a" matches any alphabetic character.
Other characters have a special meaning without a backslash. They need to be
preceded with a backslash to match literally.
preceded with a backslash to match literally. For example "." matches any
character while "\." matches a dot.
If a character is taken literally or not depends on the 'magic' option and the
items mentioned next.
items in the pattern mentioned next. The 'magic' option should always be set,
but it can be switched off for Vi compatibility. We mention the effect of
'nomagic' here for completeness, but we recommend against using that.
*/\m* */\M*
Use of "\m" makes the pattern after it be interpreted as if 'magic' is set,
ignoring the actual value of the 'magic' option.
@ -411,30 +415,28 @@ Use of "\M" makes the pattern after it be interpreted as if 'nomagic' is used.
Use of "\v" means that after it, all ASCII characters except '0'-'9', 'a'-'z',
'A'-'Z' and '_' have special meaning: "very magic"
Use of "\V" means that after it, only a backslash and terminating character
(usually / or ?) have special meaning: "very nomagic"
Use of "\V" means that after it, only a backslash and the terminating
character (usually / or ?) have special meaning: "very nomagic"
Examples:
after: \v \m \M \V matches ~
'magic' 'nomagic'
$ $ $ \$ matches end-of-line
. . \. \. matches any character
a a a a literal 'a'
\a \a \a \a any alphabetic character
. . \. \. any character
\. \. . . literal dot
$ $ $ \$ end-of-line
* * \* \* any number of the previous atom
~ ~ \~ \~ latest substitute string
() \(\) \(\) \(\) grouping into an atom
| \| \| \| separating alternatives
\a \a \a \a alphabetic character
() \(\) \(\) \(\) group as an atom
| \| \| \| nothing: separates alternatives
\\ \\ \\ \\ literal backslash
\. \. . . literal dot
\{ { { { literal '{'
a a a a literal 'a'
\{ { { { literal curly brace
{only Vim supports \m, \M, \v and \V}
It is recommended to always keep the 'magic' option at the default setting,
which is 'magic'. This avoids portability problems. To make a pattern immune
to the 'magic' option being set or not, put "\m" or "\M" at the start of the
pattern.
If you want to you can make a pattern immune to the 'magic' option being set
or not by putting "\m" or "\M" at the start of the pattern.
==============================================================================
4. Overview of pattern items *pattern-overview*

View File

@ -1,4 +1,4 @@
*repeat.txt* For Vim version 8.2. Last change: 2020 Oct 09
*repeat.txt* For Vim version 8.2. Last change: 2021 Jan 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -354,6 +354,14 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
Vim version, or update Vim to a newer version. See
|vimscript-version| for what changed between versions.
:vim9script [noclear] *:vim9* *:vim9script*
Marks a script file as containing |Vim9-script|
commands. Also see |vim9-namespace|.
Must be the first command in the file.
For [noclear] see |vim9-reload|.
Without the |+eval| feature this changes the syntax
for some commands.
*:scr* *:scriptnames*
:scr[iptnames] List all sourced script names, in the order they were
first sourced. The number is used for the script ID

View File

@ -2072,6 +2072,11 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:_#< cmdline.txt /*:_#<*
:_#n cmdline.txt /*:_#n*
:_% cmdline.txt /*:_%*
:_%% cmdline.txt /*:_%%*
:_%%% cmdline.txt /*:_%%%*
:_%%0 cmdline.txt /*:_%%0*
:_%%< cmdline.txt /*:_%%<*
:_%%n cmdline.txt /*:_%%n*
:_%: cmdline.txt /*:_%:*
:_%< cmdline.txt /*:_%<*
:a insert.txt /*:a*
@ -3389,8 +3394,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
:vie editing.txt /*:vie*
:view editing.txt /*:view*
:vim quickfix.txt /*:vim*
:vim9 vim9.txt /*:vim9*
:vim9script vim9.txt /*:vim9script*
:vim9 repeat.txt /*:vim9*
:vim9script repeat.txt /*:vim9script*
:vimgrep quickfix.txt /*:vimgrep*
:vimgrepa quickfix.txt /*:vimgrepa*
:vimgrepadd quickfix.txt /*:vimgrepadd*
@ -5152,6 +5157,7 @@ VMS os_vms.txt /*VMS*
Vi intro.txt /*Vi*
View starting.txt /*View*
Vim9 vim9.txt /*Vim9*
Vim9-script vim9.txt /*Vim9-script*
VimEnter autocmd.txt /*VimEnter*
VimLeave autocmd.txt /*VimLeave*
VimLeavePre autocmd.txt /*VimLeavePre*
@ -5563,6 +5569,10 @@ c_## cmdline.txt /*c_##*
c_#< cmdline.txt /*c_#<*
c_#n cmdline.txt /*c_#n*
c_% cmdline.txt /*c_%*
c_%% cmdline.txt /*c_%%*
c_%%%# cmdline.txt /*c_%%%#*
c_%%< cmdline.txt /*c_%%<*
c_%%n cmdline.txt /*c_%%n*
c_<BS> cmdline.txt /*c_<BS>*
c_<C-Left> cmdline.txt /*c_<C-Left>*
c_<C-R> cmdline.txt /*c_<C-R>*
@ -5748,6 +5758,7 @@ characterwise-visual visual.txt /*characterwise-visual*
charclass() eval.txt /*charclass()*
charconvert_from-variable eval.txt /*charconvert_from-variable*
charconvert_to-variable eval.txt /*charconvert_to-variable*
charidx() eval.txt /*charidx()*
charity uganda.txt /*charity*
charset mbyte.txt /*charset*
charset-conversion mbyte.txt /*charset-conversion*
@ -7147,6 +7158,7 @@ hebrew hebrew.txt /*hebrew*
hebrew.txt hebrew.txt /*hebrew.txt*
help helphelp.txt /*help*
help-context help.txt /*help-context*
help-curwin tips.txt /*help-curwin*
help-summary usr_02.txt /*help-summary*
help-tags tags 1
help-translated helphelp.txt /*help-translated*
@ -10058,6 +10070,7 @@ vim-variable eval.txt /*vim-variable*
vim.vim syntax.txt /*vim.vim*
vim7 version7.txt /*vim7*
vim8 version8.txt /*vim8*
vim9 vim9.txt /*vim9*
vim9-classes vim9.txt /*vim9-classes*
vim9-const vim9.txt /*vim9-const*
vim9-declaration vim9.txt /*vim9-declaration*
@ -10067,9 +10080,10 @@ vim9-export vim9.txt /*vim9-export*
vim9-final vim9.txt /*vim9-final*
vim9-gotchas vim9.txt /*vim9-gotchas*
vim9-import vim9.txt /*vim9-import*
vim9-namespace vim9.txt /*vim9-namespace*
vim9-rationale vim9.txt /*vim9-rationale*
vim9-reload vim9.txt /*vim9-reload*
vim9-scopes vim9.txt /*vim9-scopes*
vim9-script vim9.txt /*vim9-script*
vim9-script-intro usr_46.txt /*vim9-script-intro*
vim9-types vim9.txt /*vim9-types*
vim9.txt vim9.txt /*vim9.txt*

View File

@ -1,4 +1,4 @@
*term.txt* For Vim version 8.2. Last change: 2020 Apr 12
*term.txt* For Vim version 8.2. Last change: 2020 Dec 29
VIM REFERENCE MANUAL by Bram Moolenaar

View File

@ -1,4 +1,4 @@
*terminal.txt* For Vim version 8.2. Last change: 2020 Nov 25
*terminal.txt* For Vim version 8.2. Last change: 2020 Dec 28
VIM REFERENCE MANUAL by Bram Moolenaar
@ -742,6 +742,9 @@ term_setapi({buf}, {expr}) *term_setapi()*
The default is "Tapi_". When {expr} is an empty string then
no |terminal-api| function can be used for {buf}.
When used as a method the base is used for {buf}: >
GetBufnr()->term_setapi({expr})
term_setansicolors({buf}, {colors}) *term_setansicolors()*
Set the ANSI color palette used by terminal {buf}.
{colors} must be a List of 16 valid color names or hexadecimal

View File

@ -1,4 +1,4 @@
*tips.txt* For Vim version 8.2. Last change: 2009 Nov 07
*tips.txt* For Vim version 8.2. Last change: 2020 Dec 29
VIM REFERENCE MANUAL by Bram Moolenaar
@ -30,6 +30,7 @@ Executing shell commands in a window |shell-window|
Hex editing |hex-editing|
Using <> notation in autocommands |autocmd-<>|
Highlighting matching parens |match-parens|
Opening help in the current window |help-curwin|
==============================================================================
Editing C programs *C-editing*
@ -530,4 +531,28 @@ A slightly more advanced version is used in the |matchparen| plugin.
autocmd InsertEnter * match none
<
==============================================================================
Opening help in the current window *help-curwin*
By default, help is displayed in a split window. If you prefer it opens in
the current window, try this custom `:HelpCurwin` command:
>
command -bar -nargs=? -complete=help HelpCurwin execute s:HelpCurwin(<q-args>)
let s:did_open_help = v:false
function s:HelpCurwin(subject) abort
let mods = 'silent noautocmd keepalt'
if !s:did_open_help
execute mods .. ' help'
execute mods .. ' helpclose'
let s:did_open_help = v:true
endif
if !getcompletion(a:subject, 'help')->empty()
execute mods .. ' edit ' .. &helpfile
endif
return 'help ' .. a:subject
endfunction
<
vim:tw=78:ts=8:noet:ft=help:norl:

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 8.2. Last change: 2020 Dec 22
*todo.txt* For Vim version 8.2. Last change: 2021 Jan 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -38,17 +38,11 @@ browser use: https://github.com/vim/vim/issues/1234
*known-bugs*
-------------------- Known bugs and current work -----------------------
Rewrite the section on "magic". Say that 'magic' is normally on, then this
happens... If 'magic' is off, then this is different..
Reload: How to make sure type of script function hasn't changed?
test_vim9_cmd: uses uninitialized var
Valgrind: test_vim9_cmd: uses uninitialized var
Vim9 - Make everything work:
- For an :autocmd and :command argument defined in Vim9 script, if a following
line starts with "|" append it. It's like line continuation. (#6702)
- The syntax of a range list[a:b] is ambiguous, is this one "a:b" variable or
a range from "a" to "b"? To avoid confusion, require white space before
(and after) the colon? #7409
- Implement "export {one, two three}".
- Use "null" for v:null, like true and false? #7495
- ISN_CHECKTYPE could use check_argtype()
@ -59,7 +53,18 @@ Vim9 - Make everything work:
- If a :def function is called with a function reference, compile it to get
the function type.
def Filter(x: string, Cond: func(string): bool)
Filter(x, { v -> v =~ '^b' })
Filter(x, (v) => v =~ '^b')
- Make inline function work, to be used as a funcref:
let Ref = (arg: type): type => {
statement
return expr
}
let Ref = (arg: type) => {
statement
statement
}
- implement { cmd } compiled
- implement { cmd } at script level
- Expand `=expr` in :next, :argedit, :argadd, :argdelete, :drop
- Expand `=expr` in :vimgrep, :vimgrepadd, :lvimgrep, :lvimgrepadd
- Expand `=expr` in :mkspell
@ -68,8 +73,11 @@ Vim9 - Make everything work:
map(list, SomeFunc)
- For builtin functions using tv_get_string*() use check_for_string() to be
more strict about the argument type.
- Implement :lockvar and :unlockvar. How about local variables? Perhaps only
allow this for global variables. Use :final or :const otherwise.
- Allow function names that will be script-local to start with lower case
letter?
letter? Or also require names with s: prefix to use upper case?
Also apply this function references "var ref = SomeFunc"
- Support passing v:none to use the default argument value. (#6504)
- Make map() give an error if the resulting type of the first argument is
wrong. Only works if the type is known? Is this slow (need to go over all
@ -98,7 +106,7 @@ Vim9 - Make everything work:
- Implement using imported items at script level from "import * as X" in
eval_variable(). Should pass the ".xxx" that follows and return that.
- Disallow unlet for local/script/imported vars
- Make "++nr" work.
- Make "++nr" work. "++g:count" doesn't work, thinks it is a range.
- Make closures work:
- Create closure in a loop. Need to make a list of them.
- nested closure only uses one context, not all (#7150)
@ -144,10 +152,6 @@ Further improvements:
- compile options that are an expression, e.g. "expr:" in 'spellsuggest',
'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert',
'balloonexpr', 'includeexpr', 'indentexpr', 'formatexpr'.
- Make inline function work, to be used as a funcref:
let ref = def(arg: type): rettype
body
enddef
- compile get_lambda_tv() in popup_add_timeout()
- inline call to map() and filter()
- compile "skip" argument of searchpair()
@ -224,6 +228,7 @@ Terminal debugger:
with another Vim instance.
Terminal emulator window:
- Can escape a terminal popup with win_gotoid(), should be an error
- No support for underline color, t_8u.
- When in terminal-Normal mode when the job finishes, the cursor jumps to the
end but the window is not updated. This only happens when typing "a".
@ -276,6 +281,8 @@ Have another look at the implementation.
Patch to implement the vimtutor with a plugin: #6414
Was originally written by Felipe Morales.
Patch to find Python dll using registry key. (#7540)
Remove SPACE_IN_FILENAME ? It is only used for completion.
Making breakat support multibyte characters (Yasuhiro Matsumoto, #6598)
@ -663,6 +670,38 @@ Session file contains absolute paths when "curdir" is removed form
'sessionoptions', making it impossible to have a session with a relative path.
(#4450)
Session file only contains local option values for buffers that are in a
window, not other buffers. (#7532)
Script generated by :mksession does not work well if there are windows with
modified buffers
change "silent only" into "silent only!"
change "edit fname" of first buffer to "hide edit fname"
skip "badd fname" if "fname" is already in the buffer list
remove remark about unloading buffers from documentation
When session file has name in argument list but the buffer was deleted, the
buffer is not deleted when using the session file. (#1393)
Should add the buffer in hidden state.
When a session file is created and there are "nofile" buffers, these are not
filled. Need to trigger BufReadCmd autocommands. Also handle deleting the
initial empty buffer better. (ZyX, 2015 March 8)
Setting the spell file in a session only reads the local additions, not the
normal spell file. (Enno Nagel, 2014 Mar 29)
Directory wrong in session file, caused by ":lcd" in BufEnter autocommand.
(Felix Kater, 2009 Mar 3)
Something wrong with session that has "cd" commands and "badd", in such a way
that Vim doesn't find the edited file in the buffer list, causing the
ATTENTION message? (Tony Mechelynck, 2008 Dec 1)
Also: swap files are in ~/tmp/ One has relative file name ".mozilla/...".
'foldcolumn' in modeline applied to wrong window when using a session. (Teemu
Likonen, March 19)
When using a timer callback vgetc_busy is reset, allowing for using input().
But in a channel callback this does not happen. We need to do something
similar to check_due_timer(). Also see #3809.
@ -852,13 +891,6 @@ when adding a sign for every quickfix entry. (#4557)
Win32 key codes are messy. Mike Williams tried to fix that, but now old
mappings no longer work. Create a new terminal for the better solution?
Script generated by :mksession does not work well if there are windows with
modified buffers
change "silent only" into "silent only!"
change "edit fname" of first buffer to "hide edit fname"
skip "badd fname" if "fname" is already in the buffer list
remove remark about unloading buffers from documentation
Compiler warnings (geeknik, 2017 Oct 26):
- signed integer overflow in do_sub() (#2249)
- signed integer overflow in get_address() (#2248)
@ -1120,7 +1152,7 @@ Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
#2089) Patch with possible solution by Björn Linse.
The change list index is local to a buffer, but it doesn't make sense using it
for another buffer. (lacygoll) Copy w_changelistidx to wininfo_S and back.
for another buffer. (lacygolil) Copy w_changelistidx to wininfo_S and back.
X11: Putting more than about 262040 characters of text on the clipboard and
pasting it in another Vim doesn't work. (Dominique Pelle, 2008 Aug 21-23)
@ -1227,10 +1259,6 @@ Json string with trailing \u should be an error. (Lcd)
import can't be used in define option when include matches too.
(Romain Lafourcade, 2017 Jun 18, #1519)
When session file has name in argument list but the buffer was deleted, the
buffer is not deleted when using the session file. (#1393)
Should add the buffer in hidden state.
Wrong diff highlighting with three files. (2016 Oct 20, #1186)
Also get E749 on exit.
Another example in #1309
@ -1689,10 +1717,6 @@ Doesn't work completely (Dominique Orban)
Patch to add a "literal" argument to bufnr(). (Olaf Dabrunz, 2015 Aug 4)
When a session file is created and there are "nofile" buffers, these are not
filled. Need to trigger BufReadCmd autocommands. Also handle deleting the
initial empty buffer better. (ZyX, 2015 March 8)
Extended file attributes lost on write (backupcopy=no). Issue 306.
Patch to add :lockjumps. (Carlo Baldassi, 2015 May 25)
@ -1821,9 +1845,6 @@ Out of scope:
- Development work on plugins (although diff with distributed version would be
useful).
Setting the spell file in a session only reads the local additions, not the
normal spell file. (Enno Nagel, 2014 Mar 29)
When typing the first character of a command, e.g. "f", then using a menu, the
menu item doesn't work. Clear typeahead when using a menu?
@ -2472,9 +2493,6 @@ opening/closing window causes other window with 'winfixheight' to change
height. Also happens when there is another window in the frame, if it's not
very high. (Yegappan Lakshmanan, 2010 Jul 22, Michael Peeters, 2010 Jul 22)
Directory wrong in session file, caused by ":lcd" in BufEnter autocommand.
(Felix Kater, 2009 Mar 3)
Session file generates error upon loading, cause by --remote-silent-tab.
(7tommm (ytommm) 2010 Nov 24)
@ -2534,11 +2552,6 @@ still delete them. Also convert all buffer file names?
"gqip" in Insert mode has an off-by-one error, causing it to reflow text.
(Raul Coronado, 2009 Nov 2)
Something wrong with session that has "cd" commands and "badd", in such a way
that Vim doesn't find the edited file in the buffer list, causing the
ATTENTION message? (Tony Mechelynck, 2008 Dec 1)
Also: swap files are in ~/tmp/ One has relative file name ".mozilla/...".
MS-Windows: editing the first, empty buffer, 'ffs' set to "unix,dos", ":enew"
doesn't set 'ff' to "unix". (Ben Fritz, 2008 Dec 5) Reusing the old buffer
probably causes this.
@ -2735,9 +2748,6 @@ New PHP syntax file, use it? (Peter Hodge)
":echoe" in catch block stops processing, while this doesn't happen outside of
a catch block. (ZyX, 2011 Jun 2)
'foldcolumn' in modeline applied to wrong window when using a session. (Teemu
Likonen, March 19)
Test 54 uses shell commands, that doesn't work on non-Unix systems. Use some
other way to test buffer-local autocommands.

View File

@ -1,4 +1,4 @@
*version8.txt* For Vim version 8.2. Last change: 2020 Oct 25
*version8.txt* For Vim version 8.2. Last change: 2020 Dec 24
VIM REFERENCE MANUAL by Bram Moolenaar
@ -3282,7 +3282,7 @@ Solution: Convert the printer name from the active codepage to 'encoding'.
Files: src/os_mswin.c
Patch 7.4.472
Problem: The "precedes" entry in 'listchar' will be drawn when 'showbreak'
Problem: The "precedes" entry in 'listchars' will be drawn when 'showbreak'
is set and 'list' is not.
Solution: Only draw this character when 'list' is on. (Christian Brabandt)
Files: src/screen.c
@ -35835,7 +35835,7 @@ Files: src/ex_cmds2.c, src/getchar.c, src/testdir/test_mapping.vim,
Patch 8.1.1592
Problem: May start file dialog while exiting.
Solution: Ignore the "browse" modifier when exiting. (Ozaki Kiichi,
closes #4582
closes #4582)
Files: src/ex_cmds.c, src/terminal.c
Patch 8.1.1593
@ -46431,7 +46431,7 @@ Files: src/buffer.c, src/change.c, src/diff.c, src/evalbuffer.c,
Patch 8.2.0854
Problem: Xxd cannot show offset as a decimal number.
Solution: Add the "-d" flag. (Aapo Rantalainen, closes #5616
Solution: Add the "-d" flag. (Aapo Rantalainen, closes #5616)
Files: src/testdir/test_xxd.vim, src/xxd/xxd.c
Patch 8.2.0855
@ -46661,7 +46661,7 @@ Solution: Use // comments. (Yegappan Lakshmanan, closes #6190)
Files: src/gui_xim.c
Patch 8.2.0890
Problem: No color in terminal window when 'termguicolor' is set.
Problem: No color in terminal window when 'termguicolors' is set.
Solution: Clear the underline color. (closes #6186)
Files: src/highlight.c
@ -46728,7 +46728,7 @@ Files: runtime/doc/change.txt, src/mbyte.c, src/ops.c, src/option.h,
Patch 8.2.0902
Problem: Using searchcount() in 'statusline' causes an error.
Solution: Avoid saving/restoring the search patten recursively.
Solution: Avoid saving/restoring the search pattern recursively.
(closes #6194)
Files: src/search.c, src/testdir/test_search_stat.vim,
src/testdir/dumps/Test_searchstat_4.dump
@ -48832,7 +48832,7 @@ Files: src/buffer.c, src/testdir/test_tabline.vim
Patch 8.2.1260
Problem: There is no good test for CursorHold.
Solution: Add a test. Remove duplicated test. (Yegappan Lakshmanan,
closes #6503
closes #6503)
Files: src/testdir/test_autocmd.vim, src/testdir/test_buffer.vim,
src/testdir/test_normal.vim

View File

@ -1,4 +1,4 @@
*vim9.txt* For Vim version 8.2. Last change: 2020 Dec 24
*vim9.txt* For Vim version 8.2. Last change: 2021 Jan 02
VIM REFERENCE MANUAL by Bram Moolenaar
@ -14,7 +14,7 @@ features in Vim9 script.
THIS IS STILL UNDER DEVELOPMENT - ANYTHING CAN BREAK - ANYTHING CAN CHANGE
1. What is Vim9 script? |vim9-script|
1. What is Vim9 script? |Vim9-script|
2. Differences |vim9-differences|
3. New style functions |fast-functions|
4. Types |vim9-types|
@ -565,6 +565,13 @@ command: >
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 "(": >
call Func (arg) # Error!
@ -595,7 +602,7 @@ is either falsy or truthy. This is mostly like JavaScript, except that an
empty list and dict is falsy:
type truthy when ~
bool v:true or 1
bool true, v:true or 1
number non-zero
float non-zero
string non-empty
@ -603,11 +610,11 @@ empty list and dict is falsy:
list non-empty (different from JavaScript)
dictionary non-empty (different from JavaScript)
func when there is a function name
special v:true
special true or v:true
job when not NULL
channel when not NULL
class when not NULL
object when not NULL (TODO: when isTrue() returns v:true)
object when not NULL (TODO: when isTrue() returns true)
The boolean operators "||" and "&&" expect the values to be boolean, zero or
one: >
@ -629,12 +636,15 @@ result is a boolean. "!!" can be used to turn any value into boolean: >
When using "`.."` for string concatenation arguments of simple types are
always converted to string: >
'hello ' .. 123 == 'hello 123'
'hello ' .. v:true == 'hello v:true'
'hello ' .. v:true == 'hello true'
Simple types are string, float, special and bool. For other types |string()|
can be used.
*false* *true*
In Vim9 script one can use "true" for v:true and "false" for v:false.
In Vim9 script one can use "true" for v:true and "false" for v:false. When
converting a boolean to a string "false" and "true" are used, not "v:false"
and "v:true" like in legacy script. "v:none" and "v:null" are not changed,
they are only used in JSON.
Indexing a string with [idx] or [idx, idx] uses character indexes instead of
byte indexes. Example: >

View File

@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2020 Dec 07
" Last Change: 2020 Dec 24
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")

View File

@ -1,7 +1,7 @@
" Language: Dune buildsystem
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
" Anton Kochkov <anton.kochkov@gmail.com>
" URL: https://github.com/rgrinberg/vim-ocaml
" URL: https://github.com/ocaml/vim-ocaml
" Last Change:
" 2018 Nov 3 - Added commentstring (Markus Mottl)
" 2017 Sep 6 - Initial version (Etienne Millon)

View File

@ -0,0 +1,19 @@
" Vim ftplugin file
" Language: fstab file
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
" URL: https://raw.github.com/rid9/vim-fstab/master/ftplugin/fstab.vim
" Last Change: 2020 Dec 29
" Version: 1.0
"
" Credits:
" Subhaditya Nath <sn03.general@gmail.com>
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1
setlocal commentstring=#%s
let b:undo_ftplugin = "setlocal commentstring<"
" vim: ts=8 ft=vim

View File

@ -5,7 +5,7 @@
" Pierre Vittet <pierre-vittet@pvittet.com>
" Stefano Zacchiroli <zack@bononia.it>
" Vincent Aravantinos <firstname.name@imag.fr>
" URL: https://github.com/rgrinberg/vim-ocaml
" URL: https://github.com/ocaml/vim-ocaml
" Last Change:
" 2013 Oct 27 - Added commentstring (MM)
" 2013 Jul 26 - load default compiler settings (MM)
@ -38,7 +38,8 @@ let s:cposet=&cpoptions
set cpo&vim
" Comment string
setlocal comments=
setlocal comments=sr:(*\ ,mb:\ ,ex:*)
setlocal comments^=sr:(**,mb:\ \ ,ex:*)
setlocal commentstring=(*%s*)
" Add mappings, unless the user didn't want this.
@ -391,9 +392,9 @@ endfunction
endif
endfun
" This variable contain a dictionnary of list. Each element of the dictionnary
" represent an annotation system. An annotation system is a list with :
" - annotation file name as it's key
" This variable contains a dictionary of lists. Each element of the dictionary
" represents an annotation system. An annotation system is a list with:
" - annotation file name as its key
" - annotation file path as first element of the contained list
" - build path as second element of the contained list
" - annot_file_last_mod (contain the date of .annot file) as third element
@ -521,7 +522,7 @@ endfunction
"c. link this stuff with what the user wants
" ie. get the expression selected/under the cursor
let s:ocaml_word_char = '\w|[<EFBFBD>-<2D>]|'''
let s:ocaml_word_char = '\w|[\xc0-\xff]|'''
"In: the current mode (eg. "visual", "normal", etc.)
"Out: the borders of the expression we are looking for the type

View File

@ -0,0 +1,15 @@
" Vim filetype plugin file
" Language: Sexplib
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
" URL: https://github.com/ocaml/vim-ocaml
" Last Change:
" 2017 Apr 12 - First version (MM)
if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin=1
" Comment string
setl commentstring=;\ %s
setl comments=:;

13
runtime/indent/dune.vim Normal file
View File

@ -0,0 +1,13 @@
" Vim indent file
" Language: dune
" Maintainers: Markus Mottl <markus.mottl@gmail.com>
" URL: https://github.com/ocaml/vim-ocaml
" Last Change: 2021 Jan 01
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
" dune format-dune-file uses 1 space to indent
setlocal softtabstop=1 shiftwidth=1 expandtab

View File

@ -3,7 +3,7 @@
" Maintainers: Jean-Francois Yuen <jfyuen@happycoders.org>
" Mike Leary <leary@nwlink.com>
" Markus Mottl <markus.mottl@gmail.com>
" URL: http://www.ocaml.info/vim/indent/ocaml.vim
" URL: https://github.com/ocaml/vim-ocaml
" Last Change: 2017 Jun 13
" 2005 Jun 25 - Fixed multiple bugs due to 'else\nreturn ind' working
" 2005 May 09 - Added an option to not indent OCaml-indents specially (MM)
@ -30,7 +30,8 @@ setlocal nosmartindent
" Comment formatting
if !exists("no_ocaml_comments")
if (has("comments"))
setlocal comments=sr:(*,mb:*,ex:*)
setlocal comments=sr:(*\ ,mb:\ ,ex:*)
setlocal comments^=sr:(**,mb:\ \ ,ex:*)
setlocal fo=cqort
endif
endif

View File

@ -2,7 +2,7 @@
" Language: Diff (context or unified)
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Translations by Jakson Alves de Aquino.
" Last Change: 2020 Dec 07
" Last Change: 2020 Dec 30
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
@ -348,11 +348,16 @@ syn match diffLine "^\d\+\(,\d\+\)\=[cda]\d\+\>.*"
syn match diffFile "^diff\>.*"
syn match diffFile "^Index: .*"
syn match diffFile "^==== .*"
" Old style diff uses *** for old and --- for new.
" Unified diff uses --- for old and +++ for new; names are wrong but it works.
syn match diffOldFile "^+++ .*"
syn match diffOldFile "^\*\*\* .*"
syn match diffNewFile "^--- .*"
if search('^@@ -\S\+ +\S\+ @@', 'nw', '', 100)
" unified
syn match diffOldFile "^--- .*"
syn match diffNewFile "^+++ .*"
else
" context / old style
syn match diffOldFile "^\*\*\* .*"
syn match diffNewFile "^--- .*"
endif
" Used by git
syn match diffIndexLine "^index \x\x\x\x.*"

View File

@ -1,7 +1,8 @@
" Vim syntax file
" Language: Dune buildsystem
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
" Anton Kochkov <anton.kochkov@gmail.com>
" URL: https://github.com/rgrinberg/vim-ocaml
" URL: https://github.com/ocaml/vim-ocaml
" Last Change:
" 2019 Feb 27 - Add newer keywords to the syntax (Simon Cruanes)
" 2018 May 8 - Check current_syntax (Kawahara Satoru)
@ -28,7 +29,7 @@ syn keyword lispKey ppx_runtime_libraries virtual_deps js_of_ocaml link_flags
syn keyword lispKey javascript_files flags ocamlc_flags ocamlopt_flags pps staged_pps
syn keyword lispKey library_flags c_flags c_library_flags kind package action
syn keyword lispKey deps targets locks fallback
syn keyword lispKey inline_tests tests names
syn keyword lispKey inline_tests tests test names
syn keyword lispAtom true false

View File

@ -1,8 +1,8 @@
" Vim syntax file
" Language: fstab file
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
" URL: https://raw.github.com/rid9/vim-fstab/master/fstab.vim
" Last Change: 2020 Aug 06
" URL: https://raw.github.com/rid9/vim-fstab/master/syntax/fstab.vim
" Last Change: 2020 Dec 30
" Version: 1.4
"
" Credits:

216
runtime/syntax/gift.vim Normal file
View File

@ -0,0 +1,216 @@
" Vim syntax file
"
" Language: Moodle GIFT (General Import Format Template)
" Maintainer: Selim Temizer (http://selimtemizer.com)
" Creation: November 28, 2020
" Latest Revision: December 21, 2020
" Note: The order of entities in this file is important!
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
setlocal conceallevel=1
"-----------------------------------------------
" GIFT entities
syn match giftS "\~" contained "GIFT special characters
syn match giftS "=" contained
syn match giftS "#" contained
syn match giftS "{" contained
syn match giftS "}" contained
syn match giftS ":" contained
syn match giftES "\\\~" contained conceal cchar=~ "GIFT escaped special characters
syn match giftES "\\=" contained conceal cchar==
syn match giftES "\\#" contained conceal cchar=#
syn match giftES "\\{" contained conceal cchar={
syn match giftES "\\}" contained conceal cchar=}
syn match giftES "\\:" contained conceal cchar=:
syn match giftEN "\\n" contained conceal cchar=n "GIFT escaped newline
syn match giftFormat "\[html]" contained "GIFT formats
syn match giftFormat "\[plain]" contained
syn match giftFormat "\[moodle]" contained
syn match giftFormat "\[markdown]" contained
"--------------------------------------------------------
" HTML entities
syn match giftH "<" contained "HTML characters that might need to be handled/escaped
syn match giftH ">" contained
syn match giftH "&" contained
syn match giftEH "&lt;" contained conceal cchar=< "HTML escaped characters
syn match giftEH "&gt;" contained conceal cchar=>
syn match giftEH "&amp;" contained conceal cchar=&
syn match giftEH "&nbsp;" contained conceal cchar=_
"-------------------------------------------------------
" Answer components: Feedback and general feedback
syn match giftFB "#\_.\{-}\(\_^\|[^\\]\)\ze\(=\|\~\|#\|####\|}\)" contained contains=giftF "Feedback block
syn match giftF "#\zs\_.\{-}\(\_^\|[^\\]\)\ze\(=\|\~\|#\|####\|}\)" contained contains=@giftCEF "Feedback
syn match giftGFB "####\_.\{-}\(\_^\|[^\\]\)\ze}" contained contains=giftGF "General feedback block
syn match giftGF "####\zs\_.\{-}\(\_^\|[^\\]\)\ze}" contained contains=@giftCEF "General feedback
"------------------------------------------------------
" Answer components: Other components
syn keyword giftTF T TRUE F FALSE contained
syn match giftNum1 "[-+]\=[.0-9]\+" contained "Something matching a number
syn match giftNum2 "[-+]\=[.0-9]\+\s*:\s*[-+]\=[.0-9]\+" contained contains=giftNum2D "Number with error margin
syn match giftNum2D ":" contained "Associated delimiter
syn match giftNum3 "[-+]\=[.0-9]\+\s*\.\.\s*[-+]\=[.0-9]\+" contained contains=giftNum3D "Number as min/max range
syn match giftNum3D "\.\." contained "Associated delimiter
syn match giftWeightB "%-*[0-9]\{1,2}\.\?[0-9]*%" contained contains=giftWeight "Weight block
syn match giftWeight "%\zs-*[0-9]\{1,2}\.\?[0-9]*\ze%" contained "Weight
"-----------------------------------------------------
" Answer choices
syn match giftWrongNum "\~\zs\_.\{-}\(\_^\|[^\\]\)\ze\(####\|}\)" contained contains=@giftCEFF "Wrong numeric choice
syn match giftRightNum "=\zs\_.\{-}\(\_^\|[^\\]\)\ze\(=\|\~\|####\|}\)" contained contains=@giftCEFFW,@giftNums "Right numeric choice
syn match giftWrong "\~\zs\_.\{-}\(\_^\|[^\\]\)\ze\(=\|\~\|####\|}\)" contained contains=@giftCEFFW "Wrong choice
syn match giftRight "=\zs\_.\{-}\(\ze->\|\(\_^\|[^\\]\)\ze\(=\|\~\|####\|}\)\)" contained contains=@giftCEFFW "Right choice
syn match giftMatchB "->\_.\{-}\(\_^\|[^\\]\)\ze\(=\|\~\|####\|}\)" contained contains=giftMatch "Match choice block
syn match giftMatch "->\zs\_.\{-}\(\_^\|[^\\]\)\ze\(=\|\~\|####\|}\)" contained contains=@giftCE "Match choice
"----------------------------------------------------
" Answer
syn match giftAnswer "{\_.\{-}\(\_^\|[^\\]\)}" contained keepend contains=@giftA "General answer
syn match giftAnswer "{}" contained "Minimal answer
syn match giftAnswerNum "{\_[[:space:]]*#\_[^#]\_.\{-}\(\_^\|[^\\]\)}" contained keepend contains=@giftANum "Numeric answer
syn match giftAnswerNumD "{\zs\_[[:space:]]*#" contained "Associated delimiter
"---------------------------------------------------
" Question
" The first pattern matches the last question at the end of the file (in case there is no empty line coming after).
" However, it slows down parsing (and especially scrolling up), therefore it is commented out.
"syn match giftQuestion "[^{[:space:]]\_.\{-}\%$" keepend contains=@giftCEF,giftAnswer,giftAnswerNum
syn match giftQuestion "[^{[:space:]]\_.\{-}\n\(\s*\n\)\+" keepend contains=@giftCEF,giftAnswer,giftAnswerNum
"--------------------------------------------------
" Question name
syn match giftName "::\_.\{-}::" contains=@giftCE,giftNameD "Question name
syn match giftNameD "::" contained "Associated delimiter
"-------------------------------------------------
" Category
syn match giftCategoryB "^\s*\$CATEGORY:.*\n\+" contains=giftCategory "Category block
syn match giftCategory "^\s*\$CATEGORY:\zs.*\ze\n" contained "Category
"------------------------------------------------
" Comments (may need to be the last entity)
syn keyword giftTodo FIXME TODO NOTE FIX XXX contained
syn match giftIdB "\[id:\(\\]\|[^][:cntrl:]]\)\+]" contained contains=giftId "Id block
syn match giftId "\[id:\zs\(\\]\|[^][:cntrl:]]\)\+\ze]" contained "Id
syn match giftTagB "\[tag:\(\\]\|[^]<>`[:cntrl:]]\)\+]" contained contains=giftTag "Tag block
syn match giftTag "\[tag:\zs\(\\]\|[^]<>`[:cntrl:]]\)\+\ze]" contained "Tag
syn match giftComment "^\s*//.*" contains=giftTodo,giftIdB,giftTagB
"-----------------------------------------------
" Clusters
"Comments and entities (to be escaped)
syn cluster giftCE contains=giftComment,giftS,giftES,giftEN,giftH,giftEH
"The above plus format
syn cluster giftCEF contains=@giftCE,giftFormat
"The above plus feedback block
syn cluster giftCEFF contains=@giftCEF,giftFB
"The above plus weight block
syn cluster giftCEFFW contains=@giftCEFF,giftWeightB
"Possible numerical representations
syn cluster giftNums contains=giftNum1,giftNum2,giftNum3
"Possible contents of answers
syn cluster giftA contains=giftComment,giftTF,giftWrong,giftRight,giftMatchB,giftFB,giftGFB
"Possible contents of numerical answers
syn cluster giftANum contains=giftAnswerNumD,giftComment,@giftNums,giftWrongNum,giftRightNum,giftFB,giftGFB
"-----------------------------------------------
let b:current_syntax = "gift"
"-----------------------------------------------
hi Conceal ctermbg=NONE ctermfg=Blue guibg=NONE guifg=Blue
hi Feedback ctermbg=NONE ctermfg=DarkCyan guibg=NONE guifg=DarkCyan
hi GFeedback ctermbg=NONE ctermfg=DarkGreen guibg=NONE guifg=DarkGreen
hi WeightB ctermbg=NONE ctermfg=DarkYellow guibg=NONE guifg=DarkYellow
"-----------------------------------------------
hi def link giftS Error
hi def link giftES Conceal
hi def link giftEN Conceal
hi def link giftFormat LineNr
hi def link giftH Error
hi def link giftEH Conceal
hi def link giftFB PreProc
hi def link giftF Feedback
hi def link giftGFB Title
hi def link giftGF GFeedback
hi def link giftTF Question
hi def link giftNum1 Question
hi def link giftNum2 Question
hi def link giftNum2D Special
hi def link giftNum3 Question
hi def link giftNum3D Special
hi def link giftWeightB WeightB
hi def link giftWeight Identifier
hi def link giftWrongNum Constant
hi def link giftRightNum Question
hi def link giftWrong Constant
hi def link giftRight Question
hi def link giftMatchB ModeMsg
hi def link giftMatch Constant
hi def link giftAnswer MoreMsg
hi def link giftAnswerNum MoreMsg
hi def link giftAnswerNumD Identifier
hi def link giftQuestion Identifier
hi def link giftName PreProc
hi def link giftNameD Directory
hi def link giftCategoryB LineNr
hi def link giftCategory Directory
hi def link giftTodo Todo
hi def link giftIdB LineNr
hi def link giftId Title
hi def link giftTagB LineNr
hi def link giftTag Constant
hi def link giftComment Comment

View File

@ -4,7 +4,7 @@
" Maintainers: Markus Mottl <markus.mottl@gmail.com>
" Karl-Heinz Sylla <Karl-Heinz.Sylla@gmd.de>
" Issac Trotts <ijtrotts@ucdavis.edu>
" URL: https://github.com/rgrinberg/vim-ocaml
" URL: https://github.com/ocaml/vim-ocaml
" Last Change:
" 2018 Nov 08 - Improved highlighting of operators (Maëlan)
" 2018 Apr 22 - Improved support for PPX (Andrey Popp)
@ -18,14 +18,20 @@
" can be distinguished from begin/end, which is used for indentation,
" and folding. (David Baelde)
" quit when a syntax file was already loaded
" Quit when a syntax file was already loaded
if exists("b:current_syntax") && b:current_syntax == "ocaml"
finish
endif
let s:keepcpo = &cpo
set cpo&vim
" ' can be used in OCaml identifiers
setlocal iskeyword+='
" ` is part of the name of polymorphic variants
setlocal iskeyword+=`
" OCaml is case sensitive.
syn case match
@ -123,7 +129,7 @@ syn region ocamlSig matchgroup=ocamlSigEncl start="\<sig\>" matchgroup=ocamlSi
syn region ocamlModSpec matchgroup=ocamlKeyword start="\<module\>" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\>" contained contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlModTRWith,ocamlMPRestr
" "open"
syn region ocamlNone matchgroup=ocamlKeyword start="\<open\>" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\( *\. *\u\(\w\|'\)*\)*\>" contains=@ocamlAllErrs,ocamlComment
syn match ocamlKeyword "\<open\>" skipwhite skipempty nextgroup=ocamlFullMod
" "include"
syn match ocamlKeyword "\<include\>" skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod
@ -225,7 +231,18 @@ syn match ocamlStar "*"
syn match ocamlAngle "<"
syn match ocamlAngle ">"
" Custom indexing operators:
syn match ocamlIndexingOp "\.[~?!:|&$%=>@^/*+-][~?!.:|&$%<=>@^*/+-]*\(()\|\[]\|{}\)\(<-\)\?"
syn region ocamlIndexing matchgroup=ocamlIndexingOp
\ start="\.[~?!:|&$%=>@^/*+-][~?!.:|&$%<=>@^*/+-]*\_s*("
\ end=")\(\_s*<-\)\?"
\ contains=ALLBUT,@ocamlContained,ocamlParenErr
syn region ocamlIndexing matchgroup=ocamlIndexingOp
\ start="\.[~?!:|&$%=>@^/*+-][~?!.:|&$%<=>@^*/+-]*\_s*\["
\ end="]\(\_s*<-\)\?"
\ contains=ALLBUT,@ocamlContained,ocamlBrackErr
syn region ocamlIndexing matchgroup=ocamlIndexingOp
\ start="\.[~?!:|&$%=>@^/*+-][~?!.:|&$%<=>@^*/+-]*\_s*{"
\ end="}\(\_s*<-\)\?"
\ contains=ALLBUT,@ocamlContained,ocamlBraceErr
" Extension operators (has to be declared before regular infix operators):
syn match ocamlExtensionOp "#[#~?!.:|&$%<=>@^*/+-]\+"
" Infix and prefix operators:
@ -283,7 +300,6 @@ syn sync match ocamlSigSync grouphere ocamlSig "\<sig\>"
syn sync match ocamlSigSync groupthere ocamlSig "\<end\>"
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link ocamlBraceErr Error
hi def link ocamlBrackErr Error
@ -308,14 +324,17 @@ hi def link ocamlModPath Include
hi def link ocamlObject Include
hi def link ocamlModule Include
hi def link ocamlModParam1 Include
hi def link ocamlGenMod Include
hi def link ocamlModType Include
hi def link ocamlMPRestr3 Include
hi def link ocamlFullMod Include
hi def link ocamlFuncWith Include
hi def link ocamlModParam Include
hi def link ocamlModTypeRestr Include
hi def link ocamlWith Include
hi def link ocamlMTDef Include
hi def link ocamlSigEncl ocamlModule
hi def link ocamlStructEncl ocamlModule
hi def link ocamlSigEncl ocamlModule
hi def link ocamlStructEncl ocamlModule
hi def link ocamlScript Include
@ -326,24 +345,25 @@ hi def link ocamlModPreRHS Keyword
hi def link ocamlMPRestr2 Keyword
hi def link ocamlKeyword Keyword
hi def link ocamlMethod Include
hi def link ocamlArrow Keyword
hi def link ocamlKeyChar Keyword
hi def link ocamlAnyVar Keyword
hi def link ocamlTopStop Keyword
hi def link ocamlRefAssign ocamlKeyChar
hi def link ocamlEqual ocamlKeyChar
hi def link ocamlStar ocamlInfixOp
hi def link ocamlAngle ocamlInfixOp
hi def link ocamlCons ocamlInfixOp
hi def link ocamlRefAssign ocamlKeyChar
hi def link ocamlEqual ocamlKeyChar
hi def link ocamlStar ocamlInfixOp
hi def link ocamlAngle ocamlInfixOp
hi def link ocamlCons ocamlInfixOp
hi def link ocamlPrefixOp ocamlOperator
hi def link ocamlInfixOp ocamlOperator
hi def link ocamlExtensionOp ocamlOperator
hi def link ocamlIndexingOp ocamlOperator
hi def link ocamlPrefixOp ocamlOperator
hi def link ocamlInfixOp ocamlOperator
hi def link ocamlExtensionOp ocamlOperator
hi def link ocamlIndexingOp ocamlOperator
if exists("ocaml_highlight_operators")
hi def link ocamlInfixOpKeyword ocamlOperator
hi def link ocamlOperator Operator
hi def link ocamlOperator Operator
else
hi def link ocamlInfixOpKeyword Keyword
endif
@ -353,7 +373,7 @@ hi def link ocamlCharacter Character
hi def link ocamlNumber Number
hi def link ocamlFloat Float
hi def link ocamlString String
hi def link ocamlQuotedStringDelim Identifier
hi def link ocamlQuotedStringDelim Identifier
hi def link ocamlLabel Identifier
@ -363,8 +383,11 @@ hi def link ocamlTodo Todo
hi def link ocamlEncl Keyword
hi def link ocamlPpxEncl ocamlEncl
hi def link ocamlPpxEncl ocamlEncl
let b:current_syntax = "ocaml"
let &cpo = s:keepcpo
unlet s:keepcpo
" vim: ts=8

38
runtime/syntax/opam.vim Normal file
View File

@ -0,0 +1,38 @@
" Vim syntax file
" Language: OPAM - OCaml package manager
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
" URL: https://github.com/ocaml/vim-ocaml
" Last Change:
" 2020 Dec 31 - Added header (Markus Mottl)
if exists("b:current_syntax")
finish
endif
" need %{vars}%
" env: [[CAML_LD_LIBRARY_PATH = "%{lib}%/stublibs"]]
syn keyword opamKeyword1 remove depends pin-depends depopts conflicts env packages patches version maintainer tags license homepage authors doc install author available name depexts substs synopsis description
syn match opamKeyword2 "\v(bug-reports|post-messages|ocaml-version|opam-version|dev-repo|build-test|build-doc|build)"
syn keyword opamTodo FIXME NOTE NOTES TODO XXX contained
syn match opamComment "#.*$" contains=opamTodo,@Spell
syn match opamOperator ">\|<\|=\|<=\|>="
syn region opamInterpolate start=/%{/ end=/}%/ contained
syn region opamString start=/"/ end=/"/ contains=opamInterpolate
syn region opamSeq start=/\[/ end=/\]/ contains=ALLBUT,opamKeyword1,opamKeyword2
syn region opamExp start=/{/ end=/}/ contains=ALLBUT,opamKeyword1,opamKeyword2
hi link opamKeyword1 Keyword
hi link opamKeyword2 Keyword
hi link opamString String
hi link opamExp Function
hi link opamSeq Statement
hi link opamOperator Operator
hi link opamComment Comment
hi link opamInterpolate Identifier
let b:current_syntax = "opam"
" vim: ts=2 sw=2

View File

@ -0,0 +1,88 @@
" Vim syntax file
" Language: S-expressions as used in Sexplib
" Filenames: *.sexp
" Maintainers: Markus Mottl <markus.mottl@gmail.com>
" URL: https://github.com/ocaml/vim-ocaml
" Last Change: 2020 Dec 31 - Updated header for Vim contribution (MM)
" 2017 Apr 11 - Improved matching of negative numbers (MM)
" 2012 Jun 20 - Fixed a block comment highlighting bug (MM)
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax") && b:current_syntax == "sexplib"
finish
endif
" Sexplib is case sensitive.
syn case match
" Comments
syn keyword sexplibTodo contained TODO FIXME XXX NOTE
syn region sexplibBlockComment matchgroup=sexplibComment start="#|" matchgroup=sexplibComment end="|#" contains=ALLBUT,sexplibQuotedAtom,sexplibUnquotedAtom,sexplibEncl,sexplibComment
syn match sexplibSexpComment "#;" skipwhite skipempty nextgroup=sexplibQuotedAtomComment,sexplibUnquotedAtomComment,sexplibListComment,sexplibComment
syn region sexplibQuotedAtomComment start=+"+ skip=+\\\\\|\\"+ end=+"+ contained
syn match sexplibUnquotedAtomComment /\([^;()" \t#|]\|#[^;()" \t|]\||[^;()" \t#]\)[^;()" \t]*/ contained
syn region sexplibListComment matchgroup=sexplibComment start="(" matchgroup=sexplibComment end=")" contained contains=ALLBUT,sexplibEncl,sexplibString,sexplibQuotedAtom,sexplibUnquotedAtom,sexplibTodo,sexplibNumber,sexplibFloat
syn match sexplibComment ";.*" contains=sexplibTodo
" Atoms
syn match sexplibUnquotedAtom /\([^;()" \t#|]\|#[^;()" \t|]\||[^;()" \t#]\)[^;()" \t]*/
syn region sexplibQuotedAtom start=+"+ skip=+\\\\\|\\"+ end=+"+
syn match sexplibNumber "-\=\<\d\(_\|\d\)*[l|L|n]\?\>"
syn match sexplibNumber "-\=\<0[x|X]\(\x\|_\)\+[l|L|n]\?\>"
syn match sexplibNumber "-\=\<0[o|O]\(\o\|_\)\+[l|L|n]\?\>"
syn match sexplibNumber "-\=\<0[b|B]\([01]\|_\)\+[l|L|n]\?\>"
syn match sexplibFloat "-\=\<\d\(_\|\d\)*\.\?\(_\|\d\)*\([eE][-+]\=\d\(_\|\d\)*\)\=\>"
" Lists
syn region sexplibEncl transparent matchgroup=sexplibEncl start="(" matchgroup=sexplibEncl end=")" contains=ALLBUT,sexplibParenErr
" Errors
syn match sexplibUnquotedAtomErr /\([^;()" \t#|]\|#[^;()" \t|]\||[^;()" \t#]\)[^;()" \t]*\(#|\||#\)[^;()" \t]*/
syn match sexplibParenErr ")"
" Synchronization
syn sync minlines=50
syn sync maxlines=500
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_sexplib_syntax_inits")
if version < 508
let did_sexplib_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink sexplibParenErr Error
HiLink sexplibUnquotedAtomErr Error
HiLink sexplibComment Comment
HiLink sexplibSexpComment Comment
HiLink sexplibQuotedAtomComment Include
HiLink sexplibUnquotedAtomComment Comment
HiLink sexplibBlockComment Comment
HiLink sexplibListComment Comment
HiLink sexplibBoolean Boolean
HiLink sexplibCharacter Character
HiLink sexplibNumber Number
HiLink sexplibFloat Float
HiLink sexplibUnquotedAtom Identifier
HiLink sexplibEncl Identifier
HiLink sexplibQuotedAtom Keyword
HiLink sexplibTodo Todo
HiLink sexplibEncl Keyword
delcommand HiLink
endif
let b:current_syntax = "sexplib"
" vim: ts=8

View File

@ -3,13 +3,16 @@
" Filenames: *.sml *.sig
" Maintainers: Markus Mottl <markus.mottl@gmail.com>
" Fabrizio Zeno Cornelli <zeno@filibusta.crema.unimi.it>
" URL: http://www.ocaml.info/vim/syntax/sml.vim
" Last Change: 2006 Oct 23 - Fixed character highlighting bug (MM)
" 2002 Jun 02 - Fixed small typo (MM)
" 2001 Nov 20 - Fixed small highlighting bug with modules (MM)
" Last Change: 2019 Oct 01 - Only spell check strings & comments (Chuan Wei Foo)
" 2015 Aug 31 - Fixed opening of modules (Ramana Kumar)
" 2006 Oct 23 - Fixed character highlighting bug (MM)
" quit when a syntax file was already loaded
if exists("b:current_syntax")
" Disable spell checking of syntax.
syn spell notoplevel
finish
endif
@ -52,7 +55,7 @@ syn region smlEncl transparent matchgroup=smlKeyword start="#\[" matchgroup=sm
" Comments
syn region smlComment start="(\*" end="\*)" contains=smlComment,smlTodo
syn region smlComment start="(\*" end="\*)" contains=smlComment,smlTodo,@Spell
syn keyword smlTodo contained TODO FIXME XXX
@ -82,7 +85,7 @@ syn region smlSig matchgroup=smlModule start="\<sig\>" matchgroup=smlModule en
syn region smlModSpec matchgroup=smlKeyword start="\<structure\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contained contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlModTRWith,smlMPRestr
" "open"
syn region smlNone matchgroup=smlKeyword start="\<open\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\(\.\u\(\w\|'\)*\)*\>" contains=@smlAllErrs,smlComment
syn region smlNone matchgroup=smlKeyword start="\<open\>" matchgroup=smlModule end="\<\w\(\w\|'\)*\(\.\w\(\w\|'\)*\)*\>" contains=@smlAllErrs,smlComment
" "structure" - somewhat complicated stuff ;-)
syn region smlModule matchgroup=smlKeyword start="\<\(structure\|functor\)\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlPreDef
@ -136,7 +139,7 @@ syn match smlModPath "\u\(\w\|'\)*\."he=e-1
syn match smlCharacter +#"\\""\|#"."\|#"\\\d\d\d"+
syn match smlCharErr +#"\\\d\d"\|#"\\\d"+
syn region smlString start=+"+ skip=+\\\\\|\\"+ end=+"+
syn region smlString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
syn match smlFunDef "=>"
syn match smlRefAssign ":="
@ -149,9 +152,9 @@ syn match smlKeyChar ";"
syn match smlKeyChar "\*"
syn match smlKeyChar "="
syn match smlNumber "\<-\=\d\+\>"
syn match smlNumber "\<-\=0[x|X]\x\+\>"
syn match smlReal "\<-\=\d\+\.\d*\([eE][-+]\=\d\+\)\=[fl]\=\>"
syn match smlNumber "\<-\=\d\+\>"
syn match smlNumber "\<-\=0[x|X]\x\+\>"
syn match smlReal "\<-\=\d\+\.\d*\([eE][-+]\=\d\+\)\=[fl]\=\>"
" Synchronization
syn sync minlines=20
@ -167,49 +170,49 @@ syn sync match smlSigSync groupthere smlSig "\<end\>"
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
hi def link smlBraceErr Error
hi def link smlBrackErr Error
hi def link smlParenErr Error
hi def link smlBraceErr Error
hi def link smlBrackErr Error
hi def link smlParenErr Error
hi def link smlCommentErr Error
hi def link smlCommentErr Error
hi def link smlEndErr Error
hi def link smlThenErr Error
hi def link smlEndErr Error
hi def link smlThenErr Error
hi def link smlCharErr Error
hi def link smlCharErr Error
hi def link smlComment Comment
hi def link smlComment Comment
hi def link smlModPath Include
hi def link smlModule Include
hi def link smlModParam1 Include
hi def link smlModType Include
hi def link smlMPRestr3 Include
hi def link smlFullMod Include
hi def link smlModPath Include
hi def link smlModule Include
hi def link smlModParam1 Include
hi def link smlModType Include
hi def link smlMPRestr3 Include
hi def link smlFullMod Include
hi def link smlModTypeRestr Include
hi def link smlWith Include
hi def link smlMTDef Include
hi def link smlWith Include
hi def link smlMTDef Include
hi def link smlConstructor Constant
hi def link smlModPreRHS Keyword
hi def link smlMPRestr2 Keyword
hi def link smlKeyword Keyword
hi def link smlFunDef Keyword
hi def link smlRefAssign Keyword
hi def link smlKeyChar Keyword
hi def link smlAnyVar Keyword
hi def link smlTopStop Keyword
hi def link smlOperator Keyword
hi def link smlModPreRHS Keyword
hi def link smlMPRestr2 Keyword
hi def link smlKeyword Keyword
hi def link smlFunDef Keyword
hi def link smlRefAssign Keyword
hi def link smlKeyChar Keyword
hi def link smlAnyVar Keyword
hi def link smlTopStop Keyword
hi def link smlOperator Keyword
hi def link smlBoolean Boolean
hi def link smlCharacter Character
hi def link smlNumber Number
hi def link smlReal Float
hi def link smlString String
hi def link smlType Type
hi def link smlTodo Todo
hi def link smlEncl Keyword
hi def link smlBoolean Boolean
hi def link smlCharacter Character
hi def link smlNumber Number
hi def link smlReal Float
hi def link smlString String
hi def link smlType Type
hi def link smlTodo Todo
hi def link smlEncl Keyword
let b:current_syntax = "sml"

File diff suppressed because it is too large Load Diff