diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2021-05-01 21:56:01 -0400 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2021-05-01 22:29:03 -0400 |
commit | c1dd4e83b494d19a5ebcb7ffb936cb4649f11637 (patch) | |
tree | cf945ae6c174d372c74497efa8baee2e7aeabc7f /runtime | |
parent | b1cd67b62e58c7f7d4139416e6813f8f50bc0fd6 (diff) | |
download | rneovim-c1dd4e83b494d19a5ebcb7ffb936cb4649f11637.tar.gz rneovim-c1dd4e83b494d19a5ebcb7ffb936cb4649f11637.tar.bz2 rneovim-c1dd4e83b494d19a5ebcb7ffb936cb4649f11637.zip |
vim-patch:7e6a515ed14e
Update runtime files.
https://github.com/vim/vim/commit/7e6a515ed14e204fafb3dd6e98f2fb543e64aedd
Omit vim9.
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/compiler/ocaml.vim | 6 | ||||
-rw-r--r-- | runtime/doc/eval.txt | 2 | ||||
-rw-r--r-- | runtime/doc/helphelp.txt | 3 | ||||
-rw-r--r-- | runtime/doc/message.txt | 3 | ||||
-rw-r--r-- | runtime/doc/pattern.txt | 40 | ||||
-rw-r--r-- | runtime/doc/tips.txt | 24 | ||||
-rw-r--r-- | runtime/ftplugin/dune.vim | 2 | ||||
-rw-r--r-- | runtime/ftplugin/fstab.vim | 19 | ||||
-rw-r--r-- | runtime/ftplugin/ocaml.vim | 11 | ||||
-rw-r--r-- | runtime/ftplugin/sexplib.vim | 15 | ||||
-rw-r--r-- | runtime/indent/dune.vim | 13 | ||||
-rw-r--r-- | runtime/indent/ocaml.vim | 5 | ||||
-rw-r--r-- | runtime/syntax/diff.vim | 17 | ||||
-rw-r--r-- | runtime/syntax/dune.vim | 5 | ||||
-rw-r--r-- | runtime/syntax/fstab.vim | 4 | ||||
-rw-r--r-- | runtime/syntax/gift.vim | 216 | ||||
-rw-r--r-- | runtime/syntax/ocaml.vim | 61 | ||||
-rw-r--r-- | runtime/syntax/opam.vim | 38 | ||||
-rw-r--r-- | runtime/syntax/sexplib.vim | 88 | ||||
-rw-r--r-- | runtime/syntax/sml.vim | 91 |
20 files changed, 560 insertions, 103 deletions
diff --git a/runtime/compiler/ocaml.vim b/runtime/compiler/ocaml.vim index 7f8a7eab67..faa8af1f5f 100644 --- a/runtime/compiler/ocaml.vim +++ b/runtime/compiler/ocaml.vim @@ -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, diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index b0bad1ffe1..6d80c60270 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -10495,7 +10495,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. diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt index 2f00d19b71..7643d84017 100644 --- a/runtime/doc/helphelp.txt +++ b/runtime/doc/helphelp.txt @@ -159,6 +159,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). diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt index 4df53a561e..6fbd9ec922 100644 --- a/runtime/doc/message.txt +++ b/runtime/doc/message.txt @@ -762,6 +762,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 'more' is on. -> Pressing 'j', 'f', 'd' or <Down> is ignored when messages scrolled off the diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt index 3c7a20dd49..86712cdfe1 100644 --- a/runtime/doc/pattern.txt +++ b/runtime/doc/pattern.txt @@ -384,15 +384,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. @@ -401,30 +405,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* diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt index 1362b730b7..bcb2e48cbf 100644 --- a/runtime/doc/tips.txt +++ b/runtime/doc/tips.txt @@ -446,4 +446,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: diff --git a/runtime/ftplugin/dune.vim b/runtime/ftplugin/dune.vim index 8b1f8b4125..86c99c097f 100644 --- a/runtime/ftplugin/dune.vim +++ b/runtime/ftplugin/dune.vim @@ -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) diff --git a/runtime/ftplugin/fstab.vim b/runtime/ftplugin/fstab.vim new file mode 100644 index 0000000000..3e7af9fb30 --- /dev/null +++ b/runtime/ftplugin/fstab.vim @@ -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
\ No newline at end of file diff --git a/runtime/ftplugin/ocaml.vim b/runtime/ftplugin/ocaml.vim index d9336421cf..793b887afc 100644 --- a/runtime/ftplugin/ocaml.vim +++ b/runtime/ftplugin/ocaml.vim @@ -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,8 +392,8 @@ 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: + " 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 @@ -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|[À-ÿ]|''' + 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 diff --git a/runtime/ftplugin/sexplib.vim b/runtime/ftplugin/sexplib.vim new file mode 100644 index 0000000000..27e1b28370 --- /dev/null +++ b/runtime/ftplugin/sexplib.vim @@ -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=:; diff --git a/runtime/indent/dune.vim b/runtime/indent/dune.vim new file mode 100644 index 0000000000..0590d66d13 --- /dev/null +++ b/runtime/indent/dune.vim @@ -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 diff --git a/runtime/indent/ocaml.vim b/runtime/indent/ocaml.vim index 8fe9de3d61..19c81f49c4 100644 --- a/runtime/indent/ocaml.vim +++ b/runtime/indent/ocaml.vim @@ -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 diff --git a/runtime/syntax/diff.vim b/runtime/syntax/diff.vim index ac43d6650a..408556ac13 100644 --- a/runtime/syntax/diff.vim +++ b/runtime/syntax/diff.vim @@ -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.*" diff --git a/runtime/syntax/dune.vim b/runtime/syntax/dune.vim index f901813d24..b4254057c0 100644 --- a/runtime/syntax/dune.vim +++ b/runtime/syntax/dune.vim @@ -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 diff --git a/runtime/syntax/fstab.vim b/runtime/syntax/fstab.vim index 6b17b5a35e..318488713b 100644 --- a/runtime/syntax/fstab.vim +++ b/runtime/syntax/fstab.vim @@ -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: diff --git a/runtime/syntax/gift.vim b/runtime/syntax/gift.vim new file mode 100644 index 0000000000..3f8d631ec0 --- /dev/null +++ b/runtime/syntax/gift.vim @@ -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 "<" contained conceal cchar=< "HTML escaped characters +syn match giftEH ">" contained conceal cchar=> +syn match giftEH "&" contained conceal cchar=& +syn match giftEH " " 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 diff --git a/runtime/syntax/ocaml.vim b/runtime/syntax/ocaml.vim index 42913f228e..af3efd3dab 100644 --- a/runtime/syntax/ocaml.vim +++ b/runtime/syntax/ocaml.vim @@ -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 diff --git a/runtime/syntax/opam.vim b/runtime/syntax/opam.vim new file mode 100644 index 0000000000..9ac1d41ce7 --- /dev/null +++ b/runtime/syntax/opam.vim @@ -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 diff --git a/runtime/syntax/sexplib.vim b/runtime/syntax/sexplib.vim new file mode 100644 index 0000000000..55dd3fb494 --- /dev/null +++ b/runtime/syntax/sexplib.vim @@ -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 diff --git a/runtime/syntax/sml.vim b/runtime/syntax/sml.vim index fa4524f93d..afff5304e6 100644 --- a/runtime/syntax/sml.vim +++ b/runtime/syntax/sml.vim @@ -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 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 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 let b:current_syntax = "sml" |