[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ergoemacs-mode b4b14f2 260/325: Remove ergoemacs-compon
From: |
Stefan Monnier |
Subject: |
[elpa] externals/ergoemacs-mode b4b14f2 260/325: Remove ergoemacs-component |
Date: |
Sat, 23 Oct 2021 18:49:06 -0400 (EDT) |
branch: externals/ergoemacs-mode
commit b4b14f248e63c2a8701e60cd2e6f1c047e23a81e
Author: Matthew Fidler <514778+mattfidler@users.noreply.github.com>
Commit: Matthew Fidler <514778+mattfidler@users.noreply.github.com>
Remove ergoemacs-component
---
ergoemacs-component.el | 654 ----------------------------------------------
ergoemacs-mode.el | 39 +--
ergoemacs-theme-engine.el | 15 --
3 files changed, 3 insertions(+), 705 deletions(-)
diff --git a/ergoemacs-component.el b/ergoemacs-component.el
deleted file mode 100644
index 8997af9..0000000
--- a/ergoemacs-component.el
+++ /dev/null
@@ -1,654 +0,0 @@
-;;; ergoemacs-component.el --- Ergoemacs map interface -*- lexical-binding: t
-*-
-
-;; Copyright © 2013-2015 Free Software Foundation, Inc.
-
-;; Filename: ergoemacs-component.el
-;; Description:
-;; Author: Matthew L. Fidler
-;; Maintainer: Matthew L. Fidler
-;; Created: Sat Sep 28 20:10:56 2013 (-0500)
-;;
-;;; Commentary:
-;;
-;; Code for ergoemacs components.
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; 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 3, 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. If not, see <http://www.gnu.org/licenses/>.
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(require 'cl-lib)
-
-(eval-when-compile
- (require 'ergoemacs-macros))
-
-(require 'help-mode)
-(require 'find-func)
-
-(defvar ergoemacs-command-loop--minibuffer-unsupported-p)
-(defvar ergoemacs-map-properties--label-atoms-maps)
-(defvar ergoemacs--last-start-emacs-state-2)
-(defvar ergoemacs--start-emacs-state-2)
-(defvar ergoemacs-component-hash)
-(defvar ergoemacs-display-key-use-face-p)
-(defvar ergoemacs-keyboard-layout)
-(defvar ergoemacs-keymap)
-(defvar ergoemacs-map-properties--known-maps)
-(defvar ergoemacs-mode--fast-p)
-(defvar ergoemacs-mode-version)
-(defvar ergoemacs-theme-hash)
-(defvar ergoemacs-theme-version)
-(defvar ergoemacs-translate--translation-hash)
-(defvar ergoemacs-translation-hash)
-
-(declare-function ergoemacs--emacs-state "ergoemacs-mode")
-(declare-function ergoemacs-mode--setup-hash-tables--setq "ergoemacs-mode")
-(declare-function ergoemacs-mode-clear-cache "ergoemacs-mode")
-
-(declare-function ergoemacs-set "ergoemacs-lib")
-(declare-function ergoemacs-reset "ergoemacs-lib")
-(declare-function ergoemacs-warn "ergoemacs-lib")
-
-(declare-function ergoemacs-theme-components "ergoemacs-theme-engine")
-(declare-function ergoemacs-theme--regexp "ergoemacs-theme-engine")
-
-(declare-function ergoemacs-translate "ergoemacs-translate")
-(declare-function ergoemacs-translate--apply-key "ergoemacs-translate")
-(declare-function ergoemacs-translate--define-key "ergoemacs-translate")
-
-(declare-function ergoemacs-map-properties--label-known
"ergoemacs-map-properties")
-(declare-function ergoemacs-map-properties--original
"ergoemacs-map-properties")
-(declare-function ergoemacs-map-properties--map-list
"ergoemacs-map-properties")
-(declare-function ergoemacs-map-properties--put "ergoemacs-map-properties")
-(declare-function ergoemacs-map-properties--key-hash
"ergoemacs-map-properties")
-(declare-function ergoemacs-map-properties--map-regexp
"ergoemacs-map-properties")
-(declare-function ergoemacs-map-properties--empty-p "ergoemacs-map-properties")
-(declare-function ergoemacs-map-properties--label "ergoemacs-map-properties")
-
-(declare-function ergoemacs-map-keymap "ergoemacs-mapkeymap")
-
-(declare-function ergoemacs-key-description "ergoemacs-key-description")
-(declare-function ergoemacs-layout--regexp "ergoemacs-layouts")
-
-;; ergoemacs-translate
-
-
-(defun ergoemacs-remap (function)
- "Remap the FUNCTION to the appropriate key and then call that function."
- (let ((key (where-is-internal function ergoemacs-keymap t)))
- (call-interactively (key-binding key t nil (point)))))
-
-
-;;; Translation between layouts
-
-(defvar ergoemacs-component-struct--define-key-current nil)
-
-(defun ergoemacs-component-struct--parse-list (list function &rest args)
- "Handle :bind LIST and call FUNCTION.
-
-The FUNCTION calls the with the first argument as the string
-piece and the second argument the symbol piece of the definition.
-It also passes ARGS if any are specified."
- (let (arg1 arg2)
- (cond
- ;; :list ("a" b "c" d)
- ((ignore-errors (and (consp list) (> (length list) 2)
- (stringp (car list))
- (setq arg1 (pop list))
- (setq arg2 (pop list))))
- (while (and arg1 arg2)
- (apply function arg1 arg2 args)
- (setq arg1 (pop list)
- arg2 (pop list))))
- ((and (consp list) (stringp (car list)))
- (apply function (car list)
- (or (and (consp (cdr list)) (nth 1 list))
- (cdr list))
- args))
- ((and (consp list) (consp (car list)))
- (dolist (elt list)
- (when (and (consp elt) (stringp (car elt)))
- (apply function (car elt)
- (or (and (consp (cdr elt)) (nth 1 elt))
- (cdr elt))
- args)))))))
-
-(defun ergoemacs-component-struct--with-hook (when-condition plist body
&optional object)
- "How the (when...) conditions in an ergoemacs-mode theme are handled.
-WHEN-CONDITION is the when condition that is defined in a theme.
-
-PLIST is the theme's property
-
-BODY is the (when ...) body.
-
-OBJECT is the ergoemacs component object, and defaults to
-`ergoemacs-component-struct--define-key-current'."
- (cond
- ((and (not ergoemacs-component-struct--define-key-current) (not object)) ;;
Old
- (error "`ergoemacs-component-struct--with-hook' is confused"))
- (t
- (let ((obj (or object ergoemacs-component-struct--define-key-current))
- (hook
- (or (and (symbol-name when-condition) (string-match-p
"\\(-hook\\|-mode\\|\\`mark-active\\)\\'" (symbol-name when-condition))
when-condition)
- (and (symbol-name when-condition) (string-match-p "mode-.*"
(symbol-name when-condition))
- (save-match-data
- (intern-soft
- (replace-regexp-in-string
- "-mode-.*" "mode-hook"
- (symbol-name when-condition)))))
- (and (string-match-p "(key)?map" (symbol-name when-condition))
- (save-match-data
- (intern-soft
- (replace-regexp-in-string
- "(key)?map.*" "hook"
- (symbol-name when-condition))))))))
- (if (not (ergoemacs-component-struct-p obj))
- (error "OBJECT is not an ergoemacs-component-structure")
- (puthash hook plist (ergoemacs-component-struct-hook-plists obj))
- (setf (ergoemacs-component-struct-when-condition obj) when-condition)
- (setf (ergoemacs-component-struct-hook obj) hook)
- (funcall body)
- (setf (ergoemacs-component-struct-when-condition obj) nil)
- (setf (ergoemacs-component-struct-hook obj) nil))))))
-
-(defun ergoemacs-component-struct--component-description (component)
- "Gets the description of a COMPONENT.
-Allows the component not to be calculated."
- (let* ((comp-name (or (and (symbolp component) (symbol-name component))
- component))
- (comp (ergoemacs-gethash comp-name ergoemacs-component-hash)))
- (cond
- ((functionp comp)
- (replace-regexp-in-string "[\n ]*(fn)[ \n]*\\'" "" (documentation comp
t)))
- ((ergoemacs-component-struct-p comp)
- (plist-get (ergoemacs-component-struct-plist comp) :description))
- (t ""))))
-
-(defun ergoemacs-component-struct--new-version (version &optional object)
- "Add VERSION to component OBJECT."
- (cond
- ((and (not ergoemacs-component-struct--define-key-current) (not object)) ;;
Old
- (error "`ergoemacs-component-struct--new-version' is confused"))
- (t
- (let ((obj (or object ergoemacs-component-struct--define-key-current))
- new-obj tmp)
- (if (not (ergoemacs-component-struct-p obj))
- (error "OBJECT is not an ergoemacs-component-structure")
- (puthash (concat (ergoemacs-component-struct-name obj)
- (and (ergoemacs-component-struct-version obj)
- (concat "::" (ergoemacs-component-struct-version
obj))))
- ergoemacs-component-struct--define-key-current
ergoemacs-component-hash)
- ;; Get the base object without version changes
- (setq new-obj (ergoemacs-gethash (ergoemacs-component-struct-name obj)
ergoemacs-component-hash))
- ;; Update all versions to include the new version information.
- (dolist (old-version (ergoemacs-component-struct-versions new-obj))
- (setq tmp (ergoemacs-gethash (concat
(ergoemacs-component-struct-name new-obj) "::" old-version)
ergoemacs-component-hash))
- (when (ergoemacs-component-struct-p tmp)
- (push version (ergoemacs-component-struct-versions tmp))))
- (push version (ergoemacs-component-struct-versions new-obj))
- ;; Use the last object as the base of the new object
- (setq ergoemacs-component-struct--define-key-current (copy-tree obj t))
- (setf (ergoemacs-component-struct-version
ergoemacs-component-struct--define-key-current) version))))))
-
-(defvar ergoemacs-component-struct--define-key-temp-map nil)
-
-(defun ergoemacs-component-struct--define-key-get-def (def)
- "Gets the `ergoemacs-mode' function definition for DEF."
- (let (tmp)
- (cond
- ((and (consp def) (memq (nth 0 def) '(kbd read-kbd-macro))
- (stringp (nth 1 def)))
- (read-kbd-macro (nth 1 def)))
- ((and (consp def) (= 1 (length def)) (symbolp (nth 0 def)))
- (nth 0 def))
- ((and (consp def) (= 1 (length def)) (consp (nth 0 def))
- (= 2 (length (nth 0 def)))
- (eq (nth 0 (nth 0 def)) 'quote)
- (symbolp (nth 1 (nth 0 def))))
- (nth 1 (nth 0 def)))
- ((and (consp def) (= 2 (length def)) (eq (nth 1 def) 'quote) (symbolp
(nth 1 def)))
- (nth 1 def))
- ((and (consp def)
- (= 2 (length def))
- (stringp (nth 0 def))
- (eq (nth 1 def) :emacs)
- (setq tmp (lookup-key global-map (read-kbd-macro (nth 0 def))))
- (commandp tmp))
- tmp)
- ((ergoemacs-keymapp (ergoemacs-sv def))
- (ergoemacs-sv def))
- (t def))))
-
-(defun ergoemacs-component-struct--ini-map (obj)
- "Initilize keymap in OBJ.
-
-OBJ is an `egoemacs-component-struct' object.
-
-Returns the map, if it hasn't been initialized, initialize
-with the label, and then return."
- (or (ergoemacs-component-struct-map obj)
- (let ((map (make-sparse-keymap)))
- (ergoemacs map :label
- (list (ergoemacs (ergoemacs :global-map) :key-hash)
- (intern (format "%s%s"
(ergoemacs-component-struct-name obj) (or (ergoemacs-component-struct-version
obj) "")))
- (intern (ergoemacs-component-struct-layout obj))))
- (setf (ergoemacs-component-struct-map obj) map)
- map)))
-
-(defun ergoemacs-component-struct--clear-cache (struct-map)
- "Clears STRUCT-MAP's cache of keymaps.
-
-STRUCT-MAP can be a list of `ergoemacs-component-struct' structures as well."
- (cond
- ((ergoemacs-component-struct-p struct-map)
- (setf (ergoemacs-component-struct-calculated-layouts struct-map)
(make-hash-table :test 'equal)))
- ((consp struct-map)
- (dolist (cur-map struct-map)
- (ergoemacs-component-struct--clear-cache cur-map)))))
-
-(defun ergoemacs-component-struct--closest-version (version version-list)
- "Return the closest version to VERSION in VERSION-LIST.
-Formatted for use with `ergoemacs-theme-component-hash' it will return
::version or an empty string"
- (if (or (not version) (string= "nil" version)) ""
- (if version-list
- (let ((use-version (version-to-list version))
- biggest-version
- biggest-version-list
- smallest-version
- smallest-version-list
- best-version
- best-version-list
- test-version-list
- ret)
- (dolist (v version-list)
- (setq test-version-list (version-to-list v))
- (if (not biggest-version)
- (setq biggest-version v
- biggest-version-list test-version-list)
- (when (version-list-< biggest-version-list test-version-list)
- (setq biggest-version v
- biggest-version-list test-version-list)))
- (if (not smallest-version)
- (setq smallest-version v
- smallest-version-list test-version-list)
- (when (version-list-< test-version-list smallest-version-list)
- (setq smallest-version v
- smallest-version-list test-version-list)))
- (cond
- ((and (not best-version)
- (version-list-<= test-version-list use-version))
- (setq best-version v
- best-version-list test-version-list))
- ((and (version-list-<= best-version-list test-version-list) ;;
Better than best
- (version-list-<= test-version-list use-version))
- (setq best-version v
- best-version-list test-version-list))))
- (if (version-list-< biggest-version-list use-version)
- (setq ret "")
- (if best-version
- (setq ret (concat "::" best-version))
- (setq ret (concat "::" smallest-version))))
- ret)
- "")))
-
-(defun ergoemacs-component-struct--lookup-closest (comp &optional
current-version)
- "Look up closest component version from `ergoemacs-component-hash'.
-
-COMP is the component where the version information should be stored.
-
-Optionally assume that CURRENT-VERSION is active"
- (if (not (ergoemacs-component-struct-p comp)) nil
- (let (versions)
- (cond
- ((not (setq versions (ergoemacs-component-struct-versions comp)))
- comp)
- ((string= "" (setq versions (ergoemacs-component-struct--closest-version
- current-version versions)))
- comp)
- (t
- (ergoemacs-component-struct--lookup-hash (concat
(ergoemacs-component-struct-name comp) versions)))))))
-
-(defun ergoemacs-component-struct--lookup-hash (map-or-map-list &optional
version)
- "Lookup `ergoemacs-component-hash' from MAP-OR-MAP-LIST if necessary.
-
-VERSION is the version of the `ergoemacs-mode' keys that you wish
-to lookup.
-
-This takes into consideration any versions defined, and the
-closest `ergoemacs-theme-version' calculated from
-`ergoemacs-component-struct--closest-version' by using
-`ergoemacs-component-struct--lookup-closest'"
- (if (consp map-or-map-list)
- (mapcar #'ergoemacs-component-struct--lookup-hash map-or-map-list)
- (if (ergoemacs-component-struct-p map-or-map-list)
- (ergoemacs-component-struct--lookup-closest map-or-map-list version)
- (let ((map map-or-map-list)
- ret)
- (when (symbolp map) ;; If map is a symbol, change to string.
- (setq map (symbol-name map)))
- (when (stringp map) ;; If map is a string, get the component from
`ergoemacs-component-hash'
- (setq ret (ergoemacs-gethash map ergoemacs-component-hash))
- (when (and ret (functionp ret))
- (funcall ret)
- (setq ret (ergoemacs-gethash map ergoemacs-component-hash))))
- (if (and map (string-match-p "::" map)) ret
- (ergoemacs-component-struct--lookup-closest ret version))))))
-
-(defvar ergoemacs-component-struct--get-keymap nil)
-(defvar ergoemacs-component-struct--get-keymap-extra nil)
-(defun ergoemacs-component-struct--lookup-list (lookup-keymap &optional layout
obj map-list)
- "Get list of extra maps based on LOOKUP-KEYMAP.
-
-The LAYOUT argument specifies the ergoemacs layout to use.
-Otherwise, the layout used is `ergoemacs-keyboard-layout'.
-
-The OBJ list is the list of ergoemacs theme components to use.
-If it is nil, it is the components specifed by
-`ergoemacs-theme-components'.
-
-The MAP-LIST is the list symbols that LOOKUP-KEYMAP is bound to.
-If unspecified, use `ergoemacs-map-properties--map-list' to try
-to figure out what variables LOOKUP-KEYMAP is bound to."
- (let ((obj (ergoemacs-component-struct--lookup-hash (or obj (reverse
(ergoemacs-theme-components)))))
- (cur-layout (or layout ergoemacs-keyboard-layout))
- (map-list (or map-list (ergoemacs lookup-keymap :map-list)))
- ;; (ergoemacs-component-struct--lookup-list org-mode-map)
- extra-hash
- ret extra-map)
- (if (consp obj)
- (dolist (cobj obj)
- (setq extra-hash (ergoemacs-component-struct-maps cobj))
- (dolist (map-name map-list)
- (setq extra-map (ergoemacs-gethash map-name extra-hash))
- (when extra-map
- (push (ergoemacs-component-struct--get cobj cur-layout map-name
extra-map) ret)))))
- ret))
-
-(defun ergoemacs-component-struct--get (map cur-layout &optional lookup-key
translate-map)
- "Get component MAP and return keymap updating MAP cache.
-
-CUR-LAYOUT is the current keymboard layout used.
-
-This keymap is cached using LOOKUP-KEY.
-
-The keymap to translate is TRANSLATE-MAP, otherwise it is the
-`ergoemacs-component-struct-map' for MAP."
- (let* (ret
- (cmap (or translate-map (ergoemacs-component-struct-map map)))
- (just-first-keys (ergoemacs-component-struct-just-first-keys map))
- (variable-modifiers (ergoemacs-component-struct-variable-modifiers
map))
- (variable-prefixes (ergoemacs-component-struct-variable-prefixes map))
- (layout-from (ergoemacs-component-struct-layout map))
- (hash (ergoemacs-component-struct-calculated-layouts map)))
- (cond
- ((string= layout-from cur-layout)
- (setq ret (copy-keymap cmap))
- ret)
- ((setq ret (ergoemacs-gethash (list lookup-key (intern cur-layout)) hash))
- ret)
- (t
- (setq ergoemacs-component-struct--get-keymap (make-sparse-keymap))
- (ergoemacs-map-keymap
- (lambda (key item)
- (if (consp key)
- (ergoemacs-warn "Keymap range currently not supported %s,%s" key
item)
- (unless (eq item 'ergoemacs-prefix)
- (ergoemacs :define-key
- ergoemacs-component-struct--get-keymap
- (ergoemacs-translate
- key just-first-keys variable-modifiers
- variable-prefixes cur-layout layout-from) item))))
- cmap)
- (setq ret (copy-keymap ergoemacs-component-struct--get-keymap))
- (ergoemacs ret :label (list (or lookup-key (ergoemacs (ergoemacs
:global-map) :key-hash)) (intern (format "%s%s"
(ergoemacs-component-struct-name map) (or (ergoemacs-component-struct-version
map) ""))) (intern cur-layout)))
- (puthash (list lookup-key (intern cur-layout)) ret hash)
- (setq ergoemacs-component-struct--get-keymap nil)
- ret))))
-
-(defun ergoemacs-component-struct--minor-mode-map-alist-hash (&optional obj
layout)
- "Get `minor-mode-map-alist' additions in hash-table form.
-
-OBJ is the ergoemacs theme components. Defaults to the value
-returned from the function `ergoemacs-theme-components'.
-
-LAYOUT is the current keyboard layout. Defaults to
-`ergoemacs-keyboard-layout'"
- (let ((obj (ergoemacs-component-struct--lookup-hash (or obj
(ergoemacs-theme-components))))
- (cur-layout (or layout ergoemacs-keyboard-layout))
- (hash (make-hash-table)))
- (cond
- ((consp obj)
- (dolist (cur-obj obj)
- (maphash
- (lambda(key value)
- (puthash key (append (ergoemacs-gethash key hash) value) hash))
- (ergoemacs-component-struct--minor-mode-map-alist-hash cur-obj)))
- hash)
- (t
- (maphash
- (lambda(key value)
- ;; Put the translated keymap in a list in the hash.
- (puthash key (list (ergoemacs-component-struct--get obj cur-layout
(list 'cond-map key) value)) hash))
- (ergoemacs-component-struct-cond-maps obj))
- hash))))
-
-
-(defvar ergoemacs-component-struct--unbound-maps nil)
-
-(defun ergoemacs-component-struct--minor-mode-map-alist (&optional obj)
- "Get the ending maps for `minor-mode-map-alist' using the ergoemacs
structures OBJ."
- (let (ret map parent)
- (maphash
- (lambda(key value)
- (setq parent (make-composed-keymap value)
- map (make-sparse-keymap))
- (ergoemacs map :label (list 'cond-map key (intern
ergoemacs-keyboard-layout)))
- (set-keymap-parent map parent)
- (if (boundp key)
- (push (cons key map) ret)
- (push (cons key map) ergoemacs-component-struct--unbound-maps)))
- (ergoemacs-component-struct--minor-mode-map-alist-hash obj))
- ret))
-
-(defun ergoemacs-component-struct--hooks (&optional obj ret)
- "Gets a list of hooks that need to be defined eor OBJ.
-
-You can prespecify RET so that new hooks are pushed to the list."
- (let ((obj (ergoemacs-component-struct--lookup-hash (or obj
(ergoemacs-theme-components))))
- tmp
- (ret ret))
- (cond
- ((consp obj)
- (dolist (cur-obj obj)
- (setq ret (ergoemacs-component-struct--hooks cur-obj ret)))
- ret)
- (t
- (when (and (setq tmp (ergoemacs-component-struct-hook-maps obj))
- (hash-table-p tmp))
- (maphash
- (lambda(hook _value)
- (cl-pushnew hook ret))
- tmp))
- ret))))
-
-(defun ergoemacs-component-struct--hook-hash (hook &optional layout obj)
- "Get HOOK hash.
-
-LAYOUT is the keyboard layout, defaulting to `ergoemacs-keyboard-layout'.
-
-OBJ is the theme components, defaulting to `ergoemacs-theme-components'."
- (let ((obj (ergoemacs-component-struct--lookup-hash (or obj
(ergoemacs-theme-components))))
- (cur-layout (or layout ergoemacs-keyboard-layout))
- tmp
- (hash (make-hash-table)))
- (cond
- ((consp obj)
- (dolist (cur-obj obj)
- (maphash
- (lambda(key value)
- (puthash key (append (ergoemacs-gethash key hash) value) hash))
- (ergoemacs-component-struct--hook-hash hook layout cur-obj)))
- hash)
- (t
- (when (and (setq tmp (ergoemacs-gethash hook
(ergoemacs-component-struct-hook-maps obj)))
- (hash-table-p tmp))
- (maphash
- (lambda(key value)
- ;; Put the translated keymap in a list in the hash.
- (puthash key (list (ergoemacs-component-struct--get obj cur-layout
(list 'hook-maps hook key) value)) hash))
- tmp))
- hash))))
-
-(defun ergoemacs-component-struct--hook (hook &optional layout obj)
- "Get keymaps applied in an alist similiar to `minor-mode-map-alist'.
-
-The `car' of the alist should be the keymap that should be
-modified, the `cdr' of the alsit should be the keymap that should
-be composed over the keymap. This is done in
-`ergoemacs-component-struct--composed--composed-hook'.
-
-HOOK is the hook that is being run. In the
-`ergoemacs-theme-component', these are defined as:
-
-\(when icicle-minibuffer-setup-hook
- ...)
-
-LAYOUT is the current keyboard layout, or the layout of the
-current keyboard theme.
-
-OBJ is the curent ergoemacs-mode object being modified."
- (let* (ret tmp label parent)
- (maphash
- (lambda(key value)
- (setq tmp (when (ergoemacs-keymapp (ergoemacs-sv key))
- (ergoemacs-sv key))
- label (list 'hook-maps key (or layout ergoemacs-keyboard-layout)
(if tmp t nil))
- parent (make-composed-keymap value tmp)
- tmp (make-sparse-keymap))
- (ergoemacs tmp :label label)
- (set-keymap-parent tmp parent)
- (push (cons key tmp) ret))
- (ergoemacs-component-struct--hook-hash hook layout obj))
- ret))
-
-(defvar ergoemacs-component-struct--composed-hook-minibuffer nil
- "`ergoemacs-mode' hooks deferred until after `ergoemacs-mode' modifies the
current minibuffer map.")
-
-(defun ergoemacs-component-struct--composed-hook (hook &optional layout obj)
- "Apply keymaps defined in HOOK.
-
-LAYOUT is the current keyboard layout.
-
-OBJ is the current object being modified, passed to
-`ergoemacs-component-struct--hook'."
- (dolist (elt (ergoemacs-component-struct--hook hook layout obj))
- (if (minibufferp)
- (progn
- (unless ergoemacs-command-loop--minibuffer-unsupported-p
- (catch 'unsupported-p
- (dolist (elt (ergoemacs-component-struct--lookup-hash (or obj
(ergoemacs-theme-components))))
- (let ((plist (gethash hook
(ergoemacs-component-struct-hook-plists elt))))
- (when (and plist (plist-get plist
:command-loop-unsupported-p))
- (ergoemacs-save-buffer-state
- (set (make-local-variable
'ergoemacs-command-loop--minibuffer-unsupported-p) t))
- (throw 'unsupported-p t))))))
- (if ergoemacs-component-struct--composed-hook-minibuffer
- (push elt ergoemacs-component-struct--composed-hook-minibuffer)
- (ergoemacs-save-buffer-state
- (set (make-local-variable
'ergoemacs-component-struct--composed-hook-minibuffer)
- (list elt)))))
- (ergoemacs-save-buffer-state
- (set (make-local-variable (car elt)) (make-composed-keymap (cdr elt)
(symbol-value (car elt))))))))
-
-(defvar ergoemacs-component-struct--refresh-variables nil
- "To reset a current theme, the variables are refreshed when this is
non-nil.")
-
-;;; Change variable values.
-(defun ergoemacs-component-struct--set (symbol newval &optional hook object)
- "Set variables up for components.
-
-SYMBOL is the symbol being set.
-
-NEWVAL is the new value that will be used.
-
-HOOK tells if this was called in the (with ..-hook ...) syntax.
-
-OBJECT is the object being modified, defaulting to
-`ergoemacs-component-struct--define-key-current'."
- (cond
- ((and (not ergoemacs-component-struct--define-key-current) (not object)) ;;
Old
- (error "`ergoemacs-component-struct--set' is confused"))
- (t
- (let ((obj (or object ergoemacs-component-struct--define-key-current)))
- (if (not (ergoemacs-component-struct-p obj))
- (error "OBJECT is not an ergoemacs-component-structure")
- (push (list symbol newval hook) (ergoemacs-component-struct-variables
obj)))))))
-
-(defun ergoemacs-component-struct--deferred (what &optional object)
- "Setup deferred initilizations.
-
-WHAT is the defered initilization list.
-
-OBJECT is the `ergoemacs-component-struct' object being changed."
- (cond
- ((and (not ergoemacs-component-struct--define-key-current) (not object)) ;;
Old
- (error "`ergoemacs-component-struct--deferred' is confused"))
- (t
- (let ((obj (or object ergoemacs-component-struct--define-key-current)))
- (if (not (ergoemacs-component-struct-p obj))
- (error "OBJECT is not an ergoemacs-component-structure")
- (push (list what nil nil) (ergoemacs-component-struct-variables
obj)))))))
-
-(defvar ergoemacs-component-struct--refresh-variables nil)
-
-(defun ergoemacs-component-at-point (&optional theme-instead)
- "Get the `ergoemacs-component' defined at or before point.
-
-When THEME-INSTEAD is non-nil, return the theme defined at that
-point instead.
-
-Return 0 if there is no such symbol. Based on
-`variable-at-point'."
- (let ((hash-table (or (and theme-instead ergoemacs-theme-hash)
- ergoemacs-component-hash)))
- (with-syntax-table emacs-lisp-mode-syntax-table
- (or (condition-case ()
- (save-excursion
- (skip-chars-forward "'")
- (or (not (zerop (skip-syntax-backward "_w")))
- (eq (char-syntax (following-char)) ?w)
- (eq (char-syntax (following-char)) ?_)
- (forward-sexp -1))
- (skip-chars-forward "'")
- (let ((obj (read (current-buffer))))
- (and (symbolp obj)
- (ergoemacs-gethash (symbol-name obj) hash-table) obj)))
- (error nil))
- (let* ((str (find-tag-default))
- (sym (if str (intern str))))
- (if (and sym (ergoemacs-gethash (symbol-name sym) hash-table))
- sym
- (save-match-data
- (when (and str (string-match "\\`\\W*\\(.*?\\)\\W*\\'" str))
- (setq sym (intern (match-string 1 str)))
- (and (ergoemacs-gethash (symbol-name sym) hash-table)
sym)))))
- 0))))
-
-(provide 'ergoemacs-component)
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; ergoemacs-component.el ends here
-;; Local Variables:
-;; coding: utf-8-emacs
-;; End:
diff --git a/ergoemacs-mode.el b/ergoemacs-mode.el
index 52e13ac..e232577 100644
--- a/ergoemacs-mode.el
+++ b/ergoemacs-mode.el
@@ -57,8 +57,6 @@
(defvar ergoemacs--system (replace-regexp-in-string "[^0-9A-Za-z]+" "-"
(concat emacs-version "-" system-configuration)))
-(defvar cl-struct-ergoemacs-component-struct-tags)
-(defvar ergoemacs-component-struct--refresh-variables)
(defvar ergoemacs-keyboard-layout)
(defvar ergoemacs-map--hashkey)
(defvar ergoemacs-require--ini-p)
@@ -75,7 +73,6 @@
(declare-function ergoemacs-theme--custom-documentation
"ergoemacs-theme-engine")
(declare-function ergoemacs-theme--customization-type "ergoemacs-theme-engine")
-(declare-function ergoemacs-theme-components "ergoemacs-theme-engine")
(declare-function ergoemacs-translate--meta-to-escape "ergoemacs-translate")
@@ -257,29 +254,6 @@ variable `ergoemacs-after-load-functions'."
(run-hook-with-args 'ergoemacs-after-load-functions absoulte-file-name))
-(defcustom ergoemacs-theme-options
- '()
- "List of theme options."
- :type '(repeat
- (list
- (sexp :tag "Theme Component")
- (choice
- (const :tag "Force Off" off)
- (const :tag "Force On" on)
- (const :tag "Let theme decide" nil))))
- :group 'ergoemacs-themes)
-
-(defcustom ergoemacs-theme-version
- '()
- "Each themes set version."
- :type '(repeat
- (list
- (string :tag "Theme Component")
- (choice
- (const :tag "Latest Version" nil)
- (string :tag "Version"))))
- :group 'ergoemacs-theme)
-
(defvar ergoemacs-mode--default-frame-alist nil
"List that saves default frame parameters.")
@@ -308,10 +282,7 @@ The `execute-extended-command' is now
\\[execute-extended-command].
:group 'ergoemacs-mode
(setq ergoemacs-mode--start-p t)
(setq ergoemacs-map--hashkey nil)
-
- (let ((refresh-p ergoemacs-component-struct--refresh-variables))
- ;; Turn on
- (if ergoemacs-mode
+ (if ergoemacs-mode
(progn
;; Save frame parameters
(run-hooks 'ergoemacs-mode-startup-hook)
@@ -344,10 +315,7 @@ The `execute-extended-command' is now
\\[execute-extended-command].
;;(define-key ergoemacs-translate--parent-map [menu]
'ergoemacs-command-loop--swap-translation)
(when ergoemacs-mode-turn-on-cua-mode
(cua-mode 1))
-
- (if refresh-p
- (message "Ergoemacs-mode keys refreshed (%s)"
ergoemacs-keyboard-layout)
- (message "Ergoemacs-mode turned ON (%s)."
ergoemacs-keyboard-layout)))
+ (message "Ergoemacs-mode turned ON (%s)."
ergoemacs-keyboard-layout))
;; Turn off
;; Restore frame parameters
(modify-all-frames-parameters ergoemacs-mode--default-frame-alist)
@@ -363,7 +331,6 @@ The `execute-extended-command' is now
\\[execute-extended-command].
(setq isearch-mode-map (copy-keymap isearch-mode-map-ergoemacs))
(unless refresh-p
(message "Ergoemacs-mode turned OFF."))))
- (setq ergoemacs-mode-started-p t))
(defvar ergoemacs--gzip (executable-find "gzip")
"Gzip location.")
@@ -565,7 +532,7 @@ When STORE-P is non-nil, save the tables."
(dolist (pkg '(ergoemacs-command-loop
ergoemacs-advice
- ergoemacs-component
+ ;ergoemacs-component
ergoemacs-functions
ergoemacs-key-description
ergoemacs-layouts
diff --git a/ergoemacs-theme-engine.el b/ergoemacs-theme-engine.el
index 7baf026..eb91156 100644
--- a/ergoemacs-theme-engine.el
+++ b/ergoemacs-theme-engine.el
@@ -200,21 +200,6 @@ Return 0 if there is no such symbol. Uses
`ergoemacs-component-at-point'."
(ergoemacs-component-at-point t))
-(defcustom ergoemacs-theme-find-regexp
- (concat"^\\s-*(ergoemacs-theme" find-function-space-re "%s\\(\\s-\\|$\\)")
- "The regexp to search for a component definition.
-
-This is used by `ergoemacs-find-theme'.
-
-Note it must contain a `%s' at the place where `format'
-should insert the face name."
- :type 'regexp
- :group 'find-function
- :version "22.1")
-
-(unless (assoc 'ergoemacs-theme find-function-regexp-alist)
- (push (cons 'ergoemacs-theme 'ergoemacs-theme-find-regexp)
find-function-regexp-alist))
-
(define-button-type 'ergoemacs-theme-help
:supertype 'help-xref
'help-function #'ergoemacs-theme-describe
- [elpa] externals/ergoemacs-mode 6f703fe 235/325: Remove ergoemacs-advice, (continued)
- [elpa] externals/ergoemacs-mode 6f703fe 235/325: Remove ergoemacs-advice, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode d0004ec 241/325: Remove more -map functions, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode ea88aad 247/325: Add back the command loop, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode d43bb0a 248/325: Fix command loop, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 87b722e 251/325: Make calculate ergoemacs bindings an interactive function, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 4c1fe49 252/325: Fix some issues, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode b7f909a 254/325: Some fixes, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode f28dc66 255/325: Add some active keymaps to ergoemacs-mode (like before), Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode ecb9ac7 256/325: Align some more of the keys with what was there before. Add redo, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 9e58dd5 261/325: Simplify, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode b4b14f2 260/325: Remove ergoemacs-component,
Stefan Monnier <=
- [elpa] externals/ergoemacs-mode bde293e 263/325: Drop cache and hashkey, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 4250fae 267/325: Remove more outdated keys, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode b815b1d 273/325: Merge branch 'master' of https://github.com/mattfidler/ergoemacs-mode into mattfidler-master, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode f46ac1c 276/325: Fix typo, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode e81daf4 283/325: Require comit-mode See #505, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode d7b86f6 279/325: Add urgoemacs-redo that requires undo-fu or emacs 28, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 2fcad48 282/325: Allow toggling of ergoemacs-mode-term-raw-mode, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 59c8ab0 285/325: Remove ergoemacs substitute command keys, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 1ef93b5 277/325: Add major modes menu again, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 821a910 287/325: Fix undo-fu, Stefan Monnier, 2021/10/23