mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 11:15:14 -07:00
a98a6996c2
Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7 Excluding: Amiga icons (*.info, icons/) doc/hangulin.txt tutor/ spell/ lang/ (only used for menu translations) macros/maze/, macros/hanoi/, macros/life/, macros/urm/ These were used to test vi compatibility. termcap "Demonstration of a termcap file (for the Amiga and Archimedes)" Helped-by: Rich Wareham <rjw57@cam.ac.uk> Helped-by: John <john.schmidt.h@gmail.com> Helped-by: Yann <yann@yann-salaun.com> Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com> Helped-by: drasill <github@tof2k.com> Helped-by: Tae Sandoval Murgan <taecilla@gmail.com> Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
265 lines
7.9 KiB
VimL
265 lines
7.9 KiB
VimL
" VIM syntax file
|
|
" Language: nroff/groff
|
|
" Maintainer: Pedro Alejandro López-Valencia <palopezv@gmail.com>
|
|
" URL: http://vorbote.wordpress.com/
|
|
" Last Change: 2012 Feb 2
|
|
"
|
|
" {{{1 Acknowledgements
|
|
"
|
|
" ACKNOWLEDGEMENTS:
|
|
"
|
|
" My thanks to Jérôme Plût <Jerome.Plut@ens.fr>, who was the
|
|
" creator and maintainer of this syntax file for several years.
|
|
" May I be as good at it as he has been.
|
|
"
|
|
" {{{1 Todo
|
|
"
|
|
" TODO:
|
|
"
|
|
" * Write syntax highlighting files for the preprocessors,
|
|
" and integrate with nroff.vim.
|
|
"
|
|
"
|
|
" {{{1 Start syntax highlighting.
|
|
"
|
|
" 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
|
|
|
|
let s:cpo_save = &cpo
|
|
set cpo&vim
|
|
|
|
"
|
|
" {{{1 plugin settings...
|
|
"
|
|
" {{{2 enable spacing error highlighting
|
|
"
|
|
if exists("nroff_space_errors")
|
|
syn match nroffError /\s\+$/
|
|
syn match nroffSpaceError /[.,:;!?]\s\{2,}/
|
|
endif
|
|
"
|
|
"
|
|
" {{{1 Special file settings
|
|
"
|
|
" {{{2 ms exdented paragraphs are not in the default paragraphs list.
|
|
"
|
|
setlocal paragraphs+=XP
|
|
"
|
|
" {{{2 Activate navigation to preporcessor sections.
|
|
"
|
|
if exists("b:preprocs_as_sections")
|
|
setlocal sections=EQTSPS[\ G1GS
|
|
endif
|
|
|
|
" {{{1 Escape sequences
|
|
" ------------------------------------------------------------
|
|
|
|
syn match nroffEscChar /\\[CN]/ nextgroup=nroffEscCharArg
|
|
syn match nroffEscape /\\[*fgmnYV]/ nextgroup=nroffEscRegPar,nroffEscRegArg
|
|
syn match nroffEscape /\\s[+-]\=/ nextgroup=nroffSize
|
|
syn match nroffEscape /\\[$AbDhlLRvxXZ]/ nextgroup=nroffEscPar,nroffEscArg
|
|
|
|
syn match nroffEscRegArg /./ contained
|
|
syn match nroffEscRegArg2 /../ contained
|
|
syn match nroffEscRegPar /(/ contained nextgroup=nroffEscRegArg2
|
|
syn match nroffEscArg /./ contained
|
|
syn match nroffEscArg2 /../ contained
|
|
syn match nroffEscPar /(/ contained nextgroup=nroffEscArg2
|
|
syn match nroffSize /\((\d\)\=\d/ contained
|
|
|
|
syn region nroffEscCharArg start=/'/ end=/'/ contained
|
|
syn region nroffEscArg start=/'/ end=/'/ contained contains=nroffEscape,@nroffSpecial
|
|
|
|
if exists("b:nroff_is_groff")
|
|
syn region nroffEscRegArg matchgroup=nroffEscape start=/\[/ end=/\]/ contained oneline
|
|
syn region nroffSize matchgroup=nroffEscape start=/\[/ end=/\]/ contained
|
|
endif
|
|
|
|
syn match nroffEscape /\\[adprtu{}]/
|
|
syn match nroffEscape /\\$/
|
|
syn match nroffEscape /\\\$[@*]/
|
|
|
|
" {{{1 Strings and special characters
|
|
" ------------------------------------------------------------
|
|
|
|
syn match nroffSpecialChar /\\[\\eE?!-]/
|
|
syn match nroffSpace "\\[&%~|^0)/,]"
|
|
syn match nroffSpecialChar /\\(../
|
|
|
|
if exists("b:nroff_is_groff")
|
|
syn match nroffSpecialChar /\\\[[^]]*]/
|
|
syn region nroffPreserve matchgroup=nroffSpecialChar start=/\\?/ end=/\\?/ oneline
|
|
endif
|
|
|
|
syn region nroffPreserve matchgroup=nroffSpecialChar start=/\\!/ end=/$/ oneline
|
|
|
|
syn cluster nroffSpecial contains=nroffSpecialChar,nroffSpace
|
|
|
|
|
|
syn region nroffString start=/"/ end=/"/ skip=/\\$/ contains=nroffEscape,@nroffSpecial contained
|
|
syn region nroffString start=/'/ end=/'/ skip=/\\$/ contains=nroffEscape,@nroffSpecial contained
|
|
|
|
|
|
" {{{1 Numbers and units
|
|
" ------------------------------------------------------------
|
|
syn match nroffNumBlock /[0-9.]\a\=/ contained contains=nroffNumber
|
|
syn match nroffNumber /\d\+\(\.\d*\)\=/ contained nextgroup=nroffUnit,nroffBadChar
|
|
syn match nroffNumber /\.\d\+)/ contained nextgroup=nroffUnit,nroffBadChar
|
|
syn match nroffBadChar /./ contained
|
|
syn match nroffUnit /[icpPszmnvMu]/ contained
|
|
|
|
|
|
" {{{1 Requests
|
|
" ------------------------------------------------------------
|
|
|
|
" Requests begin with . or ' at the beginning of a line, or
|
|
" after .if or .ie.
|
|
|
|
syn match nroffReqLeader /^[.']/ nextgroup=nroffReqName skipwhite
|
|
syn match nroffReqLeader /[.']/ contained nextgroup=nroffReqName skipwhite
|
|
|
|
if exists("b:nroff_is_groff")
|
|
"
|
|
" GNU troff allows long request names
|
|
"
|
|
syn match nroffReqName /[^\t \\\[?]\+/ contained nextgroup=nroffReqArg
|
|
else
|
|
syn match nroffReqName /[^\t \\\[?]\{1,2}/ contained nextgroup=nroffReqArg
|
|
endif
|
|
|
|
syn region nroffReqArg start=/\S/ skip=/\\$/ end=/$/ contained contains=nroffEscape,@nroffSpecial,nroffString,nroffError,nroffSpaceError,nroffNumBlock,nroffComment
|
|
|
|
" {{{2 Conditional: .if .ie .el
|
|
syn match nroffReqName /\(if\|ie\)/ contained nextgroup=nroffCond skipwhite
|
|
syn match nroffReqName /el/ contained nextgroup=nroffReqLeader skipwhite
|
|
syn match nroffCond /\S\+/ contained nextgroup=nroffReqLeader skipwhite
|
|
|
|
" {{{2 String definition: .ds .as
|
|
syn match nroffReqname /[da]s/ contained nextgroup=nroffDefIdent skipwhite
|
|
syn match nroffDefIdent /\S\+/ contained nextgroup=nroffDefinition skipwhite
|
|
syn region nroffDefinition matchgroup=nroffSpecialChar start=/"/ matchgroup=NONE end=/\\"/me=e-2 skip=/\\$/ start=/\S/ end=/$/ contained contains=nroffDefSpecial
|
|
syn match nroffDefSpecial /\\$/ contained
|
|
syn match nroffDefSpecial /\\\((.\)\=./ contained
|
|
|
|
if exists("b:nroff_is_groff")
|
|
syn match nroffDefSpecial /\\\[[^]]*]/ contained
|
|
endif
|
|
|
|
" {{{2 Macro definition: .de .am, also diversion: .di
|
|
syn match nroffReqName /\(d[ei]\|am\)/ contained nextgroup=nroffIdent skipwhite
|
|
syn match nroffIdent /[^[?( \t]\+/ contained
|
|
if exists("b:nroff_is_groff")
|
|
syn match nroffReqName /als/ contained nextgroup=nroffIdent skipwhite
|
|
endif
|
|
|
|
" {{{2 Register definition: .rn .rr
|
|
syn match nroffReqName /[rn]r/ contained nextgroup=nroffIdent skipwhite
|
|
if exists("b:nroff_is_groff")
|
|
syn match nroffReqName /\(rnn\|aln\)/ contained nextgroup=nroffIdent skipwhite
|
|
endif
|
|
|
|
|
|
" {{{1 eqn/tbl/pic
|
|
" ------------------------------------------------------------
|
|
" <jp>
|
|
" XXX: write proper syntax highlight for eqn / tbl / pic ?
|
|
" <jp />
|
|
|
|
syn region nroffEquation start=/^\.\s*EQ\>/ end=/^\.\s*EN\>/
|
|
syn region nroffTable start=/^\.\s*TS\>/ end=/^\.\s*TE\>/
|
|
syn region nroffPicture start=/^\.\s*PS\>/ end=/^\.\s*PE\>/
|
|
syn region nroffRefer start=/^\.\s*\[\>/ end=/^\.\s*\]\>/
|
|
syn region nroffGrap start=/^\.\s*G1\>/ end=/^\.\s*G2\>/
|
|
syn region nroffGremlin start=/^\.\s*GS\>/ end=/^\.\s*GE|GF\>/
|
|
|
|
" {{{1 Comments
|
|
" ------------------------------------------------------------
|
|
|
|
syn region nroffIgnore start=/^[.']\s*ig/ end=/^['.]\s*\./
|
|
syn match nroffComment /\(^[.']\s*\)\=\\".*/ contains=nroffTodo
|
|
syn match nroffComment /^'''.*/ contains=nroffTodo
|
|
|
|
if exists("b:nroff_is_groff")
|
|
syn match nroffComment "\\#.*$" contains=nroffTodo
|
|
endif
|
|
|
|
syn keyword nroffTodo TODO XXX FIXME contained
|
|
|
|
" {{{1 Hilighting
|
|
" ------------------------------------------------------------
|
|
"
|
|
|
|
"
|
|
" 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_nroff_syn_inits")
|
|
|
|
if version < 508
|
|
let did_nroff_syn_inits = 1
|
|
command -nargs=+ HiLink hi link <args>
|
|
else
|
|
command -nargs=+ HiLink hi def link <args>
|
|
endif
|
|
|
|
HiLink nroffEscChar nroffSpecialChar
|
|
HiLink nroffEscCharAr nroffSpecialChar
|
|
HiLink nroffSpecialChar SpecialChar
|
|
HiLink nroffSpace Delimiter
|
|
|
|
HiLink nroffEscRegArg2 nroffEscRegArg
|
|
HiLink nroffEscRegArg nroffIdent
|
|
|
|
HiLink nroffEscArg2 nroffEscArg
|
|
HiLink nroffEscPar nroffEscape
|
|
|
|
HiLink nroffEscRegPar nroffEscape
|
|
HiLink nroffEscArg nroffEscape
|
|
HiLink nroffSize nroffEscape
|
|
HiLink nroffEscape Preproc
|
|
|
|
HiLink nroffIgnore Comment
|
|
HiLink nroffComment Comment
|
|
HiLink nroffTodo Todo
|
|
|
|
HiLink nroffReqLeader nroffRequest
|
|
HiLink nroffReqName nroffRequest
|
|
HiLink nroffRequest Statement
|
|
HiLink nroffCond PreCondit
|
|
HiLink nroffDefIdent nroffIdent
|
|
HiLink nroffIdent Identifier
|
|
|
|
HiLink nroffEquation PreProc
|
|
HiLink nroffTable PreProc
|
|
HiLink nroffPicture PreProc
|
|
HiLink nroffRefer PreProc
|
|
HiLink nroffGrap PreProc
|
|
HiLink nroffGremlin PreProc
|
|
|
|
HiLink nroffNumber Number
|
|
HiLink nroffBadChar nroffError
|
|
HiLink nroffSpaceError nroffError
|
|
HiLink nroffError Error
|
|
|
|
HiLink nroffPreserve String
|
|
HiLink nroffString String
|
|
HiLink nroffDefinition String
|
|
HiLink nroffDefSpecial Special
|
|
|
|
delcommand HiLink
|
|
|
|
endif
|
|
|
|
let b:current_syntax = "nroff"
|
|
|
|
let &cpo = s:cpo_save
|
|
unlet s:cpo_save
|
|
" vim600: set fdm=marker fdl=2:
|