summaryrefslogtreecommitdiff
path: root/runtime/syntax
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2007-05-05 18:24:42 +0000
committerBram Moolenaar <Bram@vim.org>2007-05-05 18:24:42 +0000
commitc81e5e79a0f2f5c2ac1896fa51cbe47e2e2a8d97 (patch)
tree5211ea86daed8e43c3dd25458e808c3d32100097 /runtime/syntax
parent9aae141a6bcfc26bcce352deb8bf34566a3e1be2 (diff)
downloadvim-git-c81e5e79a0f2f5c2ac1896fa51cbe47e2e2a8d97.tar.gz
updated for version 7.1a
Diffstat (limited to 'runtime/syntax')
-rw-r--r--runtime/syntax/ada.vim570
-rw-r--r--runtime/syntax/bst.vim10
-rw-r--r--runtime/syntax/cobol.vim132
-rw-r--r--runtime/syntax/dosini.vim10
-rw-r--r--runtime/syntax/doxygen.vim183
-rw-r--r--runtime/syntax/freebasic.vim252
-rw-r--r--runtime/syntax/help.vim2
-rw-r--r--runtime/syntax/html.vim3
-rw-r--r--runtime/syntax/htmldjango.vim10
-rw-r--r--runtime/syntax/lisp.vim19
-rw-r--r--runtime/syntax/mail.vim6
-rw-r--r--runtime/syntax/messages.vim59
-rw-r--r--runtime/syntax/mrxvtrc.vim314
-rw-r--r--runtime/syntax/pod.vim3
-rw-r--r--runtime/syntax/python.vim22
-rw-r--r--runtime/syntax/tcl.vim18
-rw-r--r--runtime/syntax/zsh.vim296
17 files changed, 1288 insertions, 621 deletions
diff --git a/runtime/syntax/ada.vim b/runtime/syntax/ada.vim
index 7a7b2a077..f31770077 100644
--- a/runtime/syntax/ada.vim
+++ b/runtime/syntax/ada.vim
@@ -1,287 +1,367 @@
-" Vim syntax file
-" Language: Ada (95)
-" Maintainer: David A. Wheeler <dwheeler@dwheeler.com>
-" URL: http://www.dwheeler.com/vim
-" Last Change: 2001-11-02
-
-" Former Maintainer: Simon Bradley <simon.bradley@pitechnology.com>
-" (was <sib93@aber.ac.uk>)
-" Other contributors: Preben Randhol.
-" The formal spec of Ada95 (ARM) is the "Ada95 Reference Manual".
-" For more Ada95 info, see http://www.gnuada.org and http://www.adapower.com.
-
-" This vim syntax file works on vim 5.6, 5.7, 5.8 and 6.x.
-" It implements Bram Moolenaar's April 25, 2001 recommendations to make
-" the syntax file maximally portable across different versions of vim.
-" If vim 6.0+ is available,
-" this syntax file takes advantage of the vim 6.0 advanced pattern-matching
-" functions to avoid highlighting uninteresting leading spaces in
-" some expressions containing "with" and "use".
-
-" 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
+"----------------------------------------------------------------------------
+" Description: Vim Ada syntax file
+" Language: Ada (2005)
+" $Id$
+" Copyright: Copyright (C) 2006 Martin Krischik
+" Maintainer: Martin Krischik
+" David A. Wheeler <dwheeler@dwheeler.com>
+" Simon Bradley <simon.bradley@pitechnology.com>
+" Contributors: Preben Randhol.
+" $Author$
+" $Date$
+" Version: 4.2
+" $Revision$
+" $HeadURL: https://svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/syntax/ada.vim $
+" http://www.dwheeler.com/vim
+" History: 24.05.2006 MK Unified Headers
+" 26.05.2006 MK ' should not be in iskeyword.
+" 16.07.2006 MK Ada-Mode as vim-ball
+" 02.10.2006 MK Better folding.
+" 15.10.2006 MK Bram's suggestion for runtime integration
+" 05.11.2006 MK Spell check for comments and strings only
+" 05.11.2006 MK Bram suggested to save on spaces
+" Help Page: help ft-ada-syntax
+"------------------------------------------------------------------------------
+" The formal spec of Ada 2005 (ARM) is the "Ada 2005 Reference Manual".
+" For more Ada 2005 info, see http://www.gnuada.org and http://www.adapower.com.
+"
+" This vim syntax file works on vim 7.0 only and makes use of most of Voim 7.0
+" advanced features.
+"------------------------------------------------------------------------------
+
+if exists("b:current_syntax") || version < 700
+ finish
endif
-" Ada is entirely case-insensitive.
-syn case ignore
+let b:current_syntax = "ada"
-" We don't need to look backwards to highlight correctly;
-" this speeds things up greatly.
-syn sync minlines=1 maxlines=1
+" Section: Ada is entirely case-insensitive. {{{1
+"
+syntax case ignore
+setlocal nosmartcase
+setlocal ignorecase
-" Highlighting commands. There are 69 reserved words in total in Ada95.
-" Some keywords are used in more than one way. For example:
+" Section: Highlighting commands {{{1
+"
+" There are 72 reserved words in total in Ada2005. Some keywords are
+" used in more than one way. For example:
" 1. "end" is a general keyword, but "end if" ends a Conditional.
" 2. "then" is a conditional, but "and then" is an operator.
-
-
-" Standard Exceptions (including I/O).
-" We'll highlight the standard exceptions, similar to vim's Python mode.
-" It's possible to redefine the standard exceptions as something else,
-" but doing so is very bad practice, so simply highlighting them makes sense.
-syn keyword adaException Constraint_Error Program_Error Storage_Error
-syn keyword adaException Tasking_Error
-syn keyword adaException Status_Error Mode_Error Name_Error Use_Error
-syn keyword adaException Device_Error End_Error Data_Error Layout_Error
-syn keyword adaException Length_Error Pattern_Error Index_Error
-syn keyword adaException Translation_Error
-syn keyword adaException Time_Error Argument_Error
-syn keyword adaException Tag_Error
-syn keyword adaException Picture_Error
-" Interfaces
-syn keyword adaException Terminator_Error Conversion_Error
-syn keyword adaException Pointer_Error Dereference_Error Update_Error
-" This isn't in the Ada spec, but a GNAT extension.
-syn keyword adaException Assert_Failure
-" We don't list ALL exceptions defined in particular compilers (e.g., GNAT),
-" because it's quite reasonable to define those phrases as non-exceptions.
-
-
-" We don't normally highlight types in package Standard
-" (Integer, Character, Float, etc.). I don't think it looks good
-" with the other type keywords, and many Ada programs define
-" so many of their own types that it looks inconsistent.
-" However, if you want this highlighting, turn on "ada_standard_types".
-" For package Standard's definition, see ARM section A.1.
-
-if exists("ada_standard_types")
- syn keyword adaBuiltinType Boolean Integer Natural Positive Float
- syn keyword adaBuiltinType Character Wide_Character
- syn keyword adaBuiltinType String Wide_String
- syn keyword adaBuiltinType Duration
- " These aren't listed in ARM section A.1's code, but they're noted as
- " options in ARM sections 3.5.4 and 3.5.7:
- syn keyword adaBuiltinType Short_Integer Short_Short_Integer
- syn keyword adaBuiltinType Long_Integer Long_Long_Integer
- syn keyword adaBuiltinType Short_Float Short_Short_Float
- syn keyword adaBuiltinType Long_Float Long_Long_Float
+"
+for b:Item in g:ada#Keywords
+ " Standard Exceptions (including I/O).
+ " We'll highlight the standard exceptions, similar to vim's Python mode.
+ " It's possible to redefine the standard exceptions as something else,
+ " but doing so is very bad practice, so simply highlighting them makes sense.
+ if b:Item['kind'] == "x"
+ execute "syntax keyword adaException " . b:Item['word']
+ endif
+ if b:Item['kind'] == "a"
+ execute 'syntax match adaAttribute "\V' . b:Item['word'] . '"'
+ endif
+ " We don't normally highlight types in package Standard
+ " (Integer, Character, Float, etc.). I don't think it looks good
+ " with the other type keywords, and many Ada programs define
+ " so many of their own types that it looks inconsistent.
+ " However, if you want this highlighting, turn on "ada_standard_types".
+ " For package Standard's definition, see ARM section A.1.
+ if b:Item['kind'] == "t" && exists ("g:ada_standard_types")
+ execute "syntax keyword adaBuiltinType " . b:Item['word']
+ endif
+endfor
+
+" Section: others {{{1
+"
+syntax keyword adaLabel others
+
+" Section: Operatoren {{{1
+"
+syntax keyword adaOperator abs mod not rem xor
+syntax match adaOperator "\<and\>"
+syntax match adaOperator "\<and\s\+then\>"
+syntax match adaOperator "\<or\>"
+syntax match adaOperator "\<or\s\+else\>"
+syntax match adaOperator "[-+*/<>&]"
+syntax keyword adaOperator **
+syntax match adaOperator "[/<>]="
+syntax keyword adaOperator =>
+syntax match adaOperator "\.\."
+syntax match adaOperator "="
+
+" Section: <> {{{1
+"
+" Handle the box, <>, specially:
+"
+syntax keyword adaSpecial <>
+
+" Section: rainbow color {{{1
+"
+if exists("g:ada_rainbow_color")
+ syntax match adaSpecial "[:;.,]"
+ runtime plugin/Rainbow_Parenthsis.vim
+else
+ syntax match adaSpecial "[:;().,]"
endif
-" There are MANY other predefined types; they've not been added, because
-" determining when they're a type requires context in general.
-" One potential addition would be Unbounded_String.
-
-
-syn keyword adaLabel others
-
-syn keyword adaOperator abs mod not rem xor
-syn match adaOperator "\<and\>"
-syn match adaOperator "\<and\s\+then\>"
-syn match adaOperator "\<or\>"
-syn match adaOperator "\<or\s\+else\>"
-syn match adaOperator "[-+*/<>&]"
-syn keyword adaOperator **
-syn match adaOperator "[/<>]="
-syn keyword adaOperator =>
-syn match adaOperator "\.\."
-syn match adaOperator "="
-
+" Section: := {{{1
+"
" We won't map "adaAssignment" by default, but we need to map ":=" to
" something or the "=" inside it will be mislabelled as an operator.
" Note that in Ada, assignment (:=) is not considered an operator.
-syn match adaAssignment ":="
-
-" Handle the box, <>, specially:
-syn keyword adaSpecial <>
-
-" Numbers, including floating point, exponents, and alternate bases.
-syn match adaNumber "\<\d[0-9_]*\(\.\d[0-9_]*\)\=\([Ee][+-]\=\d[0-9_]*\)\=\>"
-syn match adaNumber "\<\d\d\=#\x[0-9A-Fa-f_]*\(\.\x[0-9A-Fa-f_]*\)\=#\([Ee][+-]\=\d[0-9_]*\)\="
-
-" Identify leading numeric signs. In "A-5" the "-" is an operator,
-" but in "A:=-5" the "-" is a sign. This handles "A3+-5" (etc.) correctly.
-" This assumes that if you put a don't put a space after +/- when it's used
-" as an operator, you won't put a space before it either -- which is true
-" in code I've seen.
-syn match adaSign "[[:space:]<>=(,|:;&*/+-][+-]\d"lc=1,hs=s+1,he=e-1,me=e-1
-
-" Labels for the goto statement.
-syn region adaLabel start="<<" end=">>"
-
+"
+syntax match adaAssignment ":="
+
+" Section: Numbers, including floating point, exponents, and alternate bases. {{{1
+"
+syntax match adaNumber "\<\d[0-9_]*\(\.\d[0-9_]*\)\=\([Ee][+-]\=\d[0-9_]*\)\=\>"
+syntax match adaNumber "\<\d\d\=#\x[0-9A-Fa-f_]*\(\.\x[0-9A-Fa-f_]*\)\=#\([Ee][+-]\=\d[0-9_]*\)\="
+
+" Section: Identify leading numeric signs {{{1
+"
+" In "A-5" the "-" is an operator, " but in "A:=-5" the "-" is a sign. This
+" handles "A3+-5" (etc.) correctly. " This assumes that if you put a
+" don't put a space after +/- when it's used " as an operator, you won't
+" put a space before it either -- which is true " in code I've seen.
+"
+syntax match adaSign "[[:space:]<>=(,|:;&*/+-][+-]\d"lc=1,hs=s+1,he=e-1,me=e-1
+
+" Section: Labels for the goto statement. {{{1
+"
+syntax region adaLabel start="<<" end=">>"
+
+" Section: Boolean Constants {{{1
" Boolean Constants.
-syn keyword adaBoolean true false
+syntax keyword adaBoolean true false
+" Section: Warn C/C++ {{{1
+"
" Warn people who try to use C/C++ notation erroneously:
-syn match adaError "//"
-syn match adaError "/\*"
-syn match adaError "=="
-
-
-if exists("ada_space_errors")
- if !exists("ada_no_trail_space_error")
- syn match adaSpaceError excludenl "\s\+$"
- endif
- if !exists("ada_no_tab_space_error")
- syn match adaSpaceError " \+\t"me=e-1
- endif
+"
+syntax match adaError "//"
+syntax match adaError "/\*"
+syntax match adaError "=="
+
+
+" Section: Space Errors {{{1
+"
+if exists("g:ada_space_errors")
+ if !exists("g:ada_no_trail_space_error")
+ syntax match adaSpaceError excludenl "\s\+$"
+ endif
+ if !exists("g:ada_no_tab_space_error")
+ syntax match adaSpaceError " \+\t"me=e-1
+ endif
+ if !exists("g:ada_all_tab_usage")
+ syntax match adaSpecial "\t"
+ endif
endif
+" Section: end {{{1
" Unless special ("end loop", "end if", etc.), "end" marks the end of a
" begin, package, task etc. Assiging it to adaEnd.
-syn match adaEnd "\<end\>"
+syntax match adaEnd "\<end\>"
-syn keyword adaPreproc pragma
+syntax keyword adaPreproc pragma
-syn keyword adaRepeat exit for loop reverse while
-syn match adaRepeat "\<end\s\+loop\>"
+syntax keyword adaRepeat exit for loop reverse while
+syntax match adaRepeat "\<end\s\+loop\>"
-syn keyword adaStatement accept delay goto raise requeue return
-syn keyword adaStatement terminate
-syn match adaStatement "\<abort\>"
+syntax keyword adaStatement accept delay goto raise requeue return
+syntax keyword adaStatement terminate
+syntax match adaStatement "\<abort\>"
-" Handle Ada's record keywords.
+" Section: Handle Ada's record keywords. {{{1
+"
" 'record' usually starts a structure, but "with null record;" does not,
" and 'end record;' ends a structure. The ordering here is critical -
" 'record;' matches a "with null record", so make it a keyword (this can
" match when the 'with' or 'null' is on a previous line).
" We see the "end" in "end record" before the word record, so we match that
" pattern as adaStructure (and it won't match the "record;" pattern).
-syn match adaStructure "\<record\>"
-syn match adaStructure "\<end\s\+record\>"
-syn match adaKeyword "\<record;"me=e-1
-
-syn keyword adaStorageClass abstract access aliased array at constant delta
-syn keyword adaStorageClass digits limited of private range tagged
-syn keyword adaTypedef subtype type
-
-" Conditionals. "abort" after "then" is a conditional of its own.
-syn match adaConditional "\<then\>"
-syn match adaConditional "\<then\s\+abort\>"
-syn match adaConditional "\<else\>"
-syn match adaConditional "\<end\s\+if\>"
-syn match adaConditional "\<end\s\+case\>"
-syn match adaConditional "\<end\s\+select\>"
-syn keyword adaConditional if case select
-syn keyword adaConditional elsif when
-
-syn keyword adaKeyword all do exception in is new null out
-syn keyword adaKeyword separate until
-
+"
+syntax match adaStructure "\<record\>" contains=adaRecord
+syntax match adaStructure "\<end\s\+record\>" contains=adaRecord
+syntax match adaKeyword "\<record;"me=e-1
+
+" Section: type classes {{{1
+"
+syntax keyword adaStorageClass abstract access aliased array at constant delta
+syntax keyword adaStorageClass digits limited of private range tagged
+syntax keyword adaStorageClass interface synchronized
+syntax keyword adaTypedef subtype type
+
+" Section: Conditionals {{{1
+"
+" "abort" after "then" is a conditional of its own.
+"
+syntax match adaConditional "\<then\>"
+syntax match adaConditional "\<then\s\+abort\>"
+syntax match adaConditional "\<else\>"
+syntax match adaConditional "\<end\s\+if\>"
+syntax match adaConditional "\<end\s\+case\>"
+syntax match adaConditional "\<end\s\+select\>"
+syntax keyword adaConditional if case select
+syntax keyword adaConditional elsif when
+
+" Section: other keywords {{{1
+syntax match adaKeyword "\<is\>" contains=adaRecord
+syntax keyword adaKeyword all do exception in new null out
+syntax keyword adaKeyword separate until overriding
+
+" Section: begin keywords {{{1
+"
" These keywords begin various constructs, and you _might_ want to
" highlight them differently.
-syn keyword adaBegin begin body declare entry function generic
-syn keyword adaBegin package procedure protected renames task
+"
+syntax keyword adaBegin begin body declare entry generic
+syntax keyword adaBegin protected renames task
+syntax match adaBegin "\<function\>" contains=adaFunction
+syntax match adaBegin "\<procedure\>" contains=adaProcedure
+syntax match adaBegin "\<package\>" contains=adaPackage
+
+if exists("ada_with_gnat_project_files")
+ syntax keyword adaBegin project
+endif
+" Section: with, use {{{1
+"
if exists("ada_withuse_ordinary")
-" Don't be fancy. Display "with" and "use" as ordinary keywords in all cases.
- syn keyword adaKeyword with use
+ " Don't be fancy. Display "with" and "use" as ordinary keywords in all cases.
+ syntax keyword adaKeyword with use
else
- " Highlight "with" and "use" clauses like C's "#include" when they're used
- " to reference other compilation units; otherwise they're ordinary keywords.
- " If we have vim 6.0 or later, we'll use its advanced pattern-matching
- " capabilities so that we won't match leading spaces.
- syn match adaKeyword "\<with\>"
- syn match adaKeyword "\<use\>"
- if version < 600
- syn match adaBeginWith "^\s*\(\(with\(\s\+type\)\=\)\|\(use\)\)\>" contains=adaInc
- syn match adaSemiWith ";\s*\(\(with\(\s\+type\)\=\)\|\(use\)\)\>"lc=1 contains=adaInc
- else
- syn match adaBeginWith "^\s*\zs\(\(with\(\s\+type\)\=\)\|\(use\)\)\>" contains=adaInc
- syn match adaSemiWith ";\s*\zs\(\(with\(\s\+type\)\=\)\|\(use\)\)\>" contains=adaInc
- endif
- syn match adaInc "\<with\>" contained contains=NONE
- syn match adaInc "\<with\s\+type\>" contained contains=NONE
- syn match adaInc "\<use\>" contained contains=NONE
- " Recognize "with null record" as a keyword (even the "record").
- syn match adaKeyword "\<with\s\+null\s\+record\>"
- " Consider generic formal parameters of subprograms and packages as keywords.
- if version < 600
- syn match adaKeyword ";\s*with\s\+\(function\|procedure\|package\)\>"
- syn match adaKeyword "^\s*with\s\+\(function\|procedure\|package\)\>"
- else
- syn match adaKeyword ";\s*\zswith\s\+\(function\|procedure\|package\)\>"
- syn match adaKeyword "^\s*\zswith\s\+\(function\|procedure\|package\)\>"
- endif
+ " Highlight "with" and "use" clauses like C's "#include" when they're used
+ " to reference other compilation units; otherwise they're ordinary keywords.
+ " If we have vim 6.0 or later, we'll use its advanced pattern-matching
+ " capabilities so that we won't match leading spaces.
+ syntax match adaKeyword "\<with\>"
+ syntax match adaKeyword "\<use\>"
+ syntax match adaBeginWith "^\s*\zs\(\(with\(\s\+type\)\=\)\|\(use\)\)\>" contains=adaInc
+ syntax match adaSemiWith ";\s*\zs\(\(with\(\s\+type\)\=\)\|\(use\)\)\>" contains=adaInc
+ syntax match adaInc "\<with\>" contained contains=NONE
+ syntax match adaInc "\<with\s\+type\>" contained contains=NONE
+ syntax match adaInc "\<use\>" contained contains=NONE
+ " Recognize "with null record" as a keyword (even the "record").
+ syntax match adaKeyword "\<with\s\+null\s\+record\>"
+ " Consider generic formal parameters of subprograms and packages as keywords.
+ syntax match adaKeyword ";\s*\zswith\s\+\(function\|procedure\|package\)\>"
+ syntax match adaKeyword "^\s*\zswith\s\+\(function\|procedure\|package\)\>"
endif
+" Section: String and character constants. {{{1
+"
+syntax region adaString contains=@Spell start=+"+ skip=+""+ end=+"+
+syntax match adaCharacter "'.'"
+
+" Section: Todo (only highlighted in comments) {{{1
+"
+syntax keyword adaTodo contained TODO FIXME XXX NOTE
+
+" Section: Comments. {{{1
+"
+syntax region adaComment
+ \ oneline
+ \ contains=adaTodo,adaLineError,@Spell
+ \ start="--"
+ \ end="$"
+
+" Section: line errors {{{1
+"
+" Note: Line errors have become quite slow with Vim 7.0
+"
+if exists("g:ada_line_errors")
+ syntax match adaLineError "\(^.\{79}\)\@<=." contains=ALL containedin=ALL
+endif
+
+" Section: syntax folding {{{1
+"
+" Syntax folding is very tricky - for now I still suggest to use
+" indent folding
+"
+if exists("g:ada_folding") && g:ada_folding[0] == 's'
+ if stridx (g:ada_folding, 'p') >= 0
+ syntax region adaPackage
+ \ start="\(\<package\s\+body\>\|\<package\>\)\s*\z(\k*\)"
+ \ end="end\s\+\z1\s*;"
+ \ keepend extend transparent fold contains=ALL
+ endif
+ if stridx (g:ada_folding, 'f') >= 0
+ syntax region adaProcedure
+ \ start="\<procedure\>\s*\z(\k*\)"
+ \ end="\<end\>\s\+\z1\s*;"
+ \ keepend extend transparent fold contains=ALL
+ syntax region adaFunction
+ \ start="\<procedure\>\s*\z(\k*\)"
+ \ end="end\s\+\z1\s*;"
+ \ keepend extend transparent fold contains=ALL
+ endif
+ if stridx (g:ada_folding, 'f') >= 0
+ syntax region adaRecord
+ \ start="\<is\s\+record\>"
+ \ end="\<end\s\+record\>"
+ \ keepend extend transparent fold contains=ALL
+ endif
+endif
-" String and character constants.
-syn region adaString start=+"+ skip=+""+ end=+"+
-syn match adaCharacter "'.'"
-
-" Todo (only highlighted in comments)
-syn keyword adaTodo contained TODO FIXME XXX
-
-" Comments.
-syn region adaComment oneline contains=adaTodo start="--" end="$"
-
-
-
-" 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_ada_syn_inits")
- if version < 508
- let did_ada_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " The default methods for highlighting. Can be overridden later.
- HiLink adaCharacter Character
- HiLink adaComment Comment
- HiLink adaConditional Conditional
- HiLink adaKeyword Keyword
- HiLink adaLabel Label
- HiLink adaNumber Number
- HiLink adaSign Number
- HiLink adaOperator Operator
- HiLink adaPreproc PreProc
- HiLink adaRepeat Repeat
- HiLink adaSpecial Special
- HiLink adaStatement Statement
- HiLink adaString String
- HiLink adaStructure Structure
- HiLink adaTodo Todo
- HiLink adaType Type
- HiLink adaTypedef Typedef
- HiLink adaStorageClass StorageClass
- HiLink adaBoolean Boolean
- HiLink adaException Exception
- HiLink adaInc Include
- HiLink adaError Error
- HiLink adaSpaceError Error
- HiLink adaBuiltinType Type
-
- if exists("ada_begin_preproc")
+" Section: The default methods for highlighting. Can be overridden later. {{{1
+"
+highlight def link adaCharacter Character
+highlight def link adaComment Comment
+highlight def link adaConditional Conditional
+highlight def link adaKeyword Keyword
+highlight def link adaLabel Label
+highlight def link adaNumber Number
+highlight def link adaSign Number
+highlight def link adaOperator Operator
+highlight def link adaPreproc PreProc
+highlight def link adaRepeat Repeat
+highlight def link adaSpecial Special
+highlight def link adaStatement Statement
+highlight def link adaString String
+highlight def link adaStructure Structure
+highlight def link adaTodo Todo
+highlight def link adaType Type
+highlight def link adaTypedef Typedef
+highlight def link adaStorageClass StorageClass
+highlight def link adaBoolean Boolean
+highlight def link adaException Exception
+highlight def link adaAttribute Tag
+highlight def link adaInc Include
+highlight def link adaError Error
+highlight def link adaSpaceError Error
+highlight def link adaLineError Error
+highlight def link adaBuiltinType Type
+highlight def link adaAssignment Special
+
+" Subsection: Begin, End {{{2
+"
+if exists ("ada_begin_preproc")
" This is the old default display:
- HiLink adaBegin PreProc
- HiLink adaEnd PreProc
- else
+ highlight def link adaBegin PreProc
+ highlight def link adaEnd PreProc
+else
" This is the new default display:
- HiLink adaBegin Keyword
- HiLink adaEnd Keyword
- endif
-
- delcommand HiLink
+ highlight def link adaBegin Keyword
+ highlight def link adaEnd Keyword
endif
-let b:current_syntax = "ada"
-" vim: ts=8
+" Section: formatoptions {{{1
+"
+setlocal formatoptions+=ron
+
+" Section: sync {{{1
+"
+" We don't need to look backwards to highlight correctly;
+" this speeds things up greatly.
+syntax sync minlines=1 maxlines=1
+
+finish " 1}}}
+
+"------------------------------------------------------------------------------
+" Copyright (C) 2006 Martin Krischik
+"
+" Vim is Charityware - see ":help license" or uganda.txt for licence details.
+"------------------------------------------------------------------------------
+"vim: textwidth=78 nowrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
+"vim: foldmethod=marker
diff --git a/runtime/syntax/bst.vim b/runtime/syntax/bst.vim
index 3feefec37..8fdcd43f2 100644
--- a/runtime/syntax/bst.vim
+++ b/runtime/syntax/bst.vim
@@ -1,7 +1,6 @@
" Vim syntax file
" Language: BibTeX Bibliography Style
-" Maintainer: Tim Pope <vim@rebelongto.us>
-" Last Change: 2006 Apr 27
+" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
" Filenames: *.bst
" $Id$
@@ -23,7 +22,11 @@ delcommand SetIsk
syn case ignore
-syn region bstString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=bstField,bstType
+syn match bstString +"[^"]*\%("\|$\)+ contains=bstField,bstType,bstError
+" Highlight the last character of an unclosed string, but only when the cursor
+" is not beyond it (i.e., it is still being edited). Imperfect.
+syn match bstError '[^"]\%#\@!$' contained
+
syn match bstNumber "#-\=\d\+\>"
syn keyword bstNumber entry.max$ global.max$
syn match bstComment "%.*"
@@ -77,6 +80,7 @@ if version >= 508 || !exists("did_bst_syn_inits")
HiLink bstNumber Number
HiLink bstType Type
HiLink bstIdentifier Identifier
+ HiLink bstError Error
delcommand HiLink
endif
diff --git a/runtime/syntax/cobol.vim b/runtime/syntax/cobol.vim
index 0b59f720b..dce2d3659 100644
--- a/runtime/syntax/cobol.vim
+++ b/runtime/syntax/cobol.vim
@@ -1,9 +1,10 @@
" Vim syntax file
-" Language: COBOL
-" Maintainers: Davyd Ondrejko <vondraco@columbus.rr.com>
+" Language: COBOL
+" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
+" (formerly Davyd Ondrejko <vondraco@columbus.rr.com>)
" (formerly Sitaram Chamarty <sitaram@diac.com> and
" James Mitchell <james_mitchell@acm.org>)
-" Last change: 2001 Sep 02
+" $Id$
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -22,77 +23,97 @@ endif
syn case ignore
-syn match cobolKeys "^\a\{1,6\}" contains=cobolReserved
+syn cluster cobolStart contains=cobolAreaA,cobolAreaB,cobolComment,cobolCompiler
+syn cluster cobolAreaA contains=cobolParagraph,cobolSection,cobolDivision
+"syn cluster cobolAreaB contains=
+syn cluster cobolAreaAB contains=cobolLine
+syn cluster cobolLine contains=cobolReserved
+syn match cobolMarker "^\%( \{,5\}[^ ]\)\@=.\{,6}" nextgroup=@cobolStart
+syn match cobolSpace "^ \{6\}" nextgroup=@cobolStart
+syn match cobolAreaA " \{1,4\}" contained nextgroup=@cobolAreaA,@cobolAreaAB
+syn match cobolAreaB " \{5,\}\|- *" contained nextgroup=@cobolAreaB,@cobolAreaAB
+syn match cobolComment "[/*C].*$" contained
+syn match cobolCompiler "$.*$" contained
+syn match cobolLine ".*$" contained contains=cobolReserved,@cobolLine
+
+syn match cobolDivision "[A-Z][A-Z0-9-]*[A-Z0-9]\s\+DIVISION\."he=e-1 contained contains=cobolDivisionName
+syn keyword cobolDivisionName contained IDENTIFICATION ENVIRONMENT DATA PROCEDURE
+syn match cobolSection "[A-Z][A-Z0-9-]*[A-Z0-9]\s\+SECTION\."he=e-1 contained contains=cobolSectionName
+syn keyword cobolSectionName contained CONFIGURATION INPUT-OUTPUT FILE WORKING-STORAGE LOCAL-STORAGE LINKAGE
+syn match cobolParagraph "\a[A-Z0-9-]*[A-Z0-9]\.\|\d[A-Z0-9-]*[A-Z]\."he=e-1 contained contains=cobolParagraphName
+syn keyword cobolParagraphName contained PROGRAM-ID SOURCE-COMPUTER OBJECT-COMPUTER SPECIAL-NAMES FILE-CONTROL I-O-CONTROL
+
+
+"syn match cobolKeys "^\a\{1,6\}" contains=cobolReserved
syn keyword cobolReserved contained ACCEPT ACCESS ADD ADDRESS ADVANCING AFTER ALPHABET ALPHABETIC
syn keyword cobolReserved contained ALPHABETIC-LOWER ALPHABETIC-UPPER ALPHANUMERIC ALPHANUMERIC-EDITED ALS
syn keyword cobolReserved contained ALTERNATE AND ANY ARE AREA AREAS ASCENDING ASSIGN AT AUTHOR BEFORE BINARY
syn keyword cobolReserved contained BLANK BLOCK BOTTOM BY CANCEL CBLL CD CF CH CHARACTER CHARACTERS CLASS
syn keyword cobolReserved contained CLOCK-UNITS CLOSE COBOL CODE CODE-SET COLLATING COLUMN COMMA COMMON
-syn keyword cobolReserved contained COMMUNICATIONS COMPUTATIONAL COMPUTE CONFIGURATION CONTENT CONTINUE
-syn keyword cobolReserved contained CONTROL CONVERTING CORR CORRESPONDING COUNT CURRENCY DATA DATE DATE-COMPILED
+syn keyword cobolReserved contained COMMUNICATIONS COMPUTATIONAL COMPUTE CONTENT CONTINUE
+syn keyword cobolReserved contained CONTROL CONVERTING CORR CORRESPONDING COUNT CURRENCY DATE DATE-COMPILED
syn keyword cobolReserved contained DATE-WRITTEN DAY DAY-OF-WEEK DE DEBUG-CONTENTS DEBUG-ITEM DEBUG-LINE
syn keyword cobolReserved contained DEBUG-NAME DEBUG-SUB-1 DEBUG-SUB-2 DEBUG-SUB-3 DEBUGGING DECIMAL-POINT
syn keyword cobolReserved contained DELARATIVES DELETE DELIMITED DELIMITER DEPENDING DESCENDING DESTINATION
syn keyword cobolReserved contained DETAIL DISABLE DISPLAY DIVIDE DIVISION DOWN DUPLICATES DYNAMIC EGI ELSE EMI
syn keyword cobolReserved contained ENABLE END-ADD END-COMPUTE END-DELETE END-DIVIDE END-EVALUATE END-IF
-syn keyword cobolReserved contained END-MULTIPLY END-OF-PAGE END-PERFORM END-READ END-RECEIVE END-RETURN
+syn keyword cobolReserved contained END-MULTIPLY END-OF-PAGE END-READ END-RECEIVE END-RETURN
syn keyword cobolReserved contained END-REWRITE END-SEARCH END-START END-STRING END-SUBTRACT END-UNSTRING
-syn keyword cobolReserved contained END-WRITE ENVIRONMENT EQUAL ERROR ESI EVALUATE EVERY EXCEPTION EXIT
-syn keyword cobolReserved contained EXTEND EXTERNAL FALSE FD FILE FILE-CONTROL FILLER FINAL FIRST FOOTING FOR FROM
+syn keyword cobolReserved contained END-WRITE EQUAL ERROR ESI EVALUATE EVERY EXCEPTION EXIT
+syn keyword cobolReserved contained EXTEND EXTERNAL FALSE FD FILLER FINAL FIRST FOOTING FOR FROM
syn keyword cobolReserved contained GENERATE GIVING GLOBAL GREATER GROUP HEADING HIGH-VALUE HIGH-VALUES I-O
-syn keyword cobolReserved contained I-O-CONTROL IDENTIFICATION IN INDEX INDEXED INDICATE INITIAL INITIALIZE
-syn keyword cobolReserved contained INITIATE INPUT INPUT-OUTPUT INSPECT INSTALLATION INTO IS JUST
+syn keyword cobolReserved contained IN INDEX INDEXED INDICATE INITIAL INITIALIZE
+syn keyword cobolReserved contained INITIATE INPUT INSPECT INSTALLATION INTO IS JUST
syn keyword cobolReserved contained JUSTIFIED KEY LABEL LAST LEADING LEFT LENGTH LOCK MEMORY
syn keyword cobolReserved contained MERGE MESSAGE MODE MODULES MOVE MULTIPLE MULTIPLY NATIVE NEGATIVE NEXT NO NOT
-syn keyword cobolReserved contained NUMBER NUMERIC NUMERIC-EDITED OBJECT-COMPUTER OCCURS OF OFF OMITTED ON OPEN
+syn keyword cobolReserved contained NUMBER NUMERIC NUMERIC-EDITED OCCURS OF OFF OMITTED ON OPEN
syn keyword cobolReserved contained OPTIONAL OR ORDER ORGANIZATION OTHER OUTPUT OVERFLOW PACKED-DECIMAL PADDING
syn keyword cobolReserved contained PAGE PAGE-COUNTER PERFORM PF PH PIC PICTURE PLUS POINTER POSITION POSITIVE
-syn keyword cobolReserved contained PRINTING PROCEDURE PROCEDURES PROCEDD PROGRAM PROGRAM-ID PURGE QUEUE QUOTES
+syn keyword cobolReserved contained PRINTING PROCEDURES PROCEDD PROGRAM PURGE QUEUE QUOTES
syn keyword cobolReserved contained RANDOM RD READ RECEIVE RECORD RECORDS REDEFINES REEL REFERENCE REFERENCES
syn keyword cobolReserved contained RELATIVE RELEASE REMAINDER REMOVAL REPLACE REPLACING REPORT REPORTING
syn keyword cobolReserved contained REPORTS RERUN RESERVE RESET RETURN RETURNING REVERSED REWIND REWRITE RF RH
syn keyword cobolReserved contained RIGHT ROUNDED RUN SAME SD SEARCH SECTION SECURITY SEGMENT SEGMENT-LIMITED
syn keyword cobolReserved contained SELECT SEND SENTENCE SEPARATE SEQUENCE SEQUENTIAL SET SIGN SIZE SORT
-syn keyword cobolReserved contained SORT-MERGE SOURCE SOURCE-COMPUTER SPECIAL-NAMES STANDARD
+syn keyword cobolReserved contained SORT-MERGE SOURCE STANDARD
syn keyword cobolReserved contained STANDARD-1 STANDARD-2 START STATUS STOP STRING SUB-QUEUE-1 SUB-QUEUE-2
syn keyword cobolReserved contained SUB-QUEUE-3 SUBTRACT SUM SUPPRESS SYMBOLIC SYNC SYNCHRONIZED TABLE TALLYING
syn keyword cobolReserved contained TAPE TERMINAL TERMINATE TEST TEXT THAN THEN THROUGH THRU TIME TIMES TO TOP
syn keyword cobolReserved contained TRAILING TRUE TYPE UNIT UNSTRING UNTIL UP UPON USAGE USE USING VALUE VALUES
-syn keyword cobolReserved contained VARYING WHEN WITH WORDS WORKING-STORAGE WRITE
+syn keyword cobolReserved contained VARYING WHEN WITH WORDS WRITE
syn match cobolReserved contained "\<CONTAINS\>"
syn match cobolReserved contained "\<\(IF\|INVALID\|END\|EOP\)\>"
syn match cobolReserved contained "\<ALL\>"
+syn cluster cobolLine add=cobolConstant,cobolNumber,cobolPic
syn keyword cobolConstant SPACE SPACES NULL ZERO ZEROES ZEROS LOW-VALUE LOW-VALUES
-syn match cobolMarker "^.\{6\}"
-syn match cobolBadLine "^.\{6\}[^ D\-*$/].*"hs=s+6
-
-" If comment mark somehow gets into column past Column 7.
-syn match cobolBadLine "^.\{6\}\s\+\*.*"
-
-syn match cobolNumber "\<-\=\d*\.\=\d\+\>" contains=cobolMarker,cobolComment
-syn match cobolPic "\<S*9\+\>" contains=cobolMarker,cobolComment
-syn match cobolPic "\<$*\.\=9\+\>" contains=cobolMarker,cobolComment
-syn match cobolPic "\<Z*\.\=9\+\>" contains=cobolMarker,cobolComment
-syn match cobolPic "\<V9\+\>" contains=cobolMarker,cobolComment
-syn match cobolPic "\<9\+V\>" contains=cobolMarker,cobolComment
-syn match cobolPic "\<-\+[Z9]\+\>" contains=cobolMarker,cobolComment
-syn match cobolTodo "todo" contained
-syn match cobolComment "^.\{6\}\*.*"hs=s+6 contains=cobolTodo,cobolMarker
-syn match cobolComment "^.\{6\}/.*"hs=s+6 contains=cobolTodo,cobolMarker
-syn match cobolComment "^.\{6\}C.*"hs=s+6 contains=cobolTodo,cobolMarker
-syn match cobolCompiler "^.\{6\}$.*"hs=s+6
+syn match cobolNumber "\<-\=\d*\.\=\d\+\>" contained
+syn match cobolPic "\<S*9\+\>" contained
+syn match cobolPic "\<$*\.\=9\+\>" contained
+syn match cobolPic "\<Z*\.\=9\+\>" contained
+syn match cobolPic "\<V9\+\>" contained
+syn match cobolPic "\<9\+V\>" contained
+syn match cobolPic "\<-\+[Z9]\+\>" contained
+syn match cobolTodo "todo" contained containedin=cobolComment
" For MicroFocus or other inline comments, include this line.
" syn region cobolComment start="*>" end="$" contains=cobolTodo,cobolMarker
+syn match cobolBadLine "[^ D\*$/-].*" contained
+" If comment mark somehow gets into column past Column 7.
+syn match cobolBadLine "\s\+\*.*" contained
+syn cluster cobolStart add=cobolBadLine
+
+
syn keyword cobolGoTo GO GOTO
syn keyword cobolCopy COPY
" cobolBAD: things that are BAD NEWS!
syn keyword cobolBAD ALTER ENTER RENAMES
+syn cluster cobolLine add=cobolGoTo,cobolCopy,cobolBAD,cobolWatch,cobolEXECs
+
" cobolWatch: things that are important when trying to understand a program
syn keyword cobolWatch OCCURS DEPENDING VARYING BINARY COMP REDEFINES
syn keyword cobolWatch REPLACING RUN
@@ -101,39 +122,38 @@ syn match cobolWatch "COMP-[123456XN]"
syn keyword cobolEXECs EXEC END-EXEC
-syn match cobolDecl "^.\{6} \{1,4}\(0\=1\|77\|78\) "hs=s+7,he=e-1 contains=cobolMarker
-syn match cobolDecl "^.\{6} \+[1-4]\d "hs=s+7,he=e-1 contains=cobolMarker
-syn match cobolDecl "^.\{6} \+0\=[2-9] "hs=s+7,he=e-1 contains=cobolMarker
-syn match cobolDecl "^.\{6} \+66 "hs=s+7,he=e-1 contains=cobolMarker
+syn cluster cobolAreaA add=cobolDeclA
+syn cluster cobolAreaAB add=cobolDecl
+syn match cobolDeclA "\(0\=1\|77\|78\) " contained nextgroup=cobolLine
+syn match cobolDecl "[1-4]\d " contained nextgroup=cobolLine
+syn match cobolDecl "0\=[2-9] " contained nextgroup=cobolLine
+syn match cobolDecl "66 " contained nextgroup=cobolLine
-syn match cobolWatch "^.\{6} \+88 "hs=s+7,he=e-1 contains=cobolMarker
+syn match cobolWatch "88 " contained nextgroup=cobolLine
-syn match cobolBadID "\k\+-\($\|[^-A-Z0-9]\)"
+"syn match cobolBadID "\k\+-\($\|[^-A-Z0-9]\)" contained
-syn keyword cobolCALLs CALL CANCEL GOBACK PERFORM INVOKE
+syn cluster cobolLine add=cobolCALLs,cobolString,cobolCondFlow
+syn keyword cobolCALLs CALL END-CALL CANCEL GOBACK PERFORM END-PERFORM INVOKE
syn match cobolCALLs "EXIT \+PROGRAM"
syn match cobolExtras /\<VALUE \+\d\+\./hs=s+6,he=e-1
syn match cobolString /"[^"]*\("\|$\)/
syn match cobolString /'[^']*\('\|$\)/
-syn region cobolLine start="^.\{6} " end="$" contains=ALL
+"syn region cobolLine start="^.\{6}[ D-]" end="$" contains=ALL
+syn match cobolIndicator "\%7c[D-]" contained
if exists("cobol_legacy_code")
-syn region cobolCondFlow contains=ALLBUT,cobolLine start="\<\(IF\|INVALID\|END\|EOP\)\>" skip=/\('\|"\)[^"]\{-}\("\|'\|$\)/ end="\." keepend
-endif
-
-if ! exists("cobol_legacy_code")
- " catch junk in columns 1-6 for modern code
- syn match cobolBAD "^ \{0,5\}[^ ].*"
+ syn region cobolCondFlow contains=ALLBUT,cobolLine start="\<\(IF\|INVALID\|END\|EOP\)\>" skip=/\('\|"\)[^"]\{-}\("\|'\|$\)/ end="\." keepend
endif
" many legacy sources have junk in columns 1-6: must be before others
" Stuff after column 72 is in error - must be after all other "match" entries
if exists("cobol_legacy_code")
- syn match cobolBadLine "^.\{6}[^*/].\{66,\}"
+ syn match cobolBadLine "\%73c.*" containedin=ALLBUT,cobolComment
else
- syn match cobolBadLine "^.\{6}.\{67,\}"
+ syn match cobolBadLine "\%73c.*" containedin=ALL
endif
" Define the default highlighting.
@@ -150,7 +170,11 @@ if version >= 508 || !exists("did_cobol_syntax_inits")
HiLink cobolBAD Error
HiLink cobolBadID Error
HiLink cobolBadLine Error
- HiLink cobolMarker Comment
+ if exists("g:cobol_legacy_code")
+ HiLink cobolMarker Comment
+ else
+ HiLink cobolMarker Error
+ endif
HiLink cobolCALLs Function
HiLink cobolComment Comment
HiLink cobolKeys Comment
@@ -158,6 +182,7 @@ if version >= 508 || !exists("did_cobol_syntax_inits")
HiLink cobolCompiler PreProc
HiLink cobolCondFlow Special
HiLink cobolCopy PreProc
+ HiLink cobolDeclA cobolDecl
HiLink cobolDecl Type
HiLink cobolExtras Special
HiLink cobolGoTo Special
@@ -165,9 +190,16 @@ if version >= 508 || !exists("did_cobol_syntax_inits")
HiLink cobolNumber Constant
HiLink cobolPic Constant
HiLink cobolReserved Statement
+ HiLink cobolDivision Label
+ HiLink cobolSection Label
+ HiLink cobolParagraph Label
+ HiLink cobolDivisionName Keyword
+ HiLink cobolSectionName Keyword
+ HiLink cobolParagraphName Keyword
HiLink cobolString Constant
HiLink cobolTodo Todo
HiLink cobolWatch Special
+ HiLink cobolIndicator Special
delcommand HiLink
endif
diff --git a/runtime/syntax/dosini.vim b/runtime/syntax/dosini.vim
index 73744183a..219384fc7 100644
--- a/runtime/syntax/dosini.vim
+++ b/runtime/syntax/dosini.vim
@@ -1,8 +1,10 @@
" Vim syntax file
" Language: Configuration File (ini file) for MSDOS/MS Windows
-" Maintainer: Sean M. McKee <mckee@misslink.net>
-" Last Change: 2001 May 09
-" Version Info: @(#)dosini.vim 1.6 97/12/15 08:54:12
+" Version Info: @(#)dosini.vim 1.6 97/12/15 08:54:12
+" Author: Sean M. McKee <mckee@misslink.net>
+" Maintainer: Nima Talebi <nima@it.net.au>
+" Last Change: Mon, 26 Jun 2006 22:07:28 +1000
+
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -16,7 +18,7 @@ endif
syn case ignore
syn match dosiniLabel "^.\{-}="
-syn region dosiniHeader start="\[" end="\]"
+syn region dosiniHeader start="^\[" end="\]"
syn match dosiniComment "^;.*$"
" Define the default highlighting.
diff --git a/runtime/syntax/doxygen.vim b/runtime/syntax/doxygen.vim
index 5e3126ea4..4916b4d36 100644
--- a/runtime/syntax/doxygen.vim
+++ b/runtime/syntax/doxygen.vim
@@ -1,11 +1,11 @@
" DoxyGen syntax hilighting extension for c/c++/idl/java
" Language: doxygen on top of c, cpp, idl, java
-" Maintainer: Michael Geddes <michaelrgeddes@optushome.com.au>
+" Maintainer: Michael Geddes <vimmer@frog.wheelycreek.net>
" Author: Michael Geddes
-" Last Change: 12 December 2005
-" Version: 1.15
+" Last Change: April 2007
+" Version: 1.20
"
-" Copyright 2004 Michael Geddes
+" Copyright 2004-2006 Michael Geddes
" Please feel free to use, modify & distribute all or part of this script,
" providing this copyright message remains.
" I would appreciate being acknowledged in any derived scripts, and would
@@ -13,26 +13,27 @@
" NOTE: Comments welcome!
"
-" There are two variables that control the syntax hilighting produced by this
+" There are two variables that control the syntax highlighting produced by this
" script:
-" doxygen_enhanced_colour - Use the (non-standard) original colours designed for this hilighting.
+" doxygen_enhanced_colour - Use the (non-standard) original colours designed
+" for this highlighting.
" doxygen_my_rendering - Disable the HTML bold/italic/underline rendering.
"
" A brief description without '.' or '!' will cause the end comment
" character to be marked as an error. You can define the colour of this using
" the highlight doxygenErrorComment.
-" A \link without an \endlink will cause an error hilight on the end-comment.
+" A \link without an \endlink will cause an error highlight on the end-comment.
" This is defined by doxygenLinkError
"
" The variable g:doxygen_codeword_font can be set to the guifont for marking \c
" words - a 'typewriter' like font normally. Spaces must be escaped. It can
-" also be set to any hilight attribute. Alternatively, a hilight for doxygenCodeWord
+" also be set to any highlight attribute. Alternatively, a highlight for doxygenCodeWord
" can be used to override it.
"
-" By default, hilighting is done assumng you have the JAVADOC_AUTOBRIEF
-" setting tunred on in your Doxygen configuration. If you don't, you
+" By default, highlighting is done assumng you have the JAVADOC_AUTOBRIEF
+" setting turned on in your Doxygen configuration. If you don't, you
" can set the variable g:doxygen_javadoc_autobrief to 0 to have the
-" hilighting more accurately reflect the way Doxygen will interpret your
+" highlighting more accurately reflect the way Doxygen will interpret your
" comments.
"
" Special thanks to: Wu Yongwei, Toby Allsopp
@@ -55,13 +56,13 @@ try
"
" C/C++ Style line comments
- syn region doxygenComment start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend
- syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL keepend skipwhite skipnl nextgroup=doxygenComment2
- syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL keepend skipwhite skipnl
- syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial
+ syn region doxygenComment start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend fold
+ syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL keepend skipwhite skipnl nextgroup=doxygenComment2 fold
+ syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL keepend skipwhite skipnl fold
+ syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial fold
" Single line brief followed by multiline comment.
- syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend
+ syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold
" This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl
@@ -70,46 +71,56 @@ try
syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,,doxygenStartSkip skipwhite skipnl
syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl
+
" Match the Starting pattern (effectively creating the start of a BNF)
if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
+ syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial skipwhite
+ " Match the first sentence as a brief comment
+ if ! exists('g:doxygen_end_punctuation')
+ let g:doxygen_end_punctuation='[.]'
+ endif
+
+ exe 'syn region doxygenBrief contained start=+[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@<!\*/\@!+ start=+\<\k+ skip=+'.doxygen_end_punctuation.'\S\@=+ end=+'.doxygen_end_punctuation.'+ end=+\(\s*\(\n\s*\*\=\s*\)[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueComment,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell skipnl nextgroup=doxygenBody'
+
+ syn match doxygenBriefEndComment +\*/+ contained
+
+ exe 'syn region doxygenBriefL start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@]+ start=+\<+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'\|$+ contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend'
+ syn match doxygenPrevL +<+ contained nextgroup=doxygenBriefL,doxygenSpecial skipwhite
else
syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
+ syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial skipwhite
+ syn region doxygenLine start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@<]+ start=+\<+ end='$' contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend
+ syn match doxygenPrevL +<+ contained nextgroup=doxygenLine,doxygenSpecial skipwhite
+
endif
- syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial skipwhite
" This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
- " Match the first sentence as a brief comment
- if ! exists('g:doxygen_end_punctuation')
- let g:doxygen_end_punctuation='[.]'
- endif
- exe 'syn region doxygenBrief contained start=+[\\@]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@<!\*/\@!+ start=+\<\k+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'+ end=+\(\s*\(\n\s*\*\=\s*\)[@\\]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueComment,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenOtherLink,doxygenHyperLink,doxygenHashLink skipnl nextgroup=doxygenBody'
-
- syn match doxygenBriefEndComment +\*/+ contained
-
- exe 'syn region doxygenBriefL start=+@\k\@!\|[\\@]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@]+ start=+\<+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'\|$+ contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup keepend'
-
- syn region doxygenBriefLine contained start=+\<\k+ end=+\(\n\s*\*\=\s*\([@\\]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ contains=doxygenContinueComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenOtherLink,doxygenHyperLink,doxygenHashLink skipwhite keepend
+ syn region doxygenBriefLine contained start=+\<\k+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ contains=doxygenContinueComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink skipwhite keepend
" Match a '<' for applying a comment to the previous element.
- syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenSpecial,doxygenStartSkip skipwhite
- syn match doxygenPrevL +<+ contained nextgroup=doxygenBriefL,doxygenSpecial skipwhite
+ syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkip skipwhite
- " These are anti-doxygen comments. If there are more than two asterisks or 3 '/'s
+if exists("c_comment_strings")
+ " These are anti-Doxygen comments. If there are more than two asterisks or 3 '/'s
" then turn the comments back into normal C comments.
syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cCommentString,cCharacter,cNumbersCom,cSpaceError
syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError
+else
+ syn region cComment start="/\*\*\*" end="\*/" contains=@cCommentGroup,cSpaceError
+ syn region cCommentL start="////" skip="\\$" end="$" contains=@cCommentGroup,cSpaceError
+endif
" Special commands at the start of the area: starting with '@' or '\'
- syn region doxygenStartSpecial contained start=+[@\\]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=doxygenSpecial nextgroup=doxygenSkipComment skipnl keepend
+ syn region doxygenStartSpecial contained start=+[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=doxygenSpecial nextgroup=doxygenSkipComment skipnl keepend
syn match doxygenSkipComment contained +^\s*\*/\@!+ nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenPage skipwhite
"syn region doxygenBodyBit contained start=+$+
" The main body of a doxygen comment.
- syn region doxygenBody contained start=+.\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueComment,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup
+ syn region doxygenBody contained start=+\(/\*[*!]\)\@<!<\|[^<]\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueComment,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell
" These allow the skipping of comment continuation '*' characters.
syn match doxygenContinueComment contained +^\s*\*/\@!\s*+
@@ -133,7 +144,7 @@ try
"
" syn match doxygenBriefLine contained
syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite
- syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([pcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained
+ syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained
" Create the single word matching special identifiers.
@@ -142,7 +153,7 @@ try
let mx='[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,][0-9a-zA-Z_]\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+'
exe 'syn region doxygenSpecial'.a:name.'Word contained start=+'.a:kword.'+ end=+\(\_s\+'.mx.'\)\@<=[-a-zA-Z_0-9+*/^%|~!=&\\]\@!+ skipwhite contains=doxygenContinueComment,doxygen'.a:name.'Word'
- exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial keepend'
+ exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial,@Spell keepend'
endfun
call s:DxyCreateSmallSpecial('p', 'Code')
call s:DxyCreateSmallSpecial('c', 'Code')
@@ -153,10 +164,10 @@ try
call s:DxyCreateSmallSpecial('ref', 'Ref')
delfun s:DxyCreateSmallSpecial
- syn match doxygenSmallSpecial contained +[@\\]\(\<[pcbea]\>\|\<em\>\|\<ref\>\|\<link\>\|f\$\|[$\\&<>#]\)\@=+ nextgroup=doxygenOtherLink,doxygenHyperLink,doxygenHashLink,doxygenFormula,doxygenSymbol,doxygenSpecial.*Word
+ syn match doxygenSmallSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\>\|\<link\>\|f\$\|[$\\&<>#]\)\@=+ nextgroup=doxygenOtherLink,doxygenHyperLink,doxygenHashLink,doxygenFormula,doxygenSymbol,doxygenSpecial.*Word
" Now for special characters
- syn match doxygenSpecial contained +[@\\]\(\<[pcbea]\>\|\<em\>\|\<ref\|\<link\>\>\|\<f\$\|[$\\&<>#]\)\@!+ nextgroup=doxygenParam,doxygenRetval,doxygenBriefWord,doxygenBold,doxygenBOther,doxygenOther,doxygenOtherTODO,doxygenOtherWARN,doxygenOtherBUG,doxygenPage,doxygenGroupDefine,doxygenCodeRegion,doxygenVerbatimRegion,doxygenDotRegion
+ syn match doxygenSpecial contained +[@\\]\(\<[npcbea]\>\|\<em\>\|\<ref\|\<link\>\>\|\<f\$\|[$\\&<>#]\)\@!+ nextgroup=doxygenParam,doxygenRetval,doxygenBriefWord,doxygenBold,doxygenBOther,doxygenOther,doxygenOtherTODO,doxygenOtherWARN,doxygenOtherBUG,doxygenPage,doxygenGroupDefine,doxygenCodeRegion,doxygenVerbatimRegion,doxygenDotRegion
" doxygenOtherLink,doxygenSymbol,doxygenFormula,doxygenErrorSpecial,doxygenSpecial.*Word
"
syn match doxygenGroupDefine contained +@\@<=[{}]+
@@ -164,8 +175,8 @@ try
syn match doxygenErrorSpecial contained +\s+
- " Match Parmaters and retvals (hilighting the first word as special).
- syn match doxygenParamDirection contained +\[\(\<in\>\|\<out\>\|,\)\+\]+ nextgroup=doxygenParamName skipwhite
+ " Match parameters and retvals (highlighting the first word as special).
+ syn match doxygenParamDirection contained "\v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]" nextgroup=doxygenParamName skipwhite
syn keyword doxygenParam contained param nextgroup=doxygenParamName,doxygenParamDirection skipwhite
syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite
syn keyword doxygenRetval contained retval throw exception nextgroup=doxygenParamName skipwhite
@@ -179,10 +190,10 @@ try
\ xmlonly endxmlonly
\ nextgroup=doxygenSpecialOnelineDesc
- syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueComment,doxygenErrorComment
+ syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell
syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+
- syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueComment,doxygenErrorComment
+ syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell
syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+
if exists('b:current_syntax')
@@ -199,7 +210,7 @@ try
unlet b:current_syntax
endif
- syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueComment,@Dotx
+ syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueComment,@NoSpell,@Dotx
syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+
" Match single line identifiers.
@@ -210,13 +221,13 @@ try
syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine
syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc
- syn keyword doxygenOther contained arg author date deprecated li return see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc
+ syn keyword doxygenOther contained arg author date deprecated li return returns see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc
syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc
- " Handle \link, \endlink, hilighting the link-to and the link text bits separately.
- syn region doxygenOtherLink matchgroup=doxygenOther start=+link+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueComment,doxygenLinkError,doxygenEndlinkSpecial
+ " Handle \link, \endlink, highlighting the link-to and the link text bits separately.
+ syn region doxygenOtherLink matchgroup=doxygenOther start=+\<link\>+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueComment,doxygenLinkError,doxygenEndlinkSpecial
syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+
syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
@@ -232,12 +243,12 @@ try
syn match doxygenPage "[\\@]page\>"me=s+1 contained skipwhite nextgroup=doxygenPagePage
syn keyword doxygenPagePage page contained skipwhite nextgroup=doxygenPageIdent
syn region doxygenPageDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenBody
- syn match doxygenPageIdent "\<[a-zA-Z0-9]\+\>" contained nextgroup=doxygenPageDesc
+ syn match doxygenPageIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenPageDesc
" Handle section
syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent
syn region doxygenSpecialSectionDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueComment
- syn match doxygenSpecialIdent "\<[a-zA-Z0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc
+ syn match doxygenSpecialIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc
" Does the one-line description for the one-line type identifiers.
syn region doxygenSpecialTypeOnelineDesc start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend
@@ -246,7 +257,7 @@ try
" Handle the multiline description for the multiline type identifiers.
" Continue until an 'empty' line (can contain a '*' continuation) or until the
" next whole-line @ command \ command.
- syn region doxygenSpecialMultilineDesc start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([pcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueComment,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup skipwhite keepend
+ syn region doxygenSpecialMultilineDesc start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueComment,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell skipwhite keepend
syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite
" Handle special cases 'bold' and 'group'
@@ -257,7 +268,7 @@ try
syn keyword doxygenGroupName contained +\k\++ nextgroup=doxygenSpecialOnelineDesc skipwhite
" Handle special symbol identifiers @$, @\, @$ etc
- syn match doxygenSymbol contained +[$\\&<>#]+
+ syn match doxygenSymbol contained +[$\\&<>#n]+
" Simplistic handling of formula regions
syn region doxygenFormula contained matchgroup=doxygenFormulaEnds start=+f\$+ end=+[@\\]f\$+ contains=doxygenFormulaSpecial,doxygenFormulaOperator
@@ -289,37 +300,37 @@ try
syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=+</[aA]>+me=e-4 contains=@doxygenHtmlTop
hi link doxygenHtmlLink Underlined
- syn region doxygenHtmlBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic
- syn region doxygenHtmlBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic
- syn region doxygenHtmlBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic
- syn region doxygenHtmlBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline
- syn region doxygenHtmlBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline
- syn region doxygenHtmlBoldUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop
- syn region doxygenHtmlBoldUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop
- syn region doxygenHtmlBoldItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic
-
- syn region doxygenHtmlUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBold,doxygenHtmlUnderlineItalic
- syn region doxygenHtmlUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic
- syn region doxygenHtmlUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic
- syn region doxygenHtmlUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,htmUnderlineItalicBold
- syn region doxygenHtmlUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,htmUnderlineItalicBold
- syn region doxygenHtmlUnderlineItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop
- syn region doxygenHtmlUnderlineItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop
- syn region doxygenHtmlUnderlineBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop
- syn region doxygenHtmlUnderlineBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop
-
- syn region doxygenHtmlItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBold,doxygenHtmlItalicUnderline
- syn region doxygenHtmlItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop
- syn region doxygenHtmlItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline
- syn region doxygenHtmlItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline
- syn region doxygenHtmlItalicBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop
- syn region doxygenHtmlItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicUnderlineBold
- syn region doxygenHtmlItalicUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop
- syn region doxygenHtmlItalicUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop
-
- syn region doxygenHtmlCode contained start="\c<code\>" end="\c</code>"me=e-7 contains=@doxygenHtmlTop
-
- " Prevent the doxygen contained matches from leaking into the c groups.
+ syn region doxygenHtmlBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell
+ syn region doxygenHtmlBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderline,doxygenHtmlBoldItalic,@Spell
+ syn region doxygenHtmlBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell
+ syn region doxygenHtmlBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell
+ syn region doxygenHtmlBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,doxygenHtmlBoldItalicUnderline,@Spell
+ syn region doxygenHtmlBoldUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell
+ syn region doxygenHtmlBoldUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
+ syn region doxygenHtmlBoldItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlBoldUnderlineItalic,@Spell
+
+ syn region doxygenHtmlUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBold,doxygenHtmlUnderlineItalic,@Spell
+ syn region doxygenHtmlUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell
+ syn region doxygenHtmlUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlUnderlineBoldItalic,@Spell
+ syn region doxygenHtmlUnderlineItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell
+ syn region doxygenHtmlUnderlineItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,htmUnderlineItalicBold,@Spell
+ syn region doxygenHtmlUnderlineItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell
+ syn region doxygenHtmlUnderlineItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell
+ syn region doxygenHtmlUnderlineBoldItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,@Spell
+ syn region doxygenHtmlUnderlineBoldItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
+
+ syn region doxygenHtmlItalic contained start="\c<i\>" end="\c</i>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBold,doxygenHtmlItalicUnderline,@Spell
+ syn region doxygenHtmlItalic contained start="\c<em\>" end="\c</em>"me=e-5 contains=@doxygenHtmlTop,@Spell
+ syn region doxygenHtmlItalicBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell
+ syn region doxygenHtmlItalicBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,doxygenHtmlItalicBoldUnderline,@Spell
+ syn region doxygenHtmlItalicBoldUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,@Spell
+ syn region doxygenHtmlItalicUnderline contained start="\c<u\>" end="\c</u>"me=e-4 contains=@doxygenHtmlTop,doxygenHtmlItalicUnderlineBold,@Spell
+ syn region doxygenHtmlItalicUnderlineBold contained start="\c<b\>" end="\c</b>"me=e-4 contains=@doxygenHtmlTop,@Spell
+ syn region doxygenHtmlItalicUnderlineBold contained start="\c<strong\>" end="\c</strong>"me=e-9 contains=@doxygenHtmlTop,@Spell
+
+ syn region doxygenHtmlCode contained start="\c<code\>" end="\c</code>"me=e-7 contains=@doxygenHtmlTop,@NoSpell
+
+ " Prevent the doxygen contained matches from leaking into the c/rc groups.
syn cluster cParenGroup add=doxygen.*
syn cluster cParenGroup remove=doxygenComment,doxygenCommentL
syn cluster cPreProcGroup add=doxygen.*
@@ -389,10 +400,16 @@ try
endif
elseif has('gui_win32') || has('gui_win16') || has('gui_win95')
+
+ if exists('g:doxygen_use_bitsream_vera') && g:doxygen_use_bitsream_vera
+ let font_base='Bitstream_Vera_Sans_Mono'
+ else
+ let font_base='Lucida_Console'
+ endif
if &guifont == ''
- let font='font=Lucida_Console:h10'
+ let font='font='.font_base.':h10'
else
- let font='font='.substitute(&guifont, '^[^:]*', 'Lucida_Console','')
+ let font='font='.matchstr(substitute(&guifont, '^[^:]*', font_base,''),'[^,]*')
endif
elseif has('gui_athena') || has('gui_gtk') || &guifont=~'^\(-[^-]\+\)\{14}'
if &guifont == ''
@@ -458,6 +475,7 @@ try
SynLink doxygenBody Comment
+ SynLink doxygenLine doxygenBody
SynLink doxygenTODO Todo
SynLink doxygenOtherTODO Todo
SynLink doxygenOtherWARN Todo
@@ -473,6 +491,7 @@ try
SynLink doxygenEndlinkSpecial doxygenSpecial
SynLink doxygenCodeRegionSpecial doxygenSpecial
SynLink doxygenVerbatimRegionSpecial doxygenSpecial
+ SynLink doxygenDotRegionSpecial doxygenSpecial
SynLink doxygenGroupDefine doxygenParam
SynLink doxygenSpecialMultilineDesc doxygenSpecialOnelineDesc
diff --git a/runtime/syntax/freebasic.vim b/runtime/syntax/freebasic.vim
new file mode 100644
index 000000000..bce7f9ebc
--- /dev/null
+++ b/runtime/syntax/freebasic.vim
@@ -0,0 +1,252 @@
+" Vim syntax file
+" Language: FreeBasic
+" Maintainer: Mark Manning <markem@airmail.net>
+" Updated: 10/22/2006
+"
+" Description:
+"
+" Based originally on the work done by Allan Kelly <Allan.Kelly@ed.ac.uk>
+" Updated by Mark Manning <markem@airmail.net>
+" Applied FreeBasic support to the already excellent support
+" for standard basic syntax (like QB).
+"
+" First version based on Micro$soft QBASIC circa
+" 1989, as documented in 'Learn BASIC Now' by
+" Halvorson&Rygmyr. Microsoft Press 1989. This syntax file
+" not a complete implementation yet. Send suggestions to
+" the maintainer.
+"
+" Quit when a (custom) syntax file was already loaded (Taken from c.vim)
+"
+if exists("b:current_syntax")
+ finish
+endif
+"
+" Be sure to turn on the "case ignore" since current versions
+" of freebasic support both upper as well as lowercase
+" letters. - MEM 10/1/2006
+"
+syn case ignore
+"
+" This list of keywords is taken directly from the FreeBasic
+" user's guide as presented by the FreeBasic online site.
+"
+syn keyword freebasicArrays ERASE LBOUND REDIM PRESERVE UBOUND
+
+syn keyword freebasicBitManipulation BIT BITRESET BITSET HIBYTE HIWORD LOBYTE LOWORD SHL SHR
+
+syn keyword freebasicCompilerSwitches DEFBYTE DEFDBL DEFINT DEFLNG DEFLNGINT DEFSHORT DEFSNG DEFSTR
+syn keyword freebasicCompilerSwitches DEFUBYTE DEFUINT DEFULNGINT DEFUSHORT
+syn match freebasicCompilerSwitches "\<option\s+\(BASE\|BYVAL\|DYNAMIC\|ESCAPE\|EXPLICIT\|NOKEYWORD\)\>"
+syn match freebasicCompilerSwitches "\<option\s+\(PRIVATE\|STATIC\)\>"
+
+syn region freebasicConditional start="\son\s+" skip=".*" end="gosub"
+syn region freebasicConditional start="\son\s+" skip=".*" end="goto"
+syn match freebasicConditional "\<select\s+case\>"
+syn keyword freebasicConditional if iif then case else elseif with
+
+syn match freebasicConsole "\<open\s+\(CONS\|ERR\|PIPE\|SCRN\)\>"
+syn keyword freebasicConsole BEEP CLS CSRLIN LOCATE PRINT POS SPC TAB VIEW WIDTH
+
+syn keyword freebasicDataTypes BYTE AS DIM CONST DOUBLE ENUM INTEGER LONG LONGINT SHARED SHORT STRING
+syn keyword freebasicDataTypes SINGLE TYPE UBYTE UINTEGER ULONGINT UNION UNSIGNED USHORT WSTRING ZSTRING
+
+syn keyword freebasicDateTime DATE DATEADD DATEDIFF DATEPART DATESERIAL DATEVALUE DAY HOUR MINUTE
+syn keyword freebasicDateTime MONTH MONTHNAME NOW SECOND SETDATE SETTIME TIME TIMESERIAL TIMEVALUE
+syn keyword freebasicDateTime TIMER YEAR WEEKDAY WEEKDAYNAME
+
+syn keyword freebasicDebug ASSERT STOP
+
+syn keyword freebasicErrorHandling ERR ERL ERROR LOCAL RESUME
+syn match freebasicErrorHandling "\<resume\s+next\>"
+syn match freebasicErrorHandling "\<on\s+error\>"
+
+syn match freebasicFiles "\<get\s+#\>"
+syn match freebasicFiles "\<input\s+#\>"
+syn match freebasicFiles "\<line\s+input\s+#\>"
+syn match freebasicFiles "\<put\s+#\>"
+syn keyword freebasicFiles ACCESS APPEND BINARY BLOAD BSAVE CLOSE EOF FREEFILE INPUT LOC
+syn keyword freebasicFiles LOCK LOF OPEN OUTPUT RANDOM RESET SEEK UNLOCK WRITE
+
+syn keyword freebasicFunctions ALIAS ANY BYREF BYVAL CALL CDECL CONSTRUCTOR DESTRUCTOR
+syn keyword freebasicFunctions DECLARE FUNCTION LIB OVERLOAD PASCAL STATIC SUB STDCALL
+syn keyword freebasicFunctions VA_ARG VA_FIRST VA_NEXT
+
+syn match freebasicGraphics "\<palette\s+get\>"
+syn keyword freebasicGraphics ALPHA CIRCLE CLS COLOR CUSTOM DRAW FLIP GET
+syn keyword freebasicGraphics IMAGECREATE IMAGEDESTROY LINE PAINT PALETTE PCOPY PMAP POINT
+syn keyword freebasicGraphics PRESET PSET PUT RGB RGBA SCREEN SCREENCOPY SCREENINFO SCREENLIST
+syn keyword freebasicGraphics SCREENLOCK SCREENPTR SCREENRES SCREENSET SCREENSYNC SCREENUNLOCK
+syn keyword freebasicGraphics TRANS USING VIEW WINDOW
+
+syn match freebasicHardware "\<open\s+com\>"
+syn keyword freebasicHardware INP OUT WAIT LPT LPOS LPRINT
+
+syn keyword freebasicLogical AND EQV IMP OR NOT XOR
+
+syn keyword freebasicMath ABS ACOS ASIN ATAN2 ATN COS EXP FIX INT LOG MOD RANDOMIZE
+syn keyword freebasicMath RND SGN SIN SQR TAN
+
+syn keyword freebasicMemory ALLOCATE CALLOCATE CLEAR DEALLOCATE FIELD FRE PEEK POKE REALLOCATE
+
+syn keyword freebasicMisc ASM DATA LET TO READ RESTORE SIZEOF SWAP OFFSETOF
+
+syn keyword freebasicModularizing CHAIN COMMON EXPORT EXTERN DYLIBFREE DYLIBLOAD DYLIBSYMBOL
+syn keyword freebasicModularizing PRIVATE PUBLIC
+
+syn keyword freebasicMultithreading MUTEXCREATE MUTEXDESTROY MUTEXLOCK MUTEXUNLOCK THREADCREATE THREADWAIT
+
+syn keyword freebasicShell CHDIR DIR COMMAND ENVIRON EXEC EXEPATH KILL NAME MKDIR RMDIR RUN
+
+syn keyword freebasicEnviron SHELL SYSTEM WINDOWTITLE POINTERS
+
+syn keyword freebasicLoops FOR LOOP WHILE WEND DO CONTINUE STEP UNTIL next
+
+syn match freebasicInclude "\<#\s*\(inclib\|include\)\>"
+syn match freebasicInclude "\<\$\s*include\>"
+
+syn keyword freebasicPointer PROCPTR PTR SADD STRPTR VARPTR
+
+syn keyword freebasicPredefined __DATE__ __FB_DOS__ __FB_LINUX__ __FB_MAIN__ __FB_MIN_VERSION__
+syn keyword freebasicPredefined __FB_SIGNATURE__ __FB_VERSION__ __FB_WIN32__ __FB_VER_MAJOR__
+syn keyword freebasicPredefined __FB_VER_MINOR__ __FB_VER_PATCH__ __FILE__ __FUNCTION__
+syn keyword freebasicPredefined __LINE__ __TIME__
+
+syn match freebasicPreProcessor "\<^#\s*\(define\|undef\)\>"
+syn match freebasicPreProcessor "\<^#\s*\(ifdef\|ifndef\|else\|elseif\|endif\|if\)\>"
+syn match freebasicPreProcessor "\<#\s*error\>"
+syn match freebasicPreProcessor "\<#\s*\(print\|dynamic\|static\)\>"
+syn keyword freebasicPreProcessor DEFINED ONCE
+
+syn keyword freebasicProgramFlow END EXIT GOSUB GOTO
+syn keyword freebasicProgramFlow IS RETURN SCOPE SLEEP
+
+syn keyword freebasicString INSTR LCASE LEFT LEN LSET LTRIM MID RIGHT RSET RTRIM
+syn keyword freebasicString SPACE STRING TRIM UCASE ASC BIN CHR CVD CVI CVL CVLONGINT
+syn keyword freebasicString CVS CVSHORT FORMAT HEX MKD MKI MKL MKLONGINT MKS MKSHORT
+syn keyword freebasicString OCT STR VAL VALLNG VALINT VALUINT VALULNG
+
+syn keyword freebasicTypeCasting CAST CBYTE CDBL CINT CLNG CLNGINT CPTR CSHORT CSIGN CSNG
+syn keyword freebasicTypeCasting CUBYTE CUINT CULNGINT CUNSG CURDIR CUSHORT
+
+syn match freebasicUserInput "\<line\s+input\>"
+syn keyword freebasicUserInput GETJOYSTICK GETKEY GETMOUSE INKEY INPUT MULTIKEY SETMOUSE
+"
+" Do the Basic variables names first. This is because it
+" is the most inclusive of the tests. Later on we change
+" this so the identifiers are split up into the various
+" types of identifiers like functions, basic commands and
+" such. MEM 9/9/2006
+"
+syn match freebasicIdentifier "\<[a-zA-Z_][a-zA-Z0-9_]*\>"
+syn match freebasicGenericFunction "\<[a-zA-Z_][a-zA-Z0-9_]*\>\s*("me=e-1,he=e-1
+"
+" Function list
+"
+syn keyword freebasicTodo contained TODO
+"
+" Catch errors caused by wrong parenthesis
+"
+syn region freebasicParen transparent start='(' end=')' contains=ALLBUT,@freebasicParenGroup
+syn match freebasicParenError ")"
+syn match freebasicInParen contained "[{}]"
+syn cluster freebasicParenGroup contains=freebasicParenError,freebasicSpecial,freebasicTodo,freebasicUserCont,freebasicUserLabel,freebasicBitField
+"
+" Integer number, or floating point number without a dot and with "f".
+"
+syn region freebasicHex start="&h" end="\W"
+syn region freebasicHexError start="&h\x*[g-zG-Z]" end="\W"
+syn match freebasicInteger "\<\d\+\(u\=l\=\|lu\|f\)\>"
+"
+" Floating point number, with dot, optional exponent
+"
+syn match freebasicFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>"
+"
+" Floating point number, starting with a dot, optional exponent
+"
+syn match freebasicFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
+"
+" Floating point number, without dot, with exponent
+"
+syn match freebasicFloat "\<\d\+e[-+]\=\d\+[fl]\=\>"
+"
+" Hex number
+"
+syn case match
+syn match freebasicOctal "\<0\o*\>"
+syn match freebasicOctalError "\<0\o*[89]"
+"
+" String and Character contstants
+"
+syn region freebasicString start='"' end='"' contains=freebasicSpecial,freebasicTodo
+syn region freebasicString start="'" end="'" contains=freebasicSpecial,freebasicTodo
+"
+" Comments
+"
+syn match freebasicSpecial contained "\\."
+syn region freebasicComment start="^rem" end="$" contains=freebasicSpecial,freebasicTodo
+syn region freebasicComment start=":\s*rem" end="$" contains=freebasicSpecial,freebasicTodo
+syn region freebasicComment start="\s*'" end="$" contains=freebasicSpecial,freebasicTodo
+syn region freebasicComment start="^'" end="$" contains=freebasicSpecial,freebasicTodo
+"
+" Now do the comments and labels
+"
+syn match freebasicLabel "^\d"
+syn match freebasicLabel "\<^\w+:\>"
+syn region freebasicLineNumber start="^\d" end="\s"
+"
+" Create the clusters
+"
+syn cluster freebasicNumber contains=freebasicHex,freebasicOctal,freebasicInteger,freebasicFloat
+syn cluster freebasicError contains=freebasicHexError,freebasicOctalError
+"
+" Used with OPEN statement
+"
+syn match freebasicFilenumber "#\d\+"
+syn match freebasicMathOperator "[\+\-\=\|\*\/\>\<\%\()[\]]" contains=freebasicParen
+"
+" The default methods for highlighting. Can be overridden later
+"
+hi def link freebasicArrays StorageClass
+hi def link freebasicBitManipulation Operator
+hi def link freebasicCompilerSwitches PreCondit
+hi def link freebasicConsole Special
+hi def link freebasicDataTypes Type
+hi def link freebasicDateTime Type
+hi def link freebasicDebug Special
+hi def link freebasicErrorHandling Special
+hi def link freebasicFiles Special
+hi def link freebasicFunctions Function
+hi def link freebasicGraphics Function
+hi def link freebasicHardware Special
+hi def link freebasicLogical Conditional
+hi def link freebasicMath Function
+hi def link freebasicMemory Function
+hi def link freebasicMisc Special
+hi def link freebasicModularizing Special
+hi def link freebasicMultithreading Special
+hi def link freebasicShell Special
+hi def link freebasicEnviron Special
+hi def link freebasicPointer Special
+hi def link freebasicPredefined PreProc
+hi def link freebasicPreProcessor PreProc
+hi def link freebasicProgramFlow Statement
+hi def link freebasicString String
+hi def link freebasicTypeCasting Type
+hi def link freebasicUserInput Statement
+hi def link freebasicComment Comment
+hi def link freebasicConditional Conditional
+hi def link freebasicError Error
+hi def link freebasicIdentifier Identifier
+hi def link freebasicInclude Include
+hi def link freebasicGenericFunction Function
+hi def link freebasicLabel Label
+hi def link freebasicLineNumber Label
+hi def link freebasicMathOperator Operator
+hi def link freebasicNumber Number
+hi def link freebasicSpecial Special
+hi def link freebasicTodo Todo
+
+let b:current_syntax = "freebasic"
+
+" vim: ts=8
diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim
index 32e223124..e600de73a 100644
--- a/runtime/syntax/help.vim
+++ b/runtime/syntax/help.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Vim help file
" Maintainer: Bram Moolenaar (Bram@vim.org)
-" Last Change: 2006 Apr 13
+" Last Change: 2006 May 13
" Quit when a (custom) syntax file was already loaded
if exists("b:current_syntax")
diff --git a/runtime/syntax/html.vim b/runtime/syntax/html.vim
index 85f9a0254..137c13c5b 100644
--- a/runtime/syntax/html.vim
+++ b/runtime/syntax/html.vim
@@ -2,7 +2,7 @@
" Language: HTML
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/html.vim
-" Last Change: 2006 April 13
+" Last Change: 2006 Jun 19
" Please check :help html.vim for some comments and a description of the options
@@ -24,6 +24,7 @@ else
command! -nargs=+ HtmlHiLink hi def link <args>
endif
+syntax spell toplevel
syn case ignore
diff --git a/runtime/syntax/htmldjango.vim b/runtime/syntax/htmldjango.vim
index a3c65fd47..4b13863c0 100644
--- a/runtime/syntax/htmldjango.vim
+++ b/runtime/syntax/htmldjango.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Django HTML template
" Maintainer: Dave Hodder <dmh@dmh.org.uk>
-" Last Change: 2006 Mar 06
+" Last Change: 2007 Jan 26
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -24,7 +24,11 @@ else
unlet b:current_syntax
endif
-syntax cluster htmlPreproc add=djangoPlaceHolder
-syntax cluster htmlString add=djangoPlaceHolder
+syn cluster djangoBlocks add=djangoTagBlock,djangoVarBlock,djangoComment,djangoComBlock
+
+syn region djangoTagBlock start="{%" end="%}" contains=djangoStatement,djangoFilter,djangoArgument,djangoTagError display containedin=ALLBUT,@djangoBlocks
+syn region djangoVarBlock start="{{" end="}}" contains=djangoFilter,djangoArgument,djangoVarError display containedin=ALLBUT,@djangoBlocks
+syn region djangoComment start="{%\s*comment\s*%}" end="{%\s*endcomment\s*%}" contains=djangoTodo containedin=ALLBUT,@djangoBlocks
+syn region djangoComBlock start="{#" end="#}" contains=djangoTodo containedin=ALLBUT,@djangoBlocks
let b:current_syntax = "htmldjango"
diff --git a/runtime/syntax/lisp.vim b/runtime/syntax/lisp.vim
index 61792d110..cd800e720 100644
--- a/runtime/syntax/lisp.vim
+++ b/runtime/syntax/lisp.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Lisp
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Oct 12, 2005
-" Version: 17a
+" Last Change: Apr 12, 2007
+" Version: 19
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
"
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols
@@ -34,6 +34,8 @@ else
syn cluster lispListCluster contains=@lispBaseListCluster,lispString
endif
+syn case ignore
+
" ---------------------------------------------------------------------
" Lists: {{{1
syn match lispSymbol contained ![^()'`,"; \t]\+!
@@ -436,7 +438,7 @@ syn keyword lispVar *gensym-counter* *print-miser-width* *trace-output*
" ---------------------------------------------------------------------
" Strings: {{{1
-syn region lispString start=+"+ skip=+\\\\\|\\"+ end=+"+
+syn region lispString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
if exists("g:lisp_instring")
syn region lispInString keepend matchgroup=Delimiter start=+"(+rs=s+1 skip=+|.\{-}|+ matchgroup=Delimiter end=+)"+ contains=@lispBaseListCluster,lispInStringString
syn region lispInStringString start=+\\"+ skip=+\\\\+ end=+\\"+ contained
@@ -454,14 +456,15 @@ syn keyword lispDecl do* flet multiple-value-bind
" Numbers: supporting integers and floating point numbers {{{1
syn match lispNumber "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\="
-syn match lispSpecial "\*[a-zA-Z_][a-zA-Z_0-9-]*\*"
+syn match lispSpecial "\*\w[a-z_0-9-]*\*"
syn match lispSpecial !#|[^()'`,"; \t]\+|#!
-syn match lispSpecial !#x[0-9a-fA-F]\+!
-syn match lispSpecial !#o[0-7]\+!
+syn match lispSpecial !#x\x\+!
+syn match lispSpecial !#o\o\+!
syn match lispSpecial !#b[01]\+!
-syn match lispSpecial !#\\[ -\~]!
+syn match lispSpecial !#\\[ -}\~]!
syn match lispSpecial !#[':][^()'`,"; \t]\+!
syn match lispSpecial !#([^()'`,"; \t]\+)!
+syn match lispSpecial !#\\\%(Space\|Newline\|Tab\|Page\|Rubout\|Linefeed\|Return\|Backspace\)!
syn match lispConcat "\s\.\s"
syn match lispParenError ")"
@@ -471,9 +474,7 @@ syn match lispParenError ")"
syn cluster lispCommentGroup contains=lispTodo,@Spell
syn match lispComment ";.*$" contains=@lispCommentGroup
syn region lispCommentRegion start="#|" end="|#" contains=lispCommentRegion,@lispCommentGroup
-syn case ignore
syn keyword lispTodo contained combak combak: todo todo:
-syn case match
" ---------------------------------------------------------------------
" Synchronization: {{{1
diff --git a/runtime/syntax/mail.vim b/runtime/syntax/mail.vim
index 291daa25c..7717cd970 100644
--- a/runtime/syntax/mail.vim
+++ b/runtime/syntax/mail.vim
@@ -22,13 +22,15 @@ syn cluster mailQuoteExps contains=mailQuoteExp1,mailQuoteExp2,mailQuoteExp3,mai
syn case match
" For "From " matching case is required. The "From " is not matched in quoted
" emails
-syn region mailHeader contains=@mailHeaderFields,@NoSpell start="^From " skip="^\s" end="\v^[-A-Za-z0-9]*([^-A-Za-z0-9:]|$)"me=s-1
+" According to RFC 2822 any printable ASCII character can appear in a field
+" name, except ':'.
+syn region mailHeader contains=@mailHeaderFields,@NoSpell start="^From " skip="^\s" end="\v^[!-9;-~]*([^!-~]|$)"me=s-1
syn match mailHeaderKey contained contains=mailEmail,@NoSpell "^From\s.*$"
syn case ignore
" Nothing else depends on case. Headers in properly quoted (with "> " or ">")
" emails are matched
-syn region mailHeader keepend contains=@mailHeaderFields,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)*\)\v(newsgroups|from|((in-)?reply-)?to|b?cc|subject|return-path|received|date|replied):" skip="^\z1\s" end="\v^\z1[-a-z0-9]*([^-a-z0-9:]|$)"me=s-1 end="\v^\z1@!"me=s-1 end="\v^\z1(\> ?)+"me=s-1
+syn region mailHeader keepend contains=@mailHeaderFields,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)*\)\v(newsgroups|from|((in-)?reply-)?to|b?cc|subject|return-path|received|date|replied):" skip="^\z1\s" end="\v^\z1[!-9;-~]*([^!-~]|$)"me=s-1 end="\v^\z1@!"me=s-1 end="\v^\z1(\> ?)+"me=s-1
syn region mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@mailQuoteExps,@NoSpell start="\v(^(\> ?)*)@<=(to|b?cc):" skip=",$" end="$"
syn match mailHeaderKey contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$"
diff --git a/runtime/syntax/messages.vim b/runtime/syntax/messages.vim
new file mode 100644
index 000000000..2dbaa5ac3
--- /dev/null
+++ b/runtime/syntax/messages.vim
@@ -0,0 +1,59 @@
+" Vim syntax file
+" Language: /var/log/messages file
+" Maintainer: Yakov Lerner <iler.ml@gmail.com>
+" Latest Revision: 2006-06-19
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn match messagesBegin display '^' nextgroup=messagesDate
+
+syn match messagesDate contained display '\a\a\a [ 0-9]\d *'
+ \ nextgroup=messagesHour
+
+syn match messagesHour contained display '\d\d:\d\d:\d\d\s*'
+ \ nextgroup=messagesHost
+
+syn match messagesHost contained display '\S*\s*'
+ \ nextgroup=messagesLabel
+
+syn match messagesLabel contained display '\s*[^:]*:\s*'
+ \ nextgroup=messagesText contains=messagesKernel,messagesPID
+
+syn match messagesPID contained display '\[\zs\d\+\ze\]'
+
+syn match messagesKernel contained display 'kernel:'
+
+
+syn match messagesIP '\d\+\.\d\+\.\d\+\.\d\+'
+
+syn match messagesURL '\w\+://\S\+'
+
+syn match messagesText contained display '.*'
+ \ contains=messagesNumber,messagesIP,messagesURL,messagesError
+
+syn match messagesNumber contained '0x[0-9a-fA-F]*\|\[<[0-9a-f]\+>\]\|\<\d[0-9a-fA-F]*'
+
+syn match messagesError contained '\c.*\<\(FATAL\|ERROR\|ERRORS\|FAILED\|FAILURE\).*'
+
+
+hi def link messagesDate Constant
+hi def link messagesHour Type
+hi def link messagesHost Identifier
+hi def link messagesLabel Operator
+hi def link messagesPID Constant
+hi def link messagesKernel Special
+hi def link messagesError ErrorMsg
+hi def link messagesIP Constant
+hi def link messagesURL Underlined
+hi def link messagesText Normal
+hi def link messagesNumber Number
+
+let b:current_syntax = "messages"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/mrxvtrc.vim b/runtime/syntax/mrxvtrc.vim
index d3e312931..d86f8e42a 100644
--- a/runtime/syntax/mrxvtrc.vim
+++ b/runtime/syntax/mrxvtrc.vim
@@ -1,129 +1,254 @@
" Created : Wed 26 Apr 2006 01:20:53 AM CDT
-" Modified : Thu 27 Apr 2006 02:29:25 PM CDT
+" Modified : Mon 20 Nov 2006 12:14:16 AM PST
" Author : Gautam Iyer <gi1242@users.sourceforge.net>
-" Description : Syntax file for mrxvtrc
+" Description : Vim syntax file for mrxvtrc (for mrxvt-0.5.0 and up)
" Quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
-" Define options.
-let s:boolOpts = '(highlightTabOnBell|syncTabTitle|hideTabbar|autohideTabbar|bottomTabbar|hideButtons|syncTabIcon|veryBoldFont|maximized|fullscreen|reverseVideo|loginShell|jumpScroll|scrollBar|scrollbarRight|scrollbarFloating|scrollTtyOutputInhibit|scrollTtyKeypress|scrollWithBuffer|transparent|transparentForce|transparentScrollbar|transparentMenubar|transparentTabbar|tabUsePixmap|utmpInhibit|visualBell|mapAlert|meta8|mouseWheelScrollPage|multibyte_cursor|tripleclickwords|showMenu|xft|xftNomFont|xftSlowOutput|xftAntialias|xftHinting|xftAutoHint|xftGlobalAdvance|tabShell|cmdAllTabs|cmdInitTabs|protectSecondary|thai|borderLess|overrideRedirect|holdExit|broadcast|smartResize|smoothResize|pointerBlank|cursorBlink|noSysConfig|disableMacros|linuxHomeEndKey|sessionMgt)'
-
-let s:colorOpts = '(vt\d+.(foreground|background)|background|foreground|ufBackground|textShadow|i?tab(Foreground|Background)|color([0-9]|1[0-5]|BD|UL|RV)|(scroll|trough|highlight|cursor|pointer|border|tint)Color|cursorColor2)'
-
-let s:numOpts = '(vt\d+.saveLines|maxTabWidth|minVisibleTabs|saveLines|scrollbarThickness|xftmSize|xftSize|desktop|externalBorder|internalBorder|lineSpace|pointerBlankDelay|cursorBlinkInterval|initTermNumber|shading|backgroundFade|bgRefreshInterval|fading|opacity|opacityDegree|xftPSize)'
-
-let s:strOpts = '(vt\d+\.(tabTitle|command)|tabTitle|termName|title|clientName|iconName|bellCommand|holdExitText|backspaceKey|deleteKey|printPipe|cutChars|answerbackString|smClientID|geometry|confFileSave|path|boldFont|m?font[1-5]?|xftFont|xftmFont|xftPFont|inputMethod|greektoggle_key|menu|menubarPixmap|vt\d+\.Pixmap|Pixmap|scrollbarPixmap|tabbarPixmap|appIcon|multichar_encoding)'
-
syn case match
-syn match mrxvtrcComment contains=@Spell '^\s*!.*$'
-syn match mrxvtrcComment '\v^\s*!\s*\w+[.*]\w+.*:.*'
+" Errors
+syn match mrxvtrcError contained '\v\S+'
+
+" Comments
+syn match mrxvtrcComment contains=@Spell '^\s*[!#].*$'
+syn match mrxvtrcComment '\v^\s*[#!]\s*\w+[.*]\w+.*:.*'
"
-" Generic options (string / color / number / boolean)
+" Options.
"
-syn match mrxvtrcOptErr '\v^\s*\w+[.*]?.{-}(:|$)'
-exec 'syn match mrxvtrcBoolOpts nextgroup=mrxvtrcBoolVal,mrxvtrcValErr'
- \ '"\v^\w+[.*]'.s:boolOpts.':\s*"'
-exec 'syn match mrxvtrcNumOpts nextgroup=mrxvtrcNumVal,mrxvtrcValErr'
- \ '"\v^\w+[.*]'.s:numOpts.':\s*"'
-exec 'syn match mrxvtrcColorOpts nextgroup=mrxvtrcColorVal'
- \ '"\v^\w+[.*]'.s:colorOpts.':\s*"'
-exec 'syn match mrxvtrcStrOpts nextgroup=mrxvtrcStrVal,mrxvtrcValErr'
- \ '"\v^\w+[.*]'.s:strOpts.':\s*"'
-
+syn match mrxvtrcClass '\v^\s*\w+[.*]'
+ \ nextgroup=mrxvtrcOptions,mrxvtrcProfile,@mrxvtrcPOpts,mrxvtrcError
+
+" Boolean options
+syn keyword mrxvtrcOptions contained nextgroup=mrxvtrcBColon,mrxvtrcError
+ \ highlightTabOnBell syncTabTitle hideTabbar
+ \ autohideTabbar bottomTabbar hideButtons
+ \ syncTabIcon veryBoldFont maximized
+ \ fullscreen reverseVideo loginShell
+ \ jumpScroll scrollBar scrollbarRight
+ \ scrollbarFloating scrollTtyOutputInhibit
+ \ scrollTtyKeypress scrollWithBuffer
+ \ transparentForce transparentScrollbar
+ \ transparentMenubar transparentTabbar
+ \ tabUsePixmap utmpInhibit visualBell mapAlert
+ \ meta8 mouseWheelScrollPage multibyte_cursor
+ \ tripleclickwords showMenu xft xftNomFont
+ \ xftSlowOutput xftAntialias xftHinting
+ \ xftAutoHint xftGlobalAdvance cmdAllTabs
+ \ protectSecondary thai borderLess
+ \ overrideRedirect broadcast
+ \ smartResize smoothResize pointerBlank
+ \ cursorBlink noSysConfig disableMacros
+ \ linuxHomeEndKey sessionMgt
+syn match mrxvtrcOptions contained nextgroup=mrxvtrcBColon,mrxvtrcError
+ \ '\v<transparent>'
+syn match mrxvtrcBColon contained skipwhite
+ \ nextgroup=mrxvtrcBoolVal,mrxvtrcError ':'
syn case ignore
-
-syn match mrxvtrcValErr contained '\v.+$'
-syn keyword mrxvtrcBoolVal contained 0 1 yes no on off true false
-syn match mrxvtrcStrVal contained '\v.+$'
-syn match mrxvtrcColorVal contained '\v#[0-9a-f]{6}\s*$'
-syn match mrxvtrcNumVal contained '\v[+-]?(0[0-7]+|\d+|0x[0-9a-f]+)$'
-
+syn keyword mrxvtrcBoolVal contained skipwhite nextgroup=mrxvtrcError
+ \ 0 1 yes no on off true false
syn case match
-"
-" Options with special values
-"
-syn match mrxvtrcOptions nextgroup=mrxvtrcSBstyle,mrxvtrcValErr
- \ '\v^\w+[.*]scrollbarStyle:\s*'
-syn keyword mrxvtrcSBstyle contained plain xterm rxvt next sgi
-
-syn match mrxvtrcOptions nextgroup=mrxvtrcSBalign,mrxvtrcValErr
- \ '\v^\w+[.*]scrollbarAlign:\s*'
-syn keyword mrxvtrcSBalign contained top bottom
-
-syn match mrxvtrcOptions nextgroup=mrxvtrcTSmode,mrxvtrcValErr
- \ '\v^\w+[.*]textShadowMode:\s*'
-syn keyword mrxvtrcTSmode contained
+" Color options
+syn keyword mrxvtrcOptions contained nextgroup=mrxvtrcCColon,mrxvtrcError
+ \ ufBackground textShadow tabForeground
+ \ itabForeground tabBackground itabBackground
+ \ scrollColor troughColor highlightColor
+ \ cursorColor cursorColor2 pointerColor
+ \ borderColor tintColor
+syn match mrxvtrcOptions contained nextgroup=mrxvtrcCColon,mrxvtrcError
+ \ '\v<color([0-9]|1[0-5]|BD|UL|RV)>'
+syn match mrxvtrcCColon contained skipwhite
+ \ nextgroup=mrxvtrcColorVal ':'
+syn match mrxvtrcColorVal contained skipwhite nextgroup=mrxvtrcError
+ \ '\v#[0-9a-fA-F]{6}'
+
+" Numeric options
+syn keyword mrxvtrcOptions contained nextgroup=mrxvtrcNColon,mrxvtrcError
+ \ maxTabWidth minVisibleTabs
+ \ scrollbarThickness xftmSize xftSize desktop
+ \ externalBorder internalBorder lineSpace
+ \ pointerBlankDelay cursorBlinkInterval
+ \ shading backgroundFade bgRefreshInterval
+ \ fading focusDelay opacity opacityDegree
+ \ xftPSize
+syn match mrxvtrcNColon contained skipwhite
+ \ nextgroup=mrxvtrcNumVal,mrxvtrcError ':'
+syn match mrxvtrcNumVal contained skipwhite nextgroup=mrxvtrcError
+ \ '\v[+-]?<(0[0-7]+|\d+|0x[0-9a-f]+)>'
+
+" String options
+syn keyword mrxvtrcOptions contained nextgroup=mrxvtrcSColon,mrxvtrcError
+ \ tabTitle termName title clientName iconName
+ \ bellCommand backspaceKey deleteKey
+ \ printPipe cutChars answerbackString
+ \ smClientID geometry path boldFont xftFont
+ \ xftmFont xftPFont inputMethod
+ \ greektoggle_key menu menubarPixmap
+ \ scrollbarPixmap tabbarPixmap appIcon
+ \ multichar_encoding initProfileList
+ \ winTitleFormat
+syn match mrxvtrcOptions contained nextgroup=mrxvtrcSColon,mrxvtrcError
+ \ '\v<m?font[1-5]?>'
+syn match mrxvtrcSColon contained skipwhite nextgroup=mrxvtrcStrVal ':'
+syn match mrxvtrcStrVal contained '\v\S.*'
+
+" Profile options
+syn cluster mrxvtrcPOpts contains=mrxvtrcPSOpts,mrxvtrcPCOpts,mrxvtrcPNOpts
+syn match mrxvtrcProfile contained nextgroup=@mrxvtrcPOpts,mrxvtrcError
+ \ '\vprofile\d+\.'
+syn keyword mrxvtrcPSOpts contained nextgroup=mrxvtrcSColon,mrxvtrcError
+ \ tabTitle command holdExitText holdExitTitle
+ \ Pixmap workingDirectory titleFormat
+syn keyword mrxvtrcPCOpts contained nextgroup=mrxvtrcCColon,mrxvtrcError
+ \ background foreground
+syn keyword mrxvtrcPNOpts contained nextgroup=mrxvtrcNColon,mrxvtrcError
+ \ holdExit saveLines
+
+" scrollbarStyle
+syn match mrxvtrcOptions contained skipwhite
+ \ nextgroup=mrxvtrcSBstyle,mrxvtrcError
+ \ '\v<scrollbarStyle:'
+syn keyword mrxvtrcSBstyle contained skipwhite nextgroup=mrxvtrcError
+ \ plain xterm rxvt next sgi
+
+" scrollbarAlign
+syn match mrxvtrcOptions contained skipwhite
+ \ nextgroup=mrxvtrcSBalign,mrxvtrcError
+ \ '\v<scrollbarAlign:'
+syn keyword mrxvtrcSBalign contained skipwhite nextgroup=mrxvtrcError
+ \ top bottom
+
+" textShadowMode
+syn match mrxvtrcOptions contained skipwhite
+ \ nextgroup=mrxvtrcTSmode,mrxvtrcError
+ \ '\v<textShadowMode:'
+syn keyword mrxvtrcTSmode contained skipwhite nextgroup=mrxvtrcError
\ none top bottom left right topleft topright
\ botleft botright
-syn match mrxvtrcOptions nextgroup=mrxvtrcGrkKbd,mrxvtrcValErr
- \ '\v^\w+[.*]greek_keyboard:\s*'
-syn keyword mrxvtrcGrkKbd contained iso ibm
-
-syn match mrxvtrcOptions nextgroup=mrxvtrcXftWt,mrxvtrcValErr
- \ '\v^\w+[.*]xftWeight:\s*'
-syn keyword mrxvtrcXftWt contained light medium bold
-
-syn match mrxvtrcOptions nextgroup=mrxvtrcXftSl,mrxvtrcValErr
- \ '\v^\w+[.*]xftSlant:\s*'
-syn keyword mrxvtrcXftSl contained roman italic oblique
-
-syn match mrxvtrcOptions nextgroup=mrxvtrcXftWd,mrxvtrcValErr
- \ '\v^\w+[.*]xftWidth:\s*'
-syn keyword mrxvtrcXftWd contained
+" greek_keyboard
+syn match mrxvtrcOptions contained skipwhite
+ \ nextgroup=mrxvtrcGrkKbd,mrxvtrcError
+ \ '\v<greek_keyboard:'
+syn keyword mrxvtrcGrkKbd contained skipwhite nextgroup=mrxvtrcError
+ \ iso ibm
+
+" xftWeight
+syn match mrxvtrcOptions contained skipwhite
+ \ nextgroup=mrxvtrcXftWt,mrxvtrcError
+ \ '\v<(xftWeight|xftBoldWeight):'
+syn keyword mrxvtrcXftWt contained skipwhite nextgroup=mrxvtrcError
+ \ light medium demibold bold black
+
+" xftSlant
+syn match mrxvtrcOptions contained skipwhite
+ \ nextgroup=mrxvtrcXftSl,mrxvtrcError
+ \ '\v<xftSlant:'
+syn keyword mrxvtrcXftSl contained skipwhite nextgroup=mrxvtrcError
+ \ roman italic oblique
+
+" xftWidth
+syn match mrxvtrcOptions contained skipwhite
+ \ nextgroup=mrxvtrcXftWd,mrxvtrcError
+ \ '\v<xftWidth:'
+syn keyword mrxvtrcXftWd contained skipwhite nextgroup=mrxvtrcError
\ ultracondensed ultraexpanded
\ condensed expanded normal
-syn match mrxvtrcOptions nextgroup=mrxvtrcXftHt,mrxvtrcValErr
- \ '\v^\w+[.*]xftRGBA:\s*'
-syn keyword mrxvtrcXftHt contained rgb bgr vrgb vbgr none
-
-syn match mrxvtrcOptions nextgroup=mrxvtrcPedit,mrxvtrcValErr
- \ '\v^\w+[.*]preeditType:\s*'
-syn keyword mrxvtrcPedit contained OverTheSpot OffTheSpot Root
-
-syn match mrxvtrcOptions nextgroup=mrxvtrcMod,mrxvtrcValErr
- \ '\v^\w+[.*]modifier:\s*'
-syn keyword mrxvtrcMod contained
+" xftRGBA
+syn match mrxvtrcOptions contained skipwhite
+ \ nextgroup=mrxvtrcXftHt,mrxvtrcError
+ \ '\v<xftRGBA:'
+syn keyword mrxvtrcXftHt contained skipwhite nextgroup=mrxvtrcError
+ \ rgb bgr vrgb vbgr none
+
+" preeditType
+syn match mrxvtrcOptions contained skipwhite
+ \ nextgroup=mrxvtrcPedit,mrxvtrcError
+ \ '\v<preeditType:'
+syn keyword mrxvtrcPedit contained skipwhite nextgroup=mrxvtrcError
+ \ OverTheSpot OffTheSpot Root
+
+" modifier
+syn match mrxvtrcOptions contained skipwhite
+ \ nextgroup=mrxvtrcMod,mrxvtrcError
+ \ '\v<modifier:'
+syn keyword mrxvtrcMod contained skipwhite nextgroup=mrxvtrcError
\ alt meta hyper super mod1 mod2 mod3 mod4 mod5
-syn match mrxvtrcOptions nextgroup=mrxvtrcSelSty,mrxvtrcValErr
- \ '\v^\w+[.*]selectStyle:\s*'
-syn keyword mrxvtrcSelSty contained old oldword
+" selectStyle
+syn match mrxvtrcOptions contained skipwhite
+ \ nextgroup=mrxvtrcSelSty,mrxvtrcError
+ \ '\v<selectStyle:'
+syn keyword mrxvtrcSelSty contained skipwhite nextgroup=mrxvtrcError
+ \ old oldword
"
" Macros
"
-syn match mrxvtrcOptions nextgroup=mrxvtrcMacro,mrxvtrcValErr
- \ '\v\c^\w+[.*]macro.(primary\+)?((ctrl|alt|meta|shift)\+)*\w+:\s*'
-syn keyword mrxvtrcMacro contained nextgroup=mrxvtrcMacroArg
- \ Dummy Esc Str NewTab Close GotoTab MoveTab
- \ Scroll Copy Paste ToggleSubwin ResizeFont
- \ ToggleVeryBold ToggleTransparency
- \ ToggleBroadcast ToggleHold SetTitle
- \ PrintScreen SaveConfig ToggleMacros
-syn match mrxvtrcMacroArg contained '.\+$'
-
+syn keyword mrxvtrcOptions contained nextgroup=mrxvtrcKey,mrxvtrcError
+ \ macro
+syn case ignore
+syn match mrxvtrcKey contained skipwhite
+ \ nextgroup=mrxvtrcMacro,mrxvtrcError
+ \ '\v\.((primary|add|ctrl|alt|meta|shift)\+)*\w+:'
+syn case match
-unlet s:strOpts s:boolOpts s:colorOpts s:numOpts
+" Macros without arguments
+syn keyword mrxvtrcMacro contained skipwhite nextgroup=mrxvtrcError
+ \ Dummy Copy Paste ToggleVeryBold
+ \ ToggleTransparency ToggleBroadcast
+ \ ToggleHold SetTitle ToggleMacros
+ \ ToggleFullscreen
+
+" Macros with a string argument
+syn keyword mrxvtrcMacro contained skipwhite nextgroup=mrxvtrcStrVal
+ \ Esc Str Exec Scroll PrintScreen SaveConfig
+
+" Macros with a numeric argument
+syn keyword mrxvtrcMacro contained skipwhite
+ \ nextgroup=mrxvtrcNumVal,mrxvtrcError
+ \ Close GotoTab MoveTab ResizeFont
+
+" NewTab macro
+syn keyword mrxvtrcMacro contained skipwhite
+ \ nextgroup=mrxvtrcTitle,mrxvtrcShell,mrxvtrcCmd
+ \ NewTab
+syn region mrxvtrcTitle contained oneline skipwhite
+ \ nextgroup=mrxvtrcShell,mrxvtrcCmd
+ \ start='"' end='"'
+syn match mrxvtrcShell contained nextgroup=mrxvtrcCmd '!'
+syn match mrxvtrcCmd contained '\v[^!" \t].*'
+
+" ToggleSubwin macro
+syn keyword mrxvtrcMacro contained skipwhite
+ \ nextgroup=mrxvtrcSubwin,mrxvtrcError
+ \ ToggleSubwin
+syn match mrxvtrcSubwin contained skipwhite nextgroup=mrxvtrcError
+ \ '\v[-+]?[bmst]>'
"
" Highlighting groups
"
+hi def link mrxvtrcError Error
hi def link mrxvtrcComment Comment
-hi def link mrxvtrcBoolOpts Statement
-hi def link mrxvtrcColorOpts mrxvtrcBoolOpts
-hi def link mrxvtrcNumOpts mrxvtrcBoolOpts
-hi def link mrxvtrcStrOpts mrxvtrcBoolOpts
-hi def link mrxvtrcOptions mrxvtrcBoolOpts
+hi def link mrxvtrcClass Statement
+hi def link mrxvtrcOptions mrxvtrcClass
+hi def link mrxvtrcBColon mrxvtrcClass
+hi def link mrxvtrcCColon mrxvtrcClass
+hi def link mrxvtrcNColon mrxvtrcClass
+hi def link mrxvtrcSColon mrxvtrcClass
+hi def link mrxvtrcProfile mrxvtrcClass
+hi def link mrxvtrcPSOpts mrxvtrcClass
+hi def link mrxvtrcPCOpts mrxvtrcClass
+hi def link mrxvtrcPNOpts mrxvtrcClass
hi def link mrxvtrcBoolVal Boolean
hi def link mrxvtrcStrVal String
@@ -143,9 +268,10 @@ hi def link mrxvtrcMod mrxvtrcStrVal
hi def link mrxvtrcSelSty mrxvtrcStrVal
hi def link mrxvtrcMacro Identifier
-hi def link mrxvtrcMacroArg String
-
-hi def link mrxvtrcOptErr Error
-hi def link mrxvtrcValErr Error
+hi def link mrxvtrcKey mrxvtrcClass
+hi def link mrxvtrcTitle mrxvtrcStrVal
+hi def link mrxvtrcShell Special
+hi def link mrxvtrcCmd PreProc
+hi def link mrxvtrcSubwin mrxvtrcStrVal
let b:current_syntax = "mrxvtrc"
diff --git a/runtime/syntax/pod.vim b/runtime/syntax/pod.vim
index 38fa18f3f..9809d00b5 100644
--- a/runtime/syntax/pod.vim
+++ b/runtime/syntax/pod.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Perl POD format
" Maintainer: Scott Bigham <dsb@killerbunnies.org>
-" Last Change: 2005 Jul 05
+" Last Change: 2007 Jan 21
" To add embedded POD documentation highlighting to your syntax file, add
" the commands:
@@ -53,6 +53,7 @@ syn match podSpecial "[$@%]\I\i*\(::\I\i*\)*\>" contains=@NoSpell
" Special formatting sequences
syn region podFormat start="[IBSCLFX]<[^<]"me=e-1 end=">" oneline contains=podFormat,@NoSpell
+syn region podFormat start="[IBSCLFX]<<\s" end="\s>>" oneline contains=podFormat,@NoSpell
syn match podFormat "Z<>"
syn match podFormat "E<\(\d\+\|\I\i*\)>" contains=podEscape,podEscape2,@NoSpell
syn match podEscape "\I\i*>"me=e-1 contained contains=@NoSpell
diff --git a/runtime/syntax/python.vim b/runtime/syntax/python.vim
index 7496c3db1..5288d9bdc 100644
--- a/runtime/syntax/python.vim
+++ b/runtime/syntax/python.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Python
" Maintainer: Neil Schemenauer <nas@python.ca>
-" Updated: 2002-10-18
+" Updated: 2006-10-15
" Added Python 2.4 features 2006 May 4 (Dmitry Vasiliev)
"
" Options to control Python syntax highlighting:
@@ -40,7 +40,7 @@ endif
syn keyword pythonStatement break continue del
syn keyword pythonStatement except exec finally
syn keyword pythonStatement pass print raise
-syn keyword pythonStatement return try
+syn keyword pythonStatement return try with
syn keyword pythonStatement global assert
syn keyword pythonStatement lambda yield
syn keyword pythonStatement def class nextgroup=pythonFunction skipwhite
@@ -50,21 +50,21 @@ syn keyword pythonConditional if elif else
syn keyword pythonOperator and in is not or
" AS will be a keyword in Python 3
syn keyword pythonPreCondit import from as
-syn match pythonComment "#.*$" contains=pythonTodo
+syn match pythonComment "#.*$" contains=pythonTodo,@Spell
syn keyword pythonTodo TODO FIXME XXX contained
" Decorators (new in Python 2.4)
syn match pythonDecorator "@" display nextgroup=pythonFunction skipwhite
" strings
-syn region pythonString matchgroup=Normal start=+[uU]\='+ end=+'+ skip=+\\\\\|\\'+ contains=pythonEscape
-syn region pythonString matchgroup=Normal start=+[uU]\="+ end=+"+ skip=+\\\\\|\\"+ contains=pythonEscape
-syn region pythonString matchgroup=Normal start=+[uU]\="""+ end=+"""+ contains=pythonEscape
-syn region pythonString matchgroup=Normal start=+[uU]\='''+ end=+'''+ contains=pythonEscape
-syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]'+ end=+'+ skip=+\\\\\|\\'+
-syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]"+ end=+"+ skip=+\\\\\|\\"+
-syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]"""+ end=+"""+
-syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]'''+ end=+'''+
+syn region pythonString matchgroup=Normal start=+[uU]\='+ end=+'+ skip=+\\\\\|\\'+ contains=pythonEscape,@Spell
+syn region pythonString matchgroup=Normal start=+[uU]\="+ end=+"+ skip=+\\\\\|\\"+ contains=pythonEscape,@Spell
+syn region pythonString matchgroup=Normal start=+[uU]\="""+ end=+"""+ contains=pythonEscape,@Spell
+syn region pythonString matchgroup=Normal start=+[uU]\='''+ end=+'''+ contains=pythonEscape,@Spell
+syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]'+ end=+'+ skip=+\\\\\|\\'+ contains=@Spell
+syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]"+ end=+"+ skip=+\\\\\|\\"+ contains=@Spell
+syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]"""+ end=+"""+ contains=@Spell
+syn region pythonRawString matchgroup=Normal start=+[uU]\=[rR]'''+ end=+'''+ contains=@Spell
syn match pythonEscape +\\[abfnrtv'"\\]+ contained
syn match pythonEscape "\\\o\{1,3}" contained
syn match pythonEscape "\\x\x\{2}" contained
diff --git a/runtime/syntax/tcl.vim b/runtime/syntax/tcl.vim
index 145da9087..e9562d650 100644
--- a/runtime/syntax/tcl.vim
+++ b/runtime/syntax/tcl.vim
@@ -1,10 +1,11 @@
" Vim syntax file
" Language: TCL/TK
-" Maintainer: Dean Copsey <copsey@cs.ucdavis.edu>
+" Maintainer: Brett Cannon <brett@python.org>
+" (previously Dean Copsey <copsey@cs.ucdavis.edu>)
" (previously Matt Neumann <mattneu@purpleturtle.com>)
" (previously Allan Kelly <allan@fruitloaf.co.uk>)
" Original: Robin Becker <robin@jessikat.demon.co.uk>
-" Last Change: 2004 May 16
+" Last Change: 2006 Nov 17
"
" Keywords TODO: format clock click anchor
@@ -17,9 +18,16 @@ elseif exists("b:current_syntax")
endif
" A bunch of useful keywords
-syn keyword tclStatement proc global return lindex
-syn keyword tclStatement llength lappend lreplace lrange list concat incr
-syn keyword tclStatement upvar set
+syn keyword tclStatement tell socket subst open eof pwd glob list exec pid
+syn keyword tclStatement auto_load_index time unknown eval lrange fblocked
+syn keyword tclStatement lsearch auto_import gets lappend proc variable llength
+syn keyword tclStatement auto_execok return linsert error catch clock info
+syn keyword tclStatement split array fconfigure concat join lreplace source
+syn keyword tclStatement fcopy global auto_qualify update close cd auto_load
+syn keyword tclStatement file append format read package set binary namespace
+syn keyword tclStatement scan trace seek flush after vwait uplevel lset rename
+syn keyword tclStatement fileevent regexp upvar unset encoding expr load regsub
+syn keyword tclStatement interp exit puts incr lindex lsort tclLog string
syn keyword tclLabel case default
syn keyword tclConditional if then else elseif switch
syn keyword tclRepeat while for foreach break continue
diff --git a/runtime/syntax/zsh.vim b/runtime/syntax/zsh.vim
index 83763a627..761e3ac02 100644
--- a/runtime/syntax/zsh.vim
+++ b/runtime/syntax/zsh.vim
@@ -1,118 +1,194 @@
" Vim syntax file
-" Language: Z shell (zsh)
-" Maintainer: Felix von Leitner <leitner@math.fu-berlin.de>
-" Heavily based on sh.vim by Lennart Schultz
-" Last Change: 2003 May 11
-
-" 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")
+" Language: Zsh shell script
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2006-08-06
+
+if exists("b:current_syntax")
finish
endif
-" String and Character contstants
-" Highlight special characters (those which have a backslash) differently
-syn match zshSpecial "\\\d\d\d\|\\[abcfnrtv\\']"
-syn region zshSinglequote start=+'+ skip=+\\'+ end=+'+
-" A bunch of useful zsh keywords
-" syn keyword zshFunction function
-syn keyword zshStatement bg break cd chdir continue echo eval exec
-syn keyword zshStatement exit export fg getopts hash jobs kill
-syn keyword zshStatement pwd read readonly return set zshift function
-syn keyword zshStatement stop suspend test times trap type ulimit
-syn keyword zshStatement umask unset wait setopt compctl source
-syn keyword zshStatement whence disown shift which unhash unalias
-syn keyword zshStatement alias functions unfunction getln disable
-syn keyword zshStatement vared getopt enable unsetopt autoload
-syn keyword zshStatement bindkey pushln command limit unlimit fc
-syn keyword zshStatement print builtin noglob sched r time
-syn keyword zshStatement typeset declare local integer
-
-syn keyword zshConditional if else esac case then elif fi in
-syn keyword zshRepeat while for do done
-
-" Following is worth to notice: command substitution, file redirection and functions (so these features turns red)
-syn match zshFunctionName "\h\w*\s*()"
-syn region zshCommandSub start=+`+ skip=+\\`+ end=+`+
-" contains=ALLBUT,zshFunction
-syn match zshRedir "\d\=\(<\|<<\|>\|>>\)\(|\|&\d\)\="
-
-syn keyword zshTodo contained TODO
-
-syn keyword zshShellVariables USER LOGNAME HOME PATH CDPATH SHELL
-syn keyword zshShellVariables LC_TYPE LC_MESSAGE MAIL MAILCHECK
-syn keyword zshShellVariables PS1 PS2 IFS EGID EUID ERRNO GID UID
-syn keyword zshShellVariables HOST LINENO MACHTYPE OLDPWD OPTARG
-syn keyword zshShellVariables OPTIND OSTYPE PPID PWD RANDOM SECONDS
-syn keyword zshShellVariables SHLVL TTY signals TTYIDLE USERNAME
-syn keyword zshShellVariables VENDOR ZSH_NAME ZSH_VERSION ARGV0
-syn keyword zshShellVariables BAUD COLUMNS cdpath DIRSTACKSIZE
-syn keyword zshShellVariables FCEDIT fignore fpath histchars HISTCHARS
-syn keyword zshShellVariables HISTFILE HISTSIZE KEYTIMEOUT LANG
-syn keyword zshShellVariables LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES
-syn keyword zshShellVariables LC_TIME LINES LISTMAX LOGCHECK mailpath
-syn keyword zshShellVariables MAILPATH MANPATH manpath module_path
-syn keyword zshShellVariables MODULE_PATH NULLCMD path POSTEDIT
-syn keyword zshShellVariables PS3 PS4 PROMPT PROMPT2 PROMPT3 PROMPT4
-syn keyword zshShellVariables psvar PSVAR prompt READNULLCMD
-syn keyword zshShellVariables REPORTTIME RPROMPT RPS1 SAVEHIST
-syn keyword zshShellVariables SPROMPT STTY TIMEFMT TMOUT TMPPREFIX
-syn keyword zshShellVariables watch WATCH WATCHFMT WORDCHARS ZDOTDIR
-syn match zshSpecialShellVar "\$[-#@*$?!0-9]"
-syn keyword zshSetVariables ignoreeof noclobber
-syn region zshDerefOpr start="\${" end="}" contains=zshShellVariables
-syn match zshDerefIdentifier "\$[a-zA-Z_][a-zA-Z0-9_]*\>"
-syn match zshOperator "[][}{&;|)(]"
-
-
-
-syn match zshNumber "-\=\<\d\+\>"
-syn match zshComment "#.*$" contains=zshNumber,zshTodo
-
-
-syn match zshTestOpr "-\<[oeaznlg][tfqet]\=\>\|!\==\|-\<[b-gkLprsStuwjxOG]\>"
-"syn region zshTest start="\[" skip="\\$" end="\]" contains=zshString,zshTestOpr,zshDerefIdentifier,zshDerefOpr
-syn region zshString start=+"+ skip=+\\"+ end=+"+ contains=zshSpecial,zshOperator,zshDerefIdentifier,zshDerefOpr,zshSpecialShellVar,zshSinglequote,zshCommandSub
-
-" 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_zsh_syntax_inits")
- if version < 508
- let did_zsh_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink zshSinglequote zshString
- HiLink zshConditional zshStatement
- HiLink zshRepeat zshStatement
- HiLink zshFunctionName zshFunction
- HiLink zshCommandSub zshOperator
- HiLink zshRedir zshOperator
- HiLink zshSetVariables zshShellVariables
- HiLink zshSpecialShellVar zshShellVariables
- HiLink zshTestOpr zshOperator
- HiLink zshDerefOpr zshSpecial
- HiLink zshDerefIdentifier zshShellVariables
- HiLink zshOperator Operator
- HiLink zshStatement Statement
- HiLink zshNumber Number
- HiLink zshString String
- HiLink zshComment Comment
- HiLink zshSpecial Special
- HiLink zshTodo Todo
- HiLink zshShellVariables Special
-" hi zshOperator term=underline ctermfg=6 guifg=Purple gui=bold
-" hi zshShellVariables term=underline ctermfg=2 guifg=SeaGreen gui=bold
-" hi zshFunction term=bold ctermbg=1 guifg=Red
-
- delcommand HiLink
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal iskeyword=@,48-57,_,-
+
+syn keyword zshTodo contained TODO FIXME XXX NOTE
+
+syn region zshComment display oneline start='\%(^\|\s\)#' end='$'
+ \ contains=zshTodo,@Spell
+
+syn match zshPreProc '^\%1l#\%(!\|compdef\|autoload\).*$'
+
+syn match zshQuoted '\\.'
+syn region zshString matchgroup=zshStringDelimiter start=+"+ end=+"+
+ \ contains=zshQuoted,@zshDerefs,@zshSubst
+syn region zshString matchgroup=zshStringDelimiter start=+'+ end=+'+
+" XXX: This should probably be more precise, but Zsh seems a bit confused about it itself
+syn region zshPOSIXString matchgroup=zshStringDelimiter start=+\$'+
+ \ end=+'+ contains=zshQuoted
+syn match zshJobSpec '%\(\d\+\|?\=\w\+\|[%+-]\)'
+
+syn keyword zshPrecommand noglob nocorrect exec command builtin - time
+
+syn keyword zshDelimiter do done
+
+syn keyword zshConditional if then elif else fi case in esac select
+
+syn keyword zshRepeat for while until repeat foreach
+
+syn keyword zshException always
+
+syn keyword zshKeyword function nextgroup=zshKSHFunction skipwhite
+
+syn match zshKSHFunction contained '\k\+'
+syn match zshFunction '^\s*\k\+\ze\s*()'
+
+syn match zshOperator '||\|&&\|;\|&!\='
+
+syn match zshRedir '\d\=\(<\|<>\|<<<\|<&\s*[0-9p-]\=\)'
+syn match zshRedir '\d\=\(>\|>>\|>&\s*[0-9p-]\=\|&>\|>>&\|&>>\)[|!]\='
+syn match zshRedir '|&\='
+
+syn region zshHereDoc matchgroup=zshRedir start='<<\s*\z(\S*\)'
+ \ end='^\z1\>' contains=@zshSubst
+syn region zshHereDoc matchgroup=zshRedir start='<<-\s*\z(\S*\)'
+ \ end='^\s*\z1\>' contains=@zshSubst
+syn region zshHereDoc matchgroup=zshRedir
+ \ start=+<<\s*\(["']\)\z(\S*\)\1+ end='^\z1\>'
+syn region zshHereDoc matchgroup=zshRedir
+ \ start=+<<-\s*\(["']\)\z(\S*\)\1+
+ \ end='^\s*\z1\>'
+
+syn match zshVariable '\<\h\w*\ze+\=='
+" XXX: how safe is this?
+syn region zshVariable oneline
+ \ start='\$\@<!\<\h\w*\[' end='\]\ze+\=='
+ \ contains=@zshSubst
+
+syn cluster zshDerefs contains=zshShortDeref,zshLongDeref,zshDeref
+
+if !exists("g:zsh_syntax_variables")
+ let s:zsh_syntax_variables = 'all'
+else
+ let s:zsh_syntax_variables = g:zsh_syntax_variables
+endif
+
+if s:zsh_syntax_variables =~ 'short\|all'
+ syn match zshShortDeref '\$[!#$*@?_-]\w\@!'
+ syn match zshShortDeref '\$[=^~]*[#+]*\d\+\>'
+endif
+
+if s:zsh_syntax_variables =~ 'long\|all'
+ syn match zshLongDeref '\$\%(ARGC\|argv\|status\|pipestatus\|CPUTYPE\|EGID\|EUID\|ERRNO\|GID\|HOST\|LINENO\|LOGNAME\)'
+ syn match zshLongDeref '\$\%(MACHTYPE\|OLDPWD OPTARG\|OPTIND\|OSTYPE\|PPID\|PWD\|RANDOM\|SECONDS\|SHLVL\|signals\)'
+ syn match zshLongDeref '\$\%(TRY_BLOCK_ERROR\|TTY\|TTYIDLE\|UID\|USERNAME\|VENDOR\|ZSH_NAME\|ZSH_VERSION\|REPLY\|reply\|TERM\)'
+endif
+
+if s:zsh_syntax_variables =~ 'all'
+ syn match zshDeref '\$[=^~]*[#+]*\h\w*\>'
+else
+ syn match zshDeref transparent '\$[=^~]*[#+]*\h\w*\>'
+endif
+
+syn match zshCommands '\%(^\|\s\)[.:]\ze\s'
+syn keyword zshCommands alias autoload bg bindkey break bye cap cd
+ \ chdir clone comparguments compcall compctl
+ \ compdescribe compfiles compgroups compquote
+ \ comptags comptry compvalues continue dirs
+ \ disable disown echo echotc echoti emulate
+ \ enable eval exec exit export false fc fg
+ \ functions getcap getln getopts hash history
+ \ jobs kill let limit log logout popd print
+ \ printf pushd pushln pwd r read readonly
+ \ rehash return sched set setcap setopt shift
+ \ source stat suspend test times trap true
+ \ ttyctl type ulimit umask unalias unfunction
+ \ unhash unlimit unset unsetopt vared wait
+ \ whence where which zcompile zformat zftp zle
+ \ zmodload zparseopts zprof zpty zregexparse
+ \ zsocket zstyle ztcp
+
+syn keyword zshTypes float integer local typeset declare
+
+" XXX: this may be too much
+" syn match zshSwitches '\s\zs--\=[a-zA-Z0-9-]\+'
+
+syn match zshNumber '[+-]\=\<\d\+\>'
+syn match zshNumber '[+-]\=\<0x\x\+\>'
+syn match zshNumber '[+-]\=\<0\o\+\>'
+syn match zshNumber '[+-]\=\d\+#[-+]\=\w\+\>'
+syn match zshNumber '[+-]\=\d\+\.\d\+\>'
+
+syn cluster zshSubst contains=zshSubst,zshOldSubst,zshMathSubst
+syn region zshSubst matchgroup=zshSubstDelim transparent
+ \ start='\$(' skip='\\)' end=')' contains=TOP
+syn region zshParentheses transparent start='(' skip='\\)' end=')'
+syn region zshMathSubst matchgroup=zshSubstDelim transparent
+ \ start='\$((' skip='\\)'
+ \ matchgroup=zshSubstDelim end='))'
+ \ contains=zshParentheses,@zshSubst,zshNumber,
+ \ @zshDerefs,zshString
+syn region zshBrackets contained transparent start='{' skip='\\}'
+ \ end='}'
+syn region zshSubst matchgroup=zshSubstDelim start='\${' skip='\\}'
+ \ end='}' contains=@zshSubst,zshBrackets,zshQuoted
+syn region zshOldSubst matchgroup=zshSubstDelim start=+`+ skip=+\\`+
+ \ end=+`+ contains=TOP,zshOldSubst
+
+hi def link zshTodo Todo
+hi def link zshComment Comment
+hi def link zshPreProc PreProc
+hi def link zshQuoted SpecialChar
+hi def link zshString String
+hi def link zshStringDelimiter zshString
+hi def link zshPOSIXString zshString
+hi def link zshJobSpec Special
+hi def link zshPrecommand Special
+hi def link zshDelimiter Keyword
+hi def link zshConditional Conditional
+hi def link zshException Exception
+hi def link zshRepeat Repeat
+hi def link zshKeyword Keyword
+hi def link zshFunction None
+hi def link zshKSHFunction zshFunction
+hi def link zshHereDoc String
+if 0
+ hi def link zshOperator Operator
+else
+ hi def link zshOperator None
+endif
+if 1
+ hi def link zshRedir Operator
+else
+ hi def link zshRedir None
+endif
+hi def link zshVariable None
+hi def link zshDereferencing PreProc
+if s:zsh_syntax_variables =~ 'short\|all'
+ hi def link zshShortDeref zshDereferencing
+else
+ hi def link zshShortDeref None
+endif
+if s:zsh_syntax_variables =~ 'long\|all'
+ hi def link zshLongDeref zshDereferencing
+else
+ hi def link zshLongDeref None
+endif
+if s:zsh_syntax_variables =~ 'all'
+ hi def link zshDeref zshDereferencing
+else
+ hi def link zshDeref None
endif
+hi def link zshCommands Keyword
+hi def link zshTypes Type
+hi def link zshSwitches Special
+hi def link zshNumber Number
+hi def link zshSubst PreProc
+hi def link zshMathSubst zshSubst
+hi def link zshOldSubst zshSubst
+hi def link zshSubstDelim zshSubst
let b:current_syntax = "zsh"
-" vim: ts=8
+let &cpo = s:cpo_save
+unlet s:cpo_save