summaryrefslogtreecommitdiffstats
path: root/syntax/julia.vim
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2015-06-11 17:02:51 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2015-06-11 17:02:51 +0200
commitd1e95cbc98805f82024b318d8fd52e931a3aeae2 (patch)
tree01aea78f2c57c94bf9c3b39bc604f86c6cb78bf7 /syntax/julia.vim
parent7ffa793f199f457beac69fe4412734bd28dc0bbf (diff)
downloadvim-polyglot-1.14.0.tar.gz
vim-polyglot-1.14.0.zip
Add julia and ragel syntaxv1.14.0
Diffstat (limited to 'syntax/julia.vim')
-rw-r--r--syntax/julia.vim149
1 files changed, 149 insertions, 0 deletions
diff --git a/syntax/julia.vim b/syntax/julia.vim
new file mode 100644
index 00000000..9dab3c86
--- /dev/null
+++ b/syntax/julia.vim
@@ -0,0 +1,149 @@
+
+if exists("b:current_syntax")
+ finish
+endif
+
+syn case match
+
+
+syn keyword juliaDirective import importall export using require include
+
+hi def link juliaDirective Include
+
+syn region juliaDeclTypeBlock transparent matchgroup=juliaDeclType start="\<\%(type\|immutable\)\>" end="\<end\>" contains=ALL
+syn keyword juliaTypeAlias typealias
+syn keyword juliaDeclAbstract abstract
+
+hi def link juliaDeclType Structure
+hi def link juliaTypeAlias Typedef
+hi def link juliaDeclAbstract Structure
+
+" Module
+syn region juliaModuleBlock transparent matchgroup=juliaModule start="\<module\>" end="\<end\>" contains=ALL
+
+hi def link juliaModule Structure
+
+
+" Misc. blocks
+syn region juliaMiscBlockBlock transparent matchgroup=juliaMiscBlock start="\<\%(quote\|do\|begin\|let\)\>" end="\<end\>" contains=ALL
+
+hi def link juliaMiscBlock Repeat
+
+" Braces and Brackets
+syn region juliaBracketsBlock matchgroup=juliaBrackets start='\[' end='\]' contains=ALLBUT,juliaRepeatBlock contained
+syn region juliaBracesBlock matchgroup=juliaBraces start='{' end='}' contains=ALLBUT,juliaRepeatBlock contained
+
+" Repeat
+syn region juliaRepeatBlock transparent matchgroup=juliaRepeat start="\<\%(while\|for\)\>" end="\<end\>" contains=@juliaTop
+
+hi def link juliaRepeat Repeat
+
+" Conditional
+syn keyword juliaElse else elseif
+syn region juliaIfBlock transparent matchgroup=juliaIf start="\<if\>" end="\<end\>" contains=@juliaTop
+
+hi def link juliaElse Conditional
+hi def link juliaIf Conditional
+
+
+" try catch end
+syn keyword juliaCatch catch contained
+syn region juliaTryBlock transparent matchgroup=juliaTry start="\<try\>" end="\<end\>" contains=@juliaTop
+
+hi def link juliaTry Exception
+hi def link juliaCatch Exception
+
+
+" one word statements
+syn keyword juliaStatement return continue break
+
+hi def link juliaStatement Statement
+
+" misc
+syn keyword juliaDeclaration const global local
+syn keyword juliaComprehensionFor for
+
+hi def link juliaDeclaration Keyword
+hi def link juliaComprehensionFor Keyword
+
+" Built in types
+syn keyword juliaType Uint Uint8 Uint16 Uint32 Uint64 Uint128
+syn keyword juliaType Int Int8 Int16 Int32 Int64 Int128
+syn keyword juliaType Float Float16 Float32 Float64
+syn keyword juliaType AbstractArray AbstractMatrix AbstractVector Array Vector Matrix
+syn keyword juliaType String ByteString UTF8String SubString
+syn keyword juliaType Bool Nothing Union Type
+
+
+hi def link juliaType Type
+
+
+" Comments
+syn keyword juliaTodo contained TODO FIXME XXX
+syn cluster juliaCommentGroup contains=juliaTodo
+syn region juliaComment start="#" end="$" contains=@juliaCommentGroup,@Spell
+
+hi def link juliaComment Comment
+hi def link juliaTodo Todo
+
+
+" Strings
+syn region juliaString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=@juliaStringGroup,@Spell
+syn region juliaTripleString start=+"""+ end=+"""+
+syn region juliaCharacter start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=@juliaCharacterGroup
+
+hi def link juliaString String
+hi def link juliaTripleString String
+hi def link juliaCharacter Character
+
+
+" Functions
+syn region juliaFunctionBlock transparent matchgroup=juliaFunction start="\<\%\(function\|macro\)\>" end="\<end\>" contains=@juliaTop
+hi def link juliaFunction Function
+
+
+" Numbers
+syn match juliaNumber "\<\d\+\([Ee]\d\+\)\?\>"
+syn match juliaNumber "\<0x\x\+\>"
+syn match juliaNumber "\<0\o\+\>"
+
+syn match juliaFloat "\<\d\+\.\d*\([Ee][-+]\d\+\)\?\>"
+syn match juliaFloat "\<\.\d\+\([Ee][-+]\d\+\)\?\>"
+syn match juliaFloat "\<\d\+[Ee][-+]\d\+\>"
+syn keyword juliaFloatSpecial NaN Inf
+
+hi def link juliaNumber Number
+hi def link juliaFloat Float
+hi def link juliaFloatSpecial Float
+
+
+" Operators
+syn keyword juliaIn in
+hi def link juliaIn Operator
+
+
+" Constants
+syn keyword juliaBool true false nothing
+hi def link juliaBool Boolean
+
+syn keyword juliaIdentifierSpecial STDOUT, STDIN, STDERR
+
+hi def link juliaIdentifierSpecial Identifier
+
+
+" Macros
+syn match juliaMacro display "@[_[:alpha:]][_[:alnum:]!]*\%(\.[_[:alpha:]][_[:alnum:]!]*\)*"
+
+hi def link juliaMacro Macro
+
+
+syn cluster juliaTop contains=ALLBUT,juliaComprehensionFor
+
+" Ragel
+syn include @ragel syntax/ragel.vim
+syn region ragelLine start="%%" end="$" contains=@ragel
+
+
+let b:current_syntax = "julia"
+
+