mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
parent
b1cd67b62e
commit
c1dd4e83b4
@ -1,11 +1,11 @@
|
|||||||
" Vim Compiler File
|
" Vim Compiler File
|
||||||
" Compiler: ocaml
|
" Compiler: ocaml
|
||||||
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
||||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
" URL: https://github.com/ocaml/vim-ocaml
|
||||||
" Last Change:
|
" Last Change:
|
||||||
|
" 2020 Mar 28 - Improved error format (Thomas Leonard)
|
||||||
" 2017 Nov 26 - Improved error format (Markus Mottl)
|
" 2017 Nov 26 - Improved error format (Markus Mottl)
|
||||||
" 2013 Aug 27 - Added a new OCaml 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:
|
" Marc Weber's comments:
|
||||||
" Setting makeprg doesn't make sense, because there is ocamlc, ocamlopt,
|
" Setting makeprg doesn't make sense, because there is ocamlc, ocamlopt,
|
||||||
@ -21,6 +21,7 @@
|
|||||||
"
|
"
|
||||||
" So having it here makes people opt-in
|
" So having it here makes people opt-in
|
||||||
|
|
||||||
|
|
||||||
if exists("current_compiler")
|
if exists("current_compiler")
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
@ -30,6 +31,7 @@ let s:cpo_save = &cpo
|
|||||||
set cpo&vim
|
set cpo&vim
|
||||||
|
|
||||||
CompilerSet errorformat =
|
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\\,\ characters\ %c-%*\\d\ %.%#,
|
\%EFile\ \"%f\"\\,\ line\ %l\\,\ characters\ %c-%*\\d\ %.%#,
|
||||||
\%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m,
|
\%EFile\ \"%f\"\\,\ line\ %l\\,\ character\ %c:%m,
|
||||||
|
@ -10495,7 +10495,7 @@ text...
|
|||||||
:exe[cute] {expr1} .. Executes the string that results from the evaluation
|
:exe[cute] {expr1} .. Executes the string that results from the evaluation
|
||||||
of {expr1} as an Ex command.
|
of {expr1} as an Ex command.
|
||||||
Multiple arguments are concatenated, with a space in
|
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.
|
operator to concatenate strings into one argument.
|
||||||
{expr1} is used as the processed command, command line
|
{expr1} is used as the processed command, command line
|
||||||
editing keys are not recognized.
|
editing keys are not recognized.
|
||||||
|
@ -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"
|
will be opened. Otherwise the specified tag is searched for in all "doc/tags"
|
||||||
files in the directories specified in the 'runtimepath' option.
|
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
|
The initial height of the help window can be set with the 'helpheight' option
|
||||||
(default 20).
|
(default 20).
|
||||||
|
|
||||||
|
@ -762,6 +762,9 @@ and the screen is about to be redrawn:
|
|||||||
-> Press <Enter> or <Space> to redraw the screen and continue, without that
|
-> Press <Enter> or <Space> to redraw the screen and continue, without that
|
||||||
key being used otherwise.
|
key being used otherwise.
|
||||||
-> Press ':' or any other Normal mode command character to start that command.
|
-> 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
|
-> 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.
|
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
|
-> Pressing 'j', 'f', 'd' or <Down> is ignored when messages scrolled off the
|
||||||
|
@ -384,15 +384,19 @@ the pattern will not match. This is only useful when debugging Vim.
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
3. Magic */magic*
|
3. Magic */magic*
|
||||||
|
|
||||||
Some characters in the pattern are taken literally. They match with the same
|
Some characters in the pattern, such as letters, are taken literally. They
|
||||||
character in the text. When preceded with a backslash however, these
|
match exactly the same character in the text. When preceded with a backslash
|
||||||
characters get a special meaning.
|
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
|
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
|
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*
|
*/\m* */\M*
|
||||||
Use of "\m" makes the pattern after it be interpreted as if 'magic' is set,
|
Use of "\m" makes the pattern after it be interpreted as if 'magic' is set,
|
||||||
ignoring the actual value of the 'magic' option.
|
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',
|
Use of "\v" means that after it, all ASCII characters except '0'-'9', 'a'-'z',
|
||||||
'A'-'Z' and '_' have special meaning: "very magic"
|
'A'-'Z' and '_' have special meaning: "very magic"
|
||||||
|
|
||||||
Use of "\V" means that after it, only a backslash and terminating character
|
Use of "\V" means that after it, only a backslash and the terminating
|
||||||
(usually / or ?) have special meaning: "very nomagic"
|
character (usually / or ?) have special meaning: "very nomagic"
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
after: \v \m \M \V matches ~
|
after: \v \m \M \V matches ~
|
||||||
'magic' 'nomagic'
|
'magic' 'nomagic'
|
||||||
$ $ $ \$ matches end-of-line
|
a a a a literal 'a'
|
||||||
. . \. \. matches any character
|
\a \a \a \a any alphabetic character
|
||||||
|
. . \. \. any character
|
||||||
|
\. \. . . literal dot
|
||||||
|
$ $ $ \$ end-of-line
|
||||||
* * \* \* any number of the previous atom
|
* * \* \* any number of the previous atom
|
||||||
~ ~ \~ \~ latest substitute string
|
~ ~ \~ \~ latest substitute string
|
||||||
() \(\) \(\) \(\) grouping into an atom
|
() \(\) \(\) \(\) group as an atom
|
||||||
| \| \| \| separating alternatives
|
| \| \| \| nothing: separates alternatives
|
||||||
\a \a \a \a alphabetic character
|
|
||||||
\\ \\ \\ \\ literal backslash
|
\\ \\ \\ \\ literal backslash
|
||||||
\. \. . . literal dot
|
\{ { { { literal curly brace
|
||||||
\{ { { { literal '{'
|
|
||||||
a a a a literal 'a'
|
|
||||||
|
|
||||||
{only Vim supports \m, \M, \v and \V}
|
{only Vim supports \m, \M, \v and \V}
|
||||||
|
|
||||||
It is recommended to always keep the 'magic' option at the default setting,
|
If you want to you can make a pattern immune to the 'magic' option being set
|
||||||
which is 'magic'. This avoids portability problems. To make a pattern immune
|
or not by putting "\m" or "\M" at the start of the pattern.
|
||||||
to the 'magic' option being set or not, put "\m" or "\M" at the start of the
|
|
||||||
pattern.
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
4. Overview of pattern items *pattern-overview*
|
4. Overview of pattern items *pattern-overview*
|
||||||
|
@ -446,4 +446,28 @@ A slightly more advanced version is used in the |matchparen| plugin.
|
|||||||
autocmd InsertEnter * match none
|
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:
|
vim:tw=78:ts=8:noet:ft=help:norl:
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
" Language: Dune buildsystem
|
" Language: Dune buildsystem
|
||||||
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
||||||
" Anton Kochkov <anton.kochkov@gmail.com>
|
" Anton Kochkov <anton.kochkov@gmail.com>
|
||||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
" URL: https://github.com/ocaml/vim-ocaml
|
||||||
" Last Change:
|
" Last Change:
|
||||||
" 2018 Nov 3 - Added commentstring (Markus Mottl)
|
" 2018 Nov 3 - Added commentstring (Markus Mottl)
|
||||||
" 2017 Sep 6 - Initial version (Etienne Millon)
|
" 2017 Sep 6 - Initial version (Etienne Millon)
|
||||||
|
19
runtime/ftplugin/fstab.vim
Normal file
19
runtime/ftplugin/fstab.vim
Normal 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
|
@ -5,7 +5,7 @@
|
|||||||
" Pierre Vittet <pierre-vittet@pvittet.com>
|
" Pierre Vittet <pierre-vittet@pvittet.com>
|
||||||
" Stefano Zacchiroli <zack@bononia.it>
|
" Stefano Zacchiroli <zack@bononia.it>
|
||||||
" Vincent Aravantinos <firstname.name@imag.fr>
|
" Vincent Aravantinos <firstname.name@imag.fr>
|
||||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
" URL: https://github.com/ocaml/vim-ocaml
|
||||||
" Last Change:
|
" Last Change:
|
||||||
" 2013 Oct 27 - Added commentstring (MM)
|
" 2013 Oct 27 - Added commentstring (MM)
|
||||||
" 2013 Jul 26 - load default compiler settings (MM)
|
" 2013 Jul 26 - load default compiler settings (MM)
|
||||||
@ -38,7 +38,8 @@ let s:cposet=&cpoptions
|
|||||||
set cpo&vim
|
set cpo&vim
|
||||||
|
|
||||||
" Comment string
|
" Comment string
|
||||||
setlocal comments=
|
setlocal comments=sr:(*\ ,mb:\ ,ex:*)
|
||||||
|
setlocal comments^=sr:(**,mb:\ \ ,ex:*)
|
||||||
setlocal commentstring=(*%s*)
|
setlocal commentstring=(*%s*)
|
||||||
|
|
||||||
" Add mappings, unless the user didn't want this.
|
" Add mappings, unless the user didn't want this.
|
||||||
@ -391,8 +392,8 @@ endfunction
|
|||||||
endif
|
endif
|
||||||
endfun
|
endfun
|
||||||
|
|
||||||
" This variable contain a dictionnary of list. Each element of the dictionnary
|
" This variable contains a dictionary of lists. Each element of the dictionary
|
||||||
" represent an annotation system. An annotation system is a list with:
|
" represents an annotation system. An annotation system is a list with:
|
||||||
" - annotation file name as its key
|
" - annotation file name as its key
|
||||||
" - annotation file path as first element of the contained list
|
" - annotation file path as first element of the contained list
|
||||||
" - build path as second 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
|
"c. link this stuff with what the user wants
|
||||||
" ie. get the expression selected/under the cursor
|
" 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.)
|
"In: the current mode (eg. "visual", "normal", etc.)
|
||||||
"Out: the borders of the expression we are looking for the type
|
"Out: the borders of the expression we are looking for the type
|
||||||
|
15
runtime/ftplugin/sexplib.vim
Normal file
15
runtime/ftplugin/sexplib.vim
Normal 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
13
runtime/indent/dune.vim
Normal 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
|
@ -3,7 +3,7 @@
|
|||||||
" Maintainers: Jean-Francois Yuen <jfyuen@happycoders.org>
|
" Maintainers: Jean-Francois Yuen <jfyuen@happycoders.org>
|
||||||
" Mike Leary <leary@nwlink.com>
|
" Mike Leary <leary@nwlink.com>
|
||||||
" Markus Mottl <markus.mottl@gmail.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
|
" Last Change: 2017 Jun 13
|
||||||
" 2005 Jun 25 - Fixed multiple bugs due to 'else\nreturn ind' working
|
" 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)
|
" 2005 May 09 - Added an option to not indent OCaml-indents specially (MM)
|
||||||
@ -30,7 +30,8 @@ setlocal nosmartindent
|
|||||||
" Comment formatting
|
" Comment formatting
|
||||||
if !exists("no_ocaml_comments")
|
if !exists("no_ocaml_comments")
|
||||||
if (has("comments"))
|
if (has("comments"))
|
||||||
setlocal comments=sr:(*,mb:*,ex:*)
|
setlocal comments=sr:(*\ ,mb:\ ,ex:*)
|
||||||
|
setlocal comments^=sr:(**,mb:\ \ ,ex:*)
|
||||||
setlocal fo=cqort
|
setlocal fo=cqort
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
" Language: Diff (context or unified)
|
" Language: Diff (context or unified)
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Translations by Jakson Alves de Aquino.
|
" 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
|
" Quit when a (custom) syntax file was already loaded
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
@ -348,11 +348,16 @@ syn match diffLine "^\d\+\(,\d\+\)\=[cda]\d\+\>.*"
|
|||||||
syn match diffFile "^diff\>.*"
|
syn match diffFile "^diff\>.*"
|
||||||
syn match diffFile "^Index: .*"
|
syn match diffFile "^Index: .*"
|
||||||
syn match diffFile "^==== .*"
|
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.
|
if search('^@@ -\S\+ +\S\+ @@', 'nw', '', 100)
|
||||||
syn match diffOldFile "^+++ .*"
|
" unified
|
||||||
syn match diffOldFile "^\*\*\* .*"
|
syn match diffOldFile "^--- .*"
|
||||||
syn match diffNewFile "^--- .*"
|
syn match diffNewFile "^+++ .*"
|
||||||
|
else
|
||||||
|
" context / old style
|
||||||
|
syn match diffOldFile "^\*\*\* .*"
|
||||||
|
syn match diffNewFile "^--- .*"
|
||||||
|
endif
|
||||||
|
|
||||||
" Used by git
|
" Used by git
|
||||||
syn match diffIndexLine "^index \x\x\x\x.*"
|
syn match diffIndexLine "^index \x\x\x\x.*"
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
|
" Vim syntax file
|
||||||
" Language: Dune buildsystem
|
" Language: Dune buildsystem
|
||||||
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
|
||||||
" Anton Kochkov <anton.kochkov@gmail.com>
|
" Anton Kochkov <anton.kochkov@gmail.com>
|
||||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
" URL: https://github.com/ocaml/vim-ocaml
|
||||||
" Last Change:
|
" Last Change:
|
||||||
" 2019 Feb 27 - Add newer keywords to the syntax (Simon Cruanes)
|
" 2019 Feb 27 - Add newer keywords to the syntax (Simon Cruanes)
|
||||||
" 2018 May 8 - Check current_syntax (Kawahara Satoru)
|
" 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 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 library_flags c_flags c_library_flags kind package action
|
||||||
syn keyword lispKey deps targets locks fallback
|
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
|
syn keyword lispAtom true false
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: fstab file
|
" Language: fstab file
|
||||||
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
|
" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
|
||||||
" URL: https://raw.github.com/rid9/vim-fstab/master/fstab.vim
|
" URL: https://raw.github.com/rid9/vim-fstab/master/syntax/fstab.vim
|
||||||
" Last Change: 2020 Aug 06
|
" Last Change: 2020 Dec 30
|
||||||
" Version: 1.4
|
" Version: 1.4
|
||||||
"
|
"
|
||||||
" Credits:
|
" Credits:
|
||||||
|
216
runtime/syntax/gift.vim
Normal file
216
runtime/syntax/gift.vim
Normal 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 "<" 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
|
@ -4,7 +4,7 @@
|
|||||||
" Maintainers: Markus Mottl <markus.mottl@gmail.com>
|
" Maintainers: Markus Mottl <markus.mottl@gmail.com>
|
||||||
" Karl-Heinz Sylla <Karl-Heinz.Sylla@gmd.de>
|
" Karl-Heinz Sylla <Karl-Heinz.Sylla@gmd.de>
|
||||||
" Issac Trotts <ijtrotts@ucdavis.edu>
|
" Issac Trotts <ijtrotts@ucdavis.edu>
|
||||||
" URL: https://github.com/rgrinberg/vim-ocaml
|
" URL: https://github.com/ocaml/vim-ocaml
|
||||||
" Last Change:
|
" Last Change:
|
||||||
" 2018 Nov 08 - Improved highlighting of operators (Maëlan)
|
" 2018 Nov 08 - Improved highlighting of operators (Maëlan)
|
||||||
" 2018 Apr 22 - Improved support for PPX (Andrey Popp)
|
" 2018 Apr 22 - Improved support for PPX (Andrey Popp)
|
||||||
@ -18,14 +18,20 @@
|
|||||||
" can be distinguished from begin/end, which is used for indentation,
|
" can be distinguished from begin/end, which is used for indentation,
|
||||||
" and folding. (David Baelde)
|
" 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"
|
if exists("b:current_syntax") && b:current_syntax == "ocaml"
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
let s:keepcpo = &cpo
|
||||||
|
set cpo&vim
|
||||||
|
|
||||||
" ' can be used in OCaml identifiers
|
" ' can be used in OCaml identifiers
|
||||||
setlocal iskeyword+='
|
setlocal iskeyword+='
|
||||||
|
|
||||||
|
" ` is part of the name of polymorphic variants
|
||||||
|
setlocal iskeyword+=`
|
||||||
|
|
||||||
" OCaml is case sensitive.
|
" OCaml is case sensitive.
|
||||||
syn case match
|
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
|
syn region ocamlModSpec matchgroup=ocamlKeyword start="\<module\>" matchgroup=ocamlModule end="\<\u\(\w\|'\)*\>" contained contains=@ocamlAllErrs,ocamlComment skipwhite skipempty nextgroup=ocamlModTRWith,ocamlMPRestr
|
||||||
|
|
||||||
" "open"
|
" "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"
|
" "include"
|
||||||
syn match ocamlKeyword "\<include\>" skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod
|
syn match ocamlKeyword "\<include\>" skipwhite skipempty nextgroup=ocamlModParam,ocamlFullMod
|
||||||
@ -225,7 +231,18 @@ syn match ocamlStar "*"
|
|||||||
syn match ocamlAngle "<"
|
syn match ocamlAngle "<"
|
||||||
syn match ocamlAngle ">"
|
syn match ocamlAngle ">"
|
||||||
" Custom indexing operators:
|
" 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):
|
" Extension operators (has to be declared before regular infix operators):
|
||||||
syn match ocamlExtensionOp "#[#~?!.:|&$%<=>@^*/+-]\+"
|
syn match ocamlExtensionOp "#[#~?!.:|&$%<=>@^*/+-]\+"
|
||||||
" Infix and prefix operators:
|
" Infix and prefix operators:
|
||||||
@ -283,7 +300,6 @@ syn sync match ocamlSigSync grouphere ocamlSig "\<sig\>"
|
|||||||
syn sync match ocamlSigSync groupthere ocamlSig "\<end\>"
|
syn sync match ocamlSigSync groupthere ocamlSig "\<end\>"
|
||||||
|
|
||||||
" Define the default highlighting.
|
" Define the default highlighting.
|
||||||
" Only when an item doesn't have highlighting yet
|
|
||||||
|
|
||||||
hi def link ocamlBraceErr Error
|
hi def link ocamlBraceErr Error
|
||||||
hi def link ocamlBrackErr Error
|
hi def link ocamlBrackErr Error
|
||||||
@ -308,9 +324,12 @@ hi def link ocamlModPath Include
|
|||||||
hi def link ocamlObject Include
|
hi def link ocamlObject Include
|
||||||
hi def link ocamlModule Include
|
hi def link ocamlModule Include
|
||||||
hi def link ocamlModParam1 Include
|
hi def link ocamlModParam1 Include
|
||||||
|
hi def link ocamlGenMod Include
|
||||||
hi def link ocamlModType Include
|
hi def link ocamlModType Include
|
||||||
hi def link ocamlMPRestr3 Include
|
hi def link ocamlMPRestr3 Include
|
||||||
hi def link ocamlFullMod Include
|
hi def link ocamlFullMod Include
|
||||||
|
hi def link ocamlFuncWith Include
|
||||||
|
hi def link ocamlModParam Include
|
||||||
hi def link ocamlModTypeRestr Include
|
hi def link ocamlModTypeRestr Include
|
||||||
hi def link ocamlWith Include
|
hi def link ocamlWith Include
|
||||||
hi def link ocamlMTDef Include
|
hi def link ocamlMTDef Include
|
||||||
@ -326,6 +345,7 @@ hi def link ocamlModPreRHS Keyword
|
|||||||
hi def link ocamlMPRestr2 Keyword
|
hi def link ocamlMPRestr2 Keyword
|
||||||
hi def link ocamlKeyword Keyword
|
hi def link ocamlKeyword Keyword
|
||||||
hi def link ocamlMethod Include
|
hi def link ocamlMethod Include
|
||||||
|
hi def link ocamlArrow Keyword
|
||||||
hi def link ocamlKeyChar Keyword
|
hi def link ocamlKeyChar Keyword
|
||||||
hi def link ocamlAnyVar Keyword
|
hi def link ocamlAnyVar Keyword
|
||||||
hi def link ocamlTopStop Keyword
|
hi def link ocamlTopStop Keyword
|
||||||
@ -367,4 +387,7 @@ hi def link ocamlPpxEncl ocamlEncl
|
|||||||
|
|
||||||
let b:current_syntax = "ocaml"
|
let b:current_syntax = "ocaml"
|
||||||
|
|
||||||
|
let &cpo = s:keepcpo
|
||||||
|
unlet s:keepcpo
|
||||||
|
|
||||||
" vim: ts=8
|
" vim: ts=8
|
||||||
|
38
runtime/syntax/opam.vim
Normal file
38
runtime/syntax/opam.vim
Normal 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
|
88
runtime/syntax/sexplib.vim
Normal file
88
runtime/syntax/sexplib.vim
Normal 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
|
@ -3,13 +3,16 @@
|
|||||||
" Filenames: *.sml *.sig
|
" Filenames: *.sml *.sig
|
||||||
" Maintainers: Markus Mottl <markus.mottl@gmail.com>
|
" Maintainers: Markus Mottl <markus.mottl@gmail.com>
|
||||||
" Fabrizio Zeno Cornelli <zeno@filibusta.crema.unimi.it>
|
" Fabrizio Zeno Cornelli <zeno@filibusta.crema.unimi.it>
|
||||||
" URL: http://www.ocaml.info/vim/syntax/sml.vim
|
" Last Change: 2019 Oct 01 - Only spell check strings & comments (Chuan Wei Foo)
|
||||||
" Last Change: 2006 Oct 23 - Fixed character highlighting bug (MM)
|
" 2015 Aug 31 - Fixed opening of modules (Ramana Kumar)
|
||||||
" 2002 Jun 02 - Fixed small typo (MM)
|
" 2006 Oct 23 - Fixed character highlighting bug (MM)
|
||||||
" 2001 Nov 20 - Fixed small highlighting bug with modules (MM)
|
|
||||||
|
|
||||||
" quit when a syntax file was already loaded
|
" quit when a syntax file was already loaded
|
||||||
if exists("b:current_syntax")
|
if exists("b:current_syntax")
|
||||||
|
|
||||||
|
" Disable spell checking of syntax.
|
||||||
|
syn spell notoplevel
|
||||||
|
|
||||||
finish
|
finish
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -52,7 +55,7 @@ syn region smlEncl transparent matchgroup=smlKeyword start="#\[" matchgroup=sm
|
|||||||
|
|
||||||
|
|
||||||
" Comments
|
" 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
|
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
|
syn region smlModSpec matchgroup=smlKeyword start="\<structure\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contained contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlModTRWith,smlMPRestr
|
||||||
|
|
||||||
" "open"
|
" "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 ;-)
|
" "structure" - somewhat complicated stuff ;-)
|
||||||
syn region smlModule matchgroup=smlKeyword start="\<\(structure\|functor\)\>" matchgroup=smlModule end="\<\u\(\w\|'\)*\>" contains=@smlAllErrs,smlComment skipwhite skipempty nextgroup=smlPreDef
|
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 smlCharacter +#"\\""\|#"."\|#"\\\d\d\d"+
|
||||||
syn match smlCharErr +#"\\\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 smlFunDef "=>"
|
||||||
syn match smlRefAssign ":="
|
syn match smlRefAssign ":="
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user