Add mom.vim from GNU Troff (groff)
This commit is contained in:
parent
f6e2279fdc
commit
3efff08d4a
3 changed files with 142 additions and 0 deletions
1
pack/acp/start/mom.vim/ftdetect/mom.vim
Normal file
1
pack/acp/start/mom.vim/ftdetect/mom.vim
Normal file
|
@ -0,0 +1 @@
|
||||||
|
autocmd BufRead,BufNewFile *.mom set filetype=mom
|
140
pack/acp/start/mom.vim/syntax/mom.vim
Normal file
140
pack/acp/start/mom.vim/syntax/mom.vim
Normal file
|
@ -0,0 +1,140 @@
|
||||||
|
" Copyright (C) 2012-2020 Free Software Foundation, Inc.
|
||||||
|
"
|
||||||
|
" Copying and distribution of this file, with or without modification,
|
||||||
|
" are permitted in any medium without royalty provided the copyright
|
||||||
|
" notice and this notice are preserved.
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Language: mom
|
||||||
|
" Maintainer: Peter Schaffter (peter@schaffter.ca)
|
||||||
|
" Last Change: So 06 Mär 2005 17:28:13 CET
|
||||||
|
" Filenames: *.mom
|
||||||
|
" URL: http://www.cvjb.de/comp/vim/mom.vim
|
||||||
|
" Note: Remove or overwrite troff syntax for *.mom-files with filetype/filedetect.
|
||||||
|
" Version: 0.1
|
||||||
|
"
|
||||||
|
" Mom: Macro set for easy typesetting with troff/nroff/groff.
|
||||||
|
|
||||||
|
" 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")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Mom is case sensitive
|
||||||
|
syn case match
|
||||||
|
|
||||||
|
" Synchronization, I know it is a huge number, but normal texts can be
|
||||||
|
" _very_ long ;-)
|
||||||
|
syn sync lines=1000
|
||||||
|
|
||||||
|
" Characters allowed in keywords
|
||||||
|
if version >= 600
|
||||||
|
setlocal iskeyword=@,#,$,%,48-57,.,@-@,_,\\,{,},192-255
|
||||||
|
else
|
||||||
|
set iskeyword=@,#,$,%,48-57,.,@-@,_,\\,{,},192-255
|
||||||
|
endif
|
||||||
|
|
||||||
|
" mom/groff macros and requests (the initial dot or single-quote)
|
||||||
|
"
|
||||||
|
" Highlighting carries through to EOL; macro names, requests and
|
||||||
|
" arguments are contained
|
||||||
|
syn match startRequest /^\s*\(\.\|'\)\s*.*$/ contains=momMacro,groffCommentLine,groffRequest,momRegister,groffNoLineBreak,momInteger,groffUnit,momString,momSpecialParam,groffDelimiter,groffRegister,groffPreprocessor,groffBraces
|
||||||
|
|
||||||
|
" mom macros
|
||||||
|
syn region momMacro start=/^\s*\(\.\|'\)\s*\zs[A-Z0-9_(){}\[\]]\+/ end=/\s\+\|$/
|
||||||
|
|
||||||
|
" mom registers and strings
|
||||||
|
syn match momRegister /\(\$\|#\)[A-Za-z][_0-9A-Za-z]*/ contains=momRegisterStart
|
||||||
|
|
||||||
|
syn match momRegisterStart /#\|\$/ contained
|
||||||
|
|
||||||
|
" mom comment region
|
||||||
|
syn region momCommentRegion matchgroup=startRequest start='\<\.\(COMMENT\)\|\(SILENT\)\>' end='\<\.\(COMMENT\s\+OFF\)\|\(SILENT\s\+OFF\)\>' skip='$'
|
||||||
|
|
||||||
|
" groff requests
|
||||||
|
syn match groffRequest /^\s*\(\.\|'\)\s*\zs[a-z0-9]\+/
|
||||||
|
|
||||||
|
" groff comment region
|
||||||
|
syn region groffCommentLine start='\(\\!\)\|\(\\"\)\|\(\\#\)' end='$' contains=momTodo
|
||||||
|
syn region groffCommentRegion start="^\s*\.\s*ig" matchgroup=startRequest end="^\.\.$" contains=startRequest
|
||||||
|
|
||||||
|
" Preprocessor requests
|
||||||
|
syn match groffPreprocessor /[^A-Z]\zs\(EQ\s*$\|EN\s*$\|GS\s*$\|GE\s*$\|GF\s*$\|PS\s*$\|PE\s*$\|R1\s*$\|R2\s*$\|TS\s*$\|TE\s*$\|TH\s*$\)/ contained
|
||||||
|
syn match groffPreprocessor /[^A-Z]\zs\(G1\s*$\|G2\s*$\|IS\s*$\|IE\s*$\|cstart\s*$\|cend\s*$\)/ contained
|
||||||
|
|
||||||
|
" Preprocessor requests for refer
|
||||||
|
syn match groffPreprocessor /\(\[\s*$\|\]\s*$\)/ contained
|
||||||
|
|
||||||
|
" Quoted strings
|
||||||
|
syn region momString matchgroup=startRequest start='"\zs' end='"\|$' contains=groffNoLineBreak,groffGreek,groffSpecialChar,momInteger,momFloatEN,momFloatDE,momBracketRegion,momBracketError,momSpecialMove contained
|
||||||
|
|
||||||
|
" Special characters
|
||||||
|
syn match groffSpecialChar '\\\((\|\[\)[-+A-Za-z0-9*<>=~!\/]\+\]*'
|
||||||
|
|
||||||
|
" Greek symbols
|
||||||
|
syn match groffGreek '\\(\*[A-Za-z]\+'
|
||||||
|
|
||||||
|
" Hyphenation marks
|
||||||
|
syn match groffHyphenation '\\%'
|
||||||
|
|
||||||
|
" Masking of line breaks
|
||||||
|
syn match groffNoLineBreak /\\\s*$/ contains=groffBraces
|
||||||
|
|
||||||
|
" groff number and string register delimiters
|
||||||
|
syn region groffDelimiter start=/\\*\\\(n+*\|\*\)\((\|\[\)\</ end=/\(\s\|\]\|$\)/ contains=momRegister,groffRegister,groffOperators
|
||||||
|
|
||||||
|
" groff registers
|
||||||
|
syn match groffRegister /\\\((\|\[\)\zs\.*[a-z]\+/
|
||||||
|
|
||||||
|
" groff operators
|
||||||
|
syn match groffOperators /\(+\|-\|\/\|\*[^[]\)/ contained
|
||||||
|
|
||||||
|
" Units (of measure)
|
||||||
|
syn match groffUnit '[-+]\=\([0-9]\|]\)\+\zs[icPpvusfz]\=' contained
|
||||||
|
|
||||||
|
" Braces
|
||||||
|
syn match groffBraces /\(\\{\|\\}\)/ contained
|
||||||
|
|
||||||
|
" Error
|
||||||
|
syn match groffError '\\\[ \+[[:print:]]\+ \+[[:print:]]\+\]'
|
||||||
|
|
||||||
|
" 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_mom_syn_inits")
|
||||||
|
if version < 508
|
||||||
|
let did_mom_syn_inits = 1
|
||||||
|
command -nargs=+ HiLink hi link <args>
|
||||||
|
else
|
||||||
|
command -nargs=+ HiLink hi def link <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
HiLink groffError Error
|
||||||
|
HiLink groffBraces darkmagenta
|
||||||
|
HiLink groffCommentLine darkcyan
|
||||||
|
HiLink groffCommentRegion cyan
|
||||||
|
HiLink groffDelimiter cyan
|
||||||
|
HiLink groffGreek cyan
|
||||||
|
HiLink groffHyphenation cyan
|
||||||
|
HiLink groffNoLineBreak cyan
|
||||||
|
HiLink groffOperators white
|
||||||
|
HiLink groffPreprocessor brown
|
||||||
|
HiLink groffRegister darkgreen
|
||||||
|
HiLink groffRequest magenta
|
||||||
|
HiLink groffSpecialChar darkcyan
|
||||||
|
HiLink groffUnit brown
|
||||||
|
HiLink momCommentRegion darkcyan
|
||||||
|
HiLink momMacro red
|
||||||
|
HiLink momRegister green
|
||||||
|
HiLink momRegisterStart magenta
|
||||||
|
HiLink momSpecialParam red
|
||||||
|
HiLink momString white
|
||||||
|
HiLink startRequest yellow
|
||||||
|
delcommand HiLink
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax = "mom"
|
||||||
|
|
||||||
|
" vim:ts=8:sw=4:nocindent:smartindent:
|
|
@ -13,6 +13,7 @@ Git submodules are slow, so handle this manually.
|
||||||
* [gruvbox](https://github.com/morhetz/gruvbox)
|
* [gruvbox](https://github.com/morhetz/gruvbox)
|
||||||
* [landscape.vim](https://github.com/itchyny/landscape.vim)
|
* [landscape.vim](https://github.com/itchyny/landscape.vim)
|
||||||
* [limelight.vim](https://github.com/junegunn/limelight.vim)
|
* [limelight.vim](https://github.com/junegunn/limelight.vim)
|
||||||
|
* [mom.vim](http://git.savannah.gnu.org/cgit/groff.git/plain/contrib/mom/examples/mom.vim)
|
||||||
* [tempus-themes-vim](https://gitlab.com/protesilaos/tempus-themes-vim)
|
* [tempus-themes-vim](https://gitlab.com/protesilaos/tempus-themes-vim)
|
||||||
* [vim-actodo](https://github.com/acperkins/vim-actodo)
|
* [vim-actodo](https://github.com/acperkins/vim-actodo)
|
||||||
* [vim-speeddating](https://github.com/tpope/vim-speeddating)
|
* [vim-speeddating](https://github.com/tpope/vim-speeddating)
|
||||||
|
|
Loading…
Reference in a new issue