X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/halibut/blobdiff_plain/be78a7b96a8f440ae1d508ccf8b39392d0668878..refs/heads/master:/misc/halibut.vim diff --git a/misc/halibut.vim b/misc/halibut.vim index d109ad7..49b2380 100644 --- a/misc/halibut.vim +++ b/misc/halibut.vim @@ -3,7 +3,7 @@ " Maintainer: Jacob Nevins " URL: http://www.chiark.greenend.org.uk/~sgtatham/halibut/ " Filenames: *.but -" Version: $Id: halibut.vim,v 1.7 2004/04/01 23:21:28 jtn Exp $ +" Version: $Id: halibut.vim,v 1.12 2004/07/16 12:54:59 jacob Exp $ " I've never been entirely comfortable with vim's syntax highlighting " facilities, so this may have all sorts of nasty loose ends, corner cases @@ -12,6 +12,10 @@ " Based on docs in Halibut CVS 2004-03-31 +" FIXME: +" - sync - last blank line, \quote, \lcont +" - add "display" etc for speed? + " Rune from vim 6.1 help " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded @@ -35,7 +39,6 @@ syn match butIllegalChar "\\" " (matches current iscmd() in input.c; there are some oddballs which " don't fit this handled specially below) syn match butCmdGeneric "\\[A-Za-z0-9]\+" nextgroup=butTextArg -" was: [A-Za-z0-9#]\+ syn cluster butText contains=butLiteral,@butCmd,butTodo @@ -57,7 +60,7 @@ syn region butQLEmph matchgroup=butCmdSpecific start="\\e\_s\@=" matchgroup=NO syn match butQLEmphInv "\S\@=[^bi]" contained " Paragraph level comment -- might need to come before inline comment. -syn region butCommentPara start="\\#\_s\@=" end="^\s*$" contains=butTodo +syn region butCommentPara start="\\#" end="^\s*$" contains=butTodo " Inline comments -- nested braces are honoured. syn region butComment matchgroup=Comment start="\\#{" skip="\\}" end="}" contains=butCommentBrace,butTodo @@ -72,8 +75,8 @@ syn match butCmdSpecific "\\U\_s\@=" nextgroup=butTextHeading " ...and overall title syn match butCmdSpecific "\\title\_s\@=" nextgroup=butTextHeading -" Bulleted lists -syn match butCmdSpecific "\\\(b\|n\|dd\)" nextgroup=butIdentArg +" Bulleted lists -- arguments optional +syn match butCmdSpecific "\\\(b\|n\|dd\)[^A-Za-z0-9]\@=" nextgroup=butIdentArg " Config syn match butCmdSpecific "\\cfg{\@=" nextgroup=butCfgArg @@ -88,17 +91,18 @@ syn match butCmdSpecific "\\define{\@=" nextgroup=butIdentArg " Specific inline commands " (Some of these are defined out of paranoia about clashes with code quotes.) +" Indexing -- invisible entries. (includes \I\c, \I\cw; \I\e left; no \q, \cq) +syn match butCmdSpecific "\\I\(\\cw\|\\c\)\={\@=" nextgroup=butIndexArg " Formatting. syn match butCmdSpecific "\\e{\@=" nextgroup=butEmphArg syn match butCmdSpecific "\\c{\@=" nextgroup=butTextArg syn match butCmdSpecific "\\cw{\@=" nextgroup=butTextArg +syn match butCmdSpecific "\\cq{\@=" nextgroup=butTextArg syn match butCmdSpecific "\\W{\@=" nextgroup=butHyperArg -" Indexing -- invisible entries. -syn match butCmdSpecific "\\I{\@=" nextgroup=butIndexArg " Xref commands syn match butCmdSpecific "\\[kK]{\@=" nextgroup=butIdentArg " Unicode literal -- a bit special. -syn match butLiteral "\\u\x*" nextgroup=butTextArg +syn match butLiteral "\\u\x\{,4}" nextgroup=butTextArg " Command cluster. syn cluster butCmd contains=butCmdGeneric,butCmdSpecific,butComment,butQuoteLit,butQLEmph,butCommentPara,butLiteral