qemacs-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemacs-commit] qemacs lisp.c


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs lisp.c
Date: Sun, 03 May 2015 10:31:13 +0000

CVSROOT:        /sources/qemacs
Module name:    qemacs
Changes by:     Charlie Gordon <chqrlie>        15/05/03 10:31:13

Modified files:
        .              : lisp.c 

Log message:
        added much emacs-lisp specific stuff

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/lisp.c?cvsroot=qemacs&r1=1.23&r2=1.24

Patches:
Index: lisp.c
===================================================================
RCS file: /sources/qemacs/qemacs/lisp.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- lisp.c      3 May 2015 10:28:13 -0000       1.23
+++ lisp.c      3 May 2015 10:31:13 -0000       1.24
@@ -32,18 +32,111 @@
 /*---------------- Lisp colors ----------------*/
 
 static const char lisp_keywords[] = {
-    "defun|defvar|let|let*|if|concat|list|set|setq|when|and|or|max|min|"
-    "unless|car|cdr|cons|cond|prog1|progn|case|setcar|setcdr|while|"
-    "defsubst|eq|remove|not|otherwise|dolist|incf|decf|boundp|"
-    "lambda|\xCE\xBB|"
+    "defun|let|let*|set|setq|prog1|progn|cond|if|unless|when|while|"
+    "defsubst|remove|otherwise|dolist|incf|decf|boundp|"
+    "and|or|not|case|eq|"
+    "cons|list|concat|car|cdr|setcar|setcdr|nth|nthcdr|length|"
+    "reverse|sort|"
+    "caar|cadr|cdar|cddr|caddr|cadddr|"
+    "lambda|"
+    "\xCE\xBB|"  /* greek character lambda in utf-8 */
+    "mod|abs|max|min|log|logand|logior|logxor|ash|"
     "1+|1-|<|>|<=|>=|-|+|*|/|=|<>|/=|"
-    //"interactive|"
+};
+
+static const char elisp_keywords[] = {
+    /* elisp primitives */
+    "eval|load|read|null|get|put|catch|throw|unwind-protect|atom|delete|"
+    "dotimes|aset|aref|setplist|equal|fset|setq-default|pcase-let|"
+    "consp|vectorp|listp|symbolp|stringp|numberp|zerop|functionp|integerp|"
+    "assq|apply|funcall|mapatoms|mapc|mapcar|mapconcat|plist-get|plist-put|"
+    "function|intern|intern-soft|copy-sequence|delete-dups|fboundp|"
+    "push|pop|append|nconc|nreverse|memq|delq|remq|pcase|assoc|member|"
+    "defalias|defgroup|defmacro|type-of|condition-case|declare-function|"
+    "make-obsolete-variable|define-obsolete-variable-alias|set-default|"
+    "default-boundp|default-value|car-safe|cdr-safe|"
+    "make-variable-buffer-local|make-local-variable|local-variable-p|"
+    "symbol-value|symbol-name|symbol-function|symbol-plist|"
+    "string-match|downcase|upcase|string<|string=|format|substring|"
+    "string-lessp|string-as-unibyte|"
+    "format-time-string|current-time-string|"
+    "string-to-number|number-to-string|read-from-string|char-to-string|"
+    "make-string|string-to-char|string-equal|split-string|"
+    "regexp-quote|"
+    "make-vector|vector|vconcat|add-to-list|"
+    /* emacs specific stuff */
+    "eval-when-compile|assert|cl-assert|cl-pushnew|require|provide|"
+    "interactive|save-excursion|save-restriction|error|message|sit-for|"
+    "save-match-data|narrow-to-region|widen|"
+    "call-interactively|run-hooks|add-hook|remove-hook|run-hook-with-args|"
+    "defcustom|defvar|defconst|featurep|defvar-local|commandp|macrop|"
+    "define-minor-mode|define-derived-mode|define-major-mode|"
+    "define-key|make-keymap|make-sparse-keymap|key-binding|keymapp|lookup-key|"
+    /* editing primitives */
+    "marker-position|move-marker|copy-marker|set-marker|markerp|point-marker|"
+    "mark|point|goto-char|char-after|preceding-char|following-char|"
+    "current-column|"
+    "move-beginning-of-line|move-end-of-line|beginning-of-line|end-of-line|"
+    "count-lines|line-move|open-line|newline|"
+    "region-beginning|region-end|line-beginning-position|line-end-position|"
+    "line-beginning|line-end|bobp|eobp|bolp|eolp|"
+    "forward-word|backward-word|forward-line|backward-line|"
+    "forward-char|backward-char|skip-chars-forward|"
+    "push-mark|point-min|point-max|exchange-point-and-mark|"
+    "match-beginning|match-end|match-data|set-match-data|replace-match|"
+    "search-forward|search-backward|re-search-forward|re-search-backward|"
+    "looking-at|looking-back|"
+    "display-buffer|erase-buffer|current-buffer|"
+    "buffer-modified-p|set-buffer-modified-p|"
+    "save-current-buffer|buffer-file-name|buffer-name|buffer-list|buffer-size|"
+    "set-buffer|"
+    "switch-to-buffer|get-buffer-create|kill-buffer|"
+    "buffer-substring|buffer-substring-no-properties|"
+    "set-text-properties|remove-text-properties|"
+    "get-char-property|get-text-property|put-text-property|"
+    "read-char|read-string|read-file-name|y-or-n-p|yes-or-no-p|"
+    "completing-read|"
+    "expand-file-name|file-name-directory|"
+    "with-current-buffer|with-temp-buffer|"
+    "with-syntax-table|syntax-table|standard-syntax-table|"
+    "skip-syntax-forward|skip-syntax-backward|skip-chars-backward|"
+    "insert|delete-char|delete-region|prin1|princ|terpri|indent-to|"
+    "insert-file-contents|"
+    "downcase-region|upcase-region|upcase-initials-region|"
+    "delete-horizontal-space|kill-line|kill-region|yank|yank-pop|"
+    "move-to-column|align|align-column|align-region|indent-region|"
+    "write-region|undo-boundary|undo-in-progress|window-minibuffer-p|"
+    "make-overlay|delete-overlay|remove-overlays|move-overlay|"
+    "overlay-start|overlay-end|overlays-at|overlay-get|overlay-put|"
+    "overlay-buffer|overlay-properties|"
+    "define-abbrev|abbrev-get|abbrev-put|"
+    "defface|make-face|set-face-property|facep|"
+};
+
+static const char scheme_keywords[] = {
+    ""
+};
+
+static const char racket_keywords[] = {
+    ""
+};
+
+static const char clojure_keywords[] = {
+    ""
+};
+
+static const char sandbox_keywords[] = {
+    ""
 };
 
 static const char lisp_types[] = {
     "nil|t|"
 };
 
