From 76b4af99cc4d031c6769da858d6b88db7ce1091e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 10 Aug 2018 19:39:28 +0200 Subject: [PATCH] lang/emacs-lisp: rewrite extra fontification Now fontifies defined variables and functions, rather than from a hardcoded list. --- modules/lang/emacs-lisp/+symbols.el | 2432 --------------------------- modules/lang/emacs-lisp/config.el | 53 +- 2 files changed, 34 insertions(+), 2451 deletions(-) delete mode 100644 modules/lang/emacs-lisp/+symbols.el diff --git a/modules/lang/emacs-lisp/+symbols.el b/modules/lang/emacs-lisp/+symbols.el deleted file mode 100644 index 28b688393..000000000 --- a/modules/lang/emacs-lisp/+symbols.el +++ /dev/null @@ -1,2432 +0,0 @@ -;;; lang/emacs-lisp/+symbols.el -*- lexical-binding: t; -*- - -;; shamelessly borrowed these lists from `xah-elisp-mode': -;; TODO derive these dynamically - -(defvar +emacs-lisp-function-list - '("mouse-on-link-p" - "macrop" - "run-hooks" - "run-hook-with-args" - "run-hook-with-args-until-failure" - "run-hook-with-args-until-success" - "define-fringe-bitmap" - "destroy-fringe-bitmap" - "set-fringe-bitmap-face" - "file-name-directory" - "file-name-nondirectory" - "file-name-sans-versions" - "file-name-extension" - "file-name-sans-extension" - "file-name-base" - "buffer-file-name" - "get-file-buffer" - "find-buffer-visiting" - "make-xwidget" - "xwidgetp" - "xwidget-plist" - "set-xwidget-plist" - "xwidget-buffer" - "get-buffer-xwidgets" - "xwidget-webkit-goto-uri" - "xwidget-webkit-execute-script" - "xwidget-webkit-execute-script-rv" - "xwidget-webkit-get-title" - "xwidget-resize" - "xwidget-size-request" - "xwidget-info" - "set-xwidget-query-on-exit-flag" - "xwidget-query-on-exit-flag" - "split-window" - "window-total-height" - "window-total-width" - "window-total-size" - "window-pixel-height" - "window-pixel-width" - "window-full-height-p" - "window-full-width-p" - "window-body-height" - "window-body-width" - "window-body-size" - "window-mode-line-height" - "window-header-line-height" - "window-max-chars-per-line" - "window-min-size" - "window-edges" - "window-body-edges" - "window-at" - "coordinates-in-window-p" - "window-pixel-edges" - "window-body-pixel-edges" - "window-absolute-pixel-edges" - "window-absolute-body-pixel-edges" - "window-absolute-pixel-position" - "buffer-modified-p" - "set-buffer-modified-p" - "restore-buffer-modified-p" - "buffer-modified-tick" - "buffer-chars-modified-tick" - "decode-time" - "encode-time" - "marker-position" - "marker-buffer" - "create-fontset-from-fontset-spec" - "set-fontset-font" - "char-displayable-p" - "custom-add-frequent-value" - "custom-reevaluate-setting" - "custom-variable-p" - "custom-theme-set-variables" - "custom-theme-set-faces" - "custom-theme-p" - "add-to-list" - "add-to-ordered-list" - "sin" - "cos" - "tan" - "asin" - "acos" - "atan" - "exp" - "log" - "expt" - "sqrt" - "get-char-code-property" - "char-code-property-description" - "put-char-code-property" - "prepare-change-group" - "activate-change-group" - "accept-change-group" - "cancel-change-group" - "active-minibuffer-window" - "minibuffer-window" - "set-minibuffer-window" - "window-minibuffer-p" - "minibuffer-window-active-p" - "define-category" - "category-docstring" - "get-unused-category" - "category-table" - "category-table-p" - "standard-category-table" - "copy-category-table" - "set-category-table" - "make-category-table" - "make-category-set" - "char-category-set" - "category-set-mnemonics" - "modify-category-entry" - "memory-limit" - "memory-use-counts" - "memory-info" - "smie-rule-bolp" - "smie-rule-hanging-p" - "smie-rule-next-p" - "smie-rule-prev-p" - "smie-rule-parent-p" - "smie-rule-sibling-p" - "smie-rule-parent" - "smie-rule-separator" - "lookup-key" - "local-key-binding" - "global-key-binding" - "minor-mode-key-binding" - "user-ptrp" - "gui-get-selection" - "point" - "point-min" - "point-max" - "buffer-end" - "buffer-size" - "foo" - "add-to-history" - "car" - "cdr" - "car-safe" - "cdr-safe" - "nth" - "nthcdr" - "last" - "safe-length" - "caar" - "cadr" - "cdar" - "cddr" - "butlast" - "nbutlast" - "macroexpand" - "macroexpand-all" - "string-to-syntax" - "syntax-after" - "syntax-class" - "make-finalizer" - "unsafep" - "set-buffer-multibyte" - "string-as-unibyte" - "string-as-multibyte" - "tabulated-list-init-header" - "tabulated-list-print" - "ffloor" - "fceiling" - "ftruncate" - "fround" - "assoc" - "rassoc" - "assq" - "alist-get" - "rassq" - "assoc-default" - "copy-alist" - "assq-delete-all" - "rassq-delete-all" - "make-serial-process" - "serial-process-configure" - "make-temp-file" - "make-temp-name" - "current-time-zone" - "key-description" - "single-key-description" - "text-char-description" - "vectorp" - "vector" - "make-vector" - "vconcat" - "create-file-buffer" - "after-find-file" - "buffer-live-p" - "transpose-regions" - "number-to-string" - "string-to-number" - "char-to-string" - "string-to-char" - "makunbound" - "boundp" - "consp" - "atom" - "listp" - "nlistp" - "null" - "buffer-base-buffer" - "charsetp" - "charset-priority-list" - "set-charset-priority" - "char-charset" - "charset-plist" - "put-charset-property" - "get-charset-property" - "decode-char" - "encode-char" - "map-charset-chars" - "x-list-fonts" - "x-family-fonts" - "momentary-string-display" - "frame-char-height" - "frame-char-width" - "abbrev-symbol" - "abbrev-expansion" - "abbrev-insert" - "setcdr" - "fill-context-prefix" - "position-bytes" - "byte-to-position" - "bufferpos-to-filepos" - "filepos-to-bufferpos" - "multibyte-string-p" - "string-bytes" - "unibyte-string" - "split-window-sensibly" - "same-window-p" - "get-text-property" - "get-char-property" - "get-pos-property" - "get-char-property-and-overlay" - "text-properties-at" - "color-defined-p" - "defined-colors" - "color-supported-p" - "color-gray-p" - "color-values" - "scroll-bar-event-ratio" - "scroll-bar-scale" - "get-register" - "set-register" - "register-read-with-preview" - "button-start" - "button-end" - "button-get" - "button-put" - "button-activate" - "button-label" - "button-type" - "button-has-type-p" - "button-at" - "button-type-put" - "button-type-get" - "button-type-subtype-p" - "buffer-list" - "other-buffer" - "last-buffer" - "current-frame-configuration" - "set-frame-configuration" - "funcall" - "apply" - "apply-partially" - "identity" - "ignore" - "file-name-as-directory" - "directory-name-p" - "directory-file-name" - "abbreviate-file-name" - "delete-and-extract-region" - "map-y-or-n-p" - "message" - "message-or-box" - "message-box" - "display-message-or-buffer" - "current-message" - "ding" - "beep" - "x-popup-dialog" - "network-interface-list" - "network-interface-info" - "format-network-address" - "floatp" - "integerp" - "numberp" - "natnump" - "zerop" - "imagemagick-types" - "completion-table-dynamic" - "completion-table-with-cache" - "mouse-position" - "set-mouse-position" - "mouse-pixel-position" - "set-mouse-pixel-position" - "mouse-absolute-pixel-position" - "set-mouse-absolute-pixel-position" - "frame-pointer-visible-p" - "tool-bar-add-item" - "tool-bar-add-item-from-menu" - "tool-bar-local-item-from-menu" - "send-string-to-terminal" - "insert-and-inherit" - "insert-before-markers-and-inherit" - "completing-read" - "minibuffer-prompt" - "minibuffer-prompt-end" - "minibuffer-prompt-width" - "minibuffer-contents" - "minibuffer-contents-no-properties" - "windowp" - "window-live-p" - "window-valid-p" - "selected-window" - "selected-window-group" - "window-resizable" - "window-resize" - "adjust-window-trailing-edge" - "edebug-trace" - "frame-live-p" - "window-frame" - "window-list" - "frame-root-window" - "window-parent" - "window-top-child" - "window-left-child" - "window-child" - "window-combined-p" - "window-next-sibling" - "window-prev-sibling" - "frame-first-window" - "window-in-direction" - "window-tree" - "tty-top-frame" - "font-family-list" - "bitmap-spec-p" - "region-beginning" - "region-end" - "use-region-p" - "default-value" - "default-boundp" - "set-default" - "put-text-property" - "add-text-properties" - "remove-text-properties" - "remove-list-of-text-properties" - "set-text-properties" - "add-face-text-property" - "propertize" - "not" - "error" - "signal" - "user-error" - "set-marker" - "move-marker" - "frame-current-scroll-bars" - "frame-scroll-bar-width" - "frame-scroll-bar-height" - "set-window-scroll-bars" - "window-scroll-bars" - "window-current-scroll-bars" - "window-scroll-bar-width" - "window-scroll-bar-height" - "window-hscroll" - "set-window-hscroll" - "create-image" - "find-image" - "image-load-path-for-library" - "make-byte-code" - "field-beginning" - "field-end" - "field-string" - "field-string-no-properties" - "delete-field" - "constrain-to-field" - "insert-for-yank" - "insert-buffer-substring-as-yank" - "get-internal-run-time" - "eq" - "equal" - "equal-including-properties" - "define-package" - "print" - "princ" - "prin1" - "terpri" - "write-char" - "pp" - "set-process-sentinel" - "process-sentinel" - "waiting-for-user-input-p" - "make-char-table" - "char-table-p" - "char-table-subtype" - "char-table-parent" - "set-char-table-parent" - "char-table-extra-slot" - "set-char-table-extra-slot" - "char-table-range" - "set-char-table-range" - "map-char-table" - "string-match" - "string-match-p" - "looking-at" - "looking-back" - "looking-at-p" - "make-syntax-table" - "copy-syntax-table" - "char-syntax" - "set-syntax-table" - "syntax-table" - "face-remap-add-relative" - "face-remap-remove-relative" - "face-remap-set-base" - "face-remap-reset-base" - "keymap-parent" - "set-keymap-parent" - "make-composed-keymap" - "define-key" - "substitute-key-definition" - "suppress-keymap" - "plist-get" - "plist-put" - "lax-plist-get" - "lax-plist-put" - "plist-member" - "libxml-parse-html-region" - "shr-insert-document" - "libxml-parse-xml-region" - "recenter-window-group" - "called-interactively-p" - "keywordp" - "compare-buffer-substrings" - "notifications-notify" - "notifications-close-notification" - "notifications-get-capabilities" - "notifications-get-server-information" - "sequencep" - "length" - "elt" - "copy-sequence" - "reverse" - "nreverse" - "sort" - "seq-elt" - "seq-length" - "seqp" - "seq-drop" - "seq-take" - "seq-take-while" - "seq-drop-while" - "seq-do" - "seq-map" - "seq-mapn" - "seq-filter" - "seq-remove" - "seq-reduce" - "seq-some" - "seq-find" - "seq-every-p" - "seq-empty-p" - "seq-count" - "seq-sort" - "seq-contains" - "seq-position" - "seq-uniq" - "seq-subseq" - "seq-concatenate" - "seq-mapcat" - "seq-partition" - "seq-intersection" - "seq-difference" - "seq-group-by" - "seq-into" - "seq-min" - "seq-max" - "stringp" - "string-or-null-p" - "char-or-string-p" - "ewoc-create" - "ewoc-buffer" - "ewoc-get-hf" - "ewoc-set-hf" - "ewoc-enter-first" - "ewoc-enter-last" - "ewoc-enter-before" - "ewoc-enter-after" - "ewoc-prev" - "ewoc-next" - "ewoc-nth" - "ewoc-data" - "ewoc-set-data" - "ewoc-locate" - "ewoc-location" - "ewoc-goto-prev" - "ewoc-goto-next" - "ewoc-goto-node" - "ewoc-refresh" - "ewoc-invalidate" - "ewoc-delete" - "ewoc-filter" - "ewoc-collect" - "ewoc-map" - "indirect-function" - "set-network-process-option" - "face-spec-set" - "substitute-command-keys" - "make-progress-reporter" - "progress-reporter-update" - "progress-reporter-force-update" - "progress-reporter-done" - "current-buffer" - "set-buffer" - "minibufferp" - "minibuffer-selected-window" - "minibuffer-message" - "this-command-keys" - "this-command-keys-vector" - "clear-this-command-keys" - "markerp" - "integer-or-marker-p" - "number-or-marker-p" - "make-translation-table" - "make-translation-table-from-vector" - "make-translation-table-from-alist" - "sit-for" - "sleep-for" - "read-from-minibuffer" - "read-string" - "read-regexp" - "read-no-blanks-input" - "frame-visible-p" - "make-process" - "make-pipe-process" - "start-process" - "start-file-process" - "start-process-shell-command" - "start-file-process-shell-command" - "find-file-name-handler" - "file-local-copy" - "file-remote-p" - "unhandled-file-name-directory" - "match-data" - "set-match-data" - "overlay-get" - "overlay-put" - "overlay-properties" - "file-name-absolute-p" - "file-relative-name" - "hack-dir-local-variables" - "hack-dir-local-variables-non-file-buffer" - "dir-locals-set-class-variables" - "dir-locals-set-directory-class" - "make-button" - "insert-button" - "make-text-button" - "insert-text-button" - "insert-image" - "insert-sliced-image" - "put-image" - "remove-images" - "image-size" - "insert-file-contents" - "insert-file-contents-literally" - "format" - "format-message" - "run-mode-hooks" - "cl-call-next-method" - "cl-next-method-p" - "char-equal" - "string-equal" - "string-collate-equalp" - "string-prefix-p" - "string-suffix-p" - "string-lessp" - "string-greaterp" - "string-collate-lessp" - "compare-strings" - "assoc-string" - "display-popup-menus-p" - "display-graphic-p" - "display-mouse-p" - "display-color-p" - "display-grayscale-p" - "display-supports-face-attributes-p" - "display-selections-p" - "display-images-p" - "display-screens" - "display-pixel-height" - "display-pixel-width" - "display-mm-height" - "display-mm-width" - "display-backing-store" - "display-save-under" - "display-planes" - "display-visual-class" - "display-color-cells" - "x-server-version" - "x-server-vendor" - "define-prefix-command" - "insert" - "insert-before-markers" - "insert-buffer-substring" - "insert-buffer-substring-no-properties" - "replace-match" - "match-substitute-replacement" - "set-input-mode" - "current-input-mode" - "tty-color-define" - "tty-color-clear" - "tty-color-alist" - "tty-color-approximate" - "tty-color-translate" - "call-process" - "process-file" - "call-process-region" - "call-process-shell-command" - "process-file-shell-command" - "shell-command-to-string" - "process-lines" - "current-kill" - "kill-new" - "kill-append" - "symbol-function" - "fboundp" - "fmakunbound" - "fset" - "hack-local-variables" - "safe-local-variable-p" - "risky-local-variable-p" - "keymapp" - "select-safe-coding-system" - "read-coding-system" - "read-non-nil-coding-system" - "current-time-string" - "current-time" - "float-time" - "seconds-to-time" - "set-default-file-modes" - "default-file-modes" - "read-file-modes" - "file-modes-symbolic-to-number" - "set-file-times" - "set-file-extended-attributes" - "set-file-selinux-context" - "set-file-acl" - "current-left-margin" - "current-fill-column" - "delete-to-left-margin" - "indent-to-left-margin" - "sort-subr" - "backup-file-name-p" - "make-backup-file-name" - "find-backup-file-name" - "file-newest-backup" - "locate-user-emacs-file" - "convert-standard-filename" - "add-hook" - "remove-hook" - "error-message-string" - "window-point" - "set-window-point" - "quit-restore-window" - "x-parse-geometry" - "process-list" - "get-process" - "process-command" - "process-contact" - "process-id" - "process-name" - "process-status" - "process-live-p" - "process-type" - "process-exit-status" - "process-tty-name" - "process-coding-system" - "set-process-coding-system" - "process-get" - "process-put" - "process-plist" - "set-process-plist" - "keyboard-translate" - "execute-kbd-macro" - "date-to-time" - "format-time-string" - "format-seconds" - "make-ring" - "ring-p" - "ring-size" - "ring-length" - "ring-elements" - "ring-copy" - "ring-empty-p" - "ring-ref" - "ring-insert" - "ring-remove" - "ring-insert-at-beginning" - "set-window-combination-limit" - "window-combination-limit" - "regexp-quote" - "regexp-opt" - "regexp-opt-depth" - "regexp-opt-charset" - "backup-buffer" - "event-modifiers" - "event-basic-type" - "mouse-movement-p" - "event-convert-list" - "read-key-sequence" - "read-key-sequence-vector" - "file-truename" - "file-chase-links" - "file-equal-p" - "file-in-directory-p" - "eval" - "frame-parameter" - "frame-parameters" - "modify-frame-parameters" - "set-frame-parameter" - "modify-all-frames-parameters" - "process-datagram-address" - "set-process-datagram-address" - "current-window-configuration" - "set-window-configuration" - "window-configuration-p" - "compare-window-configurations" - "window-configuration-frame" - "window-state-get" - "window-state-put" - "charset-after" - "find-charset-region" - "find-charset-string" - "abbrev-table-put" - "abbrev-table-get" - "coding-system-list" - "coding-system-p" - "check-coding-system" - "coding-system-eol-type" - "coding-system-change-eol-conversion" - "coding-system-change-text-conversion" - "find-coding-systems-region" - "find-coding-systems-string" - "find-coding-systems-for-charsets" - "check-coding-systems-region" - "detect-coding-region" - "detect-coding-string" - "coding-system-charset-list" - "iter-next" - "iter-close" - "locate-file" - "executable-find" - "symbol-name" - "make-symbol" - "intern" - "intern-soft" - "mapatoms" - "unintern" - "current-column" - "special-variable-p" - "accessible-keymaps" - "map-keymap" - "where-is-internal" - "window-display-table" - "set-window-display-table" - "redisplay" - "force-window-update" - "window-start" - "window-group-start" - "window-end" - "window-group-end" - "set-window-start" - "set-window-group-start" - "pos-visible-in-window-p" - "pos-visible-in-window-group-p" - "window-line-height" - "fringe-bitmaps-at-pos" - "buffer-name" - "get-buffer" - "generate-new-buffer-name" - "jit-lock-register" - "jit-lock-unregister" - "file-notify-add-watch" - "file-notify-rm-watch" - "file-notify-valid-p" - "local-variable-p" - "local-variable-if-set-p" - "buffer-local-value" - "buffer-local-variables" - "kill-all-local-variables" - "eventp" - "skip-chars-forward" - "skip-chars-backward" - "window-parameter" - "window-parameters" - "set-window-parameter" - "recent-keys" - "terminal-parameters" - "terminal-parameter" - "set-terminal-parameter" - "memq" - "delq" - "remq" - "memql" - "member" - "delete" - "remove" - "member-ignore-case" - "delete-dups" - "parse-partial-sexp" - "get-buffer-create" - "generate-new-buffer" - "current-global-map" - "current-local-map" - "current-minor-mode-maps" - "use-global-map" - "use-local-map" - "set-transient-map" - "accept-process-output" - "skip-syntax-forward" - "skip-syntax-backward" - "backward-prefix-chars" - "vertical-motion" - "count-screen-lines" - "move-to-window-group-line" - "compute-motion" - "file-exists-p" - "file-readable-p" - "file-executable-p" - "file-writable-p" - "file-accessible-directory-p" - "access-file" - "file-ownership-preserved-p" - "file-modes" - "open-network-stream" - "undo-boundary" - "undo-auto-amalgamate" - "primitive-undo" - "keyboard-coding-system" - "terminal-coding-system" - "symbolp" - "booleanp" - "functionp" - "subrp" - "byte-code-function-p" - "subr-arity" - "char-width" - "string-width" - "truncate-string-to-width" - "window-text-pixel-size" - "documentation-property" - "documentation" - "face-documentation" - "Snarf-documentation" - "match-string" - "match-string-no-properties" - "match-beginning" - "match-end" - "coding-system-priority-list" - "set-coding-system-priority" - "x-popup-menu" - "-" - "mod" - "symbol-file" - "command-line" - "get-load-suffixes" "define-button-type" - "custom-set-variables" - "custom-set-faces" - "interactive-form" - "encode-coding-string" - "decode-coding-string" - "decode-coding-inserted-region" - "make-hash-table" - "secure-hash" - "frame-geometry" - "frame-edges" - "buffer-narrowed-p" - "locale-info" - "keymap-prompt" - "set-window-margins" - "window-margins" - "try-completion" - "all-completions" - "test-completion" - "completion-boundaries" - "add-to-invisibility-spec" - "remove-from-invisibility-spec" - "invisible-p" - "char-after" - "char-before" - "following-char" - "preceding-char" - "bobp" - "eobp" - "bolp" - "eolp" - "coding-system-get" - "coding-system-aliases" - "defvaralias" - "make-obsolete-variable" - "indirect-variable" - "read-file-name" - "read-directory-name" - "read-shell-command" - "select-window" - "frame-selected-window" - "set-frame-selected-window" - "window-use-time" - "make-glyph-code" - "glyph-char" - "glyph-face" - "command-remapping" - "help-buffer" - "help-setup-xref" - "downcase" - "upcase" - "capitalize" - "upcase-initials" - "redraw-frame" - "characterp" - "max-char" - "get-byte" - "float" - "truncate" - "floor" - "ceiling" - "round" - "window-vscroll" - "set-window-vscroll" - "selected-frame" - "select-frame-set-input-focus" - "redirect-frame-focus" - "image-multi-frame-p" - "image-current-frame" - "image-show-frame" - "image-animate" - "image-animate-timer" - "replace-regexp-in-string" - "perform-replace" - "current-idle-time" - "subst-char-in-region" - "derived-mode-p" - "dom-node" - "face-attribute" - "face-attribute-relative-p" - "face-all-attributes" - "merge-face-attribute" - "set-face-attribute" - "set-face-bold" - "set-face-italic" - "set-face-underline" - "set-face-inverse-video" - "face-font" - "face-foreground" - "face-background" - "face-stipple" - "face-bold-p" - "face-italic-p" - "face-underline-p" - "face-inverse-video-p" - "file-name-all-completions" - "file-name-completion" - "make-string" - "string" - "substring" - "substring-no-properties" - "concat" - "split-string" - "window-buffer" - "set-window-buffer" - "get-buffer-window" - "get-buffer-window-list" - "process-query-on-exit-flag" - "set-process-query-on-exit-flag" - "process-send-string" - "process-send-region" - "process-send-eof" - "process-running-child-p" - "frame-position" - "set-frame-position" - "frame-pixel-height" - "frame-pixel-width" - "frame-text-height" - "frame-text-width" - "frame-height" - "frame-width" - "set-frame-size" - "set-frame-height" - "set-frame-width" - "recursion-depth" - "buffer-substring" - "buffer-substring-no-properties" - "buffer-string" - "filter-buffer-substring" - "current-word" - "thing-at-point" - "bufferp" - "random" - "processp" - "case-table-p" - "set-standard-case-table" - "standard-case-table" - "current-case-table" - "set-case-table" - "set-case-syntax-pair" - "set-case-syntax-delims" - "set-case-syntax" - "window-prev-buffers" - "set-window-prev-buffers" - "window-next-buffers" - "set-window-next-buffers" - "read-passwd" - "bindat-unpack" - "bindat-get-field" - "bindat-length" - "bindat-pack" - "bindat-ip-to-string" - "frame-list" - "visible-frame-list" - "next-frame" - "previous-frame" - "face-list" - "face-id" - "face-equal" - "face-differs-from-default-p" - "file-symlink-p" - "file-directory-p" - "file-regular-p" - "find-file-noselect" - "event-click-count" - "fontp" - "font-at" - "font-spec" - "font-put" - "find-font" - "list-fonts" - "font-get" - "font-face-attributes" - "font-xlfd-name" - "font-info" - "query-font" - "default-font-width" - "default-font-height" - "window-font-width" - "window-font-height" - "kbd" - "terminal-name" - "terminal-list" - "get-device-terminal" - "delete-terminal" - "x-display-list" - "x-open-connection" - "x-close-connection" - "display-monitor-attributes-list" - "frame-monitor-attributes" - "read-event" - "read-char" - "read-char-exclusive" - "read-key" - "read-char-choice" - "backtrace-debug" - "backtrace-frame" - "directory-files" - "directory-files-recursively" - "directory-files-and-attributes" - "file-expand-wildcards" - "insert-directory" - "scan-lists" - "scan-sexps" - "forward-comment" - "tq-create" - "tq-enqueue" - "tq-close" - "set-window-fringes" - "window-fringes" - "commandp" - "call-interactively" - "funcall-interactively" - "command-execute" - "make-bool-vector" - "bool-vector" - "bool-vector-p" - "bool-vector-exclusive-or" - "bool-vector-union" - "bool-vector-intersection" - "bool-vector-set-difference" - "bool-vector-not" - "bool-vector-subsetp" - "bool-vector-count-consecutive" - "bool-vector-count-population" - "current-active-maps" - "key-binding" - "byte-compile" - "batch-byte-compile" - "tooltip-mode" - "tooltip-event-buffer" - "gap-position" - "gap-size" - "fetch-bytecode" - "define-key-after" - "set-process-filter" - "process-filter" - "read-minibuffer" - "eval-minibuffer" - "edit-and-eval-command" - "verify-visited-file-modtime" - "clear-visited-file-modtime" - "visited-file-modtime" - "set-visited-file-modtime" - "ask-user-about-supersession-threat" - "string-to-multibyte" - "string-to-unibyte" - "byte-to-string" - "multibyte-char-to-unibyte" - "unibyte-char-to-multibyte" - "syntax-ppss" - "syntax-ppss-flush-cache" - "smie-config-local" - "read" - "read-from-string" - "set-binary-mode" - "event-start" - "event-end" - "posnp" - "posn-window" - "posn-area" - "posn-point" - "posn-x-y" - "posn-col-row" - "posn-actual-col-row" - "posn-string" - "posn-image" - "posn-object" - "posn-object-x-y" - "posn-object-width-height" - "posn-timestamp" - "posn-at-point" - "posn-at-x-y" - "image-flush" - "clear-image-cache" - "sentence-end" - "system-name" - "parse-colon-path" - "load-average" - "emacs-pid" - "y-or-n-p" - "y-or-n-p-with-timeout" - "yes-or-no-p" - "hash-table-p" - "copy-hash-table" - "hash-table-count" - "hash-table-test" - "hash-table-weakness" - "hash-table-rehash-size" - "hash-table-rehash-threshold" - "hash-table-size" - "custom-initialize-delay" - "dump-emacs" - "define-error" - "set-auto-mode" - "set-buffer-major-mode" - "next-window" - "previous-window" - "walk-windows" - "one-window-p" - "get-lru-window" - "get-mru-window" - "get-largest-window" - "get-window-with-predicate" - "list-system-processes" - "process-attributes" - "define-abbrev" - "find-auto-coding" - "set-auto-coding" - "find-operation-coding-system" - "listify-key-sequence" - "input-pending-p" - "discard-input" - "messages-buffer" - "set" - "auto-save-file-name-p" - "make-auto-save-file-name" - "recent-auto-save-p" - "set-buffer-auto-saved" - "delete-auto-save-file-if-necessary" - "rename-auto-save-file" - "abbrev-put" - "abbrev-get" - "forward-word-strictly" - "backward-word-strictly" - "advice-add" - "advice-remove" - "advice-member-p" - "advice-mapc" - "store-substring" - "clear-string" - "user-login-name" - "user-real-login-name" - "user-full-name" - "user-real-uid" - "user-uid" - "group-gid" - "group-real-gid" - "system-users" - "system-groups" - "play-sound" - "overlays-at" - "overlays-in" - "next-overlay-change" - "previous-overlay-change" - "next-property-change" - "previous-property-change" - "next-single-property-change" - "previous-single-property-change" - "next-char-property-change" - "previous-char-property-change" - "next-single-char-property-change" - "previous-single-char-property-change" - "text-property-any" - "text-property-not-all" - "symbol-value" - "make-abbrev-table" - "abbrev-table-p" - "clear-abbrev-table" - "copy-abbrev-table" - "define-abbrev-table" - "insert-abbrev-table-description" - "advice-function-member-p" - "advice-function-mapc" - "advice-eval-interactive-spec" - "display-buffer-same-window" - "display-buffer-reuse-window" - "display-buffer-pop-up-frame" - "display-buffer-use-some-frame" - "display-buffer-pop-up-window" - "display-buffer-below-selected" - "display-buffer-in-previous-window" - "display-buffer-at-bottom" - "display-buffer-use-some-window" - "display-buffer-no-window" - "isnan" - "frexp" - "ldexp" - "copysign" - "logb" - "file-newer-than-file-p" - "file-attributes" - "file-nlinks" - "barf-if-buffer-read-only" - "file-acl" - "file-selinux-context" - "file-extended-attributes" - "zlib-available-p" - "zlib-decompress-region" - "window-preserve-size" - "window-preserved-size" - "load" - "arrayp" - "aref" - "aset" - "fillarray" - "delete-process" - "image-mask-p" - "interrupt-process" - "kill-process" - "quit-process" - "stop-process" - "continue-process" - "minibuffer-depth" - "gethash" - "puthash" - "remhash" - "clrhash" - "maphash" - "read-quoted-char" - "eql" - "max" - "min" - "abs" - "framep" - "frame-terminal" - "terminal-live-p" - "image-type-available-p" - "mapcar" - "mapc" - "mapconcat" - "purecopy" - "current-bidi-paragraph-direction" - "move-point-visually" - "bidi-string-mark-left-to-right" - "bidi-find-overridden-directionality" - "buffer-substring-with-bidi-context" - "special-form-p" - "type-of" - "syntax-ppss-toplevel-pos" - "shell-quote-argument" - "split-string-and-unquote" - "combine-and-quote-strings" - "posix-looking-at" - "posix-string-match" - "smie-setup" - "define-hash-table-test" - "sxhash" - "window-system" - "setcar" - "read-buffer" - "read-command" - "read-variable" - "force-mode-line-update" - "file-locked-p" - "lock-buffer" - "unlock-buffer" - "ask-user-about-lock" - "make-display-table" - "display-table-slot" - "set-display-table-slot" - "describe-display-table" - "get" - "put" - "symbol-plist" - "setplist" - "function-get" - "function-put" - "process-buffer" - "process-mark" - "set-process-buffer" - "get-buffer-process" - "set-process-window-size" - "current-indentation" - "read-input-method-name" - "make-obsolete" - "set-advertised-calling-convention" - "suspend-tty" - "resume-tty" - "controlling-tty-p" - "overlayp" - "make-overlay" - "overlay-start" - "overlay-end" - "overlay-buffer" - "delete-overlay" - "move-overlay" - "remove-overlays" - "copy-overlay" - "overlay-recenter" - "nconc" - "expand-file-name" - "substitute-in-file-name" - "prefix-numeric-value" - "lsh" - "ash" - "logand" - "logior" - "logxor" - "lognot" - "display-warning" - "lwarn" - "warn" - "next-button" - "previous-button" - "font-lock-add-keywords" - "font-lock-remove-keywords" - "current-justification" - "display-completion-list" - "make-sparse-keymap" - "make-keymap" - "copy-keymap" - "window-right-divider-width" - "window-bottom-divider-width" - "autoload" - "autoloadp" - "autoload-do-load" - "syntax-table-p" - "standard-syntax-table" - "throw" - "facep" - "x-get-resource" - "set-marker-insertion-type" - "marker-insertion-type" - "format-mode-line" - "quietly-read-abbrev-file" - "window-dedicated-p" - "set-window-dedicated-p" - "cancel-timer" - "make-network-process" - "time-less-p" - "time-subtract" - "time-add" - "time-to-days" - "time-to-day-in-year" - "date-leap-year-p" - "buffer-swap-text" - "mark" - "mark-marker" - "set-mark" - "push-mark" - "pop-mark" - "deactivate-mark" - "handle-shift-selection" - "cons" - "list" - "make-list" - "append" - "copy-tree" - "number-sequence" - "line-beginning-position" - "line-end-position" - "count-lines" - "line-number-at-pos" - "completion-in-region" - "make-marker" - "point-marker" - "point-min-marker" - "point-max-marker" - "copy-marker") - "List of elisp functions, those in elisp doc marked as function. (basically, -all functions that's not command, macro, special forms.)") - -(defvar +emacs-lisp-variable-list - '("abbrev-expand-function" - "abbrev-minor-mode-table-alist" - "abbrev-start-location" - "abbrev-start-location-buffer" - "abbrev-table-name-list" - "abbrevs-changed" - "activate-mark-hook" - "after-change-functions" - "after-change-major-mode-hook" - "after-delete-frame-functions" - "after-init-hook" - "after-insert-file-functions" - "after-load-alist" - "after-load-functions" - "after-make-frame-functions" - "after-revert-hook" - "ascii-case-table" - "auto-fill-chars" - "auto-fill-function" - "auto-mode-alist" - "auto-raise-tool-bar-buttons" - "auto-resize-tool-bars" - "auto-save-hook" - "auto-save-list-file-name" - "auto-window-vscroll" - "backup-enable-predicate" - "backup-inhibited" - "before-change-functions" - "before-hack-local-variables-hook" - "before-init-hook" - "before-make-frame-hook" - "before-revert-hook" - "beginning-of-defun-function" - "bidi-display-reordering" - "bidi-paragraph-direction" - "blink-paren-function" - "buffer-access-fontified-property" - "buffer-access-fontify-functions" - "buffer-auto-save-file-format" - "buffer-auto-save-file-name" - "buffer-backed-up" - "buffer-display-count" - "buffer-display-table" - "buffer-display-time" - "buffer-file-coding-system" - "buffer-file-format" - "buffer-file-name" - "buffer-file-number" - "buffer-file-truename" - "buffer-invisibility-spec" - "buffer-list-update-hook" - "buffer-name-history" - "buffer-read-only" - "buffer-save-without-query" - "buffer-saved-size" - "buffer-stale-function" - "buffer-substring-filters" - "buffer-undo-list" - "byte-boolean-vars" - "byte-compile-dynamic" - "change-major-mode-after-body-hook" - "change-major-mode-hook" - "char-property-alias-alist" - "char-script-table" - "char-width-table" - "charset-list" - "coding-system-for-read" - "coding-system-for-write" - "command-debug-status" - "command-error-function" - "command-history" - "command-line-args" - "command-line-args-left" - "command-line-functions" - "command-line-processed" - "command-switch-alist" - "comment-end-can-be-escaped" - "completing-read-function" - "completion-at-point-functions" - "completion-extra-properties" - "completion-ignore-case" - "completion-regexp-list" - "completion-styles-alist" - "cons-cells-consed" - "current-input-method" - "current-prefix-arg" - "cursor-in-echo-area" - "cursor-type" - "custom-known-themes" - "customize-package-emacs-version-alist" - "data-directory" - "deactivate-mark" - "deactivate-mark-hook" - "debug-on-message" - "debug-on-next-call" - "debugger" - "default-directory" - "default-minibuffer-frame" - "default-process-coding-system" - "default-text-properties" - "defining-kbd-macro" - "delayed-warnings-hook" - "delayed-warnings-list" - "delete-terminal-functions" - "desktop-buffer-mode-handlers" - "desktop-save-buffer" - "dir-locals-class-alist" - "dir-locals-directory-cache" - "disable-point-adjustment" - "disabled-command-function" - "display-buffer-overriding-action" - "doc-directory" - "dynamic-library-alist" - "echo-area-clear-hook" - "electric-future-map" - "emacs-build-time" - "emacs-major-version" - "emacs-minor-version" - "emacs-save-session-functions" - "emacs-startup-hook" - "emacs-version" - "emulation-mode-map-alists" - "enable-dir-local-variables" - "enable-multibyte-characters" - "end-of-defun-function" - "exec-directory" - "executing-kbd-macro" - "extended-command-history" - "extra-keyboard-modifiers" - "face-font-rescale-alist" - "face-name-history" - "face-remapping-alist" - "features" - "file-local-variables-alist" - "file-name-coding-system" - "file-name-history" - "fill-forward-paragraph-function" - "fill-paragraph-function" - "filter-buffer-substring-function" - "filter-buffer-substring-functions" - "find-file-literally" - "find-file-not-found-functions" - "find-word-boundary-function-table" - "first-change-hook" - "float-e" - "float-output-format" - "float-pi" - "floats-consed" - "focus-in-hook" - "focus-out-hook" - "font-lock-defaults" - "font-lock-ensure-function" - "font-lock-extend-after-change-region-function" - "font-lock-extra-managed-props" - "font-lock-flush-function" - "font-lock-fontify-buffer-function" - "font-lock-fontify-region-function" - "font-lock-keywords" - "font-lock-keywords-case-fold-search" - "font-lock-keywords-only" - "font-lock-mark-block-function" - "font-lock-multiline" - "font-lock-syntactic-face-function" - "font-lock-syntax-table" - "font-lock-unfontify-buffer-function" - "font-lock-unfontify-region-function" - "fontification-functions" - "format-alist" - "frame-inherited-parameters" - "frame-title-format" - "fringe-cursor-alist" - "fringe-indicator-alist" - "fringes-outside-margins" - "fundamental-mode-abbrev-table" - "gc-elapsed" - "gcs-done" - "generate-autoload-cookie" - "generated-autoload-file" - "global-abbrev-table" - "global-disable-point-adjustment" - "global-map" - "global-mode-string" - "glyph-table" - "glyphless-char-display" - "hack-local-variables-hook" - "header-line-format" - "help-form" - "help-map" - "history-add-new-input" - "horizontal-scroll-bar" - "icon-title-format" - "ignore-window-parameters" - "ignored-local-variables" - "image-cache-eviction-delay" - "image-format-suffixes" - "image-types" - "imenu-case-fold-search" - "imenu-create-index-function" - "imenu-extract-index-name-function" - "imenu-generic-expression" - "imenu-prev-index-position-function" - "imenu-syntax-alist" - "indent-line-function" - "indent-region-function" - "inhibit-field-text-motion" - "inhibit-file-name-handlers" - "inhibit-file-name-operation" - "inhibit-iso-escape-detection" - "inhibit-local-variables-regexps" - "inhibit-message" - "inhibit-modification-hooks" - "inhibit-null-byte-detection" - "inhibit-point-motion-hooks" - "inhibit-quit" - "inhibit-read-only" - "inhibit-x-resources" - "init-file-user" - "initial-environment" - "initial-window-system" - "input-decode-map" - "input-method-alist" - "input-method-function" - "insert-directory-program" - "installation-directory" - "interpreter-mode-alist" - "interprogram-cut-function" - "interprogram-paste-function" - "intervals-consed" - "invocation-directory" - "invocation-name" - "kbd-macro-termination-hook" - "key-translation-map" - "keyboard-translate-table" - "kill-buffer-hook" - "kill-buffer-query-functions" - "kill-emacs-hook" - "kill-emacs-query-functions" - "kill-ring" - "kill-ring-yank-pointer" - "last-abbrev" - "last-abbrev-location" - "last-abbrev-text" - "last-coding-system-used" - "last-command" - "last-command-event" - "last-event-frame" - "last-input-event" - "last-kbd-macro" - "last-nonmenu-event" - "last-prefix-arg" - "last-repeatable-command" - "left-fringe-width" - "left-margin-width" - "lexical-binding" - "line-prefix" - "lisp-mode-abbrev-table" - "list-buffers-directory" - "load-file-name" - "load-file-rep-suffixes" - "load-history" - "load-in-progress" - "load-path" - "load-read-function" - "load-suffixes" - "local-abbrev-table" - "local-function-key-map" - "locale-coding-system" - "magic-fallback-mode-alist" - "magic-mode-alist" - "mark-active" - "mark-ring" - "max-image-size" - "memory-full" - "menu-bar-final-items" - "menu-bar-update-hook" - "menu-prompt-more-char" - "message-truncate-lines" - "minibuffer-allow-text-properties" - "minibuffer-completion-confirm" - "minibuffer-completion-predicate" - "minibuffer-completion-table" - "minibuffer-confirm-exit-commands" - "minibuffer-exit-hook" - "minibuffer-help-form" - "minibuffer-history" - "minibuffer-local-completion-map" - "minibuffer-local-filename-completion-map" - "minibuffer-local-map" - "minibuffer-local-must-match-map" - "minibuffer-local-ns-map" - "minibuffer-local-shell-command-map" - "minibuffer-scroll-window" - "minibuffer-setup-hook" - "minor-mode-alist" - "minor-mode-list" - "minor-mode-map-alist" - "minor-mode-overriding-map-alist" - "misc-objects-consed" - "mode-line-buffer-identification" - "mode-line-client" - "mode-line-end-spaces" - "mode-line-frame-identification" - "mode-line-front-space" - "mode-line-misc-info" - "mode-line-modes" - "mode-line-modified" - "mode-line-mule-info" - "mode-line-position" - "mode-line-process" - "mode-line-remote" - "mode-name" - "module-file-suffix" - "most-negative-fixnum" - "most-positive-fixnum" - "mouse-position-function" - "multi-query-replace-map" - "multibyte-syntax-as-symbol" - "multiple-frames" - "network-coding-system-alist" - "noninteractive" - "normal-auto-fill-function" - "num-input-keys" - "num-nonmacro-input-events" - "obarray" - "other-window-scroll-buffer" - "overlay-arrow-position" - "overlay-arrow-string" - "overlay-arrow-variable-list" - "overriding-local-map" - "overriding-local-map-menu-flag" - "overriding-terminal-local-map" - "overwrite-mode" - "parse-sexp-lookup-properties" - "path-separator" - "play-sound-functions" - "post-command-hook" - "post-gc-hook" - "pre-command-hook" - "pre-redisplay-function" - "pre-redisplay-functions" - "prefix-arg" - "prefix-help-command" - "print-circle" - "print-continuous-numbering" - "print-escape-multibyte" - "print-escape-newlines" - "print-escape-nonascii" - "print-gensym" - "print-length" - "print-level" - "print-number-table" - "print-quoted" - "printable-chars" - "process-adaptive-read-buffering" - "process-coding-system-alist" - "process-connection-type" - "process-environment" - "process-file-side-effects" - "pure-bytes-used" - "purify-flag" - "query-replace-history" - "query-replace-map" - "quit-flag" - "read-circle" - "read-expression-history" - "read-file-name-function" - "real-last-command" - "regexp-history" - "register-alist" - "replace-re-search-function" - "replace-search-function" - "revert-buffer-function" - "revert-buffer-in-progress-p" - "revert-buffer-insert-file-contents-function" - "right-fringe-width" - "right-margin-width" - "save-buffer-coding-system" - "scroll-bar-height" - "scroll-bar-width" - "search-spaces-regexp" - "selective-display" - "shell-command-history" - "show-help-function" - "special-event-map" - "split-string-default-separators" - "standard-display-table" - "standard-input" - "standard-output" - "standard-translation-table-for-decode" - "standard-translation-table-for-encode" - "string-chars-consed" - "strings-consed" - "suspend-hook" - "suspend-resume-hook" - "symbols-consed" - "syntax-propertize-extend-region-functions" - "syntax-propertize-function" - "system-configuration" - "system-key-alist" - "system-messages-locale" - "system-time-locale" - "system-type" - "tabulated-list-entries" - "tabulated-list-format" - "tabulated-list-printer" - "tabulated-list-revert-hook" - "tabulated-list-sort-key" - "temp-buffer-setup-hook" - "temp-buffer-show-hook" - "text-mode-abbrev-table" - "text-property-default-nonsticky" - "text-quoting-style" - "this-command" - "this-original-command" - "tool-bar-border" - "tool-bar-button-margin" - "tool-bar-button-relief" - "tool-bar-map" - "tooltip-frame-parameters" - "tooltip-functions" - "translation-table-for-input" - "tty-erase-char" - "tty-setup-hook" - "undo-auto-current-boundary-timer" - "undo-in-progress" - "unicode-category-table" - "unload-feature-special-hooks" - "unread-command-events" - "use-hard-newlines" - "user-emacs-directory" - "user-init-file" - "values" - "vc-mode" - "vector-cells-consed" - "vertical-scroll-bar" - "warning-fill-prefix" - "warning-levels" - "warning-prefix-function" - "warning-series" - "warning-type-format" - "window-configuration-change-hook" - "window-persistent-parameters" - "window-point-insertion-type" - "window-scroll-functions" - "window-setup-hook" - "window-size-change-functions" - "window-size-fixed" - "window-system" - "wrap-prefix" - "write-contents-functions" - "write-file-functions" - "write-region-annotate-functions" - "write-region-post-annotation-function" - "x-alt-keysym" - "x-hyper-keysym" - "x-meta-keysym" - "x-pointer-shape" - "x-resource-class" - "x-resource-name" - "x-sensitive-text-pointer-shape" - "x-super-keysym" - "yank-undo-function") - "TODO") - -(defvar +emacs-lisp-option-list - '("abbrev-all-caps" - "abbrev-file-name" - "adaptive-fill-first-line-regexp" - "adaptive-fill-function" - "adaptive-fill-mode" - "adaptive-fill-regexp" - "after-save-hook" - "auto-coding-alist" - "auto-coding-functions" - "auto-coding-regexp-alist" - "auto-save-default" - "auto-save-interval" - "auto-save-list-file-prefix" - "auto-save-timeout" - "auto-save-visited-file-name" - "backup-by-copying" - "backup-by-copying-when-linked" - "backup-by-copying-when-mismatch" - "backup-by-copying-when-privileged-mismatch" - "backup-directory-alist" - "backward-delete-char-untabify-method" - "baud-rate" - "before-save-hook" - "blink-cursor-alist" - "blink-matching-delay" - "blink-matching-paren" - "blink-matching-paren-distance" - "buffer-offer-save" - "byte-compile-dynamic-docstrings" - "case-fold-search" - "case-replace" - "completion-auto-help" - "completion-category-overrides" - "completion-ignored-extensions" - "completion-styles" - "create-lockfiles" - "ctl-arrow" - "cursor-in-non-selected-windows" - "custom-unlispify-remove-prefixes" - "debug-ignored-errors" - "debug-on-error" - "debug-on-event" - "debug-on-quit" - "debug-on-signal" - "default-frame-alist" - "default-input-method" - "default-justification" - "defun-prompt-regexp" - "delete-auto-save-files" - "delete-exited-processes" - "delete-old-versions" - "dired-kept-versions" - "display-buffer-alist" - "display-buffer-base-action" - "display-mm-dimensions-alist" - "double-click-fuzz" - "double-click-time" - "echo-keystrokes" - "edebug-all-defs" - "edebug-all-forms" - "edebug-continue-kbd-macro" - "edebug-eval-macro-args" - "edebug-global-break-condition" - "edebug-initial-mode" - "edebug-on-error" - "edebug-on-quit" - "edebug-print-circle" - "edebug-print-length" - "edebug-print-level" - "edebug-save-displayed-buffer-points" - "edebug-save-windows" - "edebug-setup-hook" - "edebug-sit-for-seconds" - "edebug-test-coverage" - "edebug-trace" - "edebug-unwrap-results" - "enable-local-eval" - "enable-local-variables" - "enable-recursive-minibuffers" - "eval-expression-debug-on-error" - "eval-expression-print-length" - "eval-expression-print-level" - "even-window-sizes" - "exec-path" - "exec-suffixes" - "face-font-family-alternatives" - "face-font-registry-alternatives" - "face-font-selection-order" - "file-coding-system-alist" - "file-precious-flag" - "fill-column" - "fill-individual-varying-indent" - "fill-nobreak-predicate" - "fill-prefix" - "find-file-hook" - "find-file-wildcards" - "fit-frame-to-buffer" - "fit-frame-to-buffer-margins" - "fit-frame-to-buffer-sizes" - "fit-window-to-buffer-horizontally" - "focus-follows-mouse" - "frame-auto-hide-function" - "frame-inhibit-implied-resize" - "frame-resize-pixelwise" - "garbage-collection-messages" - "gc-cons-percentage" - "gc-cons-threshold" - "glyphless-char-display-control" - "help-char" - "help-event-list" - "history-delete-duplicates" - "history-length" - "horizontal-scroll-bar-mode" - "image-load-path" - "imagemagick-enabled-types" - "imagemagick-types-inhibit" - "indent-tabs-mode" - "indicate-buffer-boundaries" - "indicate-empty-lines" - "inhibit-default-init" - "inhibit-eol-conversion" - "inhibit-startup-echo-area-message" - "inhibit-startup-screen" - "initial-buffer-choice" - "initial-frame-alist" - "initial-major-mode" - "initial-scratch-message" - "insert-default-directory" - "kept-new-versions" - "kept-old-versions" - "kill-read-only-ok" - "kill-ring-max" - "left-margin" - "load-prefer-newer" - "mail-host-address" - "major-mode" - "make-backup-file-name-function" - "make-backup-files" - "mark-even-if-inactive" - "mark-ring-max" - "max-lisp-eval-depth" - "max-mini-window-height" - "max-mini-window-height" - "max-specpdl-size" - "message-log-max" - "meta-prefix-char" - "minibuffer-auto-raise" - "minibuffer-frame-alist" - "mode-line-format" - "next-screen-context-lines" - "no-redraw-on-reenter" - "only-global-abbrevs" - "open-paren-in-column-0-is-defun-start" - "overflow-newline-into-fringe" - "package-archive-upload-base" - "package-archives" - "page-delimiter" - "paragraph-separate" - "paragraph-start" - "parse-sexp-ignore-comments" - "pop-up-frame-alist" - "pop-up-frame-function" - "pop-up-frames" - "pop-up-windows" - "read-buffer-completion-ignore-case" - "read-buffer-function" - "read-file-name-completion-ignore-case" - "read-regexp-defaults-function" - "recenter-positions" - "recenter-redisplay" - "remote-file-name-inhibit-cache" - "require-final-newline" - "resize-mini-windows" - "revert-without-query" - "ring-bell-function" - "safe-local-eval-forms" - "safe-local-variable-values" - "same-window-buffer-names" - "same-window-regexps" - "save-abbrevs" - "scalable-fonts-allowed" - "scroll-bar-mode" - "scroll-conservatively" - "scroll-down-aggressively" - "scroll-error-top-bottom" - "scroll-margin" - "scroll-preserve-screen-position" - "scroll-step" - "scroll-up-aggressively" - "selection-coding-system" - "selective-display-ellipses" - "sentence-end" - "sentence-end-double-space" - "sentence-end-without-period" - "sentence-end-without-space" - "site-run-file" - "small-temporary-file-directory" - "smie-config" - "sort-fold-case" - "sort-numeric-base" - "split-height-threshold" - "split-width-threshold" - "split-window-keep-point" - "split-window-preferred-function" - "switch-to-buffer-in-dedicated-window" - "switch-to-buffer-preserve-window-point" - "switch-to-visible-buffer" - "tab-always-indent" - "tab-stop-list" - "tab-width" - "temp-buffer-max-height" - "temp-buffer-max-width" - "temp-buffer-resize-mode" - "temp-buffer-show-function" - "temporary-file-directory" - "term-file-aliases" - "term-file-prefix" - "three-step-help" - "timer-max-repeats" - "transient-mark-mode" - "truncate-lines" - "truncate-partial-width-windows" - "underline-minimum-offset" - "undo-ask-before-discard" - "undo-limit" - "undo-outer-limit" - "undo-strong-limit" - "user-mail-address" - "version-control" - "visible-bell" - "void-text-area-pointer" - "warning-minimum-level" - "warning-minimum-log-level" - "warning-suppress-log-types" - "warning-suppress-types" - "window-adjust-process-window-size-function" - "window-combination-limit" - "window-combination-resize" - "window-min-height" - "window-min-width" - "window-resize-pixelwise" - "words-include-escapes" - "x-bitmap-file-path" - "x-stretch-cursor" - "yank-excluded-properties" - "yank-handled-properties") - "TODO") - -(defvar +emacs-lisp-command-list - '("abbrev-prefix-mark" - "abort-recursive-edit" - "add-name-to-file" - "append-to-file" - "apropos" - "auto-save-mode" - "back-to-indentation" - "backtrace" - "backward-button" - "backward-char" - "backward-delete-char-untabify" - "backward-list" - "backward-sexp" - "backward-to-indentation" - "backward-up-list" - "backward-word" - "balance-windows" - "balance-windows-area" - "base64-decode-region" - "base64-encode-region" - "beginning-of-buffer" - "beginning-of-defun" - "beginning-of-line" "end-of-line" - "blink-matching-open" - "buffer-disable-undo" - "buffer-enable-undo" - "bury-buffer" - "byte-compile-file" - "byte-recompile-directory" - "cancel-debug-on-entry" - "capitalize-region" - "capitalize-word" - "clone-indirect-buffer" - "compile-defun" - "conf-mode" - "copy-directory" - "copy-file" - "copy-region-as-kill" - "count-words" - "debug" - "debug-on-entry" - "decode-coding-region" - "delete-backward-char" - "delete-blank-lines" - "delete-char" - "delete-directory" - "delete-file" - "delete-frame" - "delete-horizontal-space" - "delete-indentation" - "delete-minibuffer-contents" - "delete-other-windows" - "delete-region" - "delete-trailing-whitespace" - "delete-window" - "delete-windows-on" - "describe-bindings" - "describe-buffer-case-table" - "describe-categories" - "describe-current-display-table" - "describe-mode" - "describe-prefix-bindings" - "describe-syntax" - "digit-argument" - "disable-command" - "disable-theme" - "disassemble" - "display-buffer" - "do-auto-save" - "down-list" - "downcase-region" - "downcase-word" - "edebug-display-freq-count" - "edebug-set-initial-mode" - "emacs-init-time" - "emacs-uptime" - "emacs-version" - "enable-command" - "enable-theme" - "encode-coding-region" - "end-of-buffer" - "end-of-defun" - "erase-buffer" - "eval-buffer" - "eval-region" - "execute-extended-command" - "exit-minibuffer" - "exit-recursive-edit" - "expand-abbrev" - "fill-individual-paragraphs" - "fill-paragraph" - "fill-region" - "fill-region-as-paragraph" - "find-file" - "find-file-literally" - "find-file-other-window" - "find-file-read-only" - "fit-frame-to-buffer" - "fit-window-to-buffer" - "fixup-whitespace" - "format-find-file" - "format-insert-file" - "format-write-file" - "forward-button" - "forward-char" - "forward-line" - "forward-list" - "forward-sexp" - "forward-to-indentation" - "forward-word" - "fundamental-mode" - "garbage-collect" - "getenv" - "global-set-key" - "global-unset-key" - "goto-char" - "gui-set-selection" - "handle-switch-frame" - "Helper-describe-bindings" - "Helper-help" - "iconify-frame" - "imenu-add-to-menubar" - "indent-according-to-mode" - "indent-code-rigidly" - "indent-for-tab-command" - "indent-region" - "indent-relative" - "indent-relative-maybe" - "indent-rigidly" - "indent-to" - "insert-buffer" - "insert-char" - "insert-register" - "invert-face" - "just-one-space" - "justify-current-line" - "keyboard-quit" - "kill-buffer" - "kill-emacs" - "kill-local-variable" - "kill-region" - "list-charset-chars" - "list-load-path-shadows" - "list-processes" - "load-file" - "load-library" - "load-theme" - "local-set-key" - "local-unset-key" - "locate-library" - "lower-frame" - "make-directory" - "make-frame" - "make-frame-invisible" - "make-frame-on-display" - "make-frame-visible" - "make-indirect-buffer" - "make-local-variable" - "make-symbolic-link" - "make-variable-buffer-local" - "maximize-window" - "minibuffer-complete" - "minibuffer-complete-and-exit" - "minibuffer-complete-word" - "minibuffer-completion-help" - "minibuffer-inactive-mode" - "minimize-window" - "modify-syntax-entry" - "move-to-column" - "move-to-left-margin" - "move-to-window-line" - "narrow-to-page" - "narrow-to-region" - "negative-argument" - "newline" - "newline-and-indent" - "next-complete-history-element" - "next-history-element" - "next-matching-history-element" - "normal-mode" - "not-modified" - "open-dribble-file" - "open-termscript" - "other-window" - "package-initialize" - "package-upload-buffer" - "package-upload-file" - "play-sound-file" - "pop-to-buffer" - "posix-search-backward" - "posix-search-forward" - "previous-complete-history-element" - "previous-history-element" - "previous-matching-history-element" - "prog-mode" - "push-button" - "quit-window" - "raise-frame" - "re-search-backward" - "re-search-forward" - "read-color" - "read-kbd-macro" - "read-only-mode" - "recenter" - "recenter-top-bottom" - "recursive-edit" - "redraw-display" - "reindent-then-newline-and-indent" - "rename-buffer" - "rename-file" - "replace-buffer-in-windows" - "revert-buffer" - "run-at-time" - "run-with-idle-timer" - "save-buffer" - "save-some-buffers" - "scroll-down" - "scroll-down-command" - "scroll-left" - "scroll-other-window" - "scroll-right" - "scroll-up" - "scroll-up-command" - "search-backward" - "search-forward" - "select-frame" - "self-insert-and-exit" - "self-insert-command" - "serial-term" - "set-face-background" - "set-face-font" - "set-face-foreground" - "set-face-stipple" - "set-file-modes" - "set-frame-font" - "set-input-method" - "set-keyboard-coding-system" - "set-left-margin" - "set-right-margin" - "set-terminal-coding-system" - "set-visited-file-name" - "setenv" - "shrink-window-if-larger-than-buffer" - "signal-process" - "smie-close-block" - "smie-config-guess" - "smie-config-save" - "smie-config-set-indent" - "smie-config-show-indent" - "smie-down-list" - "sort-columns" - "sort-fields" - "sort-lines" - "sort-numeric-fields" - "sort-pages" - "sort-paragraphs" - "sort-regexp-fields" - "special-mode" - "split-window-below" - "split-window-right" - "strong>help-command" - "suspend-emacs" - "suspend-frame" - "switch-to-buffer" - "switch-to-buffer-other-frame" - "switch-to-buffer-other-window" - "switch-to-next-buffer" - "switch-to-prev-buffer" - "tab-to-tab-stop" - "text-mode" - "top-level" - "translate-region" - "unbury-buffer" - "undefined" - "universal-argument" - "unload-feature" - "up-list" - "upcase-region" - "upcase-word" - "view-register" - "widen" - "word-search-backward" - "word-search-backward-lax" - "word-search-forward" - "word-search-forward-lax" - "write-abbrev-file" - "write-file" - "write-region" - "yank" - "yank-pop") - "List of elisp commands.") diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index f62761396..d1e35ee1b 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -1,10 +1,5 @@ ;;; lang/emacs-lisp/config.el -*- lexical-binding: t; -*- -(defvar +emacs-lisp-enable-extra-fontification t - "If non-nil, fontify built-in functions and variables especially (symbols -defined by Emacs, not Doom or packages). This can help make typos stand out.") - - ;; ;; elisp-mode deferral hack ;; @@ -59,23 +54,43 @@ defined by Emacs, not Doom or packages). This can help make typos stand out.") ;; initialization +emacs-lisp|init-imenu)) + (defvar +emacs-lisp--face nil) + (defun +emacs-lisp-highlight-vars-and-faces (end) + "Match defined variables and functions. + +Functions are differentiated into special forms, built-in functions and +library/userland functions" + (catch 'matcher + (while (re-search-forward "\\_<.+?\\_>" end t) + (let ((symbol (intern-soft (match-string-no-properties 0)))) + (and (cond ((null symbol)) + ((special-variable-p symbol) + (setq +emacs-lisp--face 'font-lock-variable-name-face)) + ((and (fboundp symbol) + (eq (char-before (match-beginning 0)) ?\()) + (let ((unaliased (indirect-function symbol t))) + (unless (or (macrop unaliased) + (special-form-p unaliased)) + (let ((orig (let (unadvised) + (while (not (eq (setq unadvised (ad-get-orig-definition unaliased)) + (setq unaliased (indirect-function unadvised t))))) + unaliased))) + (setq +emacs-lisp--face + (if (subrp orig) + 'font-lock-constant-face + 'font-lock-function-name-face))))))) + (throw 'matcher t)))) + nil)) + (eval-when-compile + (byte-compile #'+emacs-lisp-highlight-vars-and-faces)) + ;; Special fontification for doom (font-lock-add-keywords 'emacs-lisp-mode - `(;; custom Doom cookies - ("^;;;###\\(autodef\\|if\\)[ \n]" (1 font-lock-warning-face t)) - ;; doom/module functions - ("\\(^\\|\\s-\\|,\\)(\\(\\(doom\\|\\+\\)[^) ]+\\|[^) ]+!\\)[) \n]" (2 'font-lock-keyword-face)))) - - ;; Highlight symbols in standard library - (when +emacs-lisp-enable-extra-fontification - (load! "+symbols") - (font-lock-add-keywords - 'emacs-lisp-mode - `((,(concat "\\(?:(\\|#'\\)" (regexp-opt +emacs-lisp-function-list t) "\\_>") (1 'font-lock-function-name-face)) - (,(concat "\\(?:(\\|#'\\)" (regexp-opt +emacs-lisp-command-list t) "\\_>") (1 'font-lock-function-name-face)) - (,(regexp-opt +emacs-lisp-variable-list 'symbols) . font-lock-variable-name-face) - (,(regexp-opt +emacs-lisp-option-list 'symbols) . font-lock-variable-name-face)))) + (append `(;; custom Doom cookies + ("^;;;###\\(autodef\\|if\\)[ \n]" (1 font-lock-warning-face t)) + ;; highlight defined, special variables & functions + (+emacs-lisp-highlight-vars-and-faces . +emacs-lisp--face)))) (defun +emacs-lisp|init-imenu () "Improve imenu support with better expression regexps and Doom-specific forms."