changeset 2467:9c8d603fd4d1 vim73

Add Datascript syntax file. (Dominique Pelle)
author Bram Moolenaar <bram@vim.org>
date Sun, 01 Aug 2010 21:48:21 +0200
parents b204ac54bea4
children 7f578da7edb2
files runtime/doc/todo.txt runtime/doc/version7.txt runtime/filetype.vim runtime/syntax/datascript.vim
diffstat 4 files changed, 94 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -30,8 +30,6 @@ be worked on, but only if you sponsor Vi
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Windows installer doesn't delete the uninstall key on 64 bit systems.
-
 Before release 7.3:
 - Rename vim73 branch to default (hints: Xavier de Gaye, 2010 May 23)
 
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -7337,6 +7337,7 @@ New syntax files: ~
 Haskell Cabal build file (Vincent Berthoux)
 ChaiScript (Jason Turner)
 Cucumber (Tim Pope)
+Datascript (Dominique Pelle)
 Fantom (Kamil Toman)
 Liquid (Tim Pope)
 Markdown (Tim Pope)
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -617,6 +617,9 @@ au BufNewFile,BufRead *.def			setf def
 " Dracula
 au BufNewFile,BufRead *.drac,*.drc,*lvs,*lpe	setf dracula
 
+" Datascript
+au BufNewFile,BufRead *.ds			setf datascript
+
 " dsl
 au BufNewFile,BufRead *.dsl			setf dsl
 
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/datascript.vim
@@ -0,0 +1,90 @@
+" Vim syntax file
+" Language:	Datascript
+" Maintainer:	Dominique Pelle <dominique.pelle@gmail.com>
+" Last Change:	2010-08-01
+"
+" DataScript is a formal language for modelling binary datatypes,
+" bitstreams or file formats. For more information, see:
+" http://datascript.berlios.de/DataScriptLanguageOverview.html
+
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+syn keyword dsPackage      import package
+syn keyword dsType         bit string
+syn keyword dsType         int8 int16 int32 int64
+syn keyword dsType         uint8 uint16 uint32 uint64
+syn keyword dsType         leint16 leint32 leint64
+syn keyword dsType         leuint16 leuint32 leuint64
+syn keyword dsEndian       little big
+syn keyword dsAlign        align
+syn keyword dsLabel        case default
+syn keyword dsConditional  if condition
+syn keyword dsCompound     union choice on enum bitmask subtype
+syn keyword dsKeyword      function return
+syn keyword dsOperator     sizeof bitsizeof lengthof is sum forall in
+syn keyword dsStorageClass const
+syn keyword dsTodo         contained TODO FIXME XXX
+syn keyword dsSql          sql sql_table sql_database sql_pragma
+syn keyword dsSql          sql_integer sql_metadata sql_key
+
+" dsCommentGroup allows adding matches for special things in comments.
+syn cluster dsCommentGroup  contains=dsTodo
+
+syn match   dsOffset        display "^\s*[a-zA-Z_:\.][a-zA-Z0-9_:\.]*\s*:"
+
+syn match   dsNumber        display "\<\d\+\>"
+syn match   dsNumberHex     display "\<0[xX]\x\+\>"
+syn match   dsNumberBin     display "\<[01]\+[bB]\>" contains=dsBinaryB
+syn match   dsBinaryB       display contained "[bB]\>"
+syn match   dsOctal         display "\<0\o\+\>" contains=dsOctalZero
+syn match   dsOctalZero     display contained "\<0"
+
+syn match   dsOctalError    display "\<0\o*[89]\d*\>"
+
+syn match   dsCommentError      display "\*/"
+syn match   dsCommentStartError display "/\*"me=e-1 contained
+
+syn region   dsCommentL
+  \ start="//" skip="\\$" end="$" keepend
+  \ contains=@dsCommentGroup,@Spell
+syn region   dsComment
+  \ matchgroup=dsCommentStart start="/\*" end="\*/"
+  \ contains=@dsCommentGroup,dsCommentStartError,@Spell extend
+
+syn region  dsString
+  \ start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell
+
+" Define the default highlighting.
+hi def link dsType              Type
+hi def link dsEndian            StorageClass
+hi def link dsStorageClass      StorageClass
+hi def link dsAlign             Label
+hi def link dsLabel             Label
+hi def link dsOffset            Label
+hi def link dsSql               PreProc
+hi def link dsCompound          Structure
+hi def link dsConditional       Conditional
+hi def link dsKeyword           Statement
+hi def link dsString            String
+hi def link dsNumber            Number
+hi def link dsNumberBin         Number
+hi def link dsBinaryB           Special
+hi def link dsOctal             Number
+hi def link dsOctalZero         Special
+hi def link dsOctalError        Error
+hi def link dsNumberHex         Number
+hi def link dsTodo              Todo
+hi def link dsOperator          Operator
+hi def link dsPackage           Include
+hi def link dsCommentError      Error
+hi def link dsCommentStartError Error
+hi def link dsCommentStart      dsComment
+hi def link dsCommentL          dsComment
+hi def link cCommentL           dsComment
+hi def link dsComment           Comment
+
+let b:current_syntax = "datascript"