+static const char elisp_types[] = {
+    "nil|t|&optional|"
+};
+
 enum {
     IN_LISP_LEVEL    = 0x1F,    /* for IN_LISP_SCOMMENT */
     IN_LISP_COMMENT  = 0x20,
@@ -315,7 +408,8 @@
                     SET_COLOR(str, start, i, LISP_STYLE_NUMBER);
                     continue;
                 }
-                if (strfind(syn->keywords, kbuf)) {
+                if (strfind(lisp_keywords, kbuf)
+                ||  strfind(syn->keywords, kbuf)) {
                     SET_COLOR(str, start, i, LISP_STYLE_KEYWORD);
                     continue;
                 }
@@ -356,7 +450,7 @@
 ModeDef lisp_mode = {
     .name = "Lisp",
     .extensions = "ll|li|lh|lo|lm|lisp",
-    .keywords = lisp_keywords,
+    .keywords = NULL,
     .shell_handlers = "lisp",
     .types = lisp_types,
     .colorize_func = lisp_colorize_line,
@@ -366,8 +460,8 @@
 ModeDef elisp_mode = {
     .name = "ELisp",
     .extensions = "el",
-    .keywords = lisp_keywords,
-    .types = lisp_types,
+    .keywords = elisp_keywords,
+    .types = elisp_types,
     .mode_probe = elisp_mode_probe,
     .colorize_func = lisp_colorize_line,
     .colorize_flags = LISP_LANG_ELISP,
@@ -377,7 +471,7 @@
 ModeDef scheme_mode = {
     .name = "Scheme",
     .extensions = "scm|sch|ss",
-    .keywords = lisp_keywords,
+    .keywords = scheme_keywords,
     .types = lisp_types,
     .colorize_func = lisp_colorize_line,
     .colorize_flags = LISP_LANG_SCHEME,
@@ -387,7 +481,7 @@
 ModeDef racket_mode = {
     .name = "Racket",
     .extensions = "rkt|rktd",
-    .keywords = lisp_keywords,
+    .keywords = racket_keywords,
     .types = lisp_types,
     .colorize_func = lisp_colorize_line,
     .colorize_flags = LISP_LANG_RACKET,
@@ -397,7 +491,7 @@
 ModeDef clojure_mode = {
     .name = "Clojure",
     .extensions = "clj",
-    .keywords = lisp_keywords,
+    .keywords = clojure_keywords,
     .types = lisp_types,
     .colorize_func = lisp_colorize_line,
     .colorize_flags = LISP_LANG_CLOJURE,
@@ -407,7 +501,7 @@
 ModeDef sandbox_mode = {
     .name = "Sandbox",  /* MacOS, Tinyscheme based? */
     .extensions = "sb",
-    .keywords = lisp_keywords,
+    .keywords = sandbox_keywords,
     .types = lisp_types,
     .colorize_func = lisp_colorize_line,
     .colorize_flags = LISP_LANG_SANDBOX,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]