updated for version 7.0001
This commit is contained in:
259
runtime/syntax/nroff.vim
Normal file
259
runtime/syntax/nroff.vim
Normal file
@ -0,0 +1,259 @@
|
||||
" VIM syntax file
|
||||
" Language: nroff/groff
|
||||
" Maintainer: Alejandro L<>pez-Valencia <dradul@yahoo.com>
|
||||
" URL: http://dradul.tripod.com/vim
|
||||
" Last Change: 2003 May 24
|
||||
"
|
||||
" {{{1 Acknowledgements
|
||||
"
|
||||
" ACKNOWLEDGEMENTS:
|
||||
"
|
||||
" My thanks to J<>r<EFBFBD>me Pl<50>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
|
||||
|
||||
"
|
||||
" {{{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 roffReqArg 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"
|
||||
|
||||
" vim600: set fdm=marker fdl=2:
|
||||
Reference in New Issue
Block a user