summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Lewis <jason@dickson.st>2012-07-06 06:32:47 (GMT)
committerJason Lewis <jason@dickson.st>2012-07-06 06:32:47 (GMT)
commit8fef221ddde948af86697aab2ff0eb23652088c5 (patch)
tree53c5ba620cd44df24dba5393979bff81b69ecb9f
parentc777559ec4b34f1478cd6c991e1f7549780103af (diff)
remove old scad.el file
-rw-r--r--contrib/scad.el222
1 files changed, 0 insertions, 222 deletions
diff --git a/contrib/scad.el b/contrib/scad.el
deleted file mode 100644
index 912b7ae..0000000
--- a/contrib/scad.el
+++ /dev/null
@@ -1,222 +0,0 @@
-;;; scad.el --- SCAD mode derived mode
-
-;; Author: Len Trigg
-;; Maintainer: Len Trigg <lenbok@gmail.com>
-;; Created: March 2010
-;; Modified: November 2011
-;; Version: $Revision: 88 $
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2 of the License, or
-;; (at your option) any later version.
-;;
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with this program; see the file COPYING. If not, write to
-;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-;;
-;; This is a separate mode to implement the SCAD constructs and
-;; font-locking.
-;;
-;; To use, insert the following into your emacs startup:
-;;
-;; (autoload 'scad-mode "scad" "Major mode for editing SCAD code." t)
-;; (add-to-list 'auto-mode-alist '("\\.scad$" . scad-mode))
-
-;;; To Do:
-;; - Support for background/debug/root/disable modifiers
-;; - Font lock of non-built-in function calls
-
-;;; 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."
- :type 'list
- :group 'scad-font-lock)
-
-(defcustom scad-functions
- '("cos" "acos" "sin" "asin" "tan" "atan" "atan2" ;;func.cc
- "abs" "sign" "rands" "min" "max"
- "round" "ceil" "floor"
- "pow" "sqrt" "exp" "log" "ln"
- "str"
- "lookup" "version" "version_num"
- "dxf_dim" "dxf_cross" ;;dxfdim.cc
- )
- "SCAD functions."
- :type 'list
- :group 'scad-font-lock)
-
-(defcustom scad-modules
- '("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
- :group 'scad-font-lock)
-
-(defcustom scad-operators
- '("+" "-" "*" "/" "%"
- "&&" "||" "!"
- "<" "<=" "==" "!=" ">" ">="
- "?" ":" "=")
- "SCAD operators."
- :type 'list
- :group 'scad-font-lock)
-
-(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'.")
-
-(defvar scad-mode-syntax-table
- (let ((st (make-syntax-table)))
- ;; support comment style: “// ...”
- ;; support comment style: “/* ... */”
- (modify-syntax-entry ?\/ ". 124b" st)
- (modify-syntax-entry ?\n "> b" st)
- (modify-syntax-entry ?* ". 23" st)
-
- ;; Extra punctuation
- (modify-syntax-entry ?+ "." st)
- (modify-syntax-entry ?- "." st)
- (modify-syntax-entry ?% "." st)
- (modify-syntax-entry ?< "." st)
- (modify-syntax-entry ?> "." st)
- (modify-syntax-entry ?& "." st)
- (modify-syntax-entry ?: "." st)
- (modify-syntax-entry ?| "." st)
- (modify-syntax-entry ?= "." st)
- (modify-syntax-entry ?\; "." st)
-
- ;; _ allowed in word (alternatively "_" as symbol constituent?)
- (modify-syntax-entry ?_ "w" st)
-
- st)
- "Syntax table for `scad-mode'.")
-
-(defvar scad-keywords-regexp (regexp-opt scad-keywords 'words))
-(defvar scad-modules-regexp (regexp-opt scad-modules 'words))
-(defvar scad-functions-regexp (regexp-opt scad-functions 'words))
-(defvar scad-operators-regexp (regexp-opt scad-operators))
-
-(defvar scad-font-lock-keywords
- `(
- ("\\(module\\|function\\)[ \t]+\\(\\sw+\\)" (1 'font-lock-keyword-face nil) (2 'font-lock-function-name-face nil t))
- ("<\\(\\sw+\\)>" (1 'font-lock-builtin-face nil))
- ("$\\(\\sw+\\)" (1 'font-lock-builtin-face nil))
- (,scad-keywords-regexp . font-lock-keyword-face)
- (,scad-modules-regexp . font-lock-builtin-face)
- (,scad-functions-regexp . font-lock-function-name-face)
- ;(,scad-operators-regexp . font-lock-operator-face) ;; This actually looks pretty ugly
- ;("\\(\\<\\S +\\>\\)\\s *(" 1 font-lock-function-name-face t) ;; Seems to override other stuff (e.g. in comments and builtins)
- )
- "Keyword highlighting specification for `scad-mode'.")
-
-;(defvar scad-imenu-generic-expression ...)
-;(defvar scad-outline-regexp ...)
-
-;;;###autoload
-(define-derived-mode scad-mode fundamental-mode "SCAD"
- "A major mode for editing SCAD files."
- :syntax-table scad-mode-syntax-table
- (set (make-local-variable 'font-lock-defaults) '(scad-font-lock-keywords))
- (set (make-local-variable 'indent-line-function) 'scad-indent-line)
- ;(set (make-local-variable 'imenu-generic-expression) scad-imenu-generic-expression)
- ;(set (make-local-variable 'outline-regexp) scad-outline-regexp)
- )
-
-
-;;; Indentation, based on http://www.emacswiki.org/emacs/download/actionscript-mode-haas-7.0.el
-
-(defun scad-indent-line ()
- "Indent current line of SCAD code."
- (interactive)
- (let ((savep (> (current-column) (current-indentation)))
- (indent (condition-case nil (max (scad-calculate-indentation) 0)
- (error 0))))
- (if savep
- (save-excursion (indent-line-to indent))
- (indent-line-to indent))))
-
-(defun scad-calculate-indentation ()
- "Return the column to which the current line should be indented."
- (save-excursion
- (scad-maybe-skip-leading-close-delim)
- (let ((pos (point)))
- (beginning-of-line)
- (if (not (search-backward-regexp "[^\n\t\r ]" 1 0))
- 0
- (progn
- (scad-maybe-skip-leading-close-delim)
- (+ (current-indentation) (* standard-indent (scad-count-scope-depth (point) pos))))))))
-
-(defun scad-maybe-skip-leading-close-delim ()
- (beginning-of-line)
- (forward-to-indentation 0)
- (if (looking-at "\\s)")
- (forward-char)
- (beginning-of-line)))
-
-(defun scad-face-at-point (pos)
- "Return face descriptor for char at point."
- (plist-get (text-properties-at pos) 'face))
-
-(defun scad-count-scope-depth (rstart rend)
- "Return difference between open and close scope delimeters."
- (save-excursion
- (goto-char rstart)
- (let ((open-count 0)
- (close-count 0)
- opoint)
- (while (and (< (point) rend)
- (progn (setq opoint (point))
- (re-search-forward "\\s)\\|\\s(" rend t)))
- (if (= opoint (point))
- (forward-char 1)
- (cond
- ;; Don't count if in string or comment.
- ((scad-face-at-point (- (point) 1)))
- ((looking-back "\\s)")
- (incf close-count))
- ((looking-back "\\s(")
- (incf open-count))
- )))
- (- 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
contact: Jan Huwald // Impressum