mirror of
				https://github.com/vim/vim.git
				synced 2025-10-28 09:27:14 -04: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'
 |