diff options
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/scad.el | 43 |
1 files changed, 30 insertions, 13 deletions
diff --git a/contrib/scad.el b/contrib/scad.el index 1e5c9b5..912b7ae 100644 --- a/contrib/scad.el +++ b/contrib/scad.el @@ -3,7 +3,7 @@ ;; Author: Len Trigg ;; Maintainer: Len Trigg <lenbok@gmail.com> ;; Created: March 2010 -;; Modified: March 2010 +;; Modified: November 2011 ;; Version: $Revision: 88 $ ;; This program is free software; you can redistribute it and/or modify @@ -38,6 +38,12 @@ ;;; Autoload mode trigger (add-to-list 'auto-mode-alist '("\\.scad$" . scad-mode)) +(defcustom scad-command + '"openscad" + "Path to openscad executable" + :type 'string + ) + (defcustom scad-keywords '("return" "true" "false") "SCAD keywords." @@ -45,25 +51,32 @@ :group 'scad-font-lock) (defcustom scad-functions - '("cos" "acos" "sin" "asin" "tan" "atan" - "pow" "log" "ln" - "abs" "min" "max" "sqrt" "round" "ceil" "floor" "lookup" + '("cos" "acos" "sin" "asin" "tan" "atan" "atan2" ;;func.cc + "abs" "sign" "rands" "min" "max" + "round" "ceil" "floor" + "pow" "sqrt" "exp" "log" "ln" "str" - "dxf_dim" "dxf_cross" + "lookup" "version" "version_num" + "dxf_dim" "dxf_cross" ;;dxfdim.cc ) "SCAD functions." :type 'list :group 'scad-font-lock) (defcustom scad-modules - '("for" "if" "assign" "intersection_for" - "echo" - "cube" "sphere" "cylinder" "polyhedron" - "scale" "rotate" "translate" "mirror" "multmatrix" "color" - "union" "difference" "intersection" "render" "surface" - "square" "circle" "polygon" "dxf_linear_extrude" "linear_extrude" "dxf_rotate_extrude" "rotate_extrude" - "import_stl" "import_off" "import_dxf" "group" - "projection" "minkowski" "glide" "subdiv" "child" + '("child" "echo" "assign" "for" "intersection_for" "if" ;;control.cc + "cube" "sphere" "cylinder" "polyhedron" "square" "circle" "polygon" ;;primitives.cc + "scale" "rotate" "translate" "mirror" "multmatrix" ;;transform.cc + "union" "difference" "intersection" ;;csgops.cc + "render" ;;render.cc + "color" ;;color.cc + "surface" ;;surface.cc + "dxf_linear_extrude" "linear_extrude" ;;linearextrude.cc + "dxf_rotate_extrude" "rotate_extrude" ;;rotateextrude.cc + "import_stl" "import_off" "import_dxf" "import" ;;import.cc + "group" ;;builtin.cc + "projection" ;;projection.cc + "minkowski" "glide" "subdiv" "hull" ;;cgaladv.cc ) "SCAD modules." :type 'list @@ -81,6 +94,7 @@ (defvar scad-mode-map (let ((map (make-sparse-keymap))) (define-key map "\t" 'scad-indent-line) + (define-key map [(control c) (control o)] 'scad-open-current-buffer) (define-key map [return] 'newline-and-indent) map) "Keymap for `scad-mode'.") @@ -200,6 +214,9 @@ ))) (- open-count close-count)))) +(defun scad-open-current-buffer () + (interactive) + (call-process scad-command nil 0 nil (buffer-file-name))) (provide 'scad) ;;; scad.el ends here |