openscad.vim (4935B)
1 " Vim syntax file 2 " Language: OpenSCAD 3 " Maintainer: Niklas Adam <adam@oddodd.org> 4 " Last change: 2022-04-15 5 " 6 " 7 " From salkin-mada/openscad.nvim 8 " Building on the work of Sirtaj Singh Kang and others for vim-openscad 9 " 10 11 " quit when a syntax file was already loaded 12 if exists("b:current_syntax") 13 finish 14 endif 15 16 syntax case ignore 17 18 setlocal iskeyword=a-z,A-Z,48-57,_ 19 20 syn match openscadAoperator "{" 21 syn match openscadAoperator "}" 22 syn match openscadLi "\[" 23 syn match openscadLi "\]" 24 syn match openscadPar "(" 25 syn match openscadPar ")" 26 27 syn match openscadSpecialVariable "\$[a-zA-Z_]\+\>" display 28 syn match openscadModifier "^\s*[\*\!\#\%]" display 29 30 syn match openscadBinaryoperator "+" 31 syn match openscadBinaryoperator "-" 32 syn match openscadBinaryoperator "*" 33 syn match openscadBinaryoperator "/" 34 syn match openscadBinaryoperator "%" 35 syn match openscadBinaryoperator "\*\*" 36 syn match openscadBinaryoperator "<" 37 syn match openscadBinaryoperator "<=" 38 syn match openscadBinaryoperator ">" 39 syn match openscadBinaryoperator ">=" 40 syn match openscadBinaryoperator "=" 41 syn match openscadBinaryoperator "==" 42 syn match openscadBinaryoperator "===" 43 syn match openscadBinaryoperator "!=" 44 syn match openscadBinaryoperator "!==" 45 syn match openscadBinaryoperator "&" 46 syn match openscadBinaryoperator "|" 47 syn match openscadBinaryoperator "<!" 48 syn match openscadBinaryoperator "?" 49 syn match openscadBinaryoperator "??" 50 syn match openscadBinaryoperator "!?" 51 syn match openscadBinaryoperator "!" 52 syn match openscadBinaryoperator "#" 53 syn match openscadBinaryoperator "_" 54 syn match openscadBinaryoperator "\.\." 55 syn match openscadBinaryoperator "\.\.\." 56 syn match openscadBinaryoperator "`" 57 syn match openscadBinaryoperator ":" 58 59 syn keyword openscadFunctionDef function nextgroup=openscadFunction skipwhite skipempty 60 syn match openscadFunction /\<\h\w*\>/ contained display 61 62 syn keyword openscadModuleDef module nextgroup=openscadModule skipwhite skipempty 63 syn match openscadModule /\<\h\w*\>/ contained display 64 65 syn keyword openscadStatement echo assign let assert 66 syn keyword openscadConditional if else 67 syn keyword openscadRepeat for intersection_for 68 syn keyword openscadInclude include use 69 syn keyword openscadCsgKeyword union difference intersection render intersection_for 70 syn keyword openscadTransform scale rotate translate resize mirror multmatrix color minkowski hull projection linear_extrude rotate_extrude offset 71 syn keyword openscadPrimitiveSolid cube sphere cylinder polyhedron surface 72 syn keyword openscadPrimitive2D square circle polygon import_dxf text 73 syn keyword openscadPrimitiveImport import child children 74 75 syn match openscadNumbers "\<\d\|\.\d" contains=openscadNumber display transparent 76 syn match openscadNumber "\d\+" display contained 77 syn match openscadNumber "\.\d\+" display contained 78 79 syn region openscadString start=/"/ skip=/\\"/ end=/"/ 80 81 syn keyword openscadBoolean true false 82 83 syn keyword openscadCommentTodo TODO FIXME XXX NOTE contained display 84 syn match openscadInlineComment ://.*$: contains=openscadCommentTodo 85 syn region openscadBlockComment start=:/\*: end=:\*/: fold contains=openscadCommentTodo 86 87 syn region openscadBlock start="{" end="}" transparent fold 88 syn region openscadVector start="\[" end="\]" transparent fold 89 90 syn keyword openscadBuiltin abs acos asin atan atan2 ceil cos exp floor ln log 91 syn keyword openscadBuiltin lookup max min pow rands round sign sin sqrt tan 92 syn keyword openscadBuiltin str len search version version_num concat chr ord cross norm 93 syn keyword openscadBuiltin parent_module 94 syn keyword openscadBuiltin dxf_cross dxf_dim 95 syn keyword openscadBuiltinSpecial PI undef 96 97 """"""""""""""""""""""""""""""""""""""""" 98 " linkage 99 """"""""""""""""""""""""""""""""""""""""" 100 hi def link openscadFunctionDef Structure 101 hi def link openscadAoperator Function 102 hi def link openscadLi Function 103 " hi def link openscadPar Structure 104 hi def link openscadBuiltinSpecial Special 105 hi def link openscadBinaryoperator Special 106 hi def link openscadFunction Function 107 hi def link openscadModuleDef Structure 108 hi def link openscadModule Function 109 hi def link openscadBlockComment Comment 110 hi def link openscadBoolean Boolean 111 hi def link openscadBuiltin Function 112 hi def link openscadConditional Conditional 113 hi def link openscadCsgKeyword Structure 114 hi def link openscadInclude Include 115 hi def link openscadInlineComment Comment 116 hi def link openscadModifier Special 117 hi def link openscadStatement Statement 118 hi def link openscadNumbers Number 119 hi def link openscadNumber Number 120 hi def link openscadPrimitiveSolid Keyword 121 hi def link openscadPrimitive2D Keyword 122 hi def link openscadPrimitiveImport Keyword 123 hi def link openscadRepeat Repeat 124 hi def link openscadSpecialVariable Special 125 hi def link openscadString String 126 hi def link openscadTransform Statement 127 hi def link openscadCommentTodo Todo 128 129 let b:current_syntax = 'openscad'