mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 19:25:11 -07:00
130 lines
4.8 KiB
VimL
130 lines
4.8 KiB
VimL
|
" Vim syntax file
|
||
|
" Language: OpenSCAD
|
||
|
" Maintainer: Niklas Adam <adam@oddodd.org>
|
||
|
" Last change: 2022-04-15
|
||
|
"
|
||
|
"
|
||
|
" From salkin-mada/openscad.nvim
|
||
|
" Building on the work of Sirtaj Singh Kang and others for vim-openscad
|
||
|
"
|
||
|
|
||
|
" quit when a syntax file was already loaded
|
||
|
if exists("b:current_syntax")
|
||
|
finish
|
||
|
endif
|
||
|
|
||
|
syntax case ignore
|
||
|
|
||
|
setlocal iskeyword=a-z,A-Z,48-57,_
|
||
|
|
||
|
syn match openscadAoperator "{"
|
||
|
syn match openscadAoperator "}"
|
||
|
syn match openscadLi "\["
|
||
|
syn match openscadLi "\]"
|
||
|
syn match openscadPar "("
|
||
|
syn match openscadPar ")"
|
||
|
|
||
|
syn match openscadSpecialVariable "\$[a-zA-Z_]\+\>" display
|
||
|
syn match openscadModifier "^\s*[\*\!\#\%]" display
|
||
|
|
||
|
syn match openscadBinaryoperator "+"
|
||
|
syn match openscadBinaryoperator "-"
|
||
|
syn match openscadBinaryoperator "*"
|
||
|
syn match openscadBinaryoperator "/"
|
||
|
syn match openscadBinaryoperator "%"
|
||
|
syn match openscadBinaryoperator "\*\*"
|
||
|
syn match openscadBinaryoperator "<"
|
||
|
syn match openscadBinaryoperator "<="
|
||
|
syn match openscadBinaryoperator ">"
|
||
|
syn match openscadBinaryoperator ">="
|
||
|
syn match openscadBinaryoperator "="
|
||
|
syn match openscadBinaryoperator "=="
|
||
|
syn match openscadBinaryoperator "==="
|
||
|
syn match openscadBinaryoperator "!="
|
||
|
syn match openscadBinaryoperator "!=="
|
||
|
syn match openscadBinaryoperator "&"
|
||
|
syn match openscadBinaryoperator "|"
|
||
|
syn match openscadBinaryoperator "<!"
|
||
|
syn match openscadBinaryoperator "?"
|
||
|
syn match openscadBinaryoperator "??"
|
||
|
syn match openscadBinaryoperator "!?"
|
||
|
syn match openscadBinaryoperator "!"
|
||
|
syn match openscadBinaryoperator "#"
|
||
|
syn match openscadBinaryoperator "_"
|
||
|
syn match openscadBinaryoperator "\.\."
|
||
|
syn match openscadBinaryoperator "\.\.\."
|
||
|
syn match openscadBinaryoperator "`"
|
||
|
syn match openscadBinaryoperator ":"
|
||
|
|
||
|
syn keyword openscadFunctionDef function nextgroup=openscadFunction skipwhite skipempty
|
||
|
syn match openscadFunction /\<\h\w*\>/ contained display
|
||
|
|
||
|
syn keyword openscadModuleDef module nextgroup=openscadModule skipwhite skipempty
|
||
|
syn match openscadModule /\<\h\w*\>/ contained display
|
||
|
|
||
|
syn keyword openscadStatement echo assign let assert
|
||
|
syn keyword openscadConditional if else
|
||
|
syn keyword openscadRepeat for intersection_for
|
||
|
syn keyword openscadInclude include use
|
||
|
syn keyword openscadCsgKeyword union difference intersection render intersection_for
|
||
|
syn keyword openscadTransform scale rotate translate resize mirror multmatrix color minkowski hull projection linear_extrude rotate_extrude offset
|
||
|
syn keyword openscadPrimitiveSolid cube sphere cylinder polyhedron surface
|
||
|
syn keyword openscadPrimitive2D square circle polygon import_dxf text
|
||
|
syn keyword openscadPrimitiveImport import child children
|
||
|
|
||
|
syn match openscadNumbers "\<\d\|\.\d" contains=openscadNumber display transparent
|
||
|
syn match openscadNumber "\d\+" display contained
|
||
|
syn match openscadNumber "\.\d\+" display contained
|
||
|
|
||
|
syn region openscadString start=/"/ skip=/\\"/ end=/"/
|
||
|
|
||
|
syn keyword openscadBoolean true false
|
||
|
|
||
|
syn keyword openscadCommentTodo TODO FIXME XXX NOTE contained display
|
||
|
syn match openscadInlineComment ://.*$: contains=openscadCommentTodo
|
||
|
syn region openscadBlockComment start=:/\*: end=:\*/: fold contains=openscadCommentTodo
|
||
|
|
||
|
syn region openscadBlock start="{" end="}" transparent fold
|
||
|
syn region openscadVector start="\[" end="\]" transparent fold
|
||
|
|
||
|
syn keyword openscadBuiltin abs acos asin atan atan2 ceil cos exp floor ln log
|
||
|
syn keyword openscadBuiltin lookup max min pow rands round sign sin sqrt tan
|
||
|
syn keyword openscadBuiltin str len search version version_num concat chr ord cross norm
|
||
|
syn keyword openscadBuiltin parent_module
|
||
|
syn keyword openscadBuiltin dxf_cross dxf_dim
|
||
|
syn keyword openscadBuiltinSpecial PI undef
|
||
|
|
||
|
"""""""""""""""""""""""""""""""""""""""""
|
||
|
" linkage
|
||
|
"""""""""""""""""""""""""""""""""""""""""
|
||
|
hi def link openscadFunctionDef Structure
|
||
|
hi def link openscadAoperator Function
|
||
|
hi def link openscadLi Function
|
||
|
" hi def link openscadPar Structure
|
||
|
hi def link openscadBuiltinSpecial Special
|
||
|
hi def link openscadBinaryoperator Special
|
||
|
hi def link openscadFunction Function
|
||
|
hi def link openscadModuleDef Structure
|
||
|
hi def link openscadModule Function
|
||
|
hi def link openscadBlockComment Comment
|
||
|
hi def link openscadBoolean Boolean
|
||
|
hi def link openscadBuiltin Function
|
||
|
hi def link openscadConditional Conditional
|
||
|
hi def link openscadCsgKeyword Structure
|
||
|
hi def link openscadInclude Include
|
||
|
hi def link openscadInlineComment Comment
|
||
|
hi def link openscadModifier Special
|
||
|
hi def link openscadStatement Statement
|
||
|
hi def link openscadNumbers Number
|
||
|
hi def link openscadNumber Number
|
||
|
hi def link openscadPrimitiveSolid Keyword
|
||
|
hi def link openscadPrimitive2D Keyword
|
||
|
hi def link openscadPrimitiveImport Keyword
|
||
|
hi def link openscadRepeat Repeat
|
||
|
hi def link openscadSpecialVariable Special
|
||
|
hi def link openscadString String
|
||
|
hi def link openscadTransform Statement
|
||
|
hi def link openscadCommentTodo Todo
|
||
|
|
||
|
let b:current_syntax = 'openscad'
|