summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--runtime/doc/todo.txt2
-rw-r--r--runtime/doc/version7.txt1
-rw-r--r--runtime/filetype.vim3
-rw-r--r--runtime/syntax/datascript.vim90
4 files changed, 94 insertions, 2 deletions
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 0d37f5c9dd..b98b0018ba 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -30,8 +30,6 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*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)
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 7bf2e81cdc..307868469d 100644
--- 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)
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 62652f52bd..98785b39b6 100644
--- 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
diff --git a/runtime/syntax/datascript.vim b/runtime/syntax/datascript.vim
new file mode 100644
index 0000000000..b51f41877f
--- /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"