summaryrefslogtreecommitdiff
path: root/runtime/syntax
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax')
-rw-r--r--runtime/syntax/cdrdaoconf.vim139
-rw-r--r--runtime/syntax/cmake.vim2
-rw-r--r--runtime/syntax/coco.vim33
-rw-r--r--runtime/syntax/css.vim4
-rw-r--r--runtime/syntax/debcontrol.vim44
-rw-r--r--runtime/syntax/denyhosts.vim289
-rw-r--r--runtime/syntax/git.vim67
-rw-r--r--runtime/syntax/gitcommit.vim65
-rw-r--r--runtime/syntax/hostconf.vim147
-rw-r--r--runtime/syntax/lisp.vim959
-rw-r--r--runtime/syntax/lsl.vim272
-rw-r--r--runtime/syntax/modconf.vim4
-rw-r--r--runtime/syntax/mrxvtrc.vim29
-rw-r--r--runtime/syntax/mysql.vim446
-rw-r--r--runtime/syntax/phtml.vim244
-rw-r--r--runtime/syntax/quake.vim4
-rw-r--r--runtime/syntax/rexx.vim238
-rw-r--r--runtime/syntax/snobol4.vim94
-rw-r--r--runtime/syntax/sql.vim2
-rw-r--r--runtime/syntax/yacc.vim54
-rw-r--r--runtime/syntax/zsh.vim4
21 files changed, 2080 insertions, 1060 deletions
diff --git a/runtime/syntax/cdrdaoconf.vim b/runtime/syntax/cdrdaoconf.vim
new file mode 100644
index 000000000..5058c23a2
--- /dev/null
+++ b/runtime/syntax/cdrdaoconf.vim
@@ -0,0 +1,139 @@
+" Vim syntax file
+" Language: cdrdao(1) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-09-02
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword cdrdaoconfTodo
+ \ TODO FIXME XXX NOTE
+
+syn match cdrdaoconfBegin
+ \ display
+ \ nextgroup=@cdrdaoconfKeyword,cdrdaoconfComment
+ \ '^'
+
+syn cluster cdrdaoconfKeyword
+ \ contains=cdrdaoconfIntegerKeyword,
+ \ cdrdaoconfDriverKeyword,
+ \ cdrdaoconfDeviceKeyword,
+ \ cdrdaoconfPathKeyword
+
+syn keyword cdrdaoconfIntegerKeyword
+ \ contained
+ \ nextgroup=cdrdaoconfIntegerDelimiter
+ \ write_speed
+ \ write_buffers
+ \ user_capacity
+ \ full_burn
+ \ read_speed
+ \ cddb_timeout
+
+syn keyword cdrdaoconfIntegerKeyword
+ \ contained
+ \ nextgroup=cdrdaoconfParanoiaModeDelimiter
+ \ read_paranoia_mode
+
+syn keyword cdrdaoconfDriverKeyword
+ \ contained
+ \ nextgroup=cdrdaoconfDriverDelimiter
+ \ write_driver
+ \ read_driver
+
+syn keyword cdrdaoconfDeviceKeyword
+ \ contained
+ \ nextgroup=cdrdaoconfDeviceDelimiter
+ \ write_device
+ \ read_device
+
+syn keyword cdrdaoconfPathKeyword
+ \ contained
+ \ nextgroup=cdrdaoconfPathDelimiter
+ \ cddb_directory
+ \ tmp_file_dir
+
+syn match cdrdaoconfIntegerDelimiter
+ \ contained
+ \ nextgroup=cdrdaoconfInteger
+ \ skipwhite
+ \ ':'
+
+syn match cdrdaoconfParanoiaModeDelimiter
+ \ contained
+ \ nextgroup=cdrdaoconfParanoiaMode
+ \ skipwhite
+ \ ':'
+
+syn match cdrdaoconfDriverDelimiter
+ \ contained
+ \ nextgroup=cdrdaoconfDriver
+ \ skipwhite
+ \ ':'
+
+syn match cdrdaoconfDeviceDelimiter
+ \ contained
+ \ nextgroup=cdrdaoconfDevice
+ \ skipwhite
+ \ ':'
+
+syn match cdrdaoconfPathDelimiter
+ \ contained
+ \ nextgroup=cdrdaoconfPath
+ \ skipwhite
+ \ ':'
+
+syn match cdrdaoconfInteger
+ \ contained
+ \ '\<\d\+\>'
+
+syn match cdrdaoParanoiaMode
+ \ contained
+ \ '[0123]'
+
+syn match cdrdaoconfDriver
+ \ contained
+ \ '\<\(cdd2600\|generic-mmc\%(-raw\)\=\|plextor\%(-scan\)\|ricoh-mp6200\|sony-cdu9\%(20\|48\)\|taiyo-yuden\|teac-cdr55\|toshiba\|yamaha-cdr10x\)\>'
+
+syn region cdrdaoconfDevice
+ \ contained
+ \ matchgroup=cdrdaoconfDevice
+ \ start=+"+
+ \ end=+"+
+
+syn region cdrdaoconfPath
+ \ contained
+ \ matchgroup=cdrdaoconfPath
+ \ start=+"+
+ \ end=+"+
+
+syn match cdrdaoconfComment
+ \ contains=cdrdaoconfTodo,@Spell
+ \ '^.*#.*$'
+
+hi def link cdrdaoconfTodo Todo
+hi def link cdrdaoconfComment Comment
+hi def link cdrdaoconfKeyword Keyword
+hi def link cdrdaoconfIntegerKeyword cdrdaoconfKeyword
+hi def link cdrdaoconfDriverKeyword cdrdaoconfKeyword
+hi def link cdrdaoconfDeviceKeyword cdrdaoconfKeyword
+hi def link cdrdaoconfPathKeyword cdrdaoconfKeyword
+hi def link cdrdaoconfDelimiter Delimiter
+hi def link cdrdaoconfIntegerDelimiter cdrdaoconfDelimiter
+hi def link cdrdaoconfDriverDelimiter cdrdaoconfDelimiter
+hi def link cdrdaoconfDeviceDelimiter cdrdaoconfDelimiter
+hi def link cdrdaoconfPathDelimiter cdrdaoconfDelimiter
+hi def link cdrdaoconfInteger Number
+hi def link cdrdaoconfParanoiaMode Number
+hi def link cdrdaoconfDriver Identifier
+hi def link cdrdaoconfDevice cdrdaoconfPath
+hi def link cdrdaoconfPath String
+
+let b:current_syntax = "cdrdaoconf"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/cmake.vim b/runtime/syntax/cmake.vim
index 302417e5f..4dd5c3a11 100644
--- a/runtime/syntax/cmake.vim
+++ b/runtime/syntax/cmake.vim
@@ -49,7 +49,7 @@ syn region cmakeArguments start=/\s*(/ end=/)/
syn keyword cmakeDeprecated ABSTRACT_FILES BUILD_NAME SOURCE_FILES SOURCE_FILES_REMOVE VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WRAP_EXCLUDE_FILES
\ nextgroup=cmakeArgument
syn keyword cmakeStatement
- \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDIF ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE ENDMACRO
+ \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ELSEIF ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDIF ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE ENDMACRO
\ nextgroup=cmakeArgumnts
"syn match cmakeMacro /^\s*[A-Z_]\+/ nextgroup=cmakeArgumnts
diff --git a/runtime/syntax/coco.vim b/runtime/syntax/coco.vim
new file mode 100644
index 000000000..4094a5530
--- /dev/null
+++ b/runtime/syntax/coco.vim
@@ -0,0 +1,33 @@
+" Vim syntax file
+" Language: Coco/R
+" Maintainer: Ashish Shukla <wahjava@gmail.com>
+" Last Change: 2007 Aug 10
+" Remark: Coco/R syntax partially implemented.
+" License: Vim license
+
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+syn keyword cocoKeywords ANY CHARACTERS COMMENTS COMPILER CONTEXT END FROM IF IGNORE IGNORECASE NESTED PRAGMAS PRODUCTIONS SYNC TO TOKENS WEAK
+syn match cocoUnilineComment #//.*$#
+syn match cocoIdentifier /[[:alpha:]][[:alnum:]]*/
+syn region cocoMultilineComment start=#/[*]# end=#[*]/#
+syn region cocoString start=/"/ skip=/\\"\|\\\\/ end=/"/
+syn region cocoCharacter start=/'/ skip=/\\'\|\\\\/ end=/'/
+syn match cocoOperator /+\||\|\.\.\|-\|(\|)\|{\|}\|\[\|\]\|=\|<\|>/
+syn region cocoProductionCode start=/([.]/ end=/[.])/
+syn match cocoPragma /[$][[:alnum:]]*/
+
+hi def link cocoKeywords Keyword
+hi def link cocoUnilineComment Comment
+hi def link cocoMultilineComment Comment
+hi def link cocoIdentifier Identifier
+hi def link cocoString String
+hi def link cocoCharacter Character
+hi def link cocoOperator Operator
+hi def link cocoProductionCode Statement
+hi def link cocoPragma Special
+
diff --git a/runtime/syntax/css.vim b/runtime/syntax/css.vim
index 7f9ac258d..a73836a92 100644
--- a/runtime/syntax/css.vim
+++ b/runtime/syntax/css.vim
@@ -2,7 +2,7 @@
" Language: Cascading Style Sheets
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
" URL: http://www.fleiner.com/vim/syntax/css.vim
-" Last Change: 2006 Jun 19
+" Last Change: 2007 Nov 06
" CSS2 by Nikolai Weibull
" Full CSS2, HTML4 support by Yeti
@@ -194,7 +194,7 @@ syn match cssSpecialCharQQ +\\"+ contained
syn match cssSpecialCharQ +\\'+ contained
syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
-syn match cssClassName "\.[A-Za-z][A-Za-z0-9-]\+"
+syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
if main_syntax == "css"
syn sync minlines=10
diff --git a/runtime/syntax/debcontrol.vim b/runtime/syntax/debcontrol.vim
index f15e83cb6..3b01fb50a 100644
--- a/runtime/syntax/debcontrol.vim
+++ b/runtime/syntax/debcontrol.vim
@@ -3,8 +3,8 @@
" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
" Wichert Akkerman <wakkerma@debian.org>
-" Last Change: $LastChangedDate: 2006-04-16 21:50:31 -0400 (Sun, 16 Apr 2006) $
-" URL: http://svn.debian.org/wsvn/pkg-vim/trunk/runtime/syntax/debcontrol.vim?op=file&rev=0&sc=0
+" Last Change: 2008-02-23
+" URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/ftplugin/debcontrol.vim;hb=debian
" Comments are very welcome - but please make sure that you are commenting on
" the latest version of this file.
@@ -17,6 +17,9 @@ elseif exists("b:current_syntax")
finish
endif
+" Should match case except for the keys of each field
+syn case match
+
" Everything that is not explicitly matched by the rules below
syn match debcontrolElse "^.*$"
@@ -25,28 +28,47 @@ syn match debControlComma ", *"
syn match debControlSpace " "
" Define some common expressions we can use later on
-syn match debcontrolArchitecture contained "\(all\|any\|alpha\|amd64\|arm\(eb\)\=\|hppa\|i386\|ia64\|m32r\|m68k\|mipsel\|mips\|powerpc\|ppc64\|s390\|sheb\|sh\|sparc64\|sparc\|hurd-i386\|kfreebsd-\(i386\|gnu\)\|knetbsd-i386\|netbsd-\(alpha\|i386\)\)"
-syn match debcontrolName contained "[a-z][a-z0-9+-]*"
+syn match debcontrolArchitecture contained "\(all\|any\|alpha\|amd64\|arm\(e[bl]\)\=\|hppa\|i386\|ia64\|m32r\|m68k\|mipsel\|mips\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc64\|sparc\|hurd-i386\|kfreebsd-\(i386\|gnu\)\|knetbsd-i386\|netbsd-\(alpha\|i386\)\)"
+syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
-syn match debcontrolSection contained "\(\(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\)/\)\=\(admin\|base\|comm\|devel\|doc\|editors\|electronics\|embedded\|games\|gnome\|graphics\|hamradio\|interpreters\|kde\|libs\|libdevel\|mail\|math\|misc\|net\|news\|oldlibs\|otherosfs\|perl\|python\|science\|shells\|sound\|text\|tex\|utils\|web\|x11\|debian-installer\)"
+syn match debcontrolSection contained "\(\(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\|restricted\|universe\|multiverse\)/\)\=\(admin\|base\|comm\|devel\|doc\|editors\|electronics\|embedded\|games\|gnome\|graphics\|hamradio\|interpreters\|kde\|libs\|libdevel\|mail\|math\|misc\|net\|news\|oldlibs\|otherosfs\|perl\|python\|science\|shells\|sound\|text\|tex\|utils\|web\|x11\|debian-installer\)"
+syn match debcontrolPackageType contained "u\?deb"
syn match debcontrolVariable contained "\${.\{-}}"
+" A URL (using the domain name definitions from RFC 1034 and 1738), right now
+" only enforce protocol and some sanity on the server/path part;
+syn match debcontrolHTTPUrl contained "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
+syn match debcontrolVcsSvn contained "\vsvn%(\+ssh)?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
+syn match debcontrolVcsCvs contained "\v%(\-d *)?:pserver:[^@]+\@[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?:/[^[:space:]]*%( [^[:space:]]+)?$"
+syn match debcontrolVcsGit contained "\vgit://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
+
" An email address
syn match debcontrolEmail "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"
syn match debcontrolEmail "<.\{-}>"
+" #-Comments
+syn match debcontrolComment "^#.*$"
+
+syn case ignore
+
" List of all legal keys
-syn match debcontrolKey contained "^\(Source\|Package\|Section\|Priority\|Maintainer\|Uploaders\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Architecture\|Description\|Bugs\|Origin\|Enhances\): *"
+syn match debcontrolKey contained "^\(Source\|Package\|Section\|Priority\|Maintainer\|Uploaders\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Architecture\|Description\|Bugs\|Origin\|Enhances\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|XC-Package-Type\): *"
" Fields for which we do strict syntax checking
syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline
syn region debcontrolStrictField start="^\(Package\|Source\)" end="$" contains=debcontrolKey,debcontrolName oneline
syn region debcontrolStrictField start="^Priority" end="$" contains=debcontrolKey,debcontrolPriority oneline
syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline
+syn region debcontrolStrictField start="^XC-Package-Type" end="$" contains=debcontrolKey,debcontrolPackageType oneline
+syn region debcontrolStrictField start="^Homepage" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend
" Catch-all for the other legal fields
-syn region debcontrolField start="^\(Maintainer\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Bugs\|Origin\|Enhances\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
-syn region debcontrolMultiField start="^\(Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ ]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable
+syn region debcontrolField start="^\(Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X\(S\|B\)-Python-Version\|XSBC-Original-Maintainer\|\(XS-\)\?Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
+syn region debcontrolMultiField start="^\(Build-\(Conflicts\|Depends\)\(-Indep\)\=\|\(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ ]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable
" Associate our matches and regions with pretty colours
if version >= 508 || !exists("did_debcontrol_syn_inits")
@@ -65,8 +87,14 @@ if version >= 508 || !exists("did_debcontrol_syn_inits")
HiLink debcontrolName Normal
HiLink debcontrolPriority Normal
HiLink debcontrolSection Normal
+ HiLink debcontrolPackageType Normal
HiLink debcontrolVariable Identifier
HiLink debcontrolEmail Identifier
+ HiLink debcontrolVcsSvn Identifier
+ HiLink debcontrolVcsCvs Identifier
+ HiLink debcontrolVcsGit Identifier
+ HiLink debcontrolHTTPUrl Identifier
+ HiLink debcontrolComment Comment
HiLink debcontrolElse Special
delcommand HiLink
diff --git a/runtime/syntax/denyhosts.vim b/runtime/syntax/denyhosts.vim
new file mode 100644
index 000000000..0ec09ba13
--- /dev/null
+++ b/runtime/syntax/denyhosts.vim
@@ -0,0 +1,289 @@
+" Vim syntax file
+" Language: denyhosts configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-06-25
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword denyhostsTodo
+ \ contained
+ \ TODO
+ \ FIXME
+ \ XXX
+ \ NOTE
+
+syn case ignore
+
+syn match denyhostsComment
+ \ contained
+ \ display
+ \ '#.*'
+ \ contains=denyhostsTodo,
+ \ @Spell
+
+syn match denyhostsBegin
+ \ display
+ \ '^'
+ \ nextgroup=@denyhostsSetting,
+ \ denyhostsComment
+ \ skipwhite
+
+syn cluster denyhostsSetting
+ \ contains=denyhostsStringSetting,
+ \ denyhostsBooleanSetting,
+ \ denyhostsPathSetting,
+ \ denyhostsNumericSetting,
+ \ denyhostsTimespecSetting,
+ \ denyhostsFormatSetting,
+ \ denyhostsRegexSetting
+
+syn keyword denyhostsStringSetting
+ \ contained
+ \ ADMIN_EMAIL
+ \ SMTP_HOST
+ \ SMTP_USERNAME
+ \ SMTP_PASSWORD
+ \ SMTP_FROM
+ \ SMTP_SUBJECT
+ \ BLOCK_SERVICE
+ \ nextgroup=denyhostsStringDelimiter
+ \ skipwhite
+
+syn keyword denyhostsBooleanSetting
+ \ contained
+ \ SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS
+ \ HOSTNAME_LOOKUP
+ \ SYSLOG_REPORT
+ \ RESET_ON_SUCCESS
+ \ SYNC_UPLOAD
+ \ SYNC_DOWNLOAD
+ \ ALLOWED_HOSTS_HOSTNAME_LOOKUP
+ \ nextgroup=denyhostsBooleanDelimiter
+ \ skipwhite
+
+syn keyword denyhostsPathSetting
+ \ contained
+ \ DAEMON_LOG
+ \ PLUGIN_DENY
+ \ PLUGIN_PURGE
+ \ SECURE_LOG
+ \ LOCK_FILE
+ \ HOSTS_DENY
+ \ WORK_DIR
+ \ nextgroup=denyhostsPathDelimiter
+ \ skipwhite
+
+syn keyword denyhostsNumericSetting
+ \ contained
+ \ SYNC_DOWNLOAD_THRESHOLD
+ \ SMTP_PORT
+ \ PURGE_THRESHOLD
+ \ DENY_THRESHOLD_INVALID
+ \ DENY_THRESHOLD_VALID
+ \ DENY_THRESHOLD_ROOT
+ \ DENY_THRESHOLD_RESTRICTED
+ \ nextgroup=denyhostsNumericDelimiter
+ \ skipwhite
+
+syn keyword denyhostsTimespecSetting
+ \ contained
+ \ DAEMON_SLEEP
+ \ DAEMON_PURGE
+ \ AGE_RESET_INVALID
+ \ AGE_RESET_VALID
+ \ AGE_RESET_ROOT
+ \ AGE_RESET_RESTRICTED
+ \ SYNC_INTERVAL
+ \ SYNC_DOWNLOAD_RESILIENCY
+ \ PURGE_DENY
+ \ nextgroup=denyhostsTimespecDelimiter
+ \ skipwhite
+
+syn keyword denyhostsFormatSetting
+ \ contained
+ \ DAEMON_LOG_TIME_FORMAT
+ \ DAEMON_LOG_MESSAGE_FORMAT
+ \ SMTP_DATE_FORMAT
+ \ nextgroup=denyhostsFormatDelimiter
+ \ skipwhite
+
+syn keyword denyhostsRegexSetting
+ \ contained
+ \ SSHD_FORMAT_REGEX
+ \ FAILED_ENTRY_REGEX
+ \ FAILED_ENTRY_REGEX2
+ \ FAILED_ENTRY_REGEX3
+ \ FAILED_ENTRY_REGEX4
+ \ FAILED_ENTRY_REGEX5
+ \ FAILED_ENTRY_REGEX6
+ \ FAILED_ENTRY_REGEX7
+ \ USERDEF_FAILED_ENTRY_REGEX
+ \ SUCCESSFUL_ENTRY_REGEX
+ \ nextgroup=denyhostsRegexDelimiter
+ \ skipwhite
+
+syn keyword denyhostURLSetting
+ \ contained
+ \ SYNC_SERVER
+ \ nextgroup=denyhostsURLDelimiter
+ \ skipwhite
+
+syn match denyhostsStringDelimiter
+ \ contained
+ \ display
+ \ '[:=]'
+ \ nextgroup=denyhostsString
+ \ skipwhite
+
+syn match denyhostsBooleanDelimiter
+ \ contained
+ \ display
+ \ '[:=]'
+ \ nextgroup=@denyhostsBoolean
+ \ skipwhite
+
+syn match denyhostsPathDelimiter
+ \ contained
+ \ display
+ \ '[:=]'
+ \ nextgroup=denyhostsPath
+ \ skipwhite
+
+syn match denyhostsNumericDelimiter
+ \ contained
+ \ display
+ \ '[:=]'
+ \ nextgroup=denyhostsNumber
+ \ skipwhite
+
+syn match denyhostsTimespecDelimiter
+ \ contained
+ \ display
+ \ '[:=]'
+ \ nextgroup=denyhostsTimespec
+ \ skipwhite
+
+syn match denyhostsFormatDelimiter
+ \ contained
+ \ display
+ \ '[:=]'
+ \ nextgroup=denyhostsFormat
+ \ skipwhite
+
+syn match denyhostsRegexDelimiter
+ \ contained
+ \ display
+ \ '[:=]'
+ \ nextgroup=denyhostsRegex
+ \ skipwhite
+
+syn match denyhostsURLDelimiter
+ \ contained
+ \ display
+ \ '[:=]'
+ \ nextgroup=denyhostsURL
+ \ skipwhite
+
+syn match denyhostsString
+ \ contained
+ \ display
+ \ '.\+'
+
+syn cluster denyhostsBoolean
+ \ contains=denyhostsBooleanTrue,
+ \ denyhostsBooleanFalse
+
+syn match denyhostsBooleanFalse
+ \ contained
+ \ display
+ \ '.\+'
+
+syn match denyhostsBooleanTrue
+ \ contained
+ \ display
+ \ '\s*\%(1\|t\%(rue\)\=\|y\%(es\)\=\)\>\s*$'
+
+syn match denyhostsPath
+ \ contained
+ \ display
+ \ '.\+'
+
+syn match denyhostsNumber
+ \ contained
+ \ display
+ \ '\d\+\>'
+
+syn match denyhostsTimespec
+ \ contained
+ \ display
+ \ '\d\+[mhdwy]\>'
+
+syn match denyhostsFormat
+ \ contained
+ \ display
+ \ '.\+'
+ \ contains=denyhostsFormattingExpandos
+
+syn match denyhostsFormattingExpandos
+ \ contained
+ \ display
+ \ '%.'
+
+syn match denyhostsRegex
+ \ contained
+ \ display
+ \ '.\+'
+
+" TODO: Perhaps come up with a better regex here? There should really be a
+" library for these kinds of generic regexes, that is, URLs, mail addresses, …
+syn match denyhostsURL
+ \ contained
+ \ display
+ \ '.\+'
+
+hi def link denyhostsTodo Todo
+hi def link denyhostsComment Comment
+hi def link denyhostsSetting Keyword
+hi def link denyhostsStringSetting denyhostsSetting
+hi def link denyhostsBooleanSetting denyhostsSetting
+hi def link denyhostsPathSetting denyhostsSetting
+hi def link denyhostsNumericSetting denyhostsSetting
+hi def link denyhostsTimespecSetting denyhostsSetting
+hi def link denyhostsFormatSetting denyhostsSetting
+hi def link denyhostsRegexSetting denyhostsSetting
+hi def link denyhostURLSetting denyhostsSetting
+hi def link denyhostsDelimiter Normal
+hi def link denyhostsStringDelimiter denyhostsDelimiter
+hi def link denyhostsBooleanDelimiter denyhostsDelimiter
+hi def link denyhostsPathDelimiter denyhostsDelimiter
+hi def link denyhostsNumericDelimiter denyhostsDelimiter
+hi def link denyhostsTimespecDelimiter denyhostsDelimiter
+hi def link denyhostsFormatDelimiter denyhostsDelimiter
+hi def link denyhostsRegexDelimiter denyhostsDelimiter
+hi def link denyhostsURLDelimiter denyhostsDelimiter
+hi def link denyhostsString String
+if exists('g:syntax_booleans_simple') || exists('b:syntax_booleans_simple')
+ hi def link denyhostsBoolean Boolean
+ hi def link denyhostsBooleanFalse denyhostsBoolean
+ hi def link denyhostsBooleanTrue denyhostsBoolean
+else
+ hi def denyhostsBooleanTrue term=bold ctermfg=Green guifg=Green
+ hi def denyhostsBooleanFalse ctermfg=Red guifg=Red
+endif
+hi def link denyhostsPath String
+hi def link denyhostsNumber Number
+hi def link denyhostsTimespec Number
+hi def link denyhostsFormat String
+hi def link denyhostsFormattingExpandos Special
+hi def link denyhostsRegex String
+hi def link denyhostsURL String
+
+let b:current_syntax = "denyhosts"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/git.vim b/runtime/syntax/git.vim
new file mode 100644
index 000000000..fd76b7316
--- /dev/null
+++ b/runtime/syntax/git.vim
@@ -0,0 +1,67 @@
+" Vim syntax file
+" Language: generic git output
+" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
+" Last Change: 2008 Mar 21
+
+if exists("b:current_syntax")
+ finish
+endif
+
+syn case match
+syn sync minlines=50
+
+syn include @gitDiff syntax/diff.vim
+
+syn region gitHead start=/\%^/ end=/^$/
+syn region gitHead start=/\%(^commit \x\{40\}$\)\@=/ end=/^$/
+
+" For git reflog and git show ...^{tree}, avoid sync issues
+syn match gitHead /^\d\{6\} \%(\w\{4} \)\=\x\{40\}\%( [0-3]\)\=\t.*/
+syn match gitHead /^\x\{40\} \x\{40}\t.*/
+
+syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff fold
+syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff
+
+syn match gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite
+syn match gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite
+syn match gitKeyword /^Merge:/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite
+syn match gitMode /^\d\{6\}/ contained containedin=gitHead nextgroup=gitType,gitHash skipwhite
+syn match gitIdentityKeyword /^\%(author\|committer\|tagger\)\>/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
+syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
+syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite
+syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite
+syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity
+
+syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite
+syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite
+syn match gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity
+
+syn match gitDate /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained
+syn match gitDate /-\=\d\+ [+-]\d\d\d\d\>/ contained
+syn match gitDate /\<\d\+ \l\+ ago\>/ contained
+syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHash skipwhite
+syn match gitStage /\<\d\t\@=/ contained
+syn match gitReference /\S\+\S\@!/ contained
+syn match gitHash /\<\x\{40\}\>/ contained nextgroup=gitIdentity,gitStage skipwhite
+syn match gitHash /^\<\x\{40\}\>/ containedin=gitHead contained nextgroup=gitHash skipwhite
+syn match gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite
+syn match gitHashAbbrev /\<\x\{40\}\>/ contained nextgroup=gitHashAbbrev skipwhite
+
+hi def link gitDateHeader gitIdentityHeader
+hi def link gitIdentityHeader gitIdentityKeyword
+hi def link gitIdentityKeyword Label
+hi def link gitReflogHeader gitKeyword
+hi def link gitKeyword Keyword
+hi def link gitIdentity String
+hi def link gitEmailDelimiter Delimiter
+hi def link gitEmail Special
+hi def link gitDate Number
+hi def link gitMode Number
+hi def link gitHashAbbrev gitHash
+hi def link gitHash Identifier
+hi def link gitReflogMiddle gitReference
+hi def link gitReference Function
+hi def link gitStage gitType
+hi def link gitType Type
+
+let b:current_syntax = "git"
diff --git a/runtime/syntax/gitcommit.vim b/runtime/syntax/gitcommit.vim
new file mode 100644
index 000000000..e75d04417
--- /dev/null
+++ b/runtime/syntax/gitcommit.vim
@@ -0,0 +1,65 @@
+" Vim syntax file
+" Language: git commit file
+" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
+" Filenames: *.git/COMMIT_EDITMSG
+" Last Change: 2008 Apr 09
+
+if exists("b:current_syntax")
+ finish
+endif
+
+syn case match
+syn sync minlines=50
+
+if has("spell")
+ syn spell toplevel
+endif
+
+syn include @gitcommitDiff syntax/diff.vim
+syn region gitcommitDiff start=/\%(^diff --git \)\@=/ end=/^$\|^#\@=/ contains=@gitcommitDiff
+
+syn match gitcommitFirstLine "\%^[^#].*" nextgroup=gitcommitBlank skipnl
+syn match gitcommitSummary "^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
+syn match gitcommitOverflow ".*" contained contains=@Spell
+syn match gitcommitBlank "^[^#].*" contained contains=@Spell
+syn match gitcommitComment "^#.*"
+syn region gitcommitHead start=/^# / end=/^#$/ contained transparent
+syn match gitcommitOnBranch "\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
+syn match gitcommitBranch "\S\+" contained
+syn match gitcommitHeader "\%(^# \)\@<=.*:$" contained containedin=gitcommitComment
+
+syn region gitcommitUntracked start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold
+syn match gitcommitUntrackedFile "\t\@<=.*" contained
+
+syn region gitcommitDiscarded start=/^# Changed but not updated:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold
+syn region gitcommitSelected start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold
+
+syn match gitcommitDiscardedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite
+syn match gitcommitSelectedType "\t\@<=[a-z][a-z ]*[a-z]: "he=e-2 contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite
+syn match gitcommitDiscardedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
+syn match gitcommitSelectedFile ".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
+syn match gitcommitDiscardedArrow " -> " contained nextgroup=gitcommitDiscardedFile
+syn match gitcommitSelectedArrow " -> " contained nextgroup=gitcommitSelectedFile
+
+hi def link gitcommitSummary Keyword
+hi def link gitcommitComment Comment
+hi def link gitcommitUntracked gitcommitComment
+hi def link gitcommitDiscarded gitcommitComment
+hi def link gitcommitSelected gitcommitComment
+hi def link gitcommitOnBranch Comment
+hi def link gitcommitBranch Special
+hi def link gitcommitDiscardedType gitcommitType
+hi def link gitcommitSelectedType gitcommitType
+hi def link gitcommitType Type
+hi def link gitcommitHeader PreProc
+hi def link gitcommitUntrackedFile gitcommitFile
+hi def link gitcommitDiscardedFile gitcommitFile
+hi def link gitcommitSelectedFile gitcommitFile
+hi def link gitcommitFile Constant
+hi def link gitcommitDiscardedArrow gitcommitArrow
+hi def link gitcommitSelectedArrow gitcommitArrow
+hi def link gitcommitArrow gitcommitComment
+"hi def link gitcommitOverflow Error
+hi def link gitcommitBlank Error
+
+let b:current_syntax = "gitcommit"
diff --git a/runtime/syntax/hostconf.vim b/runtime/syntax/hostconf.vim
new file mode 100644
index 000000000..4fc8af0ba
--- /dev/null
+++ b/runtime/syntax/hostconf.vim
@@ -0,0 +1,147 @@
+" Vim syntax file
+" Language: host.conf(5) configuration file
+" Maintainer: Nikolai Weibull <now@bitwi.se>
+" Latest Revision: 2007-06-25
+
+if exists("b:current_syntax")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword hostconfTodo
+ \ contained
+ \ TODO
+ \ FIXME
+ \ XXX
+ \ NOTE
+
+syn match hostconfComment
+ \ display
+ \ contained
+ \ '\s*#.*'
+ \ contains=hostconfTodo,
+ \ @Spell
+
+syn match hostconfBegin
+ \ display
+ \ '^'
+ \ nextgroup=hostconfComment,hostconfKeyword
+ \ skipwhite
+
+syn keyword hostconfKeyword
+ \ contained
+ \ order
+ \ nextgroup=hostconfLookupOrder
+ \ skipwhite
+
+let s:orders = ['bind', 'hosts', 'nis']
+
+function s:permute_suffixes(list)
+ if empty(a:list)
+ return []
+ elseif len(a:list) == 1
+ return a:list[0]
+ else
+ let i = 0
+ let n = len(a:list)
+ let sub_permutations = []
+ while i < n
+ let list_copy = copy(a:list)
+ let removed = list_copy[i]
+ call remove(list_copy, i)
+ call add(sub_permutations, [removed, s:permute_suffixes(list_copy)])
+ let i += 1
+ endwhile
+ return sub_permutations
+ endif
+endfunction
+
+function s:generate_suffix_groups(list_of_order_of_orders, context, trailing_context)
+ for order_of_orders in a:list_of_order_of_orders
+ let order = order_of_orders[0]
+ let trailing_context = a:trailing_context . toupper(order[0]) . order[1:]
+ let nextgroup = 'hostconfLookupOrder' . trailing_context
+ let nextgroup_delimiter = nextgroup . 'Delimiter'
+ let group = 'hostconfLookupOrder' . a:context
+ execute 'syn keyword' group 'contained' order 'nextgroup=' . nextgroup_delimiter 'skipwhite'
+ execute 'syn match' nextgroup_delimiter 'contained display "," nextgroup=' . nextgroup 'skipwhite'
+ if a:context != ""
+ execute 'hi def link' group 'hostconfLookupOrder'
+ endif
+ execute 'hi def link' nextgroup_delimiter 'hostconfLookupOrderDelimiter'
+ let context = trailing_context
+ if type(order_of_orders[1]) == type([])
+ call s:generate_suffix_groups(order_of_orders[1], context, trailing_context)
+ else
+ execute 'syn keyword hostconfLookupOrder' . context 'contained' order_of_orders[-1]
+ execute 'hi def link hostconfLookupOrder' . context 'hostconfLookupOrder'
+ endif
+ endfor
+endfunction
+
+call s:generate_suffix_groups(s:permute_suffixes(s:orders), "", "")
+
+delfunction s:generate_suffix_groups
+delfunction s:permute_suffixes
+
+syn keyword hostconfKeyword
+ \ contained
+ \ trim
+ \ nextgroup=hostconfDomain
+ \ skipwhite
+
+syn match hostconfDomain
+ \ contained
+ \ '\.[^:;,[:space:]]\+'
+ \ nextgroup=hostconfDomainDelimiter
+ \ skipwhite
+
+syn match hostconfDomainDelimiter
+ \ contained
+ \ display
+ \ '[:;,]'
+ \ nextgroup=hostconfDomain
+ \ skipwhite
+
+syn keyword hostconfKeyword
+ \ contained
+ \ multi
+ \ nospoof
+ \ spoofalert
+ \ reorder
+ \ nextgroup=hostconfBoolean
+ \ skipwhite
+
+syn keyword hostconfBoolean
+ \ contained
+ \ on
+ \ off
+
+syn keyword hostconfKeyword
+ \ contained
+ \ spoof
+ \ nextgroup=hostconfSpoofValue
+ \ skipwhite
+
+syn keyword hostconfSpoofValue
+ \ contained
+ \ off
+ \ nowarn
+ \ warn
+
+hi def link hostconfTodo Todo
+hi def link hostconfComment Comment
+hi def link hostconfKeyword Keyword
+hi def link hostconfLookupOrder Identifier
+hi def link hostconfLookupOrderDelimiter Delimiter
+hi def link hostconfDomain String
+hi def link hostconfDomainDelimiter Delimiter
+hi def link hostconfBoolean Boolean
+hi def link hostconfSpoofValue hostconfBoolean
+
+let b:current_syntax = "hostconf"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/lisp.vim b/runtime/syntax/lisp.vim
index cd800e720..55390aaa4 100644
--- a/runtime/syntax/lisp.vim
+++ b/runtime/syntax/lisp.vim
@@ -1,12 +1,13 @@
" Vim syntax file
" Language: Lisp
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Apr 12, 2007
-" Version: 19
+" Last Change: Oct 19, 2007
+" Version: 20
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
"
" Thanks to F Xavier Noria for a list of 978 Common Lisp symbols
" taken from the HyperSpec
+" Clisp additions courtesy of http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/emacs/lisp.vim
" ---------------------------------------------------------------------
" Load Once: {{{1
@@ -19,462 +20,542 @@ elseif exists("b:current_syntax")
endif
if version >= 600
- setlocal iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
+ setlocal iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_
else
- set iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
+ set iskeyword=38,42,43,45,47-58,60-62,64-90,97-122,_
+endif
+
+if exists("g:lispsyntax_ignorecase") || exists("g:lispsyntax_clisp")
+ set ignorecase
endif
" ---------------------------------------------------------------------
" Clusters: {{{1
-syn cluster lispAtomCluster contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite
-syn cluster lispBaseListCluster contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite
+syn cluster lispAtomCluster contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite
+syn cluster lispBaseListCluster contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite
if exists("g:lisp_instring")
- syn cluster lispListCluster contains=@lispBaseListCluster,lispString,lispInString,lispInStringString
+ syn cluster lispListCluster contains=@lispBaseListCluster,lispString,lispInString,lispInStringString
else
- syn cluster lispListCluster contains=@lispBaseListCluster,lispString
+ syn cluster lispListCluster contains=@lispBaseListCluster,lispString
endif
syn case ignore
" ---------------------------------------------------------------------
" Lists: {{{1
-syn match lispSymbol contained ![^()'`,"; \t]\+!
-syn match lispBarSymbol contained !|..\{-}|!
+syn match lispSymbol contained ![^()'`,"; \t]\+!
+syn match lispBarSymbol contained !|..\{-}|!
if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
- syn region lispParen0 matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen1
- syn region lispParen1 contained matchgroup=hlLevel1 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen2
- syn region lispParen2 contained matchgroup=hlLevel2 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen3
- syn region lispParen3 contained matchgroup=hlLevel3 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen4
- syn region lispParen4 contained matchgroup=hlLevel4 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen5
- syn region lispParen5 contained matchgroup=hlLevel5 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen6
- syn region lispParen6 contained matchgroup=hlLevel6 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen7
- syn region lispParen7 contained matchgroup=hlLevel7 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen8
- syn region lispParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen9
+ syn region lispParen0 matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen1
+ syn region lispParen1 contained matchgroup=hlLevel1 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen2
+ syn region lispParen2 contained matchgroup=hlLevel2 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen3
+ syn region lispParen3 contained matchgroup=hlLevel3 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen4
+ syn region lispParen4 contained matchgroup=hlLevel4 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen5
+ syn region lispParen5 contained matchgroup=hlLevel5 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen6
+ syn region lispParen6 contained matchgroup=hlLevel6 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen7
+ syn region lispParen7 contained matchgroup=hlLevel7 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen8
+ syn region lispParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen9
syn region lispParen9 contained matchgroup=hlLevel9 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen0
else
- syn region lispList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=@lispListCluster
- syn region lispBQList matchgroup=PreProc start="`(" skip="|.\{-}|" matchgroup=PreProc end=")" contains=@lispListCluster
+ syn region lispList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=@lispListCluster
+ syn region lispBQList matchgroup=PreProc start="`(" skip="|.\{-}|" matchgroup=PreProc end=")" contains=@lispListCluster
endif
" ---------------------------------------------------------------------
" Atoms: {{{1
-syn match lispAtomMark "'"
-syn match lispAtom "'("me=e-1 contains=lispAtomMark nextgroup=lispAtomList
-syn match lispAtom "'[^ \t()]\+" contains=lispAtomMark
-syn match lispAtomBarSymbol !'|..\{-}|! contains=lispAtomMark
-syn region lispAtom start=+'"+ skip=+\\"+ end=+"+
-syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString
-syn match lispAtomNmbr contained "\<\d\+"
-syn match lispLeadWhite contained "^\s\+"
+syn match lispAtomMark "'"
+syn match lispAtom "'("me=e-1 contains=lispAtomMark nextgroup=lispAtomList
+syn match lispAtom "'[^ \t()]\+" contains=lispAtomMark
+syn match lispAtomBarSymbol !'|..\{-}|! contains=lispAtomMark
+syn region lispAtom start=+'"+ skip=+\\"+ end=+"+
+syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString,lispSpecial
+syn match lispAtomNmbr contained "\<\d\+"
+syn match lispLeadWhite contained "^\s\+"
" ---------------------------------------------------------------------
" Standard Lisp Functions and Macros: {{{1
-syn keyword lispFunc * find-method pprint-indent
-syn keyword lispFunc ** find-package pprint-linear
-syn keyword lispFunc *** find-restart pprint-logical-block
-syn keyword lispFunc + find-symbol pprint-newline
-syn keyword lispFunc ++ finish-output pprint-pop
-syn keyword lispFunc +++ first pprint-tab
-syn keyword lispFunc - fixnum pprint-tabular
-syn keyword lispFunc / flet prin1
-syn keyword lispFunc // float prin1-to-string
-syn keyword lispFunc /// float-digits princ
-syn keyword lispFunc /= float-precision princ-to-string
-syn keyword lispFunc 1+ float-radix print
-syn keyword lispFunc 1- float-sign print-not-readable
-syn keyword lispFunc < floating-point-inexact print-not-readable-object
-syn keyword lispFunc <= floating-point-invalid-operation print-object
-syn keyword lispFunc = floating-point-overflow print-unreadable-object
-syn keyword lispFunc > floating-point-underflow probe-file
-syn keyword lispFunc >= floatp proclaim
-syn keyword lispFunc abort floor prog
-syn keyword lispFunc abs fmakunbound prog*
-syn keyword lispFunc access force-output prog1
-syn keyword lispFunc acons format prog2
-syn keyword lispFunc acos formatter progn
-syn keyword lispFunc acosh fourth program-error
-syn keyword lispFunc add-method fresh-line progv
-syn keyword lispFunc adjoin fround provide
-syn keyword lispFunc adjust-array ftruncate psetf
-syn keyword lispFunc adjustable-array-p ftype psetq
-syn keyword lispFunc allocate-instance funcall push
-syn keyword lispFunc alpha-char-p function pushnew
-syn keyword lispFunc alphanumericp function-keywords putprop
-syn keyword lispFunc and function-lambda-expression quote
-syn keyword lispFunc append functionp random
-syn keyword lispFunc apply gbitp random-state
-syn keyword lispFunc applyhook gcd random-state-p
-syn keyword lispFunc apropos generic-function rassoc
-syn keyword lispFunc apropos-list gensym rassoc-if
-syn keyword lispFunc aref gentemp rassoc-if-not
-syn keyword lispFunc arithmetic-error get ratio
-syn keyword lispFunc arithmetic-error-operands get-decoded-time rational
-syn keyword lispFunc arithmetic-error-operation get-dispatch-macro-character rationalize
-syn keyword lispFunc array get-internal-real-time rationalp
-syn keyword lispFunc array-dimension get-internal-run-time read
-syn keyword lispFunc array-dimension-limit get-macro-character read-byte
-syn keyword lispFunc array-dimensions get-output-stream-string read-char
-syn keyword lispFunc array-displacement get-properties read-char-no-hang
-syn keyword lispFunc array-element-type get-setf-expansion read-delimited-list
-syn keyword lispFunc array-has-fill-pointer-p get-setf-method read-eval-print
-syn keyword lispFunc array-in-bounds-p get-universal-time read-from-string
-syn keyword lispFunc array-rank getf read-line
-syn keyword lispFunc array-rank-limit gethash read-preserving-whitespace
-syn keyword lispFunc array-row-major-index go read-sequence
-syn keyword lispFunc array-total-size graphic-char-p reader-error
-syn keyword lispFunc array-total-size-limit handler-bind readtable
-syn keyword lispFunc arrayp handler-case readtable-case
-syn keyword lispFunc ash hash-table readtablep
-syn keyword lispFunc asin hash-table-count real
-syn keyword lispFunc asinh hash-table-p realp
-syn keyword lispFunc assert hash-table-rehash-size realpart
-syn keyword lispFunc assoc hash-table-rehash-threshold reduce
-syn keyword lispFunc assoc-if hash-table-size reinitialize-instance
-syn keyword lispFunc assoc-if-not hash-table-test rem
-syn keyword lispFunc atan host-namestring remf
-syn keyword lispFunc atanh identity remhash
-syn keyword lispFunc atom if remove
-syn keyword lispFunc base-char if-exists remove-duplicates
-syn keyword lispFunc base-string ignorable remove-if
-syn keyword lispFunc bignum ignore remove-if-not
-syn keyword lispFunc bit ignore-errors remove-method
-syn keyword lispFunc bit-and imagpart remprop
-syn keyword lispFunc bit-andc1 import rename-file
-syn keyword lispFunc bit-andc2 in-package rename-package
-syn keyword lispFunc bit-eqv in-package replace
-syn keyword lispFunc bit-ior incf require
-syn keyword lispFunc bit-nand initialize-instance rest
-syn keyword lispFunc bit-nor inline restart
-syn keyword lispFunc bit-not input-stream-p restart-bind
-syn keyword lispFunc bit-orc1 inspect restart-case
-syn keyword lispFunc bit-orc2 int-char restart-name
-syn keyword lispFunc bit-vector integer return
-syn keyword lispFunc bit-vector-p integer-decode-float return-from
-syn keyword lispFunc bit-xor integer-length revappend
-syn keyword lispFunc block integerp reverse
-syn keyword lispFunc boole interactive-stream-p room
-syn keyword lispFunc boole-1 intern rotatef
-syn keyword lispFunc boole-2 internal-time-units-per-second round
-syn keyword lispFunc boole-and intersection row-major-aref
-syn keyword lispFunc boole-andc1 invalid-method-error rplaca
-syn keyword lispFunc boole-andc2 invoke-debugger rplacd
-syn keyword lispFunc boole-c1 invoke-restart safety
-syn keyword lispFunc boole-c2 invoke-restart-interactively satisfies
-syn keyword lispFunc boole-clr isqrt sbit
-syn keyword lispFunc boole-eqv keyword scale-float
-syn keyword lispFunc boole-ior keywordp schar
-syn keyword lispFunc boole-nand labels search
-syn keyword lispFunc boole-nor lambda second
-syn keyword lispFunc boole-orc1 lambda-list-keywords sequence
-syn keyword lispFunc boole-orc2 lambda-parameters-limit serious-condition
-syn keyword lispFunc boole-set last set
-syn keyword lispFunc boole-xor lcm set-char-bit
-syn keyword lispFunc boolean ldb set-difference
-syn keyword lispFunc both-case-p ldb-test set-dispatch-macro-character
-syn keyword lispFunc boundp ldiff set-exclusive-or
-syn keyword lispFunc break least-negative-double-float set-macro-character
-syn keyword lispFunc broadcast-stream least-negative-long-float set-pprint-dispatch
-syn keyword lispFunc broadcast-stream-streams least-negative-normalized-double-float set-syntax-from-char
-syn keyword lispFunc built-in-class least-negative-normalized-long-float setf
-syn keyword lispFunc butlast least-negative-normalized-short-float setq
-syn keyword lispFunc byte least-negative-normalized-single-float seventh
-syn keyword lispFunc byte-position least-negative-short-float shadow
-syn keyword lispFunc byte-size least-negative-single-float shadowing-import
-syn keyword lispFunc call-arguments-limit least-positive-double-float shared-initialize
-syn keyword lispFunc call-method least-positive-long-float shiftf
-syn keyword lispFunc call-next-method least-positive-normalized-double-float short-float
-syn keyword lispFunc capitalize least-positive-normalized-long-float short-float-epsilon
-syn keyword lispFunc car least-positive-normalized-short-float short-float-negative-epsilon
-syn keyword lispFunc case least-positive-normalized-single-float short-site-name
-syn keyword lispFunc catch least-positive-short-float signal
-syn keyword lispFunc ccase least-positive-single-float signed-byte
-syn keyword lispFunc cdr length signum
-syn keyword lispFunc ceiling let simle-condition
-syn keyword lispFunc cell-error let* simple-array
-syn keyword lispFunc cell-error-name lisp simple-base-string
-syn keyword lispFunc cerror lisp-implementation-type simple-bit-vector
-syn keyword lispFunc change-class lisp-implementation-version simple-bit-vector-p
-syn keyword lispFunc char list simple-condition-format-arguments
-syn keyword lispFunc char-bit list* simple-condition-format-control
-syn keyword lispFunc char-bits list-all-packages simple-error
-syn keyword lispFunc char-bits-limit list-length simple-string
-syn keyword lispFunc char-code listen simple-string-p
-syn keyword lispFunc char-code-limit listp simple-type-error
-syn keyword lispFunc char-control-bit load simple-vector
-syn keyword lispFunc char-downcase load-logical-pathname-translations simple-vector-p
-syn keyword lispFunc char-equal load-time-value simple-warning
-syn keyword lispFunc char-font locally sin
-syn keyword lispFunc char-font-limit log single-flaot-epsilon
-syn keyword lispFunc char-greaterp logand single-float
-syn keyword lispFunc char-hyper-bit logandc1 single-float-epsilon
-syn keyword lispFunc char-int logandc2 single-float-negative-epsilon
-syn keyword lispFunc char-lessp logbitp sinh
-syn keyword lispFunc char-meta-bit logcount sixth
-syn keyword lispFunc char-name logeqv sleep
-syn keyword lispFunc char-not-equal logical-pathname slot-boundp
-syn keyword lispFunc char-not-greaterp logical-pathname-translations slot-exists-p
-syn keyword lispFunc char-not-lessp logior slot-makunbound
-syn keyword lispFunc char-super-bit lognand slot-missing
-syn keyword lispFunc char-upcase lognor slot-unbound
-syn keyword lispFunc char/= lognot slot-value
-syn keyword lispFunc char< logorc1 software-type
-syn keyword lispFunc char<= logorc2 software-version
-syn keyword lispFunc char= logtest some
-syn keyword lispFunc char> logxor sort
-syn keyword lispFunc char>= long-float space
-syn keyword lispFunc character long-float-epsilon special
-syn keyword lispFunc characterp long-float-negative-epsilon special-form-p
-syn keyword lispFunc check-type long-site-name special-operator-p
-syn keyword lispFunc cis loop speed
-syn keyword lispFunc class loop-finish sqrt
-syn keyword lispFunc class-name lower-case-p stable-sort
-syn keyword lispFunc class-of machine-instance standard
-syn keyword lispFunc clear-input machine-type standard-char
-syn keyword lispFunc clear-output machine-version standard-char-p
-syn keyword lispFunc close macro-function standard-class
-syn keyword lispFunc clrhash macroexpand standard-generic-function
-syn keyword lispFunc code-char macroexpand-1 standard-method
-syn keyword lispFunc coerce macroexpand-l standard-object
-syn keyword lispFunc commonp macrolet step
-syn keyword lispFunc compilation-speed make-array storage-condition
-syn keyword lispFunc compile make-array store-value
-syn keyword lispFunc compile-file make-broadcast-stream stream
-syn keyword lispFunc compile-file-pathname make-char stream-element-type
-syn keyword lispFunc compiled-function make-concatenated-stream stream-error
-syn keyword lispFunc compiled-function-p make-condition stream-error-stream
-syn keyword lispFunc compiler-let make-dispatch-macro-character stream-external-format
-syn keyword lispFunc compiler-macro make-echo-stream streamp
-syn keyword lispFunc compiler-macro-function make-hash-table streamup
-syn keyword lispFunc complement make-instance string
-syn keyword lispFunc complex make-instances-obsolete string-capitalize
-syn keyword lispFunc complexp make-list string-char
-syn keyword lispFunc compute-applicable-methods make-load-form string-char-p
-syn keyword lispFunc compute-restarts make-load-form-saving-slots string-downcase
-syn keyword lispFunc concatenate make-method string-equal
-syn keyword lispFunc concatenated-stream make-package string-greaterp
-syn keyword lispFunc concatenated-stream-streams make-pathname string-left-trim
-syn keyword lispFunc cond make-random-state string-lessp
-syn keyword lispFunc condition make-sequence string-not-equal
-syn keyword lispFunc conjugate make-string string-not-greaterp
-syn keyword lispFunc cons make-string-input-stream string-not-lessp
-syn keyword lispFunc consp make-string-output-stream string-right-strim
-syn keyword lispFunc constantly make-symbol string-right-trim
-syn keyword lispFunc constantp make-synonym-stream string-stream
-syn keyword lispFunc continue make-two-way-stream string-trim
-syn keyword lispFunc control-error makunbound string-upcase
-syn keyword lispFunc copy-alist map string/=
-syn keyword lispFunc copy-list map-into string<
-syn keyword lispFunc copy-pprint-dispatch mapc string<=
-syn keyword lispFunc copy-readtable mapcan string=
-syn keyword lispFunc copy-seq mapcar string>
-syn keyword lispFunc copy-structure mapcon string>=
-syn keyword lispFunc copy-symbol maphash stringp
-syn keyword lispFunc copy-tree mapl structure
-syn keyword lispFunc cos maplist structure-class
-syn keyword lispFunc cosh mask-field structure-object
-syn keyword lispFunc count max style-warning
-syn keyword lispFunc count-if member sublim
-syn keyword lispFunc count-if-not member-if sublis
-syn keyword lispFunc ctypecase member-if-not subseq
-syn keyword lispFunc debug merge subsetp
-syn keyword lispFunc decf merge-pathname subst
-syn keyword lispFunc declaim merge-pathnames subst-if
-syn keyword lispFunc declaration method subst-if-not
-syn keyword lispFunc declare method-combination substitute
-syn keyword lispFunc decode-float method-combination-error substitute-if
-syn keyword lispFunc decode-universal-time method-qualifiers substitute-if-not
-syn keyword lispFunc defclass min subtypep
-syn keyword lispFunc defconstant minusp svref
-syn keyword lispFunc defgeneric mismatch sxhash
-syn keyword lispFunc define-compiler-macro mod symbol
-syn keyword lispFunc define-condition most-negative-double-float symbol-function
-syn keyword lispFunc define-method-combination most-negative-fixnum symbol-macrolet
-syn keyword lispFunc define-modify-macro most-negative-long-float symbol-name
-syn keyword lispFunc define-setf-expander most-negative-short-float symbol-package
-syn keyword lispFunc define-setf-method most-negative-single-float symbol-plist
-syn keyword lispFunc define-symbol-macro most-positive-double-float symbol-value
-syn keyword lispFunc defmacro most-positive-fixnum symbolp
-syn keyword lispFunc defmethod most-positive-long-float synonym-stream
-syn keyword lispFunc defpackage most-positive-short-float synonym-stream-symbol
-syn keyword lispFunc defparameter most-positive-single-float sys
-syn keyword lispFunc defsetf muffle-warning system
-syn keyword lispFunc defstruct multiple-value-bind t
-syn keyword lispFunc deftype multiple-value-call tagbody
-syn keyword lispFunc defun multiple-value-list tailp
-syn keyword lispFunc defvar multiple-value-prog1 tan
-syn keyword lispFunc delete multiple-value-seteq tanh
-syn keyword lispFunc delete-duplicates multiple-value-setq tenth
-syn keyword lispFunc delete-file multiple-values-limit terpri
-syn keyword lispFunc delete-if name-char the
-syn keyword lispFunc delete-if-not namestring third
-syn keyword lispFunc delete-package nbutlast throw
-syn keyword lispFunc denominator nconc time
-syn keyword lispFunc deposit-field next-method-p trace
-syn keyword lispFunc describe nil translate-logical-pathname
-syn keyword lispFunc describe-object nintersection translate-pathname
-syn keyword lispFunc destructuring-bind ninth tree-equal
-syn keyword lispFunc digit-char no-applicable-method truename
-syn keyword lispFunc digit-char-p no-next-method truncase
-syn keyword lispFunc directory not truncate
-syn keyword lispFunc directory-namestring notany two-way-stream
-syn keyword lispFunc disassemble notevery two-way-stream-input-stream
-syn keyword lispFunc division-by-zero notinline two-way-stream-output-stream
-syn keyword lispFunc do nreconc type
-syn keyword lispFunc do* nreverse type-error
-syn keyword lispFunc do-all-symbols nset-difference type-error-datum
-syn keyword lispFunc do-exeternal-symbols nset-exclusive-or type-error-expected-type
-syn keyword lispFunc do-external-symbols nstring type-of
-syn keyword lispFunc do-symbols nstring-capitalize typecase
-syn keyword lispFunc documentation nstring-downcase typep
-syn keyword lispFunc dolist nstring-upcase unbound-slot
-syn keyword lispFunc dotimes nsublis unbound-slot-instance
-syn keyword lispFunc double-float nsubst unbound-variable
-syn keyword lispFunc double-float-epsilon nsubst-if undefined-function
-syn keyword lispFunc double-float-negative-epsilon nsubst-if-not unexport
-syn keyword lispFunc dpb nsubstitute unintern
-syn keyword lispFunc dribble nsubstitute-if union
-syn keyword lispFunc dynamic-extent nsubstitute-if-not unless
-syn keyword lispFunc ecase nth unread
-syn keyword lispFunc echo-stream nth-value unread-char
-syn keyword lispFunc echo-stream-input-stream nthcdr unsigned-byte
-syn keyword lispFunc echo-stream-output-stream null untrace
-syn keyword lispFunc ed number unuse-package
-syn keyword lispFunc eighth numberp unwind-protect
-syn keyword lispFunc elt numerator update-instance-for-different-class
-syn keyword lispFunc encode-universal-time nunion update-instance-for-redefined-class
-syn keyword lispFunc end-of-file oddp upgraded-array-element-type
-syn keyword lispFunc endp open upgraded-complex-part-type
-syn keyword lispFunc enough-namestring open-stream-p upper-case-p
-syn keyword lispFunc ensure-directories-exist optimize use-package
-syn keyword lispFunc ensure-generic-function or use-value
-syn keyword lispFunc eq otherwise user
-syn keyword lispFunc eql output-stream-p user-homedir-pathname
-syn keyword lispFunc equal package values
-syn keyword lispFunc equalp package-error values-list
-syn keyword lispFunc error package-error-package vector
-syn keyword lispFunc etypecase package-name vector-pop
-syn keyword lispFunc eval package-nicknames vector-push
-syn keyword lispFunc eval-when package-shadowing-symbols vector-push-extend
-syn keyword lispFunc evalhook package-use-list vectorp
-syn keyword lispFunc evenp package-used-by-list warn
-syn keyword lispFunc every packagep warning
-syn keyword lispFunc exp pairlis when
-syn keyword lispFunc export parse-error wild-pathname-p
-syn keyword lispFunc expt parse-integer with-accessors
-syn keyword lispFunc extended-char parse-namestring with-compilation-unit
-syn keyword lispFunc fboundp pathname with-condition-restarts
-syn keyword lispFunc fceiling pathname-device with-hash-table-iterator
-syn keyword lispFunc fdefinition pathname-directory with-input-from-string
-syn keyword lispFunc ffloor pathname-host with-open-file
-syn keyword lispFunc fifth pathname-match-p with-open-stream
-syn keyword lispFunc file-author pathname-name with-output-to-string
-syn keyword lispFunc file-error pathname-type with-package-iterator
-syn keyword lispFunc file-error-pathname pathname-version with-simple-restart
-syn keyword lispFunc file-length pathnamep with-slots
-syn keyword lispFunc file-namestring peek-char with-standard-io-syntax
-syn keyword lispFunc file-position phase write
-syn keyword lispFunc file-stream pi write-byte
-syn keyword lispFunc file-string-length plusp write-char
-syn keyword lispFunc file-write-date pop write-line
-syn keyword lispFunc fill position write-sequence
-syn keyword lispFunc fill-pointer position-if write-string
-syn keyword lispFunc find position-if-not write-to-string
-syn keyword lispFunc find-all-symbols pprint y-or-n-p
-syn keyword lispFunc find-class pprint-dispatch yes-or-no-p
-syn keyword lispFunc find-if pprint-exit-if-list-exhausted zerop
-syn keyword lispFunc find-if-not pprint-fill
+syn keyword lispFunc * find-method pprint-indent
+syn keyword lispFunc ** find-package pprint-linear
+syn keyword lispFunc *** find-restart pprint-logical-block
+syn keyword lispFunc + find-symbol pprint-newline
+syn keyword lispFunc ++ finish-output pprint-pop
+syn keyword lispFunc +++ first pprint-tab
+syn keyword lispFunc - fixnum pprint-tabular
+syn keyword lispFunc / flet prin1
+syn keyword lispFunc // float prin1-to-string
+syn keyword lispFunc /// float-digits princ
+syn keyword lispFunc /= float-precision princ-to-string
+syn keyword lispFunc 1+ float-radix print
+syn keyword lispFunc 1- float-sign print-not-readable
+syn keyword lispFunc < floating-point-inexact print-not-readable-object
+syn keyword lispFunc <= floating-point-invalid-operation print-object
+syn keyword lispFunc = floating-point-overflow print-unreadable-object
+syn keyword lispFunc > floating-point-underflow probe-file
+syn keyword lispFunc >= floatp proclaim
+syn keyword lispFunc abort floor prog
+syn keyword lispFunc abs fmakunbound prog*
+syn keyword lispFunc access force-output prog1
+syn keyword lispFunc acons format prog2
+syn keyword lispFunc acos formatter progn
+syn keyword lispFunc acosh fourth program-error
+syn keyword lispFunc add-method fresh-line progv
+syn keyword lispFunc adjoin fround provide
+syn keyword lispFunc adjust-array ftruncate psetf
+syn keyword lispFunc adjustable-array-p ftype psetq
+syn keyword lispFunc allocate-instance funcall push
+syn keyword lispFunc alpha-char-p function pushnew
+syn keyword lispFunc alphanumericp function-keywords putprop
+syn keyword lispFunc and function-lambda-expression quote
+syn keyword lispFunc append functionp random
+syn keyword lispFunc apply gbitp random-state
+syn keyword lispFunc applyhook gcd random-state-p
+syn keyword lispFunc apropos generic-function rassoc
+syn keyword lispFunc apropos-list gensym rassoc-if
+syn keyword lispFunc aref gentemp rassoc-if-not
+syn keyword lispFunc arithmetic-error get ratio
+syn keyword lispFunc arithmetic-error-operands get-decoded-time rational
+syn keyword lispFunc arithmetic-error-operation get-dispatch-macro-character rationalize
+syn keyword lispFunc array get-internal-real-time rationalp
+syn keyword lispFunc array-dimension get-internal-run-time read
+syn keyword lispFunc array-dimension-limit get-macro-character read-byte
+syn keyword lispFunc array-dimensions get-output-stream-string read-char
+syn keyword lispFunc array-displacement get-properties read-char-no-hang
+syn keyword lispFunc array-element-type get-setf-expansion read-delimited-list
+syn keyword lispFunc array-has-fill-pointer-p get-setf-method read-eval-print
+syn keyword lispFunc array-in-bounds-p get-universal-time read-from-string
+syn keyword lispFunc array-rank getf read-line
+syn keyword lispFunc array-rank-limit gethash read-preserving-whitespace
+syn keyword lispFunc array-row-major-index go read-sequence
+syn keyword lispFunc array-total-size graphic-char-p reader-error
+syn keyword lispFunc array-total-size-limit handler-bind readtable
+syn keyword lispFunc arrayp handler-case readtable-case
+syn keyword lispFunc ash hash-table readtablep
+syn keyword lispFunc asin hash-table-count real
+syn keyword lispFunc asinh hash-table-p realp
+syn keyword lispFunc assert hash-table-rehash-size realpart
+syn keyword lispFunc assoc hash-table-rehash-threshold reduce
+syn keyword lispFunc assoc-if hash-table-size reinitialize-instance
+syn keyword lispFunc assoc-if-not hash-table-test rem
+syn keyword lispFunc atan host-namestring remf
+syn keyword lispFunc atanh identity remhash
+syn keyword lispFunc atom if remove
+syn keyword lispFunc base-char if-exists remove-duplicates
+syn keyword lispFunc base-string ignorable remove-if
+syn keyword lispFunc bignum ignore remove-if-not
+syn keyword lispFunc bit ignore-errors remove-method
+syn keyword lispFunc bit-and imagpart remprop
+syn keyword lispFunc bit-andc1 import rename-file
+syn keyword lispFunc bit-andc2 in-package rename-package
+syn keyword lispFunc bit-eqv in-package replace
+syn keyword lispFunc bit-ior incf require
+syn keyword lispFunc bit-nand initialize-instance rest
+syn keyword lispFunc bit-nor inline restart
+syn keyword lispFunc bit-not input-stream-p restart-bind
+syn keyword lispFunc bit-orc1 inspect restart-case
+syn keyword lispFunc bit-orc2 int-char restart-name
+syn keyword lispFunc bit-vector integer return
+syn keyword lispFunc bit-vector-p integer-decode-float return-from
+syn keyword lispFunc bit-xor integer-length revappend
+syn keyword lispFunc block integerp reverse
+syn keyword lispFunc boole interactive-stream-p room
+syn keyword lispFunc boole-1 intern rotatef
+syn keyword lispFunc boole-2 internal-time-units-per-second round
+syn keyword lispFunc boole-and intersection row-major-aref
+syn keyword lispFunc boole-andc1 invalid-method-error rplaca
+syn keyword lispFunc boole-andc2 invoke-debugger rplacd
+syn keyword lispFunc boole-c1 invoke-restart safety
+syn keyword lispFunc boole-c2 invoke-restart-interactively satisfies
+syn keyword lispFunc boole-clr isqrt sbit
+syn keyword lispFunc boole-eqv keyword scale-float
+syn keyword lispFunc boole-ior keywordp schar
+syn keyword lispFunc boole-nand labels search
+syn keyword lispFunc boole-nor lambda second
+syn keyword lispFunc boole-orc1 lambda-list-keywords sequence
+syn keyword lispFunc boole-orc2 lambda-parameters-limit serious-condition
+syn keyword lispFunc boole-set last set
+syn keyword lispFunc boole-xor lcm set-char-bit
+syn keyword lispFunc boolean ldb set-difference
+syn keyword lispFunc both-case-p ldb-test set-dispatch-macro-character
+syn keyword lispFunc boundp ldiff set-exclusive-or
+syn keyword lispFunc break least-negative-double-float set-macro-character
+syn keyword lispFunc broadcast-stream least-negative-long-float set-pprint-dispatch
+syn keyword lispFunc broadcast-stream-streams least-negative-normalized-double-float set-syntax-from-char
+syn keyword lispFunc built-in-class least-negative-normalized-long-float setf
+syn keyword lispFunc butlast least-negative-normalized-short-float setq
+syn keyword lispFunc byte least-negative-normalized-single-float seventh
+syn keyword lispFunc byte-position least-negative-short-float shadow
+syn keyword lispFunc byte-size least-negative-single-float shadowing-import
+syn keyword lispFunc call-arguments-limit least-positive-double-float shared-initialize
+syn keyword lispFunc call-method least-positive-long-float shiftf
+syn keyword lispFunc call-next-method least-positive-normalized-double-float short-float
+syn keyword lispFunc capitalize least-positive-normalized-long-float short-float-epsilon
+syn keyword lispFunc car least-positive-normalized-short-float short-float-negative-epsilon
+syn keyword lispFunc case least-positive-normalized-single-float short-site-name
+syn keyword lispFunc catch least-positive-short-float signal
+syn keyword lispFunc ccase least-positive-single-float signed-byte
+syn keyword lispFunc cdr length signum
+syn keyword lispFunc ceiling let simple-condition
+syn keyword lispFunc cell-error let* simple-array
+syn keyword lispFunc cell-error-name lisp simple-base-string
+syn keyword lispFunc cerror lisp-implementation-type simple-bit-vector
+syn keyword lispFunc change-class lisp-implementation-version simple-bit-vector-p
+syn keyword lispFunc char list simple-condition-format-arguments
+syn keyword lispFunc char-bit list* simple-condition-format-control
+syn keyword lispFunc char-bits list-all-packages simple-error
+syn keyword lispFunc char-bits-limit list-length simple-string
+syn keyword lispFunc char-code listen simple-string-p
+syn keyword lispFunc char-code-limit listp simple-type-error
+syn keyword lispFunc char-control-bit load simple-vector
+syn keyword lispFunc char-downcase load-logical-pathname-translations simple-vector-p
+syn keyword lispFunc char-equal load-time-value simple-warning
+syn keyword lispFunc char-font locally sin
+syn keyword lispFunc char-font-limit log single-flaot-epsilon
+syn keyword lispFunc char-greaterp logand single-float
+syn keyword lispFunc char-hyper-bit logandc1 single-float-epsilon
+syn keyword lispFunc char-int logandc2 single-float-negative-epsilon
+syn keyword lispFunc char-lessp logbitp sinh
+syn keyword lispFunc char-meta-bit logcount sixth
+syn keyword lispFunc char-name logeqv sleep
+syn keyword lispFunc char-not-equal logical-pathname slot-boundp
+syn keyword lispFunc char-not-greaterp logical-pathname-translations slot-exists-p
+syn keyword lispFunc char-not-lessp logior slot-makunbound
+syn keyword lispFunc char-super-bit lognand slot-missing
+syn keyword lispFunc char-upcase lognor slot-unbound
+syn keyword lispFunc char/= lognot slot-value
+syn keyword lispFunc char< logorc1 software-type
+syn keyword lispFunc char<= logorc2 software-version
+syn keyword lispFunc char= logtest some
+syn keyword lispFunc char> logxor sort
+syn keyword lispFunc char>= long-float space
+syn keyword lispFunc character long-float-epsilon special
+syn keyword lispFunc characterp long-float-negative-epsilon special-form-p
+syn keyword lispFunc check-type long-site-name special-operator-p
+syn keyword lispFunc cis loop speed
+syn keyword lispFunc class loop-finish sqrt
+syn keyword lispFunc class-name lower-case-p stable-sort
+syn keyword lispFunc class-of machine-instance standard
+syn keyword lispFunc clear-input machine-type standard-char
+syn keyword lispFunc clear-output machine-version standard-char-p
+syn keyword lispFunc close macro-function standard-class
+syn keyword lispFunc clrhash macroexpand standard-generic-function
+syn keyword lispFunc code-char macroexpand-1 standard-method
+syn keyword lispFunc coerce macroexpand-l standard-object
+syn keyword lispFunc commonp macrolet step
+syn keyword lispFunc compilation-speed make-array storage-condition
+syn keyword lispFunc compile make-array store-value
+syn keyword lispFunc compile-file make-broadcast-stream stream
+syn keyword lispFunc compile-file-pathname make-char stream-element-type
+syn keyword lispFunc compiled-function make-concatenated-stream stream-error
+syn keyword lispFunc compiled-function-p make-condition stream-error-stream
+syn keyword lispFunc compiler-let make-dispatch-macro-character stream-external-format
+syn keyword lispFunc compiler-macro make-echo-stream streamp
+syn keyword lispFunc compiler-macro-function make-hash-table streamup
+syn keyword lispFunc complement make-instance string
+syn keyword lispFunc complex make-instances-obsolete string-capitalize
+syn keyword lispFunc complexp make-list string-char
+syn keyword lispFunc compute-applicable-methods make-load-form string-char-p
+syn keyword lispFunc compute-restarts make-load-form-saving-slots string-downcase
+syn keyword lispFunc concatenate make-method string-equal
+syn keyword lispFunc concatenated-stream make-package string-greaterp
+syn keyword lispFunc concatenated-stream-streams make-pathname string-left-trim
+syn keyword lispFunc cond make-random-state string-lessp
+syn keyword lispFunc condition make-sequence string-not-equal
+syn keyword lispFunc conjugate make-string string-not-greaterp
+syn keyword lispFunc cons make-string-input-stream string-not-lessp
+syn keyword lispFunc consp make-string-output-stream string-right-strim
+syn keyword lispFunc constantly make-symbol string-right-trim
+syn keyword lispFunc constantp make-synonym-stream string-stream
+syn keyword lispFunc continue make-two-way-stream string-trim
+syn keyword lispFunc control-error makunbound string-upcase
+syn keyword lispFunc copy-alist map string/=
+syn keyword lispFunc copy-list map-into string<
+syn keyword lispFunc copy-pprint-dispatch mapc string<=
+syn keyword lispFunc copy-readtable mapcan string=
+syn keyword lispFunc copy-seq mapcar string>
+syn keyword lispFunc copy-structure mapcon string>=
+syn keyword lispFunc copy-symbol maphash stringp
+syn keyword lispFunc copy-tree mapl structure
+syn keyword lispFunc cos maplist structure-class
+syn keyword lispFunc cosh mask-field structure-object
+syn keyword lispFunc count max style-warning
+syn keyword lispFunc count-if member sublim
+syn keyword lispFunc count-if-not member-if sublis
+syn keyword lispFunc ctypecase member-if-not subseq
+syn keyword lispFunc debug merge subsetp
+syn keyword lispFunc decf merge-pathname subst
+syn keyword lispFunc declaim merge-pathnames subst-if
+syn keyword lispFunc declaration method subst-if-not
+syn keyword lispFunc declare method-combination substitute
+syn keyword lispFunc decode-float method-combination-error substitute-if
+syn keyword lispFunc decode-universal-time method-qualifiers substitute-if-not
+syn keyword lispFunc defclass min subtypep
+syn keyword lispFunc defconstant minusp svref
+syn keyword lispFunc defgeneric mismatch sxhash
+syn keyword lispFunc define-compiler-macro mod symbol
+syn keyword lispFunc define-condition most-negative-double-float symbol-function
+syn keyword lispFunc define-method-combination most-negative-fixnum symbol-macrolet
+syn keyword lispFunc define-modify-macro most-negative-long-float symbol-name
+syn keyword lispFunc define-setf-expander most-negative-short-float symbol-package
+syn keyword lispFunc define-setf-method most-negative-single-float symbol-plist
+syn keyword lispFunc define-symbol-macro most-positive-double-float symbol-value
+syn keyword lispFunc defmacro most-positive-fixnum symbolp
+syn keyword lispFunc defmethod most-positive-long-float synonym-stream
+syn keyword lispFunc defpackage most-positive-short-float synonym-stream-symbol
+syn keyword lispFunc defparameter most-positive-single-float sys
+syn keyword lispFunc defsetf muffle-warning system
+syn keyword lispFunc defstruct multiple-value-bind t
+syn keyword lispFunc deftype multiple-value-call tagbody
+syn keyword lispFunc defun multiple-value-list tailp
+syn keyword lispFunc defvar multiple-value-prog1 tan
+syn keyword lispFunc delete multiple-value-seteq tanh
+syn keyword lispFunc delete-duplicates multiple-value-setq tenth
+syn keyword lispFunc delete-file multiple-values-limit terpri
+syn keyword lispFunc delete-if name-char the
+syn keyword lispFunc delete-if-not namestring third
+syn keyword lispFunc delete-package nbutlast throw
+syn keyword lispFunc denominator nconc time
+syn keyword lispFunc deposit-field next-method-p trace
+syn keyword lispFunc describe nil translate-logical-pathname
+syn keyword lispFunc describe-object nintersection translate-pathname
+syn keyword lispFunc destructuring-bind ninth tree-equal
+syn keyword lispFunc digit-char no-applicable-method truename
+syn keyword lispFunc digit-char-p no-next-method truncase
+syn keyword lispFunc directory not truncate
+syn keyword lispFunc directory-namestring notany two-way-stream
+syn keyword lispFunc disassemble notevery two-way-stream-input-stream
+syn keyword lispFunc division-by-zero notinline two-way-stream-output-stream
+syn keyword lispFunc do nreconc type
+syn keyword lispFunc do* nreverse type-error
+syn keyword lispFunc do-all-symbols nset-difference type-error-datum
+syn keyword lispFunc do-exeternal-symbols nset-exclusive-or type-error-expected-type
+syn keyword lispFunc do-external-symbols nstring type-of
+syn keyword lispFunc do-symbols nstring-capitalize typecase
+syn keyword lispFunc documentation nstring-downcase typep
+syn keyword lispFunc dolist nstring-upcase unbound-slot
+syn keyword lispFunc dotimes nsublis unbound-slot-instance
+syn keyword lispFunc double-float nsubst unbound-variable
+syn keyword lispFunc double-float-epsilon nsubst-if undefined-function
+syn keyword lispFunc double-float-negative-epsilon nsubst-if-not unexport
+syn keyword lispFunc dpb nsubstitute unintern
+syn keyword lispFunc dribble nsubstitute-if union
+syn keyword lispFunc dynamic-extent nsubstitute-if-not unless
+syn keyword lispFunc ecase nth unread
+syn keyword lispFunc echo-stream nth-value unread-char
+syn keyword lispFunc echo-stream-input-stream nthcdr unsigned-byte
+syn keyword lispFunc echo-stream-output-stream null untrace
+syn keyword lispFunc ed number unuse-package
+syn keyword lispFunc eighth numberp unwind-protect
+syn keyword lispFunc elt numerator update-instance-for-different-class
+syn keyword lispFunc encode-universal-time nunion update-instance-for-redefined-class
+syn keyword lispFunc end-of-file oddp upgraded-array-element-type
+syn keyword lispFunc endp open upgraded-complex-part-type
+syn keyword lispFunc enough-namestring open-stream-p upper-case-p
+syn keyword lispFunc ensure-directories-exist optimize use-package
+syn keyword lispFunc ensure-generic-function or use-value
+syn keyword lispFunc eq otherwise user
+syn keyword lispFunc eql output-stream-p user-homedir-pathname
+syn keyword lispFunc equal package values
+syn keyword lispFunc equalp package-error values-list
+syn keyword lispFunc error package-error-package vector
+syn keyword lispFunc etypecase package-name vector-pop
+syn keyword lispFunc eval package-nicknames vector-push
+syn keyword lispFunc eval-when package-shadowing-symbols vector-push-extend
+syn keyword lispFunc evalhook package-use-list vectorp
+syn keyword lispFunc evenp package-used-by-list warn
+syn keyword lispFunc every packagep warning
+syn keyword lispFunc exp pairlis when
+syn keyword lispFunc export parse-error wild-pathname-p
+syn keyword lispFunc expt parse-integer with-accessors
+syn keyword lispFunc extended-char parse-namestring with-compilation-unit
+syn keyword lispFunc fboundp pathname with-condition-restarts
+syn keyword lispFunc fceiling pathname-device with-hash-table-iterator
+syn keyword lispFunc fdefinition pathname-directory with-input-from-string
+syn keyword lispFunc ffloor pathname-host with-open-file
+syn keyword lispFunc fifth pathname-match-p with-open-stream
+syn keyword lispFunc file-author pathname-name with-output-to-string
+syn keyword lispFunc file-error pathname-type with-package-iterator
+syn keyword lispFunc file-error-pathname pathname-version with-simple-restart
+syn keyword lispFunc file-length pathnamep with-slots
+syn keyword lispFunc file-namestring peek-char with-standard-io-syntax
+syn keyword lispFunc file-position phase write
+syn keyword lispFunc file-stream pi write-byte
+syn keyword lispFunc file-string-length plusp write-char
+syn keyword lispFunc file-write-date pop write-line
+syn keyword lispFunc fill position write-sequence
+syn keyword lispFunc fill-pointer position-if write-string
+syn keyword lispFunc find position-if-not write-to-string
+syn keyword lispFunc find-all-symbols pprint y-or-n-p
+syn keyword lispFunc find-class pprint-dispatch yes-or-no-p
+syn keyword lispFunc find-if pprint-exit-if-list-exhausted zerop
+syn keyword lispFunc find-if-not pprint-fill
-syn match lispFunc "\<c[ad]\+r\>"
+syn match lispFunc "\<c[ad]\+r\>"
+if exists("g:lispsyntax_clisp")
+ " CLISP FFI:
+ syn match lispFunc "\<\(ffi:\)\?with-c-\(place\|var\)\>"
+ syn match lispFunc "\<\(ffi:\)\?with-foreign-\(object\|string\)\>"
+ syn match lispFunc "\<\(ffi:\)\?default-foreign-\(language\|library\)\>"
+ syn match lispFunc "\<\([us]_\?\)\?\(element\|deref\|cast\|slot\|validp\)\>"
+ syn match lispFunc "\<\(ffi:\)\?set-foreign-pointer\>"
+ syn match lispFunc "\<\(ffi:\)\?allocate-\(deep\|shallow\)\>"
+ syn match lispFunc "\<\(ffi:\)\?c-lines\>"
+ syn match lispFunc "\<\(ffi:\)\?foreign-\(value\|free\|variable\|function\|object\)\>"
+ syn match lispFunc "\<\(ffi:\)\?foreign-address\(-null\|unsigned\)\?\>"
+ syn match lispFunc "\<\(ffi:\)\?undigned-foreign-address\>"
+ syn match lispFunc "\<\(ffi:\)\?c-var-\(address\|object\)\>"
+ syn match lispFunc "\<\(ffi:\)\?typeof\>"
+ syn match lispFunc "\<\(ffi:\)\?\(bit\)\?sizeof\>"
+" CLISP Macros, functions et al:
+ syn match lispFunc "\<\(ext:\)\?with-collect\>"
+ syn match lispFunc "\<\(ext:\)\?letf\*\?\>"
+ syn match lispFunc "\<\(ext:\)\?finalize\>\>"
+ syn match lispFunc "\<\(ext:\)\?memoized\>"
+ syn match lispFunc "\<\(ext:\)\?getenv\>"
+ syn match lispFunc "\<\(ext:\)\?convert-string-\(to\|from\)-bytes\>"
+ syn match lispFunc "\<\(ext:\)\?ethe\>"
+ syn match lispFunc "\<\(ext:\)\?with-gensyms\>"
+ syn match lispFunc "\<\(ext:\)\?open-http\>"
+ syn match lispFunc "\<\(ext:\)\?string-concat\>"
+ syn match lispFunc "\<\(ext:\)\?with-http-\(in\|out\)put\>"
+ syn match lispFunc "\<\(ext:\)\?with-html-output\>"
+ syn match lispFunc "\<\(ext:\)\?expand-form\>"
+ syn match lispFunc "\<\(ext:\)\?\(without-\)\?package-lock\>"
+ syn match lispFunc "\<\(ext:\)\?re-export\>"
+ syn match lispFunc "\<\(ext:\)\?saveinitmem\>"
+ syn match lispFunc "\<\(ext:\)\?\(read\|write\)-\(integer\|float\)\>"
+ syn match lispFunc "\<\(ext:\)\?\(read\|write\)-\(char\|byte\)-sequence\>"
+ syn match lispFunc "\<\(custom:\)\?\*system-package-list\*\>"
+ syn match lispFunc "\<\(custom:\)\?\*ansi\*\>"
+endif
" ---------------------------------------------------------------------
" Lisp Keywords (modifiers): {{{1
-syn keyword lispKey :abort :from-end :overwrite
-syn keyword lispKey :adjustable :gensym :predicate
-syn keyword lispKey :append :host :preserve-whitespace
-syn keyword lispKey :array :if-does-not-exist :pretty
-syn keyword lispKey :base :if-exists :print
-syn keyword lispKey :case :include :print-function
-syn keyword lispKey :circle :index :probe
-syn keyword lispKey :conc-name :inherited :radix
-syn keyword lispKey :constructor :initial-contents :read-only
-syn keyword lispKey :copier :initial-element :rehash-size
-syn keyword lispKey :count :initial-offset :rehash-threshold
-syn keyword lispKey :create :initial-value :rename
-syn keyword lispKey :default :input :rename-and-delete
-syn keyword lispKey :defaults :internal :size
-syn keyword lispKey :device :io :start
-syn keyword lispKey :direction :junk-allowed :start1
-syn keyword lispKey :directory :key :start2
-syn keyword lispKey :displaced-index-offset :length :stream
-syn keyword lispKey :displaced-to :level :supersede
-syn keyword lispKey :element-type :name :test
-syn keyword lispKey :end :named :test-not
-syn keyword lispKey :end1 :new-version :type
-syn keyword lispKey :end2 :nicknames :use
-syn keyword lispKey :error :output :verbose
-syn keyword lispKey :escape :output-file :version
-syn keyword lispKey :external
+syn keyword lispKey :abort :from-end :overwrite
+syn keyword lispKey :adjustable :gensym :predicate
+syn keyword lispKey :append :host :preserve-whitespace
+syn keyword lispKey :array :if-does-not-exist :pretty
+syn keyword lispKey :base :if-exists :print
+syn keyword lispKey :case :include :print-function
+syn keyword lispKey :circle :index :probe
+syn keyword lispKey :conc-name :inherited :radix
+syn keyword lispKey :constructor :initial-contents :read-only
+syn keyword lispKey :copier :initial-element :rehash-size
+syn keyword lispKey :count :initial-offset :rehash-threshold
+syn keyword lispKey :create :initial-value :rename
+syn keyword lispKey :default :input :rename-and-delete
+syn keyword lispKey :defaults :internal :size
+syn keyword lispKey :device :io :start
+syn keyword lispKey :direction :junk-allowed :start1
+syn keyword lispKey :directory :key :start2
+syn keyword lispKey :displaced-index-offset :length :stream
+syn keyword lispKey :displaced-to :level :supersede
+syn keyword lispKey :element-type :name :test
+syn keyword lispKey :end :named :test-not
+syn keyword lispKey :end1 :new-version :type
+syn keyword lispKey :end2 :nicknames :use
+syn keyword lispKey :error :output :verbose
+syn keyword lispKey :escape :output-file :version
+syn keyword lispKey :external
+" defpackage arguments
+syn keyword lispKey :documentation :shadowing-import-from :modern :export
+syn keyword lispKey :case-sensitive :case-inverted :shadow :import-from :intern
+" lambda list keywords
+syn keyword lispKey &allow-other-keys &aux &body
+syn keyword lispKey &environment &key &optional &rest &whole
+" make-array argument
+syn keyword lispKey :fill-pointer
+" readtable-case values
+syn keyword lispKey :upcase :downcase :preserve :invert
+" eval-when situations
+syn keyword lispKey :load-toplevel :compile-toplevel :execute
+" ANSI Extended LOOP:
+syn keyword lispKey :while :until :for :do :if :then :else :when :unless :in
+syn keyword lispKey :across :finally :collect :nconc :maximize :minimize :sum
+syn keyword lispKey :and :with :initially :append :into :count :end :repeat
+syn keyword lispKey :always :never :thereis :from :to :upto :downto :below
+syn keyword lispKey :above :by :on :being :each :the :hash-key :hash-keys
+syn keyword lispKey :hash-value :hash-values :using :of-type :upfrom :downfrom
+if exists("g:lispsyntax_clisp")
+ " CLISP FFI:
+ syn keyword lispKey :arguments :return-type :library :full :malloc-free
+ syn keyword lispKey :none :alloca :in :out :in-out :stdc-stdcall :stdc :c
+ syn keyword lispKey :language :built-in :typedef :external
+ syn keyword lispKey :fini :init-once :init-always
+endif
" ---------------------------------------------------------------------
" Standard Lisp Variables: {{{1
-syn keyword lispVar *applyhook* *load-pathname* *print-pprint-dispatch*
-syn keyword lispVar *break-on-signals* *load-print* *print-pprint-dispatch*
-syn keyword lispVar *break-on-signals* *load-truename* *print-pretty*
-syn keyword lispVar *break-on-warnings* *load-verbose* *print-radix*
-syn keyword lispVar *compile-file-pathname* *macroexpand-hook* *print-readably*
-syn keyword lispVar *compile-file-pathname* *modules* *print-right-margin*
-syn keyword lispVar *compile-file-truename* *package* *print-right-margin*
-syn keyword lispVar *compile-file-truename* *print-array* *query-io*
-syn keyword lispVar *compile-print* *print-base* *random-state*
-syn keyword lispVar *compile-verbose* *print-case* *read-base*
-syn keyword lispVar *compile-verbose* *print-circle* *read-default-float-format*
-syn keyword lispVar *debug-io* *print-escape* *read-eval*
-syn keyword lispVar *debugger-hook* *print-gensym* *read-suppress*
-syn keyword lispVar *default-pathname-defaults* *print-length* *readtable*
-syn keyword lispVar *error-output* *print-level* *standard-input*
-syn keyword lispVar *evalhook* *print-lines* *standard-output*
-syn keyword lispVar *features* *print-miser-width* *terminal-io*
-syn keyword lispVar *gensym-counter* *print-miser-width* *trace-output*
+syn keyword lispVar *applyhook* *load-pathname* *print-pprint-dispatch*
+syn keyword lispVar *break-on-signals* *load-print* *print-pprint-dispatch*
+syn keyword lispVar *break-on-signals* *load-truename* *print-pretty*
+syn keyword lispVar *break-on-warnings* *load-verbose* *print-radix*
+syn keyword lispVar *compile-file-pathname* *macroexpand-hook* *print-readably*
+syn keyword lispVar *compile-file-pathname* *modules* *print-right-margin*
+syn keyword lispVar *compile-file-truename* *package* *print-right-margin*
+syn keyword lispVar *compile-file-truename* *print-array* *query-io*
+syn keyword lispVar *compile-print* *print-base* *random-state*
+syn keyword lispVar *compile-verbose* *print-case* *read-base*
+syn keyword lispVar *compile-verbose* *print-circle* *read-default-float-format*
+syn keyword lispVar *debug-io* *print-escape* *read-eval*
+syn keyword lispVar *debugger-hook* *print-gensym* *read-suppress*
+syn keyword lispVar *default-pathname-defaults* *print-length* *readtable*
+syn keyword lispVar *error-output* *print-level* *standard-input*
+syn keyword lispVar *evalhook* *print-lines* *standard-output*
+syn keyword lispVar *features* *print-miser-width* *terminal-io*
+syn keyword lispVar *gensym-counter* *print-miser-width* *trace-output*
" ---------------------------------------------------------------------
" Strings: {{{1
-syn region lispString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
+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
+ syn region lispInString keepend matchgroup=Delimiter start=+"(+rs=s+1 skip=+|.\{-}|+ matchgroup=Delimiter end=+)"+ contains=@lispBaseListCluster,lispInStringString
+ syn region lispInStringString start=+\\"+ skip=+\\\\+ end=+\\"+ contained
endif
" ---------------------------------------------------------------------
" Shared with Xlisp, Declarations, Macros, Functions: {{{1
-syn keyword lispDecl defmacro do-all-symbols labels
-syn keyword lispDecl defsetf do-external-symbols let
-syn keyword lispDecl deftype do-symbols locally
-syn keyword lispDecl defun dotimes macrolet
-syn keyword lispDecl do* flet multiple-value-bind
+syn keyword lispDecl defmacro do-all-symbols labels
+syn keyword lispDecl defsetf do-external-symbols let
+syn keyword lispDecl deftype do-symbols locally
+syn keyword lispDecl defun dotimes macrolet
+syn keyword lispDecl do* flet multiple-value-bind
+if exists("g:lispsyntax_clisp")
+ " CLISP FFI:
+ syn match lispDecl "\<\(ffi:\)\?def-c-\(var\|const\|enum\|type\|struct\)\>"
+ syn match lispDecl "\<\(ffi:\)\?def-call-\(out\|in\)\>"
+ syn match lispDecl "\<\(ffi:\)\?c-\(function\|struct\|pointer\|string\)\>"
+ syn match lispDecl "\<\(ffi:\)\?c-ptr\(-null\)\?\>"
+ syn match lispDecl "\<\(ffi:\)\?c-array\(-ptr\|-max\)\?\>"
+ syn match lispDecl "\<\(ffi:\)\?[us]\?\(char\|short\|int\|long\)\>"
+ syn match lispDecl "\<\(win32:\|w32\)\?d\?word\>"
+ syn match lispDecl "\<\([us]_\?\)\?int\(8\|16\|32\|64\)\(_t\)\?\>"
+ syn keyword lispDecl size_t off_t time_t handle
+endif
" ---------------------------------------------------------------------
" Numbers: supporting integers and floating point numbers {{{1
-syn match lispNumber "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\="
+syn match lispNumber "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\="
-syn match lispSpecial "\*\w[a-z_0-9-]*\*"
-syn match lispSpecial !#|[^()'`,"; \t]\+|#!
-syn match lispSpecial !#x\x\+!
-syn match lispSpecial !#o\o\+!
-syn match lispSpecial !#b[01]\+!
-syn match lispSpecial !#\\[ -}\~]!
-syn match lispSpecial !#[':][^()'`,"; \t]\+!
-syn match lispSpecial !#([^()'`,"; \t]\+)!
-syn match lispSpecial !#\\\%(Space\|Newline\|Tab\|Page\|Rubout\|Linefeed\|Return\|Backspace\)!
+syn match lispSpecial "\*\w[a-z_0-9-]*\*"
+syn match lispSpecial !#|[^()'`,"; \t]\+|#!
+syn match lispSpecial !#x\x\+!
+syn match lispSpecial !#o\o\+!
+syn match lispSpecial !#b[01]\+!
+syn match lispSpecial !#\\[ -}\~]!
+syn match lispSpecial !#[':][^()'`,"; \t]\+!
+syn match lispSpecial !#([^()'`,"; \t]\+)!
+syn match lispSpecial !#\\\%(Space\|Newline\|Tab\|Page\|Rubout\|Linefeed\|Return\|Backspace\)!
+syn match lispSpecial "\<+[a-zA-Z_][a-zA-Z_0-9-]*+\>"
-syn match lispConcat "\s\.\s"
-syn match lispParenError ")"
+syn match lispConcat "\s\.\s"
+syn match lispParenError ")"
" ---------------------------------------------------------------------
" Comments: {{{1
-syn cluster lispCommentGroup contains=lispTodo,@Spell
-syn match lispComment ";.*$" contains=@lispCommentGroup
-syn region lispCommentRegion start="#|" end="|#" contains=lispCommentRegion,@lispCommentGroup
-syn keyword lispTodo contained combak combak: todo todo:
+syn cluster lispCommentGroup contains=lispTodo,@Spell
+syn match lispComment ";.*$" contains=@lispCommentGroup
+syn region lispCommentRegion start="#|" end="|#" contains=lispCommentRegion,@lispCommentGroup
+syn keyword lispTodo contained combak combak: todo todo:
" ---------------------------------------------------------------------
" Synchronization: {{{1
@@ -487,38 +568,38 @@ syn sync lines=100
if version >= 508
command -nargs=+ HiLink hi def link <args>
- HiLink lispCommentRegion lispComment
- HiLink lispAtomNmbr lispNumber
- HiLink lispAtomMark lispMark
- HiLink lispInStringString lispString
+ HiLink lispCommentRegion lispComment
+ HiLink lispAtomNmbr lispNumber
+ HiLink lispAtomMark lispMark
+ HiLink lispInStringString lispString
- HiLink lispAtom Identifier
- HiLink lispAtomBarSymbol Special
- HiLink lispBarSymbol Special
- HiLink lispComment Comment
- HiLink lispConcat Statement
- HiLink lispDecl Statement
- HiLink lispFunc Statement
- HiLink lispKey Type
- HiLink lispMark Delimiter
- HiLink lispNumber Number
- HiLink lispParenError Error
- HiLink lispSpecial Type
- HiLink lispString String
- HiLink lispTodo Todo
- HiLink lispVar Statement
+ HiLink lispAtom Identifier
+ HiLink lispAtomBarSymbol Special
+ HiLink lispBarSymbol Special
+ HiLink lispComment Comment
+ HiLink lispConcat Statement
+ HiLink lispDecl Statement
+ HiLink lispFunc Statement
+ HiLink lispKey Type
+ HiLink lispMark Delimiter
+ HiLink lispNumber Number
+ HiLink lispParenError Error
+ HiLink lispSpecial Type
+ HiLink lispString String
+ HiLink lispTodo Todo
+ HiLink lispVar Statement
if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
if &bg == "dark"
hi def hlLevel0 ctermfg=red guifg=red1
- hi def hlLevel1 ctermfg=yellow guifg=orange1
- hi def hlLevel2 ctermfg=green guifg=yellow1
- hi def hlLevel3 ctermfg=cyan guifg=greenyellow
- hi def hlLevel4 ctermfg=magenta guifg=green1
- hi def hlLevel5 ctermfg=red guifg=springgreen1
- hi def hlLevel6 ctermfg=yellow guifg=cyan1
- hi def hlLevel7 ctermfg=green guifg=slateblue1
- hi def hlLevel8 ctermfg=cyan guifg=magenta1
+ hi def hlLevel1 ctermfg=yellow guifg=orange1
+ hi def hlLevel2 ctermfg=green guifg=yellow1
+ hi def hlLevel3 ctermfg=cyan guifg=greenyellow
+ hi def hlLevel4 ctermfg=magenta guifg=green1
+ hi def hlLevel5 ctermfg=red guifg=springgreen1
+ hi def hlLevel6 ctermfg=yellow guifg=cyan1
+ hi def hlLevel7 ctermfg=green guifg=slateblue1
+ hi def hlLevel8 ctermfg=cyan guifg=magenta1
hi def hlLevel9 ctermfg=magenta guifg=purple1
else
hi def hlLevel0 ctermfg=red guifg=red3
diff --git a/runtime/syntax/lsl.vim b/runtime/syntax/lsl.vim
new file mode 100644
index 000000000..3f2481678
--- /dev/null
+++ b/runtime/syntax/lsl.vim
@@ -0,0 +1,272 @@
+" Vim syntax file
+" Language: Linden Scripting Language
+" Maintainer: Timo Frenay <timo@frenay.net>
+" Last Change: 2008 Mar 29
+
+" Quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
+endif
+
+" Initializations
+syn case match
+
+" Keywords
+syn keyword lslKeyword default do else for if jump return state while
+
+" Types
+syn keyword lslType float integer key list quaternion rotation string vector
+
+" Labels
+syn match lslLabel +@\h\w*+ display
+
+" Constants
+syn keyword lslConstant
+\ ACTIVE AGENT AGENT_ALWAYS_RUN AGENT_ATTACHMENTS AGENT_AWAY AGENT_BUSY
+\ AGENT_CROUCHING AGENT_FLYING AGENT_IN_AIR AGENT_MOUSELOOK AGENT_ON_OBJECT
+\ AGENT_SCRIPTED AGENT_SITTING AGENT_TYPING AGENT_WALKING ALL_SIDES ANIM_ON
+\ ATTACH_BACK ATTACH_BELLY ATTACH_CHEST ATTACH_CHIN ATTACH_HEAD
+\ ATTACH_HUD_BOTTOM ATTACH_HUD_BOTTOM_LEFT ATTACH_HUD_BOTTOM_RIGHT
+\ ATTACH_HUD_CENTER_1 ATTACH_HUD_CENTER_2 ATTACH_HUD_TOP_CENTER
+\ ATTACH_HUD_TOP_LEFT ATTACH_HUD_TOP_RIGHT ATTACH_LEAR ATTACH_LEYE ATTACH_LFOOT
+\ ATTACH_LHAND ATTACH_LHIP ATTACH_LLARM ATTACH_LLLEG ATTACH_LPEC
+\ ATTACH_LSHOULDER ATTACH_LUARM ATTACH_LULEG ATTACH_MOUTH ATTACH_NOSE
+\ ATTACH_PELVIS ATTACH_REAR ATTACH_REYE ATTACH_RFOOT ATTACH_RHAND ATTACH_RHIP
+\ ATTACH_RLARM ATTACH_RLLEG ATTACH_RPEC ATTACH_RSHOULDER ATTACH_RUARM
+\ ATTACH_RULEG CAMERA_ACTIVE CAMERA_BEHINDNESS_ANGLE CAMERA_BEHINDNESS_LAG
+\ CAMERA_DISTANCE CAMERA_FOCUS CAMERA_FOCUS_LAG CAMERA_FOCUS_LOCKED
+\ CAMERA_FOCUS_OFFSET CAMERA_FOCUS_THRESHOLD CAMERA_PITCH CAMERA_POSITION
+\ CAMERA_POSITION_LAG CAMERA_POSITION_LOCKED CAMERA_POSITION_THRESHOLD
+\ CHANGED_ALLOWED_DROP CHANGED_COLOR CHANGED_INVENTORY CHANGED_LINK
+\ CHANGED_OWNER CHANGED_REGION CHANGED_SCALE CHANGED_SHAPE CHANGED_TELEPORT
+\ CHANGED_TEXTURE CLICK_ACTION_BUY CLICK_ACTION_NONE CLICK_ACTION_OPEN
+\ CLICK_ACTION_OPEN_MEDIA CLICK_ACTION_PAY CLICK_ACTION_PLAY CLICK_ACTION_SIT
+\ CLICK_ACTION_TOUCH CONTROL_BACK CONTROL_DOWN CONTROL_FWD CONTROL_LBUTTON
+\ CONTROL_LEFT CONTROL_ML_LBUTTON CONTROL_RIGHT CONTROL_ROT_LEFT
+\ CONTROL_ROT_RIGHT CONTROL_UP DATA_BORN DATA_NAME DATA_ONLINE DATA_PAYINFO
+\ DATA_RATING DATA_SIM_POS DATA_SIM_RATING DATA_SIM_STATUS DEBUG_CHANNEL
+\ DEG_TO_RAD EOF FALSE HTTP_BODY_MAXLENGTH HTTP_BODY_TRUNCATED HTTP_METHOD
+\ HTTP_MIMETYPE HTTP_VERIFY_CERT INVENTORY_ALL INVENTORY_ANIMATION
+\ INVENTORY_BODYPART INVENTORY_CLOTHING INVENTORY_GESTURE INVENTORY_LANDMARK
+\ INVENTORY_NONE INVENTORY_NOTECARD INVENTORY_OBJECT INVENTORY_SCRIPT
+\ INVENTORY_SOUND INVENTORY_TEXTURE LAND_LARGE_BRUSH LAND_LEVEL LAND_LOWER
+\ LAND_MEDIUM_BRUSH LAND_NOISE LAND_RAISE LAND_REVERT LAND_SMALL_BRUSH
+\ LAND_SMOOTH LINK_ALL_CHILDREN LINK_ALL_OTHERS LINK_ROOT LINK_SET LINK_THIS
+\ LIST_STAT_GEOMETRIC_MEAN LIST_STAT_MAX LIST_STAT_MEAN LIST_STAT_MEDIAN
+\ LIST_STAT_MIN LIST_STAT_NUM_COUNT LIST_STAT_RANGE LIST_STAT_STD_DEV
+\ LIST_STAT_SUM LIST_STAT_SUM_SQUARES LOOP MASK_BASE MASK_EVERYONE MASK_GROUP
+\ MASK_NEXT MASK_OWNER NULL_KEY OBJECT_CREATOR OBJECT_DESC OBJECT_GROUP
+\ OBJECT_NAME OBJECT_OWNER OBJECT_POS OBJECT_ROT OBJECT_UNKNOWN_DETAIL
+\ OBJECT_VELOCITY PARCEL_COUNT_GROUP PARCEL_COUNT_OTHER PARCEL_COUNT_OWNER
+\ PARCEL_COUNT_SELECTED PARCEL_COUNT_TEMP PARCEL_COUNT_TOTAL PARCEL_DETAILS_AREA
+\ PARCEL_DETAILS_DESC PARCEL_DETAILS_GROUP PARCEL_DETAILS_NAME
+\ PARCEL_DETAILS_OWNER PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY
+\ PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS PARCEL_FLAG_ALLOW_CREATE_OBJECTS
+\ PARCEL_FLAG_ALLOW_DAMAGE PARCEL_FLAG_ALLOW_FLY
+\ PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY PARCEL_FLAG_ALLOW_GROUP_SCRIPTS
+\ PARCEL_FLAG_ALLOW_LANDMARK PARCEL_FLAG_ALLOW_SCRIPTS
+\ PARCEL_FLAG_ALLOW_TERRAFORM PARCEL_FLAG_LOCAL_SOUND_ONLY
+\ PARCEL_FLAG_RESTRICT_PUSHOBJECT PARCEL_FLAG_USE_ACCESS_GROUP
+\ PARCEL_FLAG_USE_ACCESS_LIST PARCEL_FLAG_USE_BAN_LIST
+\ PARCEL_FLAG_USE_LAND_PASS_LIST PARCEL_MEDIA_COMMAND_AGENT
+\ PARCEL_MEDIA_COMMAND_AUTO_ALIGN PARCEL_MEDIA_COMMAND_DESC
+\ PARCEL_MEDIA_COMMAND_LOOP PARCEL_MEDIA_COMMAND_LOOP_SET
+\ PARCEL_MEDIA_COMMAND_PAUSE PARCEL_MEDIA_COMMAND_PLAY PARCEL_MEDIA_COMMAND_SIZE
+\ PARCEL_MEDIA_COMMAND_STOP PARCEL_MEDIA_COMMAND_TEXTURE
+\ PARCEL_MEDIA_COMMAND_TIME PARCEL_MEDIA_COMMAND_TYPE
+\ PARCEL_MEDIA_COMMAND_UNLOAD PARCEL_MEDIA_COMMAND_URL PASSIVE
+\ PAYMENT_INFO_ON_FILE PAYMENT_INFO_USED PAY_DEFAULT PAY_HIDE PERM_ALL PERM_COPY
+\ PERM_MODIFY PERM_MOVE PERM_TRANSFER PERMISSION_ATTACH PERMISSION_CHANGE_LINKS
+\ PERMISSION_CONTROL_CAMERA PERMISSION_DEBIT PERMISSION_TAKE_CONTROLS
+\ PERMISSION_TRACK_CAMERA PERMISSION_TRIGGER_ANIMATION PI PI_BY_TWO PING_PONG
+\ PRIM_BUMP_BARK PRIM_BUMP_BLOBS PRIM_BUMP_BRICKS PRIM_BUMP_BRIGHT
+\ PRIM_BUMP_CHECKER PRIM_BUMP_CONCRETE PRIM_BUMP_DARK PRIM_BUMP_DISKS
+\ PRIM_BUMP_GRAVEL PRIM_BUMP_LARGETILE PRIM_BUMP_NONE PRIM_BUMP_SHINY
+\ PRIM_BUMP_SIDING PRIM_BUMP_STONE PRIM_BUMP_STUCCO PRIM_BUMP_SUCTION
+\ PRIM_BUMP_TILE PRIM_BUMP_WEAVE PRIM_BUMP_WOOD PRIM_CAST_SHADOWS PRIM_COLOR
+\ PRIM_FLEXIBLE PRIM_FULLBRIGHT PRIM_HOLE_CIRCLE PRIM_HOLE_DEFAULT
+\ PRIM_HOLE_SQUARE PRIM_HOLE_TRIANGLE PRIM_MATERIAL PRIM_MATERIAL_FLESH
+\ PRIM_MATERIAL_GLASS PRIM_MATERIAL_LIGHT PRIM_MATERIAL_METAL
+\ PRIM_MATERIAL_PLASTIC PRIM_MATERIAL_RUBBER PRIM_MATERIAL_STONE
+\ PRIM_MATERIAL_WOOD PRIM_PHANTOM PRIM_PHYSICS PRIM_POINT_LIGHT PRIM_POSITION
+\ PRIM_ROTATION PRIM_SCULPT_TYPE_CYLINDER PRIM_SCULPT_TYPE_PLANE
+\ PRIM_SCULPT_TYPE_SPHERE PRIM_SCULPT_TYPE_TORUS PRIM_SHINY_HIGH PRIM_SHINY_LOW
+\ PRIM_SHINY_MEDIUM PRIM_SHINY_NONE PRIM_SIZE PRIM_TEMP_ON_REZ PRIM_TEXGEN
+\ PRIM_TEXGEN_DEFAULT PRIM_TEXGEN_PLANAR PRIM_TEXTURE PRIM_TYPE PRIM_TYPE_BOX
+\ PRIM_TYPE_BOX PRIM_TYPE_CYLINDER PRIM_TYPE_CYLINDER PRIM_TYPE_LEGACY
+\ PRIM_TYPE_PRISM PRIM_TYPE_PRISM PRIM_TYPE_RING PRIM_TYPE_SCULPT
+\ PRIM_TYPE_SPHERE PRIM_TYPE_SPHERE PRIM_TYPE_TORUS PRIM_TYPE_TORUS
+\ PRIM_TYPE_TUBE PRIM_TYPE_TUBE PSYS_PART_BEAM_MASK PSYS_PART_BOUNCE_MASK
+\ PSYS_PART_DEAD_MASK PSYS_PART_EMISSIVE_MASK PSYS_PART_END_ALPHA
+\ PSYS_PART_END_COLOR PSYS_PART_END_SCALE PSYS_PART_FLAGS
+\ PSYS_PART_FOLLOW_SRC_MASK PSYS_PART_FOLLOW_VELOCITY_MASK
+\ PSYS_PART_INTERP_COLOR_MASK PSYS_PART_INTERP_SCALE_MASK PSYS_PART_MAX_AGE
+\ PSYS_PART_RANDOM_ACCEL_MASK PSYS_PART_RANDOM_VEL_MASK PSYS_PART_START_ALPHA
+\ PSYS_PART_START_COLOR PSYS_PART_START_SCALE PSYS_PART_TARGET_LINEAR_MASK
+\ PSYS_PART_TARGET_POS_MASK PSYS_PART_TRAIL_MASK PSYS_PART_WIND_MASK
+\ PSYS_SRC_ACCEL PSYS_SRC_ANGLE_BEGIN PSYS_SRC_ANGLE_END
+\ PSYS_SRC_BURST_PART_COUNT PSYS_SRC_BURST_RADIUS PSYS_SRC_BURST_RATE
+\ PSYS_SRC_BURST_SPEED_MAX PSYS_SRC_BURST_SPEED_MIN PSYS_SRC_INNERANGLE
+\ PSYS_SRC_MAX_AGE PSYS_SRC_OMEGA PSYS_SRC_OUTERANGLE PSYS_SRC_PATTERN
+\ PSYS_SRC_PATTERN_ANGLE PSYS_SRC_PATTERN_ANGLE_CONE
+\ PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY PSYS_SRC_PATTERN_DROP
+\ PSYS_SRC_PATTERN_EXPLODE PSYS_SRC_TARGET_KEY PSYS_SRC_TEXTURE PUBLIC_CHANNEL
+\ RAD_TO_DEG REGION_FLAG_ALLOW_DAMAGE REGION_FLAG_ALLOW_DIRECT_TELEPORT
+\ REGION_FLAG_BLOCK_FLY REGION_FLAG_BLOCK_TERRAFORM
+\ REGION_FLAG_DISABLE_COLLISIONS REGION_FLAG_DISABLE_PHYSICS
+\ REGION_FLAG_FIXED_SUN REGION_FLAG_RESTRICT_PUSHOBJECT REGION_FLAG_SANDBOX
+\ REMOTE_DATA_CHANNEL REMOTE_DATA_REPLY REMOTE_DATA_REQUEST REVERSE ROTATE SCALE
+\ SCRIPTED SMOOTH SQRT2 STATUS_BLOCK_GRAB STATUS_CAST_SHADOWS STATUS_DIE_AT_EDGE
+\ STATUS_PHANTOM STATUS_PHYSICS STATUS_RETURN_AT_EDGE STATUS_ROTATE_X
+\ STATUS_ROTATE_Y STATUS_ROTATE_Z STATUS_SANDBOX STRING_TRIM STRING_TRIM_HEAD
+\ STRING_TRIM_TAIL TRUE TWO_PI TYPE_FLOAT TYPE_INTEGER TYPE_INVALID TYPE_KEY
+\ TYPE_ROTATION TYPE_STRING TYPE_VECTOR VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY
+\ VEHICLE_ANGULAR_DEFLECTION_TIMESCALE VEHICLE_ANGULAR_FRICTION_TIMESCALE
+\ VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE VEHICLE_ANGULAR_MOTOR_DIRECTION
+\ VEHICLE_ANGULAR_MOTOR_TIMESCALE VEHICLE_BANKING_EFFICIENCY VEHICLE_BANKING_MIX
+\ VEHICLE_BANKING_TIMESCALE VEHICLE_BUOYANCY VEHICLE_FLAG_CAMERA_DECOUPLED
+\ VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+\ VEHICLE_FLAG_HOVER_UP_ONLY VEHICLE_FLAG_HOVER_WATER_ONLY
+\ VEHICLE_FLAG_LIMIT_MOTOR_UP VEHICLE_FLAG_LIMIT_ROLL_ONLY
+\ VEHICLE_FLAG_MOUSELOOK_BANK VEHICLE_FLAG_MOUSELOOK_STEER
+\ VEHICLE_FLAG_NO_DEFLECTION_UP VEHICLE_HOVER_EFFICIENCY VEHICLE_HOVER_HEIGHT
+\ VEHICLE_HOVER_TIMESCALE VEHICLE_LINEAR_DEFLECTION_EFFICIENCY
+\ VEHICLE_LINEAR_DEFLECTION_TIMESCALE VEHICLE_LINEAR_FRICTION_TIMESCALE
+\ VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE VEHICLE_LINEAR_MOTOR_TIMESCALE
+\ VEHICLE_LINEAR_MOTOR_DIRECTION VEHICLE_LINEAR_MOTOR_OFFSET
+\ VEHICLE_REFERENCE_FRAME VEHICLE_TYPE_AIRPLANE VEHICLE_TYPE_BALLOON
+\ VEHICLE_TYPE_BOAT VEHICLE_TYPE_CAR VEHICLE_TYPE_NONE VEHICLE_TYPE_SLED
+\ VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY VEHICLE_VERTICAL_ATTRACTION_TIMESCALE
+\ ZERO_ROTATION ZERO_VECTOR
+
+" Events
+syn keyword lslEvent
+\ attach at_rot_target at_target changed collision collision_end collision_start
+\ control dataserver email http_response land_collision land_collision_end
+\ land_collision_start link_message listen money moving_end moving_start
+\ not_at_rot_target no_sensor object_rez on_rez remote_data run_time_permissions
+\ sensor state_entry state_exit timer touch touch_end touch_start not_at_target
+
+" Functions
+syn keyword lslFunction
+\ llAbs llAcos llAddToLandBanList llAddToLandPassList llAdjustSoundVolume
+\ llAllowInventoryDrop llAngleBetween llApplyImpulse llApplyRotationalImpulse
+\ llAsin llAtan2 llAttachToAvatar llAvatarOnSitTarget llAxes2Rot llAxisAngle2Rot
+\ llBase64ToInteger llBase64ToString llBreakAllLinks llBreakLink llCSV2List
+\ llCeil llClearCameraParams llCloseRemoteDataChannel llCloud llCollisionFilter
+\ llCollisionSound llCollisionSprite llCos llCreateLink llDeleteSubList
+\ llDeleteSubString llDetachFromAvatar llDetectedGrab llDetectedGroup
+\ llDetectedKey llDetectedLinkNumber llDetectedName llDetectedOwner
+\ llDetectedPos llDetectedRot llDetectedType llDetectedVel llDialog llDie
+\ llDumpList2String llEdgeOfWorld llEjectFromLand llEmail llEscapeURL
+\ llEuler2Rot llFabs llFloor llForceMouselook llFrand llGetAccel llGetAgentInfo
+\ llGetAgentSize llGetAlpha llGetAndResetTime llGetAnimation llGetAnimationList
+\ llGetAttached llGetBoundingBox llGetCameraPos llGetCameraRot llGetCenterOfMass
+\ llGetColor llGetCreator llGetDate llGetEnergy llGetForce llGetFreeMemory
+\ llGetGMTclock llGetGeometricCenter llGetInventoryCreator llGetInventoryKey
+\ llGetInventoryName llGetInventoryNumber llGetInventoryPermMask
+\ llGetInventoryType llGetKey llGetLandOwnerAt llGetLinkKey llGetLinkName
+\ llGetLinkNumber llGetListEntryType llGetListLength llGetLocalPos llGetLocalRot
+\ llGetMass llGetNextEmail llGetNotecardLine llGetNumberOfNotecardLines
+\ llGetNumberOfPrims llGetNumberOfSides llGetObjectDesc llGetObjectDetails
+\ llGetObjectMass llGetObjectName llGetObjectPermMask llGetObjectPrimCount
+\ llGetOmega llGetOwner llGetOwnerKey llGetParcelDetails llGetParcelFlags
+\ llGetParcelMaxPrims llGetParcelPrimCount llGetParcelPrimOwners
+\ llGetPermissions llGetPermissionsKey llGetPos llGetPrimitiveParams
+\ llGetRegionCorner llGetRegionFPS llGetRegionFlags llGetRegionName
+\ llGetRegionTimeDilation llGetRootPosition llGetRootRotation llGetRot
+\ llGetScale llGetScriptName llGetScriptState llGetSimulatorHostname
+\ llGetStartParameter llGetStatus llGetSubString llGetSunDirection llGetTexture
+\ llGetTextureOffset llGetTextureRot llGetTextureScale llGetTime llGetTimeOfDay
+\ llGetTimestamp llGetTorque llGetUnixTime llGetVel llGetWallclock
+\ llGiveInventory llGiveInventoryList llGiveMoney llGodLikeRezObject llGround
+\ llGroundContour llGroundNormal llGroundRepel llGroundSlope llHTTPRequest
+\ llInsertString llInstantMessage llIntegerToBase64 llKey2Name llList2CSV
+\ llList2Float llList2Integer llList2Key llList2List llList2ListStrided
+\ llList2Rot llList2String llList2Vector llListFindList llListInsertList
+\ llListRandomize llListReplaceList llListSort llListStatistics llListen
+\ llListenControl llListenRemove llLoadURL llLog llLog10 llLookAt llLoopSound
+\ llLoopSoundMaster llLoopSoundSlave llMD5String llMakeExplosion llMakeFire
+\ llMakeFountain llMakeSmoke llMapDestination llMessageLinked llMinEventDelay
+\ llModPow llModifyLand llMoveToTarget llOffsetTexture llOpenRemoteDataChannel
+\ llOverMyLand llOwnerSay llParcelMediaCommandList llParcelMediaQuery
+\ llParseString2List llParseStringKeepNulls llParticleSystem llPassCollisions
+\ llPassTouches llPlaySound llPlaySoundSlave llPointAt llPow llPreloadSound
+\ llPushObject llRefreshPrimURL llRegionSay llReleaseCamera llReleaseControls
+\ llRemoteDataReply llRemoteDataSetRegion llRemoteLoadScript
+\ llRemoteLoadScriptPin llRemoveFromLandBanList llRemoveFromLandPassList
+\ llRemoveInventory llRemoveVehicleFlags llRequestAgentData
+\ llRequestInventoryData llRequestPermissions llRequestSimulatorData
+\ llResetLandBanList llResetLandPassList llResetOtherScript llResetScript
+\ llResetTime llRezAtRoot llRezObject llRot2Angle llRot2Axis llRot2Euler
+\ llRot2Fwd llRot2Left llRot2Up llRotBetween llRotLookAt llRotTarget
+\ llRotTargetRemove llRotateTexture llRound llSameGroup llSay llScaleTexture
+\ llScriptDanger llSendRemoteData llSensor llSensorRemove llSensorRepeat
+\ llSetAlpha llSetBuoyancy llSetCameraAtOffset llSetCameraEyeOffset
+\ llSetCameraParams llSetClickAction llSetColor llSetDamage llSetForce
+\ llSetForceAndTorque llSetHoverHeight llSetInventoryPermMask llSetLinkAlpha
+\ llSetLinkColor llSetLinkPrimitiveParams llSetLinkTexture llSetLocalRot
+\ llSetObjectDesc llSetObjectName llSetObjectPermMask llSetParcelMusicURL
+\ llSetPayPrice llSetPos llSetPrimURL llSetPrimitiveParams
+\ llSetRemoteScriptAccessPin llSetRot llSetScale llSetScriptState llSetSitText
+\ llSetSoundQueueing llSetSoundRadius llSetStatus llSetText llSetTexture
+\ llSetTextureAnim llSetTimerEvent llSetTorque llSetTouchText llSetVehicleFlags
+\ llSetVehicleFloatParam llSetVehicleRotationParam llSetVehicleType
+\ llSetVehicleVectorParam llShout llSin llSitTarget llSleep llSound
+\ llSoundPreload llSqrt llStartAnimation llStopAnimation llStopHover
+\ llStopLookAt llStopMoveToTarget llStopPointAt llStopSound llStringLength
+\ llStringToBase64 llStringTrim llSubStringIndex llTakeCamera llTakeControls
+\ llTan llTarget llTargetOmega llTargetRemove llTeleportAgentHome llToLower
+\ llToUpper llTriggerSound llTriggerSoundLimited llUnSit llUnescapeURL llVecDist
+\ llVecMag llVecNorm llVolumeDetect llWater llWhisper llWind llXorBase64Strings
+\ llXorBase64StringsCorrect
+
+" Operators
+syn match lslOperator +[-!%&*+/<=>^|~]+ display
+
+" Numbers
+syn match lslNumber +-\=\%(\<\d\+\|\%(\<\d\+\)\=\.\d\+\)\%([Ee][-+]\=\d\+\)\=\>\|\<0x\x\+\>+ display
+
+" Vectors and rotations
+syn match lslVectorRot +<[-\t +.0-9A-Za-z_]\+\%(,[-\t +.0-9A-Za-z_]\+\)\{2,3}>+ contains=lslNumber display
+
+" Vector and rotation properties
+syn match lslProperty +\.\@<=[sxyz]\>+ display
+
+" Strings
+syn region lslString start=+"+ skip=+\\.+ end=+"+ contains=lslSpecialChar,@Spell
+syn match lslSpecialChar +\\.+ contained display
+
+" Keys
+syn match lslKey +"\x\{8}-\x\{4}-\x\{4}-\x\{4}-\x\{12}"+ display
+
+" Parentheses, braces and brackets
+syn match lslBlock +[][(){}]+ display
+
+" Typecast operators
+syn match lslTypecast +(\%(float\|integer\|key\|list\|quaternion\|rotation\|string\|vector\))+ contains=lslType display
+
+" Comments
+syn match lslComment +//.*+ contains=@Spell
+
+" Define the default highlighting.
+hi def link lslKeyword Keyword
+hi def link lslType Type
+hi def link lslLabel Label
+hi def link lslConstant Constant
+hi def link lslEvent PreProc
+hi def link lslFunction Function
+hi def link lslOperator Operator
+hi def link lslNumber Number
+hi def link lslVectorRot Special
+hi def link lslProperty Identifier
+hi def link lslString String
+hi def link lslSpecialChar SpecialChar
+hi def link lslKey Special
+hi def link lslBlock Special
+hi def link lslTypecast Operator
+hi def link lslComment Comment
+
+let b:current_syntax = "lsl"
+
+" vim: ts=8
diff --git a/runtime/syntax/modconf.vim b/runtime/syntax/modconf.vim
index e982b8c58..d4e8827be 100644
--- a/runtime/syntax/modconf.vim
+++ b/runtime/syntax/modconf.vim
@@ -1,13 +1,13 @@
" Vim syntax file
" Language: modules.conf(5) configuration file
" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Latest Revision: 2007-06-17
if exists("b:current_syntax")
finish
endif
-setlocal iskeyword=@,48-57,-
+setlocal iskeyword+=-
let s:cpo_save = &cpo
set cpo&vim
diff --git a/runtime/syntax/mrxvtrc.vim b/runtime/syntax/mrxvtrc.vim
index d86f8e42a..878021e00 100644
--- a/runtime/syntax/mrxvtrc.vim
+++ b/runtime/syntax/mrxvtrc.vim
@@ -1,5 +1,5 @@
" Created : Wed 26 Apr 2006 01:20:53 AM CDT
-" Modified : Mon 20 Nov 2006 12:14:16 AM PST
+" Modified : Mon 27 Aug 2007 12:10:37 PM PDT
" Author : Gautam Iyer <gi1242@users.sourceforge.net>
" Description : Vim syntax file for mrxvtrc (for mrxvt-0.5.0 and up)
@@ -31,19 +31,19 @@ syn keyword mrxvtrcOptions contained nextgroup=mrxvtrcBColon,mrxvtrcError
\ fullscreen reverseVideo loginShell
\ jumpScroll scrollBar scrollbarRight
\ scrollbarFloating scrollTtyOutputInhibit
- \ scrollTtyKeypress scrollWithBuffer
- \ transparentForce transparentScrollbar
- \ transparentMenubar transparentTabbar
- \ tabUsePixmap utmpInhibit visualBell mapAlert
- \ meta8 mouseWheelScrollPage multibyte_cursor
+ \ scrollTtyKeypress 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
+ \ overrideRedirect broadcast smartResize
+ \ pointerBlank cursorBlink noSysConfig
+ \ disableMacros linuxHomeEndKey sessionMgt
+ \ boldColors smoothResize useFifo veryBright
syn match mrxvtrcOptions contained nextgroup=mrxvtrcBColon,mrxvtrcError
\ '\v<transparent>'
syn match mrxvtrcBColon contained skipwhite
@@ -74,8 +74,7 @@ syn keyword mrxvtrcOptions contained nextgroup=mrxvtrcNColon,mrxvtrcError
\ externalBorder internalBorder lineSpace
\ pointerBlankDelay cursorBlinkInterval
\ shading backgroundFade bgRefreshInterval
- \ fading focusDelay opacity opacityDegree
- \ xftPSize
+ \ fading opacity opacityDegree xftPSize
syn match mrxvtrcNColon contained skipwhite
\ nextgroup=mrxvtrcNumVal,mrxvtrcError ':'
syn match mrxvtrcNumVal contained skipwhite nextgroup=mrxvtrcError
@@ -91,7 +90,6 @@ syn keyword mrxvtrcOptions contained nextgroup=mrxvtrcSColon,mrxvtrcError
\ 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 ':'
@@ -104,6 +102,7 @@ syn match mrxvtrcProfile contained nextgroup=@mrxvtrcPOpts,mrxvtrcError
syn keyword mrxvtrcPSOpts contained nextgroup=mrxvtrcSColon,mrxvtrcError
\ tabTitle command holdExitText holdExitTitle
\ Pixmap workingDirectory titleFormat
+ \ winTitleFormat
syn keyword mrxvtrcPCOpts contained nextgroup=mrxvtrcCColon,mrxvtrcError
\ background foreground
syn keyword mrxvtrcPNOpts contained nextgroup=mrxvtrcNColon,mrxvtrcError
@@ -205,7 +204,7 @@ syn keyword mrxvtrcMacro contained skipwhite nextgroup=mrxvtrcError
\ Dummy Copy Paste ToggleVeryBold
\ ToggleTransparency ToggleBroadcast
\ ToggleHold SetTitle ToggleMacros
- \ ToggleFullscreen
+ \ ToggleFullscreen Raise
" Macros with a string argument
syn keyword mrxvtrcMacro contained skipwhite nextgroup=mrxvtrcStrVal
@@ -214,7 +213,7 @@ syn keyword mrxvtrcMacro contained skipwhite nextgroup=mrxvtrcStrVal
" Macros with a numeric argument
syn keyword mrxvtrcMacro contained skipwhite
\ nextgroup=mrxvtrcNumVal,mrxvtrcError
- \ Close GotoTab MoveTab ResizeFont
+ \ Close GotoTab MoveTab ResizeFont UseFifo
" NewTab macro
syn keyword mrxvtrcMacro contained skipwhite
diff --git a/runtime/syntax/mysql.vim b/runtime/syntax/mysql.vim
index aa123b7a7..79cf4b5ab 100644
--- a/runtime/syntax/mysql.vim
+++ b/runtime/syntax/mysql.vim
@@ -1,10 +1,10 @@
" Vim syntax file
" Language: mysql
" Maintainer: Kenneth J. Pronovici <pronovic@ieee.org>
-" Last Change: $Date$
+" Last Change: $LastChangedDate: 2007-12-19 10:59:39 -0600 (Wed, 19 Dec 2007) $
" Filenames: *.mysql
-" URL: ftp://cedar-solutions.com/software/mysql.vim
-" Note: The definitions below are taken from the mysql user manual as of April 2002, for version 3.23
+" URL: ftp://cedar-solutions.com/software/mysql.vim
+" Note: The definitions below are taken from the mysql user manual as of April 2002, for version 3.23
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
@@ -18,56 +18,56 @@ endif
syn case ignore
" General keywords which don't fall into other categories
-syn keyword mysqlKeyword action add after aggregate all alter as asc auto_increment avg avg_row_length
-syn keyword mysqlKeyword both by
-syn keyword mysqlKeyword cascade change character check checksum column columns comment constraint create cross
-syn keyword mysqlKeyword current_date current_time current_timestamp
-syn keyword mysqlKeyword data database databases day day_hour day_minute day_second
-syn keyword mysqlKeyword default delayed delay_key_write delete desc describe distinct distinctrow drop
-syn keyword mysqlKeyword enclosed escape escaped explain
-syn keyword mysqlKeyword fields file first flush for foreign from full function
-syn keyword mysqlKeyword global grant grants group
-syn keyword mysqlKeyword having heap high_priority hosts hour hour_minute hour_second
-syn keyword mysqlKeyword identified ignore index infile inner insert insert_id into isam
-syn keyword mysqlKeyword join
-syn keyword mysqlKeyword key keys kill last_insert_id leading left limit lines load local lock logs long
-syn keyword mysqlKeyword low_priority
-syn keyword mysqlKeyword match max_rows middleint min_rows minute minute_second modify month myisam
-syn keyword mysqlKeyword natural no
-syn keyword mysqlKeyword on optimize option optionally order outer outfile
-syn keyword mysqlKeyword pack_keys partial password primary privileges procedure process processlist
-syn keyword mysqlKeyword read references reload rename replace restrict returns revoke row rows
-syn keyword mysqlKeyword second select show shutdown soname sql_big_result sql_big_selects sql_big_tables sql_log_off
-syn keyword mysqlKeyword sql_log_update sql_low_priority_updates sql_select_limit sql_small_result sql_warnings starting
-syn keyword mysqlKeyword status straight_join string
-syn keyword mysqlKeyword table tables temporary terminated to trailing type
-syn keyword mysqlKeyword unique unlock unsigned update usage use using
-syn keyword mysqlKeyword values varbinary variables varying
-syn keyword mysqlKeyword where with write
-syn keyword mysqlKeyword year_month
-syn keyword mysqlKeyword zerofill
+syn keyword mysqlKeyword action add after aggregate all alter as asc auto_increment avg avg_row_length
+syn keyword mysqlKeyword both by
+syn keyword mysqlKeyword cascade change character check checksum column columns comment constraint create cross
+syn keyword mysqlKeyword current_date current_time current_timestamp
+syn keyword mysqlKeyword data database databases day day_hour day_minute day_second
+syn keyword mysqlKeyword default delayed delay_key_write delete desc describe distinct distinctrow drop
+syn keyword mysqlKeyword enclosed escape escaped explain
+syn keyword mysqlKeyword fields file first flush for foreign from full function
+syn keyword mysqlKeyword global grant grants group
+syn keyword mysqlKeyword having heap high_priority hosts hour hour_minute hour_second
+syn keyword mysqlKeyword identified ignore index infile inner insert insert_id into isam
+syn keyword mysqlKeyword join
+syn keyword mysqlKeyword key keys kill last_insert_id leading left limit lines load local lock logs long
+syn keyword mysqlKeyword low_priority
+syn keyword mysqlKeyword match max_rows middleint min_rows minute minute_second modify month myisam
+syn keyword mysqlKeyword natural no
+syn keyword mysqlKeyword on optimize option optionally order outer outfile
+syn keyword mysqlKeyword pack_keys partial password primary privileges procedure process processlist
+syn keyword mysqlKeyword read references reload rename replace restrict returns revoke row rows
+syn keyword mysqlKeyword second select show shutdown soname sql_big_result sql_big_selects sql_big_tables sql_log_off
+syn keyword mysqlKeyword sql_log_update sql_low_priority_updates sql_select_limit sql_small_result sql_warnings starting
+syn keyword mysqlKeyword status straight_join string
+syn keyword mysqlKeyword table tables temporary terminated to trailing type
+syn keyword mysqlKeyword unique unlock unsigned update usage use using
+syn keyword mysqlKeyword values varbinary variables varying
+syn keyword mysqlKeyword where with write
+syn keyword mysqlKeyword year_month
+syn keyword mysqlKeyword zerofill
" Special values
-syn keyword mysqlSpecial false null true
+syn keyword mysqlSpecial false null true
" Strings (single- and double-quote)
-syn region mysqlString start=+"+ skip=+\\\\\|\\"+ end=+"+
-syn region mysqlString start=+'+ skip=+\\\\\|\\'+ end=+'+
+syn region mysqlString start=+"+ skip=+\\\\\|\\"+ end=+"+
+syn region mysqlString start=+'+ skip=+\\\\\|\\'+ end=+'+
" Numbers and hexidecimal values
-syn match mysqlNumber "-\=\<[0-9]*\>"
-syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*\>"
-syn match mysqlNumber "-\=\<[0-9]*e[+-]\=[0-9]*\>"
-syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>"
-syn match mysqlNumber "\<0x[abcdefABCDEF0-9]*\>"
+syn match mysqlNumber "-\=\<[0-9]*\>"
+syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*\>"
+syn match mysqlNumber "-\=\<[0-9]*e[+-]\=[0-9]*\>"
+syn match mysqlNumber "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>"
+syn match mysqlNumber "\<0x[abcdefABCDEF0-9]*\>"
" User variables
-syn match mysqlVariable "@\a*[A-Za-z0-9]*[._]*[A-Za-z0-9]*"
+syn match mysqlVariable "@\a*[A-Za-z0-9]*[._]*[A-Za-z0-9]*"
" Comments (c-style, mysql-style and modified sql-style)
-syn region mysqlComment start="/\*" end="\*/"
-syn match mysqlComment "#.*"
-syn match mysqlComment "-- .*"
+syn region mysqlComment start="/\*" end="\*/"
+syn match mysqlComment "#.*"
+syn match mysqlComment "--\_s.*"
syn sync ccomment mysqlComment
" Column types
@@ -84,189 +84,189 @@ syn sync ccomment mysqlComment
" The second problem is that some of these keywords are included in
" function names. For instance, year() is part of the name of the
" dayofyear() function, and the dec keyword (no parenthesis) is part of
-" the name of the decode() function.
+" the name of the decode() function.
-syn keyword mysqlType tinyint smallint mediumint int integer bigint
-syn keyword mysqlType date datetime time bit bool
-syn keyword mysqlType tinytext mediumtext longtext text
-syn keyword mysqlType tinyblob mediumblob longblob blob
-syn region mysqlType start="float\W" end="."me=s-1
-syn region mysqlType start="float$" end="."me=s-1
-syn region mysqlType start="float(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType start="double\W" end="."me=s-1
-syn region mysqlType start="double$" end="."me=s-1
-syn region mysqlType start="double(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType start="double precision\W" end="."me=s-1
-syn region mysqlType start="double precision$" end="."me=s-1
-syn region mysqlType start="double precision(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType start="real\W" end="."me=s-1
-syn region mysqlType start="real$" end="."me=s-1
-syn region mysqlType start="real(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType start="numeric(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType start="dec\W" end="."me=s-1
-syn region mysqlType start="dec$" end="."me=s-1
-syn region mysqlType start="dec(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType start="decimal\W" end="."me=s-1
-syn region mysqlType start="decimal$" end="."me=s-1
-syn region mysqlType start="decimal(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType start="\Wtimestamp\W" end="."me=s-1
-syn region mysqlType start="\Wtimestamp$" end="."me=s-1
-syn region mysqlType start="\Wtimestamp(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType start="^timestamp\W" end="."me=s-1
-syn region mysqlType start="^timestamp$" end="."me=s-1
-syn region mysqlType start="^timestamp(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType start="\Wyear(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType start="^year(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType start="char(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType start="varchar(" end=")" contains=mysqlNumber,mysqlVariable
-syn region mysqlType start="enum(" end=")" contains=mysqlString,mysqlVariable
-syn region mysqlType start="\Wset(" end=")" contains=mysqlString,mysqlVariable
-syn region mysqlType start="^set(" end=")" contains=mysqlString,mysqlVariable
+syn keyword mysqlType tinyint smallint mediumint int integer bigint
+syn keyword mysqlType date datetime time bit bool
+syn keyword mysqlType tinytext mediumtext longtext text
+syn keyword mysqlType tinyblob mediumblob longblob blob
+syn region mysqlType start="float\W" end="."me=s-1
+syn region mysqlType start="float$" end="."me=s-1
+syn region mysqlType start="float(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType start="double\W" end="."me=s-1
+syn region mysqlType start="double$" end="."me=s-1
+syn region mysqlType start="double(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType start="double precision\W" end="."me=s-1
+syn region mysqlType start="double precision$" end="."me=s-1
+syn region mysqlType start="double precision(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType start="real\W" end="."me=s-1
+syn region mysqlType start="real$" end="."me=s-1
+syn region mysqlType start="real(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType start="numeric(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType start="dec\W" end="."me=s-1
+syn region mysqlType start="dec$" end="."me=s-1
+syn region mysqlType start="dec(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType start="decimal\W" end="."me=s-1
+syn region mysqlType start="decimal$" end="."me=s-1
+syn region mysqlType start="decimal(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType start="\Wtimestamp\W" end="."me=s-1
+syn region mysqlType start="\Wtimestamp$" end="."me=s-1
+syn region mysqlType start="\Wtimestamp(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType start="^timestamp\W" end="."me=s-1
+syn region mysqlType start="^timestamp$" end="."me=s-1
+syn region mysqlType start="^timestamp(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType start="\Wyear(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType start="^year(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType start="char(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType start="varchar(" end=")" contains=mysqlNumber,mysqlVariable
+syn region mysqlType start="enum(" end=")" contains=mysqlString,mysqlVariable
+syn region mysqlType start="\Wset(" end=")" contains=mysqlString,mysqlVariable
+syn region mysqlType start="^set(" end=")" contains=mysqlString,mysqlVariable
" Logical, string and numeric operators
-syn keyword mysqlOperator between not and or is in like regexp rlike binary exists
-syn region mysqlOperator start="isnull(" end=")" contains=ALL
-syn region mysqlOperator start="coalesce(" end=")" contains=ALL
-syn region mysqlOperator start="interval(" end=")" contains=ALL
+syn keyword mysqlOperator between not and or is in like regexp rlike binary exists
+syn region mysqlOperator start="isnull(" end=")" contains=ALL
+syn region mysqlOperator start="coalesce(" end=")" contains=ALL
+syn region mysqlOperator start="interval(" end=")" contains=ALL
" Control flow functions
-syn keyword mysqlFlow case when then else end
-syn region mysqlFlow start="ifnull(" end=")" contains=ALL
-syn region mysqlFlow start="nullif(" end=")" contains=ALL
-syn region mysqlFlow start="if(" end=")" contains=ALL
+syn keyword mysqlFlow case when then else end
+syn region mysqlFlow start="ifnull(" end=")" contains=ALL
+syn region mysqlFlow start="nullif(" end=")" contains=ALL
+syn region mysqlFlow start="if(" end=")" contains=ALL
" General Functions
"
" I'm leery of just defining keywords for functions, since according to the MySQL manual:
"
-" Function names do not clash with table or column names. For example, ABS is a
-" valid column name. The only restriction is that for a function call, no spaces
-" are allowed between the function name and the `(' that follows it.
+" Function names do not clash with table or column names. For example, ABS is a
+" valid column name. The only restriction is that for a function call, no spaces
+" are allowed between the function name and the `(' that follows it.
"
-" This means that if I want to highlight function names properly, I have to use a
-" region to define them, not just a keyword. This will probably cause the syntax file
+" This means that if I want to highlight function names properly, I have to use a
+" region to define them, not just a keyword. This will probably cause the syntax file
" to load more slowly, but at least it will be 'correct'.
-syn region mysqlFunction start="abs(" end=")" contains=ALL
-syn region mysqlFunction start="acos(" end=")" contains=ALL
-syn region mysqlFunction start="adddate(" end=")" contains=ALL
-syn region mysqlFunction start="ascii(" end=")" contains=ALL
-syn region mysqlFunction start="asin(" end=")" contains=ALL
-syn region mysqlFunction start="atan(" end=")" contains=ALL
-syn region mysqlFunction start="atan2(" end=")" contains=ALL
-syn region mysqlFunction start="benchmark(" end=")" contains=ALL
-syn region mysqlFunction start="bin(" end=")" contains=ALL
-syn region mysqlFunction start="bit_and(" end=")" contains=ALL
-syn region mysqlFunction start="bit_count(" end=")" contains=ALL
-syn region mysqlFunction start="bit_or(" end=")" contains=ALL
-syn region mysqlFunction start="ceiling(" end=")" contains=ALL
-syn region mysqlFunction start="character_length(" end=")" contains=ALL
-syn region mysqlFunction start="char_length(" end=")" contains=ALL
-syn region mysqlFunction start="concat(" end=")" contains=ALL
-syn region mysqlFunction start="concat_ws(" end=")" contains=ALL
-syn region mysqlFunction start="connection_id(" end=")" contains=ALL
-syn region mysqlFunction start="conv(" end=")" contains=ALL
-syn region mysqlFunction start="cos(" end=")" contains=ALL
-syn region mysqlFunction start="cot(" end=")" contains=ALL
-syn region mysqlFunction start="count(" end=")" contains=ALL
-syn region mysqlFunction start="curdate(" end=")" contains=ALL
-syn region mysqlFunction start="curtime(" end=")" contains=ALL
-syn region mysqlFunction start="date_add(" end=")" contains=ALL
-syn region mysqlFunction start="date_format(" end=")" contains=ALL
-syn region mysqlFunction start="date_sub(" end=")" contains=ALL
-syn region mysqlFunction start="dayname(" end=")" contains=ALL
-syn region mysqlFunction start="dayofmonth(" end=")" contains=ALL
-syn region mysqlFunction start="dayofweek(" end=")" contains=ALL
-syn region mysqlFunction start="dayofyear(" end=")" contains=ALL
-syn region mysqlFunction start="decode(" end=")" contains=ALL
-syn region mysqlFunction start="degrees(" end=")" contains=ALL
-syn region mysqlFunction start="elt(" end=")" contains=ALL
-syn region mysqlFunction start="encode(" end=")" contains=ALL
-syn region mysqlFunction start="encrypt(" end=")" contains=ALL
-syn region mysqlFunction start="exp(" end=")" contains=ALL
-syn region mysqlFunction start="export_set(" end=")" contains=ALL
-syn region mysqlFunction start="extract(" end=")" contains=ALL
-syn region mysqlFunction start="field(" end=")" contains=ALL
-syn region mysqlFunction start="find_in_set(" end=")" contains=ALL
-syn region mysqlFunction start="floor(" end=")" contains=ALL
-syn region mysqlFunction start="format(" end=")" contains=ALL
-syn region mysqlFunction start="from_days(" end=")" contains=ALL
-syn region mysqlFunction start="from_unixtime(" end=")" contains=ALL
-syn region mysqlFunction start="get_lock(" end=")" contains=ALL
-syn region mysqlFunction start="greatest(" end=")" contains=ALL
-syn region mysqlFunction start="group_unique_users(" end=")" contains=ALL
-syn region mysqlFunction start="hex(" end=")" contains=ALL
-syn region mysqlFunction start="inet_aton(" end=")" contains=ALL
-syn region mysqlFunction start="inet_ntoa(" end=")" contains=ALL
-syn region mysqlFunction start="instr(" end=")" contains=ALL
-syn region mysqlFunction start="lcase(" end=")" contains=ALL
-syn region mysqlFunction start="least(" end=")" contains=ALL
-syn region mysqlFunction start="length(" end=")" contains=ALL
-syn region mysqlFunction start="load_file(" end=")" contains=ALL
-syn region mysqlFunction start="locate(" end=")" contains=ALL
-syn region mysqlFunction start="log(" end=")" contains=ALL
-syn region mysqlFunction start="log10(" end=")" contains=ALL
-syn region mysqlFunction start="lower(" end=")" contains=ALL
-syn region mysqlFunction start="lpad(" end=")" contains=ALL
-syn region mysqlFunction start="ltrim(" end=")" contains=ALL
-syn region mysqlFunction start="make_set(" end=")" contains=ALL
-syn region mysqlFunction start="master_pos_wait(" end=")" contains=ALL
-syn region mysqlFunction start="max(" end=")" contains=ALL
-syn region mysqlFunction start="md5(" end=")" contains=ALL
-syn region mysqlFunction start="mid(" end=")" contains=ALL
-syn region mysqlFunction start="min(" end=")" contains=ALL
-syn region mysqlFunction start="mod(" end=")" contains=ALL
-syn region mysqlFunction start="monthname(" end=")" contains=ALL
-syn region mysqlFunction start="now(" end=")" contains=ALL
-syn region mysqlFunction start="oct(" end=")" contains=ALL
-syn region mysqlFunction start="octet_length(" end=")" contains=ALL
-syn region mysqlFunction start="ord(" end=")" contains=ALL
-syn region mysqlFunction start="period_add(" end=")" contains=ALL
-syn region mysqlFunction start="period_diff(" end=")" contains=ALL
-syn region mysqlFunction start="pi(" end=")" contains=ALL
-syn region mysqlFunction start="position(" end=")" contains=ALL
-syn region mysqlFunction start="pow(" end=")" contains=ALL
-syn region mysqlFunction start="power(" end=")" contains=ALL
-syn region mysqlFunction start="quarter(" end=")" contains=ALL
-syn region mysqlFunction start="radians(" end=")" contains=ALL
-syn region mysqlFunction start="rand(" end=")" contains=ALL
-syn region mysqlFunction start="release_lock(" end=")" contains=ALL
-syn region mysqlFunction start="repeat(" end=")" contains=ALL
-syn region mysqlFunction start="reverse(" end=")" contains=ALL
-syn region mysqlFunction start="round(" end=")" contains=ALL
-syn region mysqlFunction start="rpad(" end=")" contains=ALL
-syn region mysqlFunction start="rtrim(" end=")" contains=ALL
-syn region mysqlFunction start="sec_to_time(" end=")" contains=ALL
-syn region mysqlFunction start="session_user(" end=")" contains=ALL
-syn region mysqlFunction start="sign(" end=")" contains=ALL
-syn region mysqlFunction start="sin(" end=")" contains=ALL
-syn region mysqlFunction start="soundex(" end=")" contains=ALL
-syn region mysqlFunction start="space(" end=")" contains=ALL
-syn region mysqlFunction start="sqrt(" end=")" contains=ALL
-syn region mysqlFunction start="std(" end=")" contains=ALL
-syn region mysqlFunction start="stddev(" end=")" contains=ALL
-syn region mysqlFunction start="strcmp(" end=")" contains=ALL
-syn region mysqlFunction start="subdate(" end=")" contains=ALL
-syn region mysqlFunction start="substring(" end=")" contains=ALL
-syn region mysqlFunction start="substring_index(" end=")" contains=ALL
-syn region mysqlFunction start="subtime(" end=")" contains=ALL
-syn region mysqlFunction start="sum(" end=")" contains=ALL
-syn region mysqlFunction start="sysdate(" end=")" contains=ALL
-syn region mysqlFunction start="system_user(" end=")" contains=ALL
-syn region mysqlFunction start="tan(" end=")" contains=ALL
-syn region mysqlFunction start="time_format(" end=")" contains=ALL
-syn region mysqlFunction start="time_to_sec(" end=")" contains=ALL
-syn region mysqlFunction start="to_days(" end=")" contains=ALL
-syn region mysqlFunction start="trim(" end=")" contains=ALL
-syn region mysqlFunction start="ucase(" end=")" contains=ALL
-syn region mysqlFunction start="unique_users(" end=")" contains=ALL
-syn region mysqlFunction start="unix_timestamp(" end=")" contains=ALL
-syn region mysqlFunction start="upper(" end=")" contains=ALL
-syn region mysqlFunction start="user(" end=")" contains=ALL
-syn region mysqlFunction start="version(" end=")" contains=ALL
-syn region mysqlFunction start="week(" end=")" contains=ALL
-syn region mysqlFunction start="weekday(" end=")" contains=ALL
-syn region mysqlFunction start="yearweek(" end=")" contains=ALL
+syn region mysqlFunction start="abs(" end=")" contains=ALL
+syn region mysqlFunction start="acos(" end=")" contains=ALL
+syn region mysqlFunction start="adddate(" end=")" contains=ALL
+syn region mysqlFunction start="ascii(" end=")" contains=ALL
+syn region mysqlFunction start="asin(" end=")" contains=ALL
+syn region mysqlFunction start="atan(" end=")" contains=ALL
+syn region mysqlFunction start="atan2(" end=")" contains=ALL
+syn region mysqlFunction start="benchmark(" end=")" contains=ALL
+syn region mysqlFunction start="bin(" end=")" contains=ALL
+syn region mysqlFunction start="bit_and(" end=")" contains=ALL
+syn region mysqlFunction start="bit_count(" end=")" contains=ALL
+syn region mysqlFunction start="bit_or(" end=")" contains=ALL
+syn region mysqlFunction start="ceiling(" end=")" contains=ALL
+syn region mysqlFunction start="character_length(" end=")" contains=ALL
+syn region mysqlFunction start="char_length(" end=")" contains=ALL
+syn region mysqlFunction start="concat(" end=")" contains=ALL
+syn region mysqlFunction start="concat_ws(" end=")" contains=ALL
+syn region mysqlFunction start="connection_id(" end=")" contains=ALL
+syn region mysqlFunction start="conv(" end=")" contains=ALL
+syn region mysqlFunction start="cos(" end=")" contains=ALL
+syn region mysqlFunction start="cot(" end=")" contains=ALL
+syn region mysqlFunction start="count(" end=")" contains=ALL
+syn region mysqlFunction start="curdate(" end=")" contains=ALL
+syn region mysqlFunction start="curtime(" end=")" contains=ALL
+syn region mysqlFunction start="date_add(" end=")" contains=ALL
+syn region mysqlFunction start="date_format(" end=")" contains=ALL
+syn region mysqlFunction start="date_sub(" end=")" contains=ALL
+syn region mysqlFunction start="dayname(" end=")" contains=ALL
+syn region mysqlFunction start="dayofmonth(" end=")" contains=ALL
+syn region mysqlFunction start="dayofweek(" end=")" contains=ALL
+syn region mysqlFunction start="dayofyear(" end=")" contains=ALL
+syn region mysqlFunction start="decode(" end=")" contains=ALL
+syn region mysqlFunction start="degrees(" end=")" contains=ALL
+syn region mysqlFunction start="elt(" end=")" contains=ALL
+syn region mysqlFunction start="encode(" end=")" contains=ALL
+syn region mysqlFunction start="encrypt(" end=")" contains=ALL
+syn region mysqlFunction start="exp(" end=")" contains=ALL
+syn region mysqlFunction start="export_set(" end=")" contains=ALL
+syn region mysqlFunction start="extract(" end=")" contains=ALL
+syn region mysqlFunction start="field(" end=")" contains=ALL
+syn region mysqlFunction start="find_in_set(" end=")" contains=ALL
+syn region mysqlFunction start="floor(" end=")" contains=ALL
+syn region mysqlFunction start="format(" end=")" contains=ALL
+syn region mysqlFunction start="from_days(" end=")" contains=ALL
+syn region mysqlFunction start="from_unixtime(" end=")" contains=ALL
+syn region mysqlFunction start="get_lock(" end=")" contains=ALL
+syn region mysqlFunction start="greatest(" end=")" contains=ALL
+syn region mysqlFunction start="group_unique_users(" end=")" contains=ALL
+syn region mysqlFunction start="hex(" end=")" contains=ALL
+syn region mysqlFunction start="inet_aton(" end=")" contains=ALL
+syn region mysqlFunction start="inet_ntoa(" end=")" contains=ALL
+syn region mysqlFunction start="instr(" end=")" contains=ALL
+syn region mysqlFunction start="lcase(" end=")" contains=ALL
+syn region mysqlFunction start="least(" end=")" contains=ALL
+syn region mysqlFunction start="length(" end=")" contains=ALL
+syn region mysqlFunction start="load_file(" end=")" contains=ALL
+syn region mysqlFunction start="locate(" end=")" contains=ALL
+syn region mysqlFunction start="log(" end=")" contains=ALL
+syn region mysqlFunction start="log10(" end=")" contains=ALL
+syn region mysqlFunction start="lower(" end=")" contains=ALL
+syn region mysqlFunction start="lpad(" end=")" contains=ALL
+syn region mysqlFunction start="ltrim(" end=")" contains=ALL
+syn region mysqlFunction start="make_set(" end=")" contains=ALL
+syn region mysqlFunction start="master_pos_wait(" end=")" contains=ALL
+syn region mysqlFunction start="max(" end=")" contains=ALL
+syn region mysqlFunction start="md5(" end=")" contains=ALL
+syn region mysqlFunction start="mid(" end=")" contains=ALL
+syn region mysqlFunction start="min(" end=")" contains=ALL
+syn region mysqlFunction start="mod(" end=")" contains=ALL
+syn region mysqlFunction start="monthname(" end=")" contains=ALL
+syn region mysqlFunction start="now(" end=")" contains=ALL
+syn region mysqlFunction start="oct(" end=")" contains=ALL
+syn region mysqlFunction start="octet_length(" end=")" contains=ALL
+syn region mysqlFunction start="ord(" end=")" contains=ALL
+syn region mysqlFunction start="period_add(" end=")" contains=ALL
+syn region mysqlFunction start="period_diff(" end=")" contains=ALL
+syn region mysqlFunction start="pi(" end=")" contains=ALL
+syn region mysqlFunction start="position(" end=")" contains=ALL
+syn region mysqlFunction start="pow(" end=")" contains=ALL
+syn region mysqlFunction start="power(" end=")" contains=ALL
+syn region mysqlFunction start="quarter(" end=")" contains=ALL
+syn region mysqlFunction start="radians(" end=")" contains=ALL
+syn region mysqlFunction start="rand(" end=")" contains=ALL
+syn region mysqlFunction start="release_lock(" end=")" contains=ALL
+syn region mysqlFunction start="repeat(" end=")" contains=ALL
+syn region mysqlFunction start="reverse(" end=")" contains=ALL
+syn region mysqlFunction start="round(" end=")" contains=ALL
+syn region mysqlFunction start="rpad(" end=")" contains=ALL
+syn region mysqlFunction start="rtrim(" end=")" contains=ALL
+syn region mysqlFunction start="sec_to_time(" end=")" contains=ALL
+syn region mysqlFunction start="session_user(" end=")" contains=ALL
+syn region mysqlFunction start="sign(" end=")" contains=ALL
+syn region mysqlFunction start="sin(" end=")" contains=ALL
+syn region mysqlFunction start="soundex(" end=")" contains=ALL
+syn region mysqlFunction start="space(" end=")" contains=ALL
+syn region mysqlFunction start="sqrt(" end=")" contains=ALL
+syn region mysqlFunction start="std(" end=")" contains=ALL
+syn region mysqlFunction start="stddev(" end=")" contains=ALL
+syn region mysqlFunction start="strcmp(" end=")" contains=ALL
+syn region mysqlFunction start="subdate(" end=")" contains=ALL
+syn region mysqlFunction start="substring(" end=")" contains=ALL
+syn region mysqlFunction start="substring_index(" end=")" contains=ALL
+syn region mysqlFunction start="subtime(" end=")" contains=ALL
+syn region mysqlFunction start="sum(" end=")" contains=ALL
+syn region mysqlFunction start="sysdate(" end=")" contains=ALL
+syn region mysqlFunction start="system_user(" end=")" contains=ALL
+syn region mysqlFunction start="tan(" end=")" contains=ALL
+syn region mysqlFunction start="time_format(" end=")" contains=ALL
+syn region mysqlFunction start="time_to_sec(" end=")" contains=ALL
+syn region mysqlFunction start="to_days(" end=")" contains=ALL
+syn region mysqlFunction start="trim(" end=")" contains=ALL
+syn region mysqlFunction start="ucase(" end=")" contains=ALL
+syn region mysqlFunction start="unique_users(" end=")" contains=ALL
+syn region mysqlFunction start="unix_timestamp(" end=")" contains=ALL
+syn region mysqlFunction start="upper(" end=")" contains=ALL
+syn region mysqlFunction start="user(" end=")" contains=ALL
+syn region mysqlFunction start="version(" end=")" contains=ALL
+syn region mysqlFunction start="week(" end=")" contains=ALL
+syn region mysqlFunction start="weekday(" end=")" contains=ALL
+syn region mysqlFunction start="yearweek(" end=")" contains=ALL
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
@@ -279,16 +279,16 @@ if version >= 508 || !exists("did_mysql_syn_inits")
command -nargs=+ HiLink hi def link <args>
endif
- HiLink mysqlKeyword Statement
- HiLink mysqlSpecial Special
- HiLink mysqlString String
- HiLink mysqlNumber Number
- HiLink mysqlVariable Identifier
- HiLink mysqlComment Comment
- HiLink mysqlType Type
- HiLink mysqlOperator Statement
- HiLink mysqlFlow Statement
- HiLink mysqlFunction Function
+ HiLink mysqlKeyword Statement
+ HiLink mysqlSpecial Special
+ HiLink mysqlString String
+ HiLink mysqlNumber Number
+ HiLink mysqlVariable Identifier
+ HiLink mysqlComment Comment
+ HiLink mysqlType Type
+ HiLink mysqlOperator Statement
+ HiLink mysqlFlow Statement
+ HiLink mysqlFunction Function
delcommand HiLink
endif
diff --git a/runtime/syntax/phtml.vim b/runtime/syntax/phtml.vim
index 2ff6dd95c..646129a20 100644
--- a/runtime/syntax/phtml.vim
+++ b/runtime/syntax/phtml.vim
@@ -1,244 +1,6 @@
" Vim syntax file
-" Language: phtml PHP 2.0
-" Maintainer: Lutz Eymers <ixtab@polzin.com>
-" URL: http://www.isp.de/data/phtml.vim
-" Email: Subject: send syntax_vim.tgz
-" Last change: 2003 May 11
-"
-" Options phtml_sql_query = 1 for SQL syntax highligthing inside strings
-" phtml_minlines = x to sync at least x lines backwards
+" PHTML used to be the filetype for PHP 2.0. Now everything is PHP.
-" 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
+if !exists("b:current_syntax")
+ runtime! syntax/php.vim
endif
-
-if !exists("main_syntax")
- let main_syntax = 'phtml'
-endif
-
-if version < 600
- so <sfile>:p:h/html.vim
-else
- runtime! syntax/html.vim
- unlet b:current_syntax
-endif
-
-syn cluster htmlPreproc add=phtmlRegionInsideHtmlTags
-
-if exists( "phtml_sql_query")
- if phtml_sql_query == 1
- syn include @phtmlSql <sfile>:p:h/sql.vim
- unlet b:current_syntax
- endif
-endif
-syn cluster phtmlSql remove=sqlString,sqlComment
-
-syn case match
-
-" Env Variables
-syn keyword phtmlEnvVar SERVER_SOFTWARE SERVER_NAME SERVER_URL GATEWAY_INTERFACE contained
-syn keyword phtmlEnvVar SERVER_PROTOCOL SERVER_PORT REQUEST_METHOD PATH_INFO contained
-syn keyword phtmlEnvVar PATH_TRANSLATED SCRIPT_NAME QUERY_STRING REMOTE_HOST contained
-syn keyword phtmlEnvVar REMOTE_ADDR AUTH_TYPE REMOTE_USER CONTEN_TYPE contained
-syn keyword phtmlEnvVar CONTENT_LENGTH HTTPS HTTPS_KEYSIZE HTTPS_SECRETKEYSIZE contained
-syn keyword phtmlEnvVar HTTP_ACCECT HTTP_USER_AGENT HTTP_IF_MODIFIED_SINCE contained
-syn keyword phtmlEnvVar HTTP_FROM HTTP_REFERER contained
-syn keyword phtmlEnvVar PHP_SELF contained
-
-syn case ignore
-
-" Internal Variables
-syn keyword phtmlIntVar phperrmsg php_self contained
-
-" Comment
-syn region phtmlComment start="/\*" end="\*/" contained contains=phtmlTodo
-
-" Function names
-syn keyword phtmlFunctions Abs Ada_Close Ada_Connect Ada_Exec Ada_FetchRow contained
-syn keyword phtmlFunctions Ada_FieldName Ada_FieldNum Ada_FieldType contained
-syn keyword phtmlFunctions Ada_FreeResult Ada_NumFields Ada_NumRows Ada_Result contained
-syn keyword phtmlFunctions Ada_ResultAll AddSlashes ASort BinDec Ceil ChDir contained
-syn keyword phtmlFunctions AdaGrp ChMod ChOwn Chop Chr ClearStack ClearStatCache contained
-syn keyword phtmlFunctions closeDir CloseLog Cos Count Crypt Date dbList contained
-syn keyword phtmlFunctions dbmClose dbmDelete dbmExists dbmFetch dbmFirstKey contained
-syn keyword phtmlFunctions dbmInsert dbmNextKey dbmOpen dbmReplace DecBin DecHex contained
-syn keyword phtmlFunctions DecOct doubleval Echo End ereg eregi ereg_replace contained
-syn keyword phtmlFunctions eregi_replace EscapeShellCmd Eval Exec Exit Exp contained
-syn keyword phtmlFunctions fclose feof fgets fgetss File fileAtime fileCtime contained
-syn keyword phtmlFunctions fileGroup fileInode fileMtime fileOwner filePerms contained
-syn keyword phtmlFunctions fileSize fileType Floor Flush fopen fputs FPassThru contained
-syn keyword phtmlFunctions fseek fsockopen ftell getAccDir GetEnv getHostByName contained
-syn keyword phtmlFunctions getHostByAddr GetImageSize getLastAcess contained
-syn keyword phtmlFunctions getLastbrowser getLastEmail getLastHost getLastMod contained
-syn keyword phtmlFunctions getLastref getLogDir getMyInode getMyPid getMyUid contained
-syn keyword phtmlFunctions getRandMax getStartLogging getToday getTotal GetType contained
-syn keyword phtmlFunctions gmDate Header HexDec HtmlSpecialChars ImageArc contained
-syn keyword phtmlFunctions ImageChar ImageCharUp IamgeColorAllocate contained
-syn keyword phtmlFunctions ImageColorTransparent ImageCopyResized ImageCreate contained
-syn keyword phtmlFunctions ImageCreateFromGif ImageDestroy ImageFill contained
-syn keyword phtmlFunctions ImageFilledPolygon ImageFilledRectangle contained
-syn keyword phtmlFunctions ImageFillToBorder ImageGif ImageInterlace ImageLine contained
-syn keyword phtmlFunctions ImagePolygon ImageRectangle ImageSetPixel contained
-syn keyword phtmlFunctions ImageString ImageStringUp ImageSX ImageSY Include contained
-syn keyword phtmlFunctions InitSyslog intval IsSet Key Link LinkInfo Log Log10 contained
-syn keyword phtmlFunctions LosAs Mail Max Md5 mi_Close mi_Connect mi_DBname contained
-syn keyword phtmlFunctions mi_Exec mi_FieldName mi_FieldNum mi_NumFields contained
-syn keyword phtmlFunctions mi_NumRows mi_Result Microtime Min MkDir MkTime msql contained
-syn keyword phtmlFunctions msql_connect msql_CreateDB msql_dbName msql_DropDB contained
-syn keyword phtmlFunctions msqlFieldFlags msql_FieldLen msql_FieldName contained
-syn keyword phtmlFunctions msql_FieldType msql_FreeResult msql_ListDBs contained
-syn keyword phtmlFunctions msql_Listfields msql_ListTables msql_NumFields contained
-syn keyword phtmlFunctions msql_NumRows msql_RegCase msql_Result msql_TableName contained
-syn keyword phtmlFunctions mysql mysql_affected_rows mysql_close mysql_connect contained
-syn keyword phtmlFunctions mysql_CreateDB mysql_dbName mysqlDropDB contained
-syn keyword phtmlFunctions mysql_FieldFlags mysql_FieldLen mysql_FieldName contained
-syn keyword phtmlFunctions mysql_FieldType mysql_FreeResult mysql_insert_id contained
-syn keyword phtmlFunctions mysql_listDBs mysql_Listfields mysql_ListTables contained
-syn keyword phtmlFunctions mysql_NumFields mysql_NumRows mysql_Result contained
-syn keyword phtmlFunctions mysql_TableName Next OctDec openDir OpenLog contained
-syn keyword phtmlFunctions Ora_Bind Ora_Close Ora_Commit Ora_CommitOff contained
-syn keyword phtmlFunctions Ora_CommitOn Ora_Exec Ora_Fetch Ora_GetColumn contained
-syn keyword phtmlFunctions Ora_Logoff Ora_Logon Ora_Parse Ora_Rollback Ord contained
-syn keyword phtmlFunctions Parse_str PassThru pclose pg_Close pg_Connect contained
-syn keyword phtmlFunctions pg_DBname pg_ErrorMessage pg_Exec pg_FieldName contained
-syn keyword phtmlFunctions pg_FieldPrtLen pg_FieldNum pg_FieldSize contained
-syn keyword phtmlFunctions pg_FieldType pg_FreeResult pg_GetLastOid pg_Host contained
-syn keyword phtmlFunctions pg_NumFields pg_NumRows pg_Options pg_Port contained
-syn keyword phtmlFunctions pg_Result pg_tty phpInfo phpVersion popen pos pow contained
-syn keyword phtmlFunctions Prev PutEnv QuoteMeta Rand readDir ReadFile ReadLink contained
-syn keyword phtmlFunctions reg_Match reg_replace reg_Search Rename Reset return contained
-syn keyword phtmlFunctions rewind rewindDir RmDir rSort SetCookie SetErrorReporting contained
-syn keyword phtmlFunctions SetLogging SetShowInfo SetType shl shr Sin Sleep contained
-syn keyword phtmlFunctions Solid_Close Solid_Connect Solid_Exec Solid_FetchRow contained
-syn keyword phtmlFunctions Solid_FieldName Solid_FieldNum Solid_FreeResult contained
-syn keyword phtmlFunctions Solid_NumFields Solid_NumRows Solid_Result Sort contained
-syn keyword phtmlFunctions Spundtex Sprintf Sqrt Srand strchr strtr contained
-syn keyword phtmlFunctions StripSlashes strlen strchr strstr strtok strtolower contained
-syn keyword phtmlFunctions strtoupper strval substr sybSQL_CheckConnect contained
-syn keyword phtmlFunctions sybSQL_DBUSE sybSQL_Connect sybSQL_Exit contained
-syn keyword phtmlFunctions sybSQL_Fieldname sybSQL_GetField sybSQL_IsRow contained
-syn keyword phtmlFunctions sybSQL_NextRow sybSQL_NumFields sybSQL_NumRows contained
-syn keyword phtmlFunctions sybSQL_Query sybSQL_Result sybSQL_Result sybSQL_Seek contained
-syn keyword phtmlFunctions Symlink syslog System Tan TempNam Time Umask UniqId contained
-syn keyword phtmlFunctions Unlink Unset UrlDecode UrlEncode USleep Virtual contained
-syn keyword phtmlFunctions SecureVar contained
-
-" Conditional
-syn keyword phtmlConditional if else elseif endif switch endswitch contained
-
-" Repeat
-syn keyword phtmlRepeat while endwhile contained
-
-" Repeat
-syn keyword phtmlLabel case default contained
-
-" Statement
-syn keyword phtmlStatement break return continue exit contained
-
-" Operator
-syn match phtmlOperator "[-=+%^&|*!]" contained
-syn match phtmlOperator "[-+*/%^&|]=" contained
-syn match phtmlOperator "/[^*]"me=e-1 contained
-syn match phtmlOperator "\$" contained
-syn match phtmlRelation "&&" contained
-syn match phtmlRelation "||" contained
-syn match phtmlRelation "[!=<>]=" contained
-syn match phtmlRelation "[<>]" contained
-
-" Identifier
-syn match phtmlIdentifier "$\h\w*" contained contains=phtmlEnvVar,phtmlIntVar,phtmlOperator
-
-
-" Include
-syn keyword phtmlInclude include contained
-
-" Definesag
-syn keyword phtmlDefine Function contained
-
-" String
-syn region phtmlString keepend matchgroup=None start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=phtmlIdentifier,phtmlSpecialChar,@phtmlSql contained
-
-" Number
-syn match phtmlNumber "-\=\<\d\+\>" contained
-
-" Float
-syn match phtmlFloat "\(-\=\<\d+\|-\=\)\.\d\+\>" contained
-
-" SpecialChar
-syn match phtmlSpecialChar "\\[abcfnrtyv\\]" contained
-syn match phtmlSpecialChar "\\\d\{3}" contained contains=phtmlOctalError
-syn match phtmlSpecialChar "\\x[0-9a-fA-F]\{2}" contained
-
-syn match phtmlOctalError "[89]" contained
-
-
-syn match phtmlParentError "[)}\]]" contained
-
-" Todo
-syn keyword phtmlTodo TODO Todo todo contained
-
-" Parents
-syn cluster phtmlInside contains=phtmlComment,phtmlFunctions,phtmlIdentifier,phtmlConditional,phtmlRepeat,phtmlLabel,phtmlStatement,phtmlOperator,phtmlRelation,phtmlString,phtmlNumber,phtmlFloat,phtmlSpecialChar,phtmlParent,phtmlParentError,phtmlInclude
-
-syn cluster phtmlTop contains=@phtmlInside,phtmlInclude,phtmlDefine,phtmlParentError,phtmlTodo
-syn region phtmlParent matchgroup=Delimiter start="(" end=")" contained contains=@phtmlInside
-syn region phtmlParent matchgroup=Delimiter start="{" end="}" contained contains=@phtmlInside
-syn region phtmlParent matchgroup=Delimiter start="\[" end="\]" contained contains=@phtmlInside
-
-syn region phtmlRegion keepend matchgroup=Delimiter start="<?" skip=+(.*>.*)\|".\{-}>.\{-}"\|/\*.\{-}>.\{-}\*/+ end=">" contains=@phtmlTop
-syn region phtmlRegionInsideHtmlTags keepend matchgroup=Delimiter start="<?" skip=+(.*>.*)\|/\*.\{-}>.\{-}\*/+ end=">" contains=@phtmlTop contained
-
-" sync
-if exists("phtml_minlines")
- exec "syn sync minlines=" . phtml_minlines
-else
- syn sync minlines=100
-endif
-
-" 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_phtml_syn_inits")
- if version < 508
- let did_phtml_syn_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink phtmlComment Comment
- HiLink phtmlString String
- HiLink phtmlNumber Number
- HiLink phtmlFloat Float
- HiLink phtmlIdentifier Identifier
- HiLink phtmlIntVar Identifier
- HiLink phtmlEnvVar Identifier
- HiLink phtmlFunctions Function
- HiLink phtmlRepeat Repeat
- HiLink phtmlConditional Conditional
- HiLink phtmlLabel Label
- HiLink phtmlStatement Statement
- HiLink phtmlType Type
- HiLink phtmlInclude Include
- HiLink phtmlDefine Define
- HiLink phtmlSpecialChar SpecialChar
- HiLink phtmlParentError Error
- HiLink phtmlOctalError Error
- HiLink phtmlTodo Todo
- HiLink phtmlOperator Operator
- HiLink phtmlRelation Operator
-
- delcommand HiLink
-endif
-
-let b:current_syntax = "phtml"
-
-if main_syntax == 'phtml'
- unlet main_syntax
-endif
-
-" vim: ts=8
diff --git a/runtime/syntax/quake.vim b/runtime/syntax/quake.vim
index 7840f7cc4..3a9b68d6f 100644
--- a/runtime/syntax/quake.vim
+++ b/runtime/syntax/quake.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Quake[1-3] configuration file
" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-04-19
+" Latest Revision: 2007-06-17
" quake_is_quake1 - the syntax is to be used for quake1 configs
" quake_is_quake2 - the syntax is to be used for quake2 configs
" quake_is_quake3 - the syntax is to be used for quake3 configs
@@ -14,7 +14,7 @@ endif
let s:cpo_save = &cpo
set cpo&vim
-setlocal iskeyword=@,48-57,+,-,_
+setlocal iskeyword+=-,+
syn keyword quakeTodo contained TODO FIXME XXX NOTE
diff --git a/runtime/syntax/rexx.vim b/runtime/syntax/rexx.vim
index 179e453c9..b4d07323d 100644
--- a/runtime/syntax/rexx.vim
+++ b/runtime/syntax/rexx.vim
@@ -4,6 +4,7 @@
" Last Change: 2005 Dez 9, added some <http://www.ooRexx.org>-coloring,
" line comments, do *over*, messages, directives,
" highlighting classes, methods, routines and requires
+" 2007 Oct 17, added support for new ooRexx 3.2 features
" Rony G. Flatscher <rony.flatscher@wu-wien.ac.at>
"
" URL: http://www.geulig.de/vim/rexx.vim
@@ -27,122 +28,194 @@ setlocal iskeyword+=!
setlocal iskeyword+=?
" ---rgf, position important: must be before comments etc. !
-syn match rexxOperator "[-=|\/\\\+\*\[\],;<>&\~]"
-
-syn match rexxIdentifier "\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>"
-syn match rexxEnvironmentSymbol "\<\.\+\([a-zA-Z0-9._?!]\)*\>"
+syn match rexxOperator "[=|\/\\\+\*\[\],;:<>&\~%\-]"
+" rgf syn match rexxIdentifier "\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>"
+syn match rexxIdentifier "\<\K\k*\>"
+syn match rexxEnvironmentSymbol "\<\.\k\+\>"
" A Keyword is the first symbol in a clause. A clause begins at the start
" of a line or after a semicolon. THEN, ELSE, OTHERWISE, and colons are always
" followed by an implied semicolon.
-syn match rexxClause "\(^\|;\|:\|then \|else \|otherwise \)\s*\w\+" contains=ALLBUT,rexxParse2,rexxRaise2
-
+syn match rexxClause "\(^\|;\|:\|then \|else \|when \|otherwise \)\s*\S*" contains=ALLBUT,rexxParse2,rexxRaise2,rexxForward2
" Considered keywords when used together in a phrase and begin a clause
-syn match rexxParse "\<parse\s*\(\(upper\|lower\|caseless\)\s*\)\=\(arg\|linein\|pull\|source\|var\|\<value\>\|version\)\>"
-syn match rexxParse2 "\<with\>" contained containedin=rexxParse
-
+syn match rexxParse "\<parse\s*\(\(upper\|lower\|caseless\)\s*\)\?\(arg\|linein\|pull\|source\|var\|\<value\>\|version\)\>" containedin=rexxClause contains=rexxParse2
+syn match rexxParse2 "\<with\>" containedin=rexxParse
syn match rexxKeyword contained "\<numeric \(digits\|form \(scientific\|engineering\|value\)\|fuzz\)\>"
-syn match rexxKeyword contained "\<\(address\|trace\)\( value\)\=\>"
-syn match rexxKeyword contained "\<procedure\(\s*expose\)\=\>"
-syn match rexxKeyword contained "\<do\>\(\s*forever\)\=\>"
-syn match rexxKeyword contained "\<use\>\s*\<arg\>"
+syn match rexxKeyword contained "\<\(address\|trace\)\( value\)\?\>"
+syn match rexxKeyword contained "\<procedure\(\s*expose\)\?\>"
+
+syn match rexxKeyword contained "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\(\s\+forever\)\?\>"
+syn match rexxKeyword contained "\<use\>\s*\(strict\s*\)\?\<arg\>"
" Another keyword phrase, separated to aid highlighting in rexxFunction
-syn match rexxKeyword contained "\<signal\(\s*\(on\|off\)\s*\(any\|error\|failure\|halt\|lostdigits\|nomethod\|nostring\|notready\|novalue\|syntax\|user\s*\k*\)\(\s\+name\)\=\)\=\>"
-syn match rexxKeyword2 contained "\<call\(\s*\(on\|off\)\s*\(any\|error\|failure\|halt\|notready\|user\s*\k*\)\(\s\+name\)\=\)\=\>"
+syn match rexxRegularCallSignal contained "\<\(call\|signal\)\s\(\s*on\>\|\s*off\>\)\@!\(\k\+\ze\|\ze(\)\(\s*\|;\|$\|(\)"
+syn region rexxLabel contained start="\<\(call\|signal\)\>\s*\zs\(\k*\|(\)" end="\ze\(\s*\|;\|$\|(\)" containedin=rexxRegularCallSignal
+
+syn match rexxExceptionHandling contained "\<\(call\|signal\)\>\s\+\<\(on\|off\)\>.*\(;\|$\)"
+" hilite label given after keyword "name"
+syn match rexxLabel "name\s\+\zs\k\+\ze" containedin=rexxExceptionHandling
+" hilite condition name (serves as label)
+syn match rexxLabel "\<\(call\|signal\)\>\s\+\<\(on\|off\)\>\s*\zs\k\+\ze\s*\(;\|$\)" containedin=rexxExceptionHandling
+" user exception handling, hilite user defined name
+syn region rexxLabel contained start="user\s\+\zs\k" end="\ze\(\s\|;\|$\)" containedin=rexxExceptionHandling
" Considered keywords when they begin a clause
-syn match rexxKeyword contained "\<\(arg\|do\|drop\|end\|exit\|expose\|forward\|if\|interpret\|iterate\|leave\|nop\)\>"
-syn match rexxKeyword contained "\<\(options\|pull\|push\|queue\|raise\|reply\|return\|say\|select\|trace\)\>"
+syn match rexxKeywordStatements "\<\(arg\|catch\|do\|drop\|end\|exit\|expose\|finally\|forward\|if\|interpret\|iterate\|leave\|loop\|nop\)\>"
+syn match rexxKeywordStatements "\<\(options\|pull\|push\|queue\|raise\|reply\|return\|say\|select\|trace\)\>"
+
+" Conditional keywords starting a new statement
+syn match rexxConditional "\<\(then\|else\|when\|otherwise\)\(\s*\|;\|\_$\|\)\>" contains=rexxKeywordStatements
" Conditional phrases
-syn match rexxConditional "\(^\s*\| \)\(to\|by\|for\|until\|while\|then\|when\|otherwise\|else\|over\)\( \|\s*$\)"
-syn match rexxConditional contained "\<\(to\|by\|for\|until\|while\|then\|when\|otherwise\|else\|over\)\>"
+syn match rexxLoopKeywords "\<\(to\|by\|for\|until\|while\|over\)\>" containedin=doLoopSelectLabelRegion
" must be after Conditional phrases!
-syn match rexxKeyword ".*\<\(then\|else\)\s*\<do\>"
+syn match doLoopSelectLabelRegion "\<\(do\|loop\|select\)\>\s\+\(label\s\+\)\?\(\s\+\k\+\s\+\zs\<over\>\)\?\k*\(\s\+forever\)\?\(\s\|;\|$\)"
+
+" color label's name
+syn match rexxLabel2 "\<\(do\|loop\|select\)\>\s\+label\s\+\zs\k*\ze" containedin=doLoopSelectLabelRegion
+
+" make sure control variable is normal
+syn match rexxControlVariable "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\s\+\zs.*\ze\s\+\<over\>" containedin=doLoopSelectLabelRegion
+
+" make sure control variable assignment is normal
+syn match rexxStartValueAssignment "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\s\+\zs.*\ze\(=.*\)\?\s\+\<to\>" containedin=doLoopSelectLabelRegion
+
+" highlight label name
+syn match endIterateLeaveLabelRegion "\<\(end\|leave\|iterate\)\>\(\s\+\K\k*\)" contains=rexxLabel2
+syn match rexxLabel2 "\<\(end\|leave\|iterate\)\>\s\+\zs\k*\ze" containedin=endIterateLeaveLabelRegion
+
+" Guard statement
+syn match rexxGuard "\(^\|;\|:\)\s*\<guard\>\s\+\<\(on\|off\)\>"
+
+" Trace statement
+syn match rexxTrace "\(^\|;\|:\)\s*\<trace\>\s\+\<\K\k*\>"
" Raise statement
-syn match rexxRaise "\(^\|;\|:\)\s\+\<raise\>\s*\<\(propagate\|error\|failure\|syntax\|user\)\>\="
-syn match rexxRaise2 "\<\(additional\|array\|description\|exit\|return\)\>" contained containedin=rexxRaise
+syn match rexxRaise "\(^\|;\|:\)\s\+\<raise\>\s*\<\(propagate\|error\|failure\|syntax\|user\)\>\?" contains=rexxRaise2
+syn match rexxRaise2 "\<\(additional\|array\|description\|exit\|propagate\|return\)\>" containedin=rexxRaise
-" Forward statement keywords
-syn match rexxForward "\(^\|;\|:\)\<forward\>\s*"
-syn match rexxForward2 "\<\(arguments\|array\|continue\|message\|class\|to\)\>" contained containedin=rexxForward
+" Forward statement
+syn match rexxForward "\(^\|;\|:\)\<forward\>\s*" contains=rexxForward2
+syn match rexxForward2 "\<\(arguments\|array\|continue\|message\|class\|to\)\>" contained
" Functions/Procedures
-syn match rexxFunction "\<\w*\(/\*\s*\*/\)*("me=e-1 contains=rexxComment,rexxConditional,rexxKeyword,rexxIdentifier
-syn match rexxFunction "\<\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>("me=e-1
-syn match rexxFunction "\<call\s\+\k\+\>" contains=rexxKeyword2
+syn match rexxFunction "\<\<[a-zA-Z\!\?_]\k*\>("me=e-1
syn match rexxFunction "[()]"
" String constants
-syn region rexxString start=+"+ skip=+""+ end=+"\(x\|b\)\=+ oneline
-syn region rexxString start=+'+ skip=+''+ end=+'\(x\|b\)\=+ oneline
+syn region rexxString start=+"+ skip=+""+ end=+"\(x\|b\)\?+ oneline
+syn region rexxString start=+'+ skip=+''+ end=+'\(x\|b\)\?+ oneline
-" Catch errors caused by wrong parenthesis
syn region rexxParen transparent start='(' end=')' contains=ALLBUT,rexxParenError,rexxTodo,rexxLabel,rexxKeyword
+" Catch errors caused by wrong parenthesis
syn match rexxParenError ")"
syn match rexxInParen "[\\[\\]{}]"
" Comments
-syn region rexxComment start="/\*" end="\*/" contains=rexxTodo,rexxComment
-syn match rexxCommentError "\*/"
-syn match rexxLineComment /--.*/
+syn region rexxComment start="/\*" end="\*/" contains=rexxTodo,rexxComment
+syn match rexxCommentError "\*/"
+syn region rexxLineComment start="--" end="\_$" oneline
-syn keyword rexxTodo contained TODO FIXME XXX
+" Highlight User Labels
+" check for labels between comments, labels stated in a statement in the middle of a line
+syn match rexxLabel "\(\_^\|;\)\s*\(\/\*.*\*\/\)*\s*\k\+\s*\(\/\*.*\*\/\)*\s*:"me=e-1 contains=rexxTodo,rexxComment
+syn keyword rexxTodo contained TODO FIXME XXX
" ooRexx messages
syn region rexxMessageOperator start="\(\~\|\~\~\)" end="\(\S\|\s\)"me=e-1
syn match rexxMessage "\(\~\|\~\~\)\s*\<\.*[a-zA-Z]\([a-zA-Z0-9._?!]\)*\>" contains=rexxMessageOperator
-" Highlight User Labels
-syn match rexxLabel "^\s*\k*\s*:"me=e-1
-
+" line continuations, take care of (line-)comments after it
syn match rexxLineContinue ",\ze\s*\(--.*\|\/\*.*\)*$"
+
" the following is necessary, otherwise three consecutive dashes will cause it to highlight the first one
-syn match rexxLineContinue "-\ze\(\s+--.*\|\s*\/\*.*\)*$"
+syn match rexxLineContinue "-\ze-\@!\s*\(--.*\|\s*\/\*.*\)\?$"
" Special Variables
syn keyword rexxSpecialVariable sigl rc result self super
+syn keyword rexxSpecialVariable .environment .error .input .local .methods .output .rs .stderr .stdin .stdout .stdque
" Constants
-syn keyword rexxConst .true .false .nil
-
-" ooRexx builtin classes, first define dot to be o.k. in keywords
-syn keyword rexxBuiltinClass .object .class .method .message
-syn keyword rexxBuiltinClass .monitor .alarm
-syn keyword rexxBuiltinClass .stem .stream .string
-syn keyword rexxBuiltinClass .mutablebuffer
-syn keyword rexxBuiltinClass .array .list .queue .directory .table .set
-syn keyword rexxBuiltinClass .relation .bag .supplier .regularExpressions
-
-" Windows-only classes
-syn keyword rexxBuiltinClass .OLEObject .MenuObject .WindowsClipboard .WindowsEventLog
-syn keyword rexxBuiltinClass .WindowsManager .WindowObject .WindowsProgramManager
-
-
-" ooRexx directives, ---rgf location important, otherwise directives in top of
-" file not matched!
-syn region rexxClass start="::\s*class\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
-syn region rexxMethod start="::\s*method\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
-syn region rexxRequires start="::\s*requires\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
-syn region rexxRoutine start="::\s*routine\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
-
-syn region rexxDirective start="\(^\|;\)\s*::\s*\w\+" end="\($\|;\)" contains=rexxString,rexxComment,rexxLineComment,rexxClass,rexxMethod,rexxRoutine,rexxRequires keepend
+syn keyword rexxConst .true .false .nil .endOfLine .line
+syn match rexxNumber "\(-\|+\)\?\s*\zs\<\(\d\+\.\?\|\d*\.\d\+\(E\(+\|-\)\d\{2,2}\)\?\)\?\>"
+" ooRexx builtin classes (as of version 3.2.0, fall 2007), first define dot to be o.k. in keywords
+syn keyword rexxBuiltinClass .Alarm .ArgUtil .Array .Bag .CaselessColumnComparator
+syn keyword rexxBuiltinClass .CaselessComparator .CaselessDescendingComparator .CircularQueue
+syn keyword rexxBuiltinClass .Class .Collection .ColumnComparator .Comparable .Comparator
+syn keyword rexxBuiltinClass .DateTime .DescendingComparator .Directory .InputOutputStream
+syn keyword rexxBuiltinClass .InputStream .InvertingComparator .List .MapCollection
+syn keyword rexxBuiltinClass .Message .Method .Monitor .MutableBuffer .Object
+syn keyword rexxBuiltinClass .OrderedCollection .OutputStream .Properties .Queue
+syn keyword rexxBuiltinClass .Relation .RexxQueue .Set .SetCollection .Stem .Stream
+syn keyword rexxBuiltinClass .StreamSupplier .String .Supplier .Table .TimeSpan
-if !exists("rexx_minlines")
-" let rexx_minlines = 10
- let rexx_minlines = 500
-endif
-exec "syn sync ccomment rexxComment minlines=" . rexx_minlines
+" Windows-only classes
+syn keyword rexxBuiltinClass .AdvancedControls .AnimatedButton .BaseDialog .ButtonControl
+syn keyword rexxBuiltinClass .CategoryDialog .CheckBox .CheckList .ComboBox .DialogControl
+syn keyword rexxBuiltinClass .DialogExtensions .DlgArea .DlgAreaU .DynamicDialog
+syn keyword rexxBuiltinClass .EditControl .InputBox .IntegerBox .ListBox .ListChoice
+syn keyword rexxBuiltinClass .ListControl .MenuObject .MessageExtensions .MultiInputBox
+syn keyword rexxBuiltinClass .MultiListChoice .PasswordBox .PlainBaseDialog .PlainUserDialog
+syn keyword rexxBuiltinClass .ProgressBar .ProgressIndicator .PropertySheet .RadioButton
+syn keyword rexxBuiltinClass .RcDialog .ResDialog .ScrollBar .SingleSelection .SliderControl
+syn keyword rexxBuiltinClass .StateIndicator .StaticControl .TabControl .TimedMessage
+syn keyword rexxBuiltinClass .TreeControl .UserDialog .VirtualKeyCodes .WindowBase
+syn keyword rexxBuiltinClass .WindowExtensions .WindowObject .WindowsClassesBase .WindowsClipboard
+syn keyword rexxBuiltinClass .WindowsEventLog .WindowsManager .WindowsProgramManager .WindowsRegistry
+
+" ooRexx directives, ---rgf location important, otherwise directives in top of file not matched!
+syn region rexxClassDirective start="::\s*class\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
+syn region rexxMethodDirective start="::\s*method\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
+syn region rexxRequiresDirective start="::\s*requires\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
+syn region rexxRoutineDirective start="::\s*routine\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
+syn region rexxAttributeDirective start="::\s*attribute\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
+
+syn region rexxDirective start="\(^\|;\)\s*::\s*\w\+" end="\($\|;\)" contains=rexxString,rexxComment,rexxLineComment,rexxClassDirective,rexxMethodDirective,rexxRoutineDirective,rexxRequiresDirective,rexxAttributeDirective keepend
+
+syn region rexxVariable start="\zs\<\(\.\)\@!\K\k\+\>\ze\s*\(=\|,\|)\|%\|\]\|\\\||\|&\|+=\|-=\|<\|>\)" end="\(\_$\|.\)"me=e-1
+syn match rexxVariable "\(=\|,\|)\|%\|\]\|\\\||\|&\|+=\|-=\|<\|>\)\s*\zs\K\k*\ze"
+
+" rgf, 2007-07-22: unfortunately, the entire region is colored (not only the
+" patterns), hence useless (vim 7.0)! (syntax-docs hint that that should work)
+" attempt: just colorize the parenthesis in matching colors, keep content
+" transparent to keep the formatting already done to it!
+" syn region par1 matchgroup=par1 start="(" matchgroup=par1 end=")" transparent contains=par2
+" syn region par2 matchgroup=par2 start="(" matchgroup=par2 end=")" transparent contains=par3 contained
+" syn region par3 matchgroup=par3 start="(" matchgroup=par3 end=")" transparent contains=par4 contained
+" syn region par4 matchgroup=par4 start="(" matchgroup=par4 end=")" transparent contains=par5 contained
+" syn region par5 matchgroup=par5 start="(" matchgroup=par5 end=")" transparent contains=par1 contained
+
+" this will colorize the entire region, removing any colorizing already done!
+" syn region par1 matchgroup=par1 start="(" end=")" contains=par2
+" syn region par2 matchgroup=par2 start="(" end=")" contains=par3 contained
+" syn region par3 matchgroup=par3 start="(" end=")" contains=par4 contained
+" syn region par4 matchgroup=par4 start="(" end=")" contains=par5 contained
+" syn region par5 matchgroup=par5 start="(" end=")" contains=par1 contained
+
+hi par1 ctermfg=red guifg=red
+hi par2 ctermfg=blue guifg=blue
+hi par3 ctermfg=darkgreen guifg=darkgreen
+hi par4 ctermfg=darkyellow guifg=darkyellow
+hi par5 ctermfg=darkgrey guifg=darkgrey
+
+" line continuation (trailing comma or single dash)
+syn sync linecont "\(,\|-\ze-\@!\)\ze\s*\(--.*\|\/\*.*\)*$"
+
+" if !exists("rexx_minlines")
+" let rexx_minlines = 500
+" endif
+" exec "syn sync ccomment rexxComment minlines=" . rexx_minlines
+
+" always scan from start, PCs are powerful enough for that in 2007 !
+exec "syn sync fromstart"
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
@@ -155,6 +228,20 @@ if version >= 508 || !exists("did_rexx_syn_inits")
command -nargs=+ HiLink hi def link <args>
endif
+ " make binary and hex strings stand out
+ hi rexxStringConstant term=bold,underline ctermfg=5 cterm=bold guifg=darkMagenta gui=bold
+
+ HiLink rexxLabel2 Function
+ HiLink doLoopSelectLabelRegion rexxKeyword
+ HiLink endIterateLeaveLabelRegion rexxKeyword
+ HiLink rexxLoopKeywords rexxKeyword " Todo
+
+ HiLink rexxNumber Normal
+" HiLink rexxIdentifier DiffChange
+
+ HiLink rexxRegularCallSignal Statement
+ HiLink rexxExceptionHandling Statement
+
HiLink rexxLabel Function
HiLink rexxCharacter Character
HiLink rexxParenError rexxError
@@ -162,7 +249,8 @@ if version >= 508 || !exists("did_rexx_syn_inits")
HiLink rexxCommentError rexxError
HiLink rexxError Error
HiLink rexxKeyword Statement
- HiLink rexxKeyword2 rexxKeyword
+ HiLink rexxKeywordStatements Statement
+
HiLink rexxFunction Function
HiLink rexxString String
HiLink rexxComment Comment
@@ -172,15 +260,16 @@ if version >= 508 || !exists("did_rexx_syn_inits")
HiLink rexxOperator Operator
HiLink rexxMessageOperator rexxOperator
- HiLink rexxLineComment RexxComment
+ HiLink rexxLineComment Comment
HiLink rexxLineContinue WildMenu
HiLink rexxDirective rexxKeyword
- HiLink rexxClass Type
- HiLink rexxMethod rexxFunction
- HiLink rexxRequires Include
- HiLink rexxRoutine rexxFunction
+ HiLink rexxClassDirective Type
+ HiLink rexxMethodDirective rexxFunction
+ HiLink rexxAttributeDirective rexxFunction
+ HiLink rexxRequiresDirective Include
+ HiLink rexxRoutineDirective rexxFunction
HiLink rexxConst Constant
HiLink rexxTypeSpecifier Type
@@ -192,6 +281,9 @@ if version >= 508 || !exists("did_rexx_syn_inits")
HiLink rexxParse rexxKeyword
HiLink rexxParse2 rexxParse
+ HiLink rexxGuard rexxKeyword
+ HiLink rexxTrace rexxKeyword
+
HiLink rexxRaise rexxKeyword
HiLink rexxRaise2 rexxRaise
diff --git a/runtime/syntax/snobol4.vim b/runtime/syntax/snobol4.vim
index 1f6460f1f..07eb63dec 100644
--- a/runtime/syntax/snobol4.vim
+++ b/runtime/syntax/snobol4.vim
@@ -2,8 +2,12 @@
" Language: SNOBOL4
" Maintainer: Rafal Sulejman <rms@poczta.onet.pl>
" Site: http://rms.republika.pl/vim/syntax/snobol4.vim
-" Last change: 2006 may 1
+" Last change: 2006 may 10
" Changes:
+" - strict snobol4 mode (set snobol4_strict_mode to activate)
+" - incorrect HL of dots in strings corrected
+" - incorrect HL of dot-variables in parens corrected
+" - one character labels weren't displayed correctly.
" - nonexistent Snobol4 keywords displayed as errors.
" For version 5.x: Clear all syntax items
@@ -15,40 +19,54 @@ elseif exists("b:current_syntax")
endif
syntax case ignore
-" Vanilla Snobol4 keywords
-syn keyword snobol4Keyword any apply arb arbno arg array
-syn keyword snobol4Keyword break
-syn keyword snobol4Keyword char clear code collect convert copy
-syn keyword snobol4Keyword data datatype date define detach differ dump dupl
-syn keyword snobol4Keyword endfile eq eval
-syn keyword snobol4Keyword field
-syn keyword snobol4Keyword ge gt ident
-syn keyword snobol4Keyword input integer item
-syn keyword snobol4Keyword le len lgt local lpad lt
-syn keyword snobol4Keyword ne notany
-syn keyword snobol4Keyword opsyn output
-syn keyword snobol4Keyword pos prototype
-syn keyword snobol4Keyword remdr replace rpad rpos rtab
-syn keyword snobol4Keyword size span stoptr
-syn keyword snobol4Keyword tab table time trace trim terminal
-syn keyword snobol4Keyword unload
-syn keyword snobol4Keyword value
-" Spitbol keywords
+
+" Snobol4 keywords
+syn keyword snobol4Keyword any apply arb arbno arg array
+syn keyword snobol4Keyword break
+syn keyword snobol4Keyword char clear code collect convert copy
+syn keyword snobol4Keyword data datatype date define detach differ dump dupl
+syn keyword snobol4Keyword endfile eq eval
+syn keyword snobol4Keyword field
+syn keyword snobol4Keyword ge gt ident
+syn keyword snobol4Keyword input integer item
+syn keyword snobol4Keyword le len lgt local lpad lt
+syn keyword snobol4Keyword ne notany
+syn keyword snobol4Keyword opsyn output
+syn keyword snobol4Keyword pos prototype
+syn keyword snobol4Keyword remdr replace rpad rpos rtab rewind
+syn keyword snobol4Keyword size span stoptr
+syn keyword snobol4Keyword tab table time trace trim terminal
+syn keyword snobol4Keyword unload
+syn keyword snobol4Keyword value
+
" CSNOBOL keywords
-syn keyword snobol4Keyword sset
+syn keyword snobol4ExtKeyword breakx
+syn keyword snobol4ExtKeyword char chop
+syn keyword snobol4ExtKeyword date delete
+syn keyword snobol4ExtKeyword exp
+syn keyword snobol4ExtKeyword freeze function
+syn keyword snobol4ExtKeyword host
+syn keyword snobol4ExtKeyword io_findunit
+syn keyword snobol4ExtKeyword label lpad leq lge lle llt lne log
+syn keyword snobol4ExtKeyword ord
+syn keyword snobol4ExtKeyword reverse rpad rsort rename
+syn keyword snobol4ExtKeyword serv_listen sset set sort sqrt substr
+syn keyword snobol4ExtKeyword thaw
+syn keyword snobol4ExtKeyword vdiffer
-syn region snobol4String matchgroup=Quote start=+"+ skip=+\\"+ end=+"+
-syn region snobol4String matchgroup=Quote start=+'+ skip=+\\'+ end=+'+
-syn match snobol4Statement "^-[^ ][^ ]*"
-syn match snobol4Comment "^\*.*$"
-syn match snobol4Comment ";\*.*$"
-syn match snobol4Constant "[^a-z]\.[a-z][a-z0-9\-]*"
-syn region snobol4Goto start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError
+syn region snobol4String matchgroup=Quote start=+"+ end=+"+
+syn region snobol4String matchgroup=Quote start=+'+ end=+'+
+syn match snobol4BogusStatement "^-[^ ][^ ]*"
+syn match snobol4Statement "^-\(include\|copy\|module\|line\|plusopts\|case\|error\|noerrors\|list\|unlist\|execute\|noexecute\|copy\)"
+syn match snobol4Constant /"[^a-z"']\.[a-z][a-z0-9\-]*"/hs=s+1
+syn region snobol4Goto start=":[sf]\{0,1}(" end=")\|$\|;" contains=ALLBUT,snobol4ParenError
syn match snobol4Number "\<\d*\(\.\d\d*\)*\>"
-syn match snobol4BogusSysVar "&\w\{1,}"
+syn match snobol4BogusSysVar "&\w\{1,}"
syn match snobol4SysVar "&\(abort\|alphabet\|anchor\|arb\|bal\|case\|code\|dump\|errlimit\|errtext\|errtype\|fail\|fence\|fnclevel\|ftrace\|fullscan\|input\|lastno\|lcase\|maxlngth\|output\|parm\|rem\|rtntype\|stcount\|stfcount\|stlimit\|stno\|succeed\|trace\|trim\|ucase\)"
-syn match snobol4Label "^[^-\.\+ \t]\S\{1,}"
-"
+syn match snobol4ExtSysVar "&\(gtrace\|line\|file\|lastline\|lastfile\)"
+syn match snobol4Label "\(^\|;\)[^-\.\+ \t\*\.]\{1,}[^ \t\*\;]*"
+syn match snobol4Comment "\(^\|;\)\([\*\|!;#].*$\)"
+
" Parens matching
syn cluster snobol4ParenGroup contains=snobol4ParenError
syn region snobol4Paren transparent start='(' end=')' contains=ALLBUT,@snobol4ParenGroup,snobol4ErrInBracket
@@ -58,8 +76,7 @@ syn region snobol4Bracket transparent start='\[\|<:' end=']\|:>' conta
syn match snobol4ErrInBracket display contained "[){}]\|<%\|%>"
" optional shell shebang line
-syn match snobol4Comment "^\#\!.*$"
-
+" syn match snobol4Comment "^\#\!.*$"
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
@@ -80,19 +97,26 @@ if version >= 508 || !exists("did_snobol4_syntax_inits")
HiLink snobol4Number Number
HiLink snobol4Error Error
HiLink snobol4Statement PreProc
+ HiLink snobol4BogusStatement snobol4Error
HiLink snobol4String String
HiLink snobol4Comment Comment
HiLink snobol4Special Special
HiLink snobol4Todo Todo
- HiLink snobol4Keyword Statement
- HiLink snobol4Function Statement
HiLink snobol4Keyword Keyword
+ HiLink snobol4Function Function
HiLink snobol4MathsOperator Operator
HiLink snobol4ParenError snobol4Error
HiLink snobol4ErrInParen snobol4Error
HiLink snobol4ErrInBracket snobol4Error
HiLink snobol4SysVar Keyword
HiLink snobol4BogusSysVar snobol4Error
+ if exists("snobol4_strict_mode")
+ HiLink snobol4ExtSysVar WarningMsg
+ HiLink snobol4ExtKeyword WarningMsg
+ else
+ HiLink snobol4ExtSysVar snobol4SysVar
+ HiLink snobol4ExtKeyword snobol4Keyword
+ endif
delcommand HiLink
endif
diff --git a/runtime/syntax/sql.vim b/runtime/syntax/sql.vim
index 311d9eeb8..7ba20f344 100644
--- a/runtime/syntax/sql.vim
+++ b/runtime/syntax/sql.vim
@@ -36,4 +36,4 @@ endif
" Source the appropriate file
exec 'runtime syntax/'.filename.'.vim'
-" vim:sw=4:ff=unix:
+" vim:sw=4:
diff --git a/runtime/syntax/yacc.vim b/runtime/syntax/yacc.vim
index aef02b53c..d4bd0196b 100644
--- a/runtime/syntax/yacc.vim
+++ b/runtime/syntax/yacc.vim
@@ -1,14 +1,17 @@
" Vim syntax file
" Language: Yacc
-" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Feb 22, 2006
-" Version: 4
+" Maintainer: Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
+" Last Change: Jan 09, 2008
+" Version: 5
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
"
-" Option:
+" Options: {{{1
" g:yacc_uses_cpp : if this variable exists, then C++ is loaded rather than C
+" g:yacc_minlines : see :help :he syn-sync-minlines -- default 50
+" g:yacc_maxlines : see :help :he syn-sync-maxlines -- default 200
-" For version 5.x: Clear all syntax items
+" ---------------------------------------------------------------------
+" For version 5.x: Clear all syntax items {{{1
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
@@ -16,7 +19,8 @@ elseif exists("b:current_syntax")
finish
endif
-" Read the C syntax to start with
+" ---------------------------------------------------------------------
+" Read the C syntax to start with {{{1
if version >= 600
if exists("g:yacc_uses_cpp")
runtime! syntax/cpp.vim
@@ -29,11 +33,13 @@ else
so <sfile>:p:h/c.vim
endif
-" Clusters
+" ---------------------------------------------------------------------
+" Clusters {{{1
syn cluster yaccActionGroup contains=yaccDelim,cInParen,cTodo,cIncluded,yaccDelim,yaccCurlyError,yaccUnionCurly,yaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCommentStartError,cParenError
syn cluster yaccUnionGroup contains=yaccKey,cComment,yaccCurly,cType,cStructure,cStorageClass,yaccUnionCurly
-" Yacc stuff
+" ---------------------------------------------------------------------
+" Yacc stuff {{{1
syn match yaccDelim "^\s*[:|;]"
syn match yaccOper "@\d\+"
@@ -49,17 +55,32 @@ syn match yaccBrkt contained "[<>]"
syn match yaccType "<[a-zA-Z_][a-zA-Z0-9_]*>" contains=yaccBrkt
syn match yaccDefinition "^[A-Za-z][A-Za-z0-9_]*\_s*:"
-" special Yacc separators
+" ---------------------------------------------------------------------
+" special Yacc separators {{{1
syn match yaccSectionSep "^[ \t]*%%"
syn match yaccSep "^[ \t]*%{"
syn match yaccSep "^[ \t]*%}"
-" I'd really like to highlight just the outer {}. Any suggestions???
+" ---------------------------------------------------------------------
+" I'd really like to highlight just the outer {}. Any suggestions??? {{{1
syn match yaccCurlyError "[{}]"
syn region yaccAction matchgroup=yaccCurly start="{" end="}" contains=ALLBUT,@yaccActionGroup
+" ---------------------------------------------------------------------
+" Yacc synchronization: {{{1
+if exists("g:yacc_maxlines")
+ exe "syn sync maxlines=".g:yacc_maxlines
+else
+ syn sync maxlines=200
+endif
+if exists("g:yacc_minlines")
+ exe "syn sync minlines=".g:yacc_minlines
+else
+ syn sync minlines=50
+endif
-" Define the default highlighting.
+" ---------------------------------------------------------------------
+" Define the default highlighting. {{{1
" 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_yacc_syn_inits")
@@ -70,13 +91,13 @@ if version >= 508 || !exists("did_yacc_syn_inits")
command -nargs=+ HiLink hi def link <args>
endif
- " Internal yacc highlighting links
+ " Internal yacc highlighting links {{{2
HiLink yaccBrkt yaccStmt
HiLink yaccKey yaccStmt
HiLink yaccOper yaccStmt
HiLink yaccUnionStart yaccKey
- " External yacc highlighting links
+ " External yacc highlighting links {{{2
HiLink yaccCurly Delimiter
HiLink yaccCurlyError Error
HiLink yaccDefinition Function
@@ -87,12 +108,13 @@ if version >= 508 || !exists("did_yacc_syn_inits")
HiLink yaccStmt Statement
HiLink yaccType Type
- " since Bram doesn't like my Delimiter :|
+ " since Bram doesn't like my Delimiter :| {{{2
HiLink Delimiter Type
delcommand HiLink
endif
-
let b:current_syntax = "yacc"
-" vim: ts=15
+" ---------------------------------------------------------------------
+" Modelines: {{{1
+" vim: ts=15 fdm=marker
diff --git a/runtime/syntax/zsh.vim b/runtime/syntax/zsh.vim
index 761e3ac02..eb19eba56 100644
--- a/runtime/syntax/zsh.vim
+++ b/runtime/syntax/zsh.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: Zsh shell script
" Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2006-08-06
+" Latest Revision: 2007-06-17
if exists("b:current_syntax")
finish
@@ -10,7 +10,7 @@ endif
let s:cpo_save = &cpo
set cpo&vim
-setlocal iskeyword=@,48-57,_,-
+setlocal iskeyword+=-
syn keyword zshTodo contained TODO FIXME XXX NOTE