summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick McDermott <patrick.mcdermott@libiquity.com>2019-11-16 05:09:41 (EST)
committer Patrick McDermott <patrick.mcdermott@libiquity.com>2019-11-16 05:16:44 (EST)
commit53cb9a4c890daf29b201ae9bef5db05bcc586937 (patch)
tree496a9a80a18d68e4635354eb6bc1a76b0d25f095
parentdd79e9119478192b33d175038d9c632ef2526199 (diff)
downloadvim-53cb9a4c890daf29b201ae9bef5db05bcc586937.zip
vim-53cb9a4c890daf29b201ae9bef5db05bcc586937.tar.gz
vim-53cb9a4c890daf29b201ae9bef5db05bcc586937.tar.bz2
Add OpenSCAD script package
Source: https://www.vim.org/scripts/script.php?script_id=3556 https://github.com/sirtaj/vim-openscad
-rw-r--r--.vim/ftdetect/openscad.vim2
-rw-r--r--.vim/ftplugin/openscad.vim14
-rw-r--r--.vim/syntax/openscad.vim89
3 files changed, 105 insertions, 0 deletions
diff --git a/.vim/ftdetect/openscad.vim b/.vim/ftdetect/openscad.vim
new file mode 100644
index 0000000..6cba222
--- /dev/null
+++ b/.vim/ftdetect/openscad.vim
@@ -0,0 +1,2 @@
+au BufRead,BufNewFile *.scad setfiletype openscad
+an 50.80.265 &Syntax.NO.OpenSCAD :cal SetSyn("openscad")<CR>
diff --git a/.vim/ftplugin/openscad.vim b/.vim/ftplugin/openscad.vim
new file mode 100644
index 0000000..f3dd6d3
--- /dev/null
+++ b/.vim/ftplugin/openscad.vim
@@ -0,0 +1,14 @@
+" Blatantly stolen from vim74\ftplugin\c.vim
+
+" Set 'formatoptions' to break comment lines but not other lines,
+" and insert the comment leader when hitting <CR> or using "o".
+setlocal fo-=t fo+=croql
+
+" Set 'comments' to format dashed lists in comments.
+setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
+
+" Win32 can filter files in the browse dialog
+if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
+ let b:browsefilter = "OpenSCAD Source Files (*.scad)\t*.scad\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
diff --git a/.vim/syntax/openscad.vim b/.vim/syntax/openscad.vim
new file mode 100644
index 0000000..5c50dc0
--- /dev/null
+++ b/.vim/syntax/openscad.vim
@@ -0,0 +1,89 @@
+" Vim syntax file
+" Language: OpenSCAD
+" Maintainer: Sirtaj Singh Kang <sirtaj-vim@sirtaj.net>
+" Last Changed: 2013 March 05
+
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+
+"syn keyword openscadFunctionDef function
+syn keyword openscadFunctionDef function nextgroup=openscadFunction skipwhite skipempty
+syn match openscadFunction /\<\h\w*\>/ contained display
+
+"syn keyword openscadModuleDef module
+syn keyword openscadModuleDef module nextgroup=openscadModule skipwhite skipempty
+syn match openscadModule /\<\h\w*\>/ contained display
+
+syn keyword openscadStatement echo assign let
+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 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 openscadSpecialVariable "\$[a-zA-Z]\+\>" display
+syn match openscadModifier "^\s*[\*\!\#\%]" display
+
+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 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
+syn keyword openscadBuiltin dxf_cross dxf_dim
+
+hi def link openscadFunctionDef Structure
+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
+
+" Blatantly stolen from vim74\syntax\c.vim
+"when wanted, highlight trailing white space
+if exists("openscad_space_errors")
+ if !exists("openscad_no_trail_space_error")
+ syn match openscadSpaceError display excludenl "\s\+$"
+ endif
+ if !exists("openscad_no_tab_space_error")
+ syn match openscadSpaceError display " \+\t"me=e-1
+ endif
+endif
+
+let b:current_syntax = "openscad"