unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#66755: 30.0.50; how do i lookup a key but also respect key translations?
@ 2023-10-26  3:57 StrawberryTea
  2023-10-26  7:22 ` Eli Zaretskii
  2024-01-11  3:41 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 4+ messages in thread
From: StrawberryTea @ 2023-10-26  3:57 UTC (permalink / raw)
  To: 66755


Hello. So I am trying to define a function which obtains the command
that would be called if 'corfu-mode' was not enabled:

(defun +corfu--get-passthrough-command ()
  (keymap-lookup
   (thread-last
     (current-active-maps t)
     (delq corfu-map)
     (delq (and (featurep 'evil)
                (evil-get-auxiliary-keymap corfu-map evil-state))))
   (key-description (this-command-keys-vector))))

But the issue is basically that

(keymap-lookup (current-active-maps t)
    (key-description (vector 'backspace)))

returns nil whereas

(keymap-lookup (current-active-maps t) (key-description (vector ?\C-?)))

returns 'lispy-delete-backward' which is the command I actually want
returned. When I run 'describe-key-briefly' and type <backspace>, I get

DEL (translated from <backspace>) runs the command lispy-delete-backward

but I don't know how to look up that translation from Elisp. I looked at
the code for 'help.el' and found the above description comes from
'read-key-sequence' returning 'C-?' and 'this-single-command-raw-keys'
returning '[backspace]' but 'read-key-sequence' is defined in C and I
don't know how trigger it's translation logic programmatically from
Elisp.


In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.18.0) of 2023-10-25 built on hydrogen
Repository revision: b36e2b1772680b8fce067c6ea2cdf582af982aaa
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101008
System Description: Gentoo Linux

Configured using:
 'configure --prefix=/usr --build=x86_64-pc-linux-gnu
 --host=x86_64-pc-linux-gnu --mandir=/usr/share/man
 --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc
 --localstatedir=/var/lib --datarootdir=/usr/share
 --disable-silent-rules --docdir=/usr/share/doc/emacs-30.0.9999
 --htmldir=/usr/share/doc/emacs-30.0.9999/html --libdir=/usr/lib64
 --program-suffix=-emacs-30-vcs --includedir=/usr/include/emacs-30-vcs
 --infodir=/usr/share/info/emacs-30-vcs --localstatedir=/var
 --enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp
 --without-compress-install --without-hesiod --without-pop
 --with-file-notification=inotify --with-pdumper --enable-acl
 --enable-xattr --with-dbus --with-modules --with-gameuser=:gamestat
 --with-libgmp --without-gpm --with-native-compilation=aot --with-json
 --without-kerberos --without-kerberos5 --with-lcms2 --with-xml2
 --with-mailutils --without-selinux --without-small-ja-dic
 --with-sqlite3 --with-gnutls --with-libsystemd --with-threads
 --with-tree-sitter --without-wide-int --with-sound=no --with-zlib
 --with-x --without-pgtk --without-ns --without-gconf
 --without-gsettings --without-toolkit-scroll-bars --with-xpm --with-xft
 --with-cairo --with-harfbuzz --with-libotf --with-m17n-flt
 --with-x-toolkit=lucid --with-xaw3d --with-gif --with-jpeg --with-png
 --with-rsvg --with-tiff --with-webp --with-imagemagick
 --with-dumping=pdumper 'CFLAGS=-Ofast -fno-finite-math-only
 -fomit-frame-pointer -march=skylake -malign-data=cacheline -pipe
 -fgraphite-identity -floop-nest-optimize -fira-region=mixed
 -fira-algorithm=CB -fira-hoist-pressure -fira-loop-pressure'
 LDFLAGS=-Wl,--as-needed'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ IMAGEMAGICK JPEG
JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SQLITE3 THREADS TIFF TREE_SITTER WEBP
X11 XAW3D XDBE XIM XINPUT2 XPM LUCID ZLIB

Important settings:
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: ELisp/l

Minor modes in effect:
  global-display-fill-column-indicator-mode: t
  display-fill-column-indicator-mode: t
  dap-tooltip-mode: t
  dap-ui-mode: t
  treemacs-filewatch-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: t
  dap-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  TeX-PDF-mode: t
  TeX-source-correlate-mode: t
  parrot-mode: t
  global-anzu-mode: t
  anzu-mode: t
  midnight-mode: t
  pomm-mode-line-mode: t
  pdf-occur-global-minor-mode: t
  org-ai-global-mode: t
  async-bytecomp-package-mode: t
  mu4e-modeline-mode: t
  eat-eshell-visual-command-mode: t
  eat-eshell-mode: t
  auto-sudoedit-mode: t
  diff-hl-flydiff-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  projectile-mode: t
  diff-hl-mode: t
  whitespace-mode: t
  flycheck-posframe-mode: t
  lispyville-mode: t
  lispy-mode: t
  delete-selection-mode: t
  org-roam-db-autosync-mode: t
  eros-mode: t
  nameless-mode: t
  rxt-mode: t
  +emacs-lisp-non-package-mode: t
  +emacs-lisp--flycheck-non-package-mode: t
  highlight-quoted-mode: t
  rainbow-delimiters-mode: t
  outline-minor-faces-mode: t
  outline-minor-mode: t
  vi-tilde-fringe-mode: t
  highlight-numbers-mode: t
  display-line-numbers-mode: t
  hl-todo-mode: t
  copilot-mode: t
  recentf-mode: t
  save-place-mode: t
  global-so-long-mode: t
  global-git-commit-mode: t
  envrc-global-mode: t
  envrc-mode: t
  beacon-mode: t
  global-wakatime-mode: t
  wakatime-mode: t
  winum-mode: t
  which-key-mode: t
  savehist-mode: t
  server-mode: t
  better-jumper-mode: t
  better-jumper-local-mode: t
  vertico-multiform-mode: t
  vertico-mouse-mode: t
  vertico-mode: t
  nerd-icons-completion-mode: t
  marginalia-mode: t
  evil-goggles-mode: t
  evil-snipe-override-mode: t
  evil-snipe-mode: t
  evil-snipe-override-local-mode: t
  evil-snipe-local-mode: t
  evil-owl-mode: t
  repeat-mode: t
  restore-point-mode: t
  kill-ring-deindent-mode: t
  aas-global-mode: t
  aas-mode: t
  beginend-global-mode: t
  beginend-prog-mode: t
  gcmh-mode: t
  winner-mode: t
  smartparens-global-mode: t
  corfu-history-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  corfu-mode: t
  undo-fu-session-global-mode: t
  undo-fu-session-mode: t
  undo-fu-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  editorconfig-mode: t
  global-yank-indent-mode: t
  yank-indent-mode: t
  persp-mode: t
  minions-mode: t
  evil-mode: t
  evil-local-mode: t
  +popup-mode: t
  override-global-mode: t
  general-override-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  window-divider-mode: t
  undelete-frame-mode: t
  minibuffer-regexp-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  abbrev-mode: t

Load-path shadows:
/home/st/.config/emacs/.local/straight/build-30.0.50/ivy/elpa hides /home/st/.config/emacs/.local/straight/build-30.0.50/lispy/elpa
/home/st/.config/emacs/.local/straight/build-30.0.50/ef-themes/theme-loaddefs hides /home/st/.config/emacs/.local/straight/build-30.0.50/standard-themes/theme-loaddefs
/home/st/.config/emacs/.local/straight/build-30.0.50/ef-themes/theme-loaddefs hides /home/st/.config/emacs/.local/straight/build-30.0.50/modus-themes/theme-loaddefs
/home/st/.config/emacs/.local/straight/build-30.0.50/evil-visual-mark-mode/evil-visual-mark-mode hides /home/st/.config/emacs/.local/elpa/evil-visual-mark-mode-20230202.318/evil-visual-mark-mode
/home/st/.config/emacs/.local/straight/build-30.0.50/evil-visual-mark-mode/evil-visual-mark-mode-autoloads hides /home/st/.config/emacs/.local/elpa/evil-visual-mark-mode-20230202.318/evil-visual-mark-mode-autoloads
/home/st/.config/emacs/.local/straight/build-30.0.50/dash/dash hides /home/st/.config/emacs/.local/elpa/dash-20230714.723/dash
/home/st/.config/emacs/.local/straight/build-30.0.50/dash/dash-autoloads hides /home/st/.config/emacs/.local/elpa/dash-20230714.723/dash-autoloads
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-vars hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-vars
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-types hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-types
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-states hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-states
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-search hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-search
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-repeat hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-repeat
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-maps hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-maps
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-macros hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-macros
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-keybindings hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-keybindings
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-jumps hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-jumps
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-integration hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-integration
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-ex hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-ex
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-digraphs hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-digraphs
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-development hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-development
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-core hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-core
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-common hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-common
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-commands hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-commands
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-command-window hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-command-window
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-autoloads hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-autoloads
/home/st/.config/emacs/.local/straight/build-30.0.50/evil/evil-pkg hides /home/st/.config/emacs/.local/elpa/evil-20230919.2206/evil-pkg
/home/st/.config/emacs/.local/straight/build-30.0.50/goto-chg/goto-chg hides /home/st/.config/emacs/.local/elpa/goto-chg-20220107.1733/goto-chg
/home/st/.config/emacs/.local/straight/build-30.0.50/goto-chg/goto-chg-autoloads hides /home/st/.config/emacs/.local/elpa/goto-chg-20220107.1733/goto-chg-autoloads
/home/st/.config/emacs/.local/straight/build-30.0.50/yasnippet-capf/yasnippet-capf hides /home/st/.config/emacs/.local/elpa/yasnippet-capf-20230813.1906/yasnippet-capf
/home/st/.config/emacs/.local/straight/build-30.0.50/yasnippet-capf/yasnippet-capf-autoloads hides /home/st/.config/emacs/.local/elpa/yasnippet-capf-20230813.1906/yasnippet-capf-autoloads
/home/st/.config/emacs/.local/straight/build-30.0.50/yasnippet/yasnippet hides /home/st/.config/emacs/.local/elpa/yasnippet-20200604.246/yasnippet
/home/st/.config/emacs/.local/straight/build-30.0.50/yasnippet/yasnippet-autoloads hides /home/st/.config/emacs/.local/elpa/yasnippet-20200604.246/yasnippet-autoloads
/home/st/.config/emacs/.local/straight/build-30.0.50/cmake-mode/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/home/st/.config/emacs/.local/straight/build-30.0.50/cmake-mode/cmake-mode hides /usr/share/emacs/site-lisp/cmake/cmake-mode
/home/st/.config/emacs/.local/straight/build-30.0.50/dash/dash hides /usr/share/emacs/site-lisp/dash/dash
/usr/share/emacs/site-lisp/desktop-entry-mode hides /usr/share/emacs/site-lisp/desktop-file-utils/desktop-entry-mode
/home/st/.config/emacs/.local/straight/build-30.0.50/epl/epl hides /usr/share/emacs/site-lisp/epl/epl
/home/st/.config/emacs/.local/straight/build-30.0.50/flycheck/flycheck hides /usr/share/emacs/site-lisp/flycheck/flycheck
/home/st/.config/emacs/.local/straight/build-30.0.50/flycheck/flycheck-autoloads hides /usr/share/emacs/site-lisp/flycheck/flycheck-autoloads
/home/st/.config/emacs/.local/straight/build-30.0.50/pkg-info/pkg-info hides /usr/share/emacs/site-lisp/pkg-info/pkg-info
/usr/share/emacs/site-lisp/ratpoison hides /usr/share/emacs/site-lisp/ratpoison/ratpoison
/home/st/.config/emacs/.local/straight/build-30.0.50/bind-key/bind-key hides /usr/share/emacs/30.0.50/lisp/bind-key
/home/st/.config/emacs/.local/straight/build-30.0.50/jsonrpc/jsonrpc hides /usr/share/emacs/30.0.50/lisp/jsonrpc
/home/st/.config/emacs/.local/straight/build-30.0.50/ef-themes/theme-loaddefs hides /usr/share/emacs/30.0.50/lisp/theme-loaddefs
/home/st/.config/emacs/.local/straight/build-30.0.50/transient/transient hides /usr/share/emacs/30.0.50/lisp/transient
/home/st/.config/emacs/.local/straight/build-30.0.50/use-package/use-package-bind-key hides /usr/share/emacs/30.0.50/lisp/use-package/use-package-bind-key
/home/st/.config/emacs/.local/straight/build-30.0.50/use-package/use-package-core hides /usr/share/emacs/30.0.50/lisp/use-package/use-package-core
/home/st/.config/emacs/.local/straight/build-30.0.50/use-package/use-package-delight hides /usr/share/emacs/30.0.50/lisp/use-package/use-package-delight
/home/st/.config/emacs/.local/straight/build-30.0.50/use-package/use-package-diminish hides /usr/share/emacs/30.0.50/lisp/use-package/use-package-diminish
/home/st/.config/emacs/.local/straight/build-30.0.50/use-package/use-package-ensure hides /usr/share/emacs/30.0.50/lisp/use-package/use-package-ensure
/home/st/.config/emacs/.local/straight/build-30.0.50/use-package/use-package-jump hides /usr/share/emacs/30.0.50/lisp/use-package/use-package-jump
/home/st/.config/emacs/.local/straight/build-30.0.50/use-package/use-package-lint hides /usr/share/emacs/30.0.50/lisp/use-package/use-package-lint
/home/st/.config/emacs/.local/straight/build-30.0.50/use-package/use-package hides /usr/share/emacs/30.0.50/lisp/use-package/use-package
/home/st/.config/emacs/.local/straight/build-30.0.50/project/project hides /usr/share/emacs/30.0.50/lisp/progmodes/project
/home/st/.config/emacs/.local/straight/build-30.0.50/xref/xref hides /usr/share/emacs/30.0.50/lisp/progmodes/xref
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-C hides /usr/share/emacs/30.0.50/lisp/org/ob-C
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-awk hides /usr/share/emacs/30.0.50/lisp/org/ob-awk
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-calc hides /usr/share/emacs/30.0.50/lisp/org/ob-calc
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-clojure hides /usr/share/emacs/30.0.50/lisp/org/ob-clojure
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-core hides /usr/share/emacs/30.0.50/lisp/org/ob-core
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-ditaa hides /usr/share/emacs/30.0.50/lisp/org/ob-ditaa
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-dot hides /usr/share/emacs/30.0.50/lisp/org/ob-dot
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-emacs-lisp hides /usr/share/emacs/30.0.50/lisp/org/ob-emacs-lisp
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-eshell hides /usr/share/emacs/30.0.50/lisp/org/ob-eshell
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-exp hides /usr/share/emacs/30.0.50/lisp/org/ob-exp
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-forth hides /usr/share/emacs/30.0.50/lisp/org/ob-forth
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-gnuplot hides /usr/share/emacs/30.0.50/lisp/org/ob-gnuplot
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-haskell hides /usr/share/emacs/30.0.50/lisp/org/ob-haskell
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-julia hides /usr/share/emacs/30.0.50/lisp/org/ob-julia
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-lilypond hides /usr/share/emacs/30.0.50/lisp/org/ob-lilypond
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-lisp hides /usr/share/emacs/30.0.50/lisp/org/ob-lisp
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-lob hides /usr/share/emacs/30.0.50/lisp/org/ob-lob
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-makefile hides /usr/share/emacs/30.0.50/lisp/org/ob-makefile
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-octave hides /usr/share/emacs/30.0.50/lisp/org/ob-octave
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-perl hides /usr/share/emacs/30.0.50/lisp/org/ob-perl
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-plantuml hides /usr/share/emacs/30.0.50/lisp/org/ob-plantuml
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-processing hides /usr/share/emacs/30.0.50/lisp/org/ob-processing
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-python hides /usr/share/emacs/30.0.50/lisp/org/ob-python
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-ref hides /usr/share/emacs/30.0.50/lisp/org/ob-ref
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-ruby hides /usr/share/emacs/30.0.50/lisp/org/ob-ruby
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-R hides /usr/share/emacs/30.0.50/lisp/org/ob-R
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-comint hides /usr/share/emacs/30.0.50/lisp/org/ob-comint
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-css hides /usr/share/emacs/30.0.50/lisp/org/ob-css
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-eval hides /usr/share/emacs/30.0.50/lisp/org/ob-eval
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-fortran hides /usr/share/emacs/30.0.50/lisp/org/ob-fortran
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-groovy hides /usr/share/emacs/30.0.50/lisp/org/ob-groovy
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-java hides /usr/share/emacs/30.0.50/lisp/org/ob-java
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-latex hides /usr/share/emacs/30.0.50/lisp/org/ob-latex
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-lua hides /usr/share/emacs/30.0.50/lisp/org/ob-lua
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-matlab hides /usr/share/emacs/30.0.50/lisp/org/ob-matlab
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-maxima hides /usr/share/emacs/30.0.50/lisp/org/ob-maxima
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-ocaml hides /usr/share/emacs/30.0.50/lisp/org/ob-ocaml
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-org hides /usr/share/emacs/30.0.50/lisp/org/ob-org
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-js hides /usr/share/emacs/30.0.50/lisp/org/ob-js
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-sass hides /usr/share/emacs/30.0.50/lisp/org/ob-sass
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-scheme hides /usr/share/emacs/30.0.50/lisp/org/ob-scheme
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-screen hides /usr/share/emacs/30.0.50/lisp/org/ob-screen
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-sed hides /usr/share/emacs/30.0.50/lisp/org/ob-sed
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-shell hides /usr/share/emacs/30.0.50/lisp/org/ob-shell
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-sql hides /usr/share/emacs/30.0.50/lisp/org/ob-sql
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-sqlite hides /usr/share/emacs/30.0.50/lisp/org/ob-sqlite
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-table hides /usr/share/emacs/30.0.50/lisp/org/ob-table
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob-tangle hides /usr/share/emacs/30.0.50/lisp/org/ob-tangle
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ob hides /usr/share/emacs/30.0.50/lisp/org/ob
/home/st/.config/emacs/.local/straight/build-30.0.50/org/oc-basic hides /usr/share/emacs/30.0.50/lisp/org/oc-basic
/home/st/.config/emacs/.local/straight/build-30.0.50/org/oc-biblatex hides /usr/share/emacs/30.0.50/lisp/org/oc-biblatex
/home/st/.config/emacs/.local/straight/build-30.0.50/org/oc-bibtex hides /usr/share/emacs/30.0.50/lisp/org/oc-bibtex
/home/st/.config/emacs/.local/straight/build-30.0.50/org/oc-csl hides /usr/share/emacs/30.0.50/lisp/org/oc-csl
/home/st/.config/emacs/.local/straight/build-30.0.50/org/oc-natbib hides /usr/share/emacs/30.0.50/lisp/org/oc-natbib
/home/st/.config/emacs/.local/straight/build-30.0.50/org/oc hides /usr/share/emacs/30.0.50/lisp/org/oc
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol-bbdb hides /usr/share/emacs/30.0.50/lisp/org/ol-bbdb
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol-bibtex hides /usr/share/emacs/30.0.50/lisp/org/ol-bibtex
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol-docview hides /usr/share/emacs/30.0.50/lisp/org/ol-docview
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol-doi hides /usr/share/emacs/30.0.50/lisp/org/ol-doi
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol-eshell hides /usr/share/emacs/30.0.50/lisp/org/ol-eshell
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol-eww hides /usr/share/emacs/30.0.50/lisp/org/ol-eww
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol-gnus hides /usr/share/emacs/30.0.50/lisp/org/ol-gnus
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol-info hides /usr/share/emacs/30.0.50/lisp/org/ol-info
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol-irc hides /usr/share/emacs/30.0.50/lisp/org/ol-irc
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol-man hides /usr/share/emacs/30.0.50/lisp/org/ol-man
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol-mhe hides /usr/share/emacs/30.0.50/lisp/org/ol-mhe
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol-rmail hides /usr/share/emacs/30.0.50/lisp/org/ol-rmail
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol-w3m hides /usr/share/emacs/30.0.50/lisp/org/ol-w3m
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ol hides /usr/share/emacs/30.0.50/lisp/org/ol
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-agenda hides /usr/share/emacs/30.0.50/lisp/org/org-agenda
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-archive hides /usr/share/emacs/30.0.50/lisp/org/org-archive
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-attach-git hides /usr/share/emacs/30.0.50/lisp/org/org-attach-git
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-attach hides /usr/share/emacs/30.0.50/lisp/org/org-attach
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-capture hides /usr/share/emacs/30.0.50/lisp/org/org-capture
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-clock hides /usr/share/emacs/30.0.50/lisp/org/org-clock
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-colview hides /usr/share/emacs/30.0.50/lisp/org/org-colview
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-compat hides /usr/share/emacs/30.0.50/lisp/org/org-compat
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-crypt hides /usr/share/emacs/30.0.50/lisp/org/org-crypt
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-ctags hides /usr/share/emacs/30.0.50/lisp/org/org-ctags
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-cycle hides /usr/share/emacs/30.0.50/lisp/org/org-cycle
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-datetree hides /usr/share/emacs/30.0.50/lisp/org/org-datetree
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-duration hides /usr/share/emacs/30.0.50/lisp/org/org-duration
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-element hides /usr/share/emacs/30.0.50/lisp/org/org-element
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-entities hides /usr/share/emacs/30.0.50/lisp/org/org-entities
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-faces hides /usr/share/emacs/30.0.50/lisp/org/org-faces
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-feed hides /usr/share/emacs/30.0.50/lisp/org/org-feed
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-fold-core hides /usr/share/emacs/30.0.50/lisp/org/org-fold-core
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-fold hides /usr/share/emacs/30.0.50/lisp/org/org-fold
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-footnote hides /usr/share/emacs/30.0.50/lisp/org/org-footnote
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-goto hides /usr/share/emacs/30.0.50/lisp/org/org-goto
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-habit hides /usr/share/emacs/30.0.50/lisp/org/org-habit
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-id hides /usr/share/emacs/30.0.50/lisp/org/org-id
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-indent hides /usr/share/emacs/30.0.50/lisp/org/org-indent
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-inlinetask hides /usr/share/emacs/30.0.50/lisp/org/org-inlinetask
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-keys hides /usr/share/emacs/30.0.50/lisp/org/org-keys
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-lint hides /usr/share/emacs/30.0.50/lisp/org/org-lint
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-list hides /usr/share/emacs/30.0.50/lisp/org/org-list
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-macro hides /usr/share/emacs/30.0.50/lisp/org/org-macro
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-macs hides /usr/share/emacs/30.0.50/lisp/org/org-macs
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-mobile hides /usr/share/emacs/30.0.50/lisp/org/org-mobile
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-mouse hides /usr/share/emacs/30.0.50/lisp/org/org-mouse
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-num hides /usr/share/emacs/30.0.50/lisp/org/org-num
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-pcomplete hides /usr/share/emacs/30.0.50/lisp/org/org-pcomplete
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-persist hides /usr/share/emacs/30.0.50/lisp/org/org-persist
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-plot hides /usr/share/emacs/30.0.50/lisp/org/org-plot
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-protocol hides /usr/share/emacs/30.0.50/lisp/org/org-protocol
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-refile hides /usr/share/emacs/30.0.50/lisp/org/org-refile
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-src hides /usr/share/emacs/30.0.50/lisp/org/org-src
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-table hides /usr/share/emacs/30.0.50/lisp/org/org-table
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-tempo hides /usr/share/emacs/30.0.50/lisp/org/org-tempo
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-timer hides /usr/share/emacs/30.0.50/lisp/org/org-timer
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-version hides /usr/share/emacs/30.0.50/lisp/org/org-version
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org hides /usr/share/emacs/30.0.50/lisp/org/org
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ox-ascii hides /usr/share/emacs/30.0.50/lisp/org/ox-ascii
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ox-beamer hides /usr/share/emacs/30.0.50/lisp/org/ox-beamer
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ox-html hides /usr/share/emacs/30.0.50/lisp/org/ox-html
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ox-icalendar hides /usr/share/emacs/30.0.50/lisp/org/ox-icalendar
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ox-koma-letter hides /usr/share/emacs/30.0.50/lisp/org/ox-koma-letter
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ox-latex hides /usr/share/emacs/30.0.50/lisp/org/ox-latex
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ox-man hides /usr/share/emacs/30.0.50/lisp/org/ox-man
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ox-md hides /usr/share/emacs/30.0.50/lisp/org/ox-md
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ox-odt hides /usr/share/emacs/30.0.50/lisp/org/ox-odt
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ox-org hides /usr/share/emacs/30.0.50/lisp/org/ox-org
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ox-publish hides /usr/share/emacs/30.0.50/lisp/org/ox-publish
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ox-texinfo hides /usr/share/emacs/30.0.50/lisp/org/ox-texinfo
/home/st/.config/emacs/.local/straight/build-30.0.50/org/ox hides /usr/share/emacs/30.0.50/lisp/org/ox
/home/st/.config/emacs/.local/straight/build-30.0.50/org/org-loaddefs hides /usr/share/emacs/30.0.50/lisp/org/org-loaddefs
/home/st/.config/emacs/.local/straight/build-30.0.50/soap-client/soap-client hides /usr/share/emacs/30.0.50/lisp/net/soap-client
/home/st/.config/emacs/.local/straight/build-30.0.50/soap-client/soap-inspect hides /usr/share/emacs/30.0.50/lisp/net/soap-inspect
/home/st/.config/emacs/.local/straight/build-30.0.50/eldoc/eldoc hides /usr/share/emacs/30.0.50/lisp/emacs-lisp/eldoc
/home/st/.config/emacs/.local/straight/build-30.0.50/seq/seq hides /usr/share/emacs/30.0.50/lisp/emacs-lisp/seq

Features:
(shadow emacsbug vertico-grid consult-imenu url-cache org-clock
orgit-forge elfeed-link org-pdftools pdf-annot facemenu org-noter
org-noter-djvu org-noter-nov evil-collection-nov nov esxml-query
org-noter-pdf org-noter-core orgit ov display-fill-column-indicator
ispell smartparens-c cc-mode-expansions cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine consult-gh-embark
embark-vc evil-collection-embark embark-org embark-consult embark ffap
lsp-jq lsp-zig lsp-tilt lsp-steep lsp-svelte lsp-sqls
lsp-ruby-syntax-tree lsp-ruby-lsp lsp-yaml lsp-xml lsp-vimscript
lsp-vhdl lsp-volar lsp-vetur lsp-html lsp-verilog lsp-vala lsp-v
lsp-typeprof lsp-ttcn3 lsp-toml lsp-terraform lsp-tex lsp-sorbet
lsp-solargraph lsp-semgrep lsp-rust lsp-rubocop lsp-rf lsp-ruff-lsp
lsp-remark lsp-racket lsp-r lsp-purescript lsp-pylsp lsp-pyls lsp-pwsh
lsp-php lsp-pls lsp-perlnavigator lsp-perl lsp-openscad lsp-ocaml
lsp-magik lsp-nix lsp-nim lsp-nginx lsp-move lsp-mint lsp-mdx
lsp-marksman lsp-markdown lsp-lua lsp-kotlin lsp-json lsp-javascript
lsp-idris lsp-haxe lsp-groovy lsp-hack lsp-graphql lsp-glsl lsp-gleam
lsp-go lsp-completion lsp-gdscript lsp-fsharp lsp-fortran lsp-eslint
lsp-erlang lsp-emmet lsp-elixir lsp-elm lsp-dockerfile lsp-dhall lsp-d
lsp-css lsp-csharp lsp-crystal lsp-credo lsp-cmake lsp-clojure
lsp-semantic-tokens lsp-clangd lsp-beancount lsp-bash lsp-astro lsp-awk
lsp-ansible lsp-angular lsp-ada lsp-actionscript lsp-python-ms dap-mouse
dap-ui lsp-treemacs lsp-treemacs-generic lsp-treemacs-themes
treemacs-treelib treemacs-magit treemacs-persp treemacs-projectile
treemacs-evil treemacs-nerd-icons treemacs treemacs-header-line
treemacs-compatibility treemacs-mode treemacs-bookmarks treemacs-tags
treemacs-interface treemacs-persistence treemacs-filewatch-mode
treemacs-follow-mode treemacs-rendering treemacs-annotations
treemacs-async treemacs-workspaces treemacs-dom treemacs-visuals
treemacs-fringe-indicator treemacs-faces treemacs-icons treemacs-scope
treemacs-themes treemacs-core-utils pfuture treemacs-logging
treemacs-customization treemacs-macros gdb-mi gud bui bui-list bui-info
bui-entry bui-core bui-history bui-button bui-utils lsp-lens dap-mode
dap-tasks dap-launch lsp-docker dap-overlays lsp-mode lsp-protocol
network-stream preview reporter desktop frameset adaptive-wrap
evil-embrace evil-surround evil-tex reftex-dcr reftex-auc tex-fold
font-latex latex-mode-expansions auctex-latexmk latex latex-flymake
tex-ispell tex-style tex smartparens-latex tex-mode pcmpl-git
eshell-syntax-highlighting eshell-bookmark eshell-prompt-extras em-pred
evil-collection-git-timemachine git-timemachine org-crypt parrot
parrot-progress parrot-rotate hippie-exp cl-print shortdoc
zone-pgm-spoopy vertico-buffer tramp-cache time-stamp pcmpl-unix
elisp-demos info-colors tramp-cmds org-num backline org-eldoc toc-org
evil-org org-appear greader greader-espeak whisper org-ai iscroll
cdlatex evil-collection-reftex reftex-toc reftex-cite reftex-ref
reftex-parse reftex reftex-loaddefs reftex-vars texmathp org-indent
image-file image-converter cape-char evil-collection-help
fish-completion evil-collection-helpful helpful cc-langs cc-vars cc-defs
trace info-look evil-collection-info info evil-collection-elisp-refs
elisp-refs consult-xref semantic/ia semantic/analyze/refs
semantic/db-find semantic/db-ref semantic/senator semantic/decorate
semantic/analyze semantic/sort semantic/scope semantic/analyze/fcn
semantic/ctxt semantic/format ezimage semantic/tag-ls semantic/find
dumb-jump evil-collection-popup popup elisp-def ert tabify
evil-collection-evil-mc evil-mc evil-mc-command-execute
evil-mc-command-record evil-mc-cursor-make evil-mc-region
evil-mc-cursor-state evil-mc-undo evil-mc-vars evil-mc-known-commands
evil-mc-common evil-anzu anzu dired-aux vc-hg vc-svn diff-hl-dired
diredfl nerd-icons-dired dired-x midnight pomm alert gntp vc-backup
oc-basic ol-bibtex bibtex evil-collection-leetcode leetcode log4e
spinner graphql mm-url password-generator lorem-ipsum zone-nyan esxml
zone-rainbow zone-matrix snow flames-of-freedom fireplace klondike
dunnet bubbles evil-collection-tetris tetris speed-type
evil-collection-snake snake gamegrid neato-graph-bar
evil-collection-daemons daemons evil-collection-disk-usage disk-usage
pulseaudio-control evil-collection-trashed trashed helm-rage helm-utils
helm-help helm-linux-disks linux-disk helm-system-packages consult-gh
pdf-occur evil-collection-tablist tablist tablist-filter
semantic/wisent/comp semantic/wisent semantic/wisent/wisent pdf-isearch
pdf-misc evil-collection-pdf pdf-history pdf-tools saveplace-pdf-view
pdf-view pdf-cache pdf-info pdf-util pdf-macs image-mode exif gnus-srvr
chatgpt-shell shell-maker evil-collection-view view goto-addr ielm
org-ai-oobabooga websocket org-ai-sd org-ai-talk org-ai-on-project
org-ai-useful org-ai-openai-image org-ai-openai org-ai-block helm-emms
helm-adaptive emms-setup emms-mpris emms-librefm-stream
emms-librefm-scrobbler emms-playlist-limit emms-i18n emms-history
emms-stream-info emms-metaplaylist-mode emms-bookmarks emms-cue
emms-mode-line-icon emms-browser sort emms-volume emms-volume-sndioctl
emms-volume-mixerctl emms-volume-pulse emms-volume-amixer
emms-playlist-sort emms-last-played emms-player-xine emms-player-mpd tq
emms-playing-time emms-lyrics emms-url emms-player-simple emms-streams
emms-show-all emms-tag-editor emms-tag-tracktag emms-mark emms-mode-line
emms-info-native emms-info-spc bindat emms-info-exiftool
emms-info-tinytag emms-info-metaflac emms-info-opusinfo
emms-info-ogginfo emms-info-mp3info emms-playlist-mode
emms-source-playlist emms-source-file locate emms-score emms-cache
emms-info emms-later-do evil-collection-emms emms emms-compat somafm
request evil-collection-mpc mpc elfeed-tube elfeed-tube-utils aio
elfeed-org evil-collection-elfeed elfeed-show elfeed-search elfeed-csv
elfeed elfeed-curl elfeed-log elfeed-db elfeed-lib url-queue xml-query
empv consult-flycheck evil-collection-consult consult helm
helm-global-bindings helm-easymenu helm-core async-bytecomp helm-source
helm-multi-match helm-lib org-msg ox-odt rng-loc rng-uri rng-parse
rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok
nxml-util ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox
htmlize gnus-icalendar icalendar diary-lib diary-loaddefs gnus-dired
evil-collection-mu4e mu4e mu4e-org mu4e-notification notifications
mu4e-main mu4e-view mu4e-headers mu4e-compose mu4e-draft mu4e-actions
smtpmail mu4e-search mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message
flow-fill hl-line mu4e-contacts mu4e-update mu4e-folders mu4e-context
mu4e-query-items mu4e-server mu4e-modeline mu4e-vars mu4e-helpers
mu4e-window ido mu4e-obsolete evil-collection-vterm vterm magit-bookmark
evil-collection-bookmark bookmark vterm-module term/xterm xterm
em-rebind em-elecslash em-alias em-term yasnippet-capf dabbrev em-script
em-ls em-hist em-glob em-extpipe em-cmpl em-basic em-banner em-smart
em-tramp eshell-did-you-mean esh-help evil-collection-man man em-unix
eshell-z em-dirs evil-collection-eshell em-prompt eshell esh-mode
esh-var eat evil-collection-term term ehelp theme-magic esh-cmd esh-ext
esh-opt ewal esh-proc esh-io esh-arg cal-julian circadian solar cal-dst
esh-module esh-groups zone esh-util org-agenda auto-sudoedit tramp-sh
evil-collection-magit-todos magit-todos async code-review
code-review-actions code-review-comment code-review-section
code-review-bitbucket code-review-faces emojify evil-collection-apropos
apropos evil-collection-tar-mode tar-mode evil-collection-arc-mode
arc-mode archive-mode ht code-review-gitlab code-review-utils
evil-collection-forge forge-list forge-commands forge-semi
forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab
forge-github forge-notify forge-revnote forge-pullreq forge-issue
forge-topic yaml bug-reference forge-post smartparens-markdown
evil-collection-markdown-mode markdown-mode edit-indirect forge-repo
forge forge-core forge-db code-review-parse-hunk code-review-github
code-review-db uuidgen calc-misc calc-ext calc calc-loaddefs calc-macs a
code-review-interfaces deferred ghub-graphql treepy gsexp ghub url-http
url-gw nsm url-auth closql magit-autoloads evil-collection-magit
magit-submodule magit-blame magit-stash magit-reflog magit-bisect
magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit
magit-sequence magit-notes magit-worktree magit-tag magit-merge
magit-branch magit-reset magit-files magit-refs magit-status magit
magit-repos magit-apply magit-wip magit-log which-func magit-diff
smerge-mode magit-core magit-autorevert magit-margin magit-transient
magit-process magit-mode scrollkeeper diff-hl-flydiff diff
vertico-directory tramp trampver tramp-message evil-collection-indent
face-remap mb-depth vertico-repeat tramp-integration files-x f
f-shortdoc tramp-compat tramp-loaddefs doom-snippets doom-snippets-lib
yasnippet projectile evil-collection-grep grep ibuffer-vc ibuf-ext
evil-collection-ibuffer ibuffer ibuffer-loaddefs mule-util
evil-collection-vc-git vc-git ebuild-mode skeleton
evil-collection-diff-hl diff-hl evil-collection-log-view log-view
evil-collection-vc-dir vc-dir ewoc vc vc-dispatcher
evil-collection-diff-mode diff-mode auto-minor-mode disp-table
whitespace flycheck-posframe posframe flycheck-cask git-auto-commit-mode
embrace lispyville hercules lispy hydra lv delsel lispy-inline avy etags
fileloop evil-collection-xref xref evil-collection-edebug edebug
evil-collection-debug debug backtrace help-fns radix-tree lispy-tags
zoutline semantic/db semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local cedet
evil-collection-ediff ediff ediff-merg ediff-mult ediff-wind ediff-diff
ediff-help ediff-init ediff-util iedit iedit-lib
mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors
multiple-cursors-core the-org-mode-expansions evil-collection-org
evil-collection-org-roam org-roam-migrate org-roam-log org-roam-mode
org-roam-capture org-roam-id org-roam-node org-roam-db
emacsql-sqlite-builtin sqlite org-roam-utils org-roam-compat org-roam
org-capture org-attach emacsql-sqlite emacsql-sqlite-common emacsql
emacsql-compiler smartparens-org org-yt org-element org-persist xdg
org-id org-refile avl-tree generator org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-src evil-collection-sh-script sh-script
smie treesit executable ob-comint org-pcomplete org-list org-footnote
org-faces org-entities org-element-ast inline ob-emacs-lisp org-table ol
org-keys oc org-loaddefs evil-collection-calendar cal-menu calendar
cal-loaddefs eros nameless pcre2el rxt re-builder
evil-collection-flymake flymake project highlight-quoted
rainbow-delimiters outline-minor-faces noutline outline vi-tilde-fringe
highlight-numbers parent-mode display-line-numbers cape hl-todo copilot
copilot-balancer s jsonrpc evil-collection-elisp-mode elisp-mode recentf
tree-widget saveplace evil-collection-so-long so-long git-commit
magit-git magit-base evil-collection-magit-section magit-section
cursor-sensor crm with-editor shell pcomplete transient
evil-collection-log-edit log-edit nice-citation gnus-cite spam spam-stat
gnus-uu yenc gnus-msg gnus-registry registry eieio-base gnus-art mm-uu
mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill
kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus
xml gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time iso8601
gnus-spec gnus-win gnus-int gnus-range evil-collection-gnus gnus
nnheader range message sendmail yank-media puny evil-collection-dired
dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa epg
rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev
mail-utils gmm-utils mailheader pcvs-util add-log envrc inheritenv
beacon wakatime-mode time-date winum hide-mode-line
evil-collection-which-key which-key savehist server better-jumper
vertico-multiform vertico-mouse evil-collection-vertico vertico
orderless nerd-icons-completion marginalia evil-goggles pulse color
evil-easymotion evil-snipe evil-owl repeat restore-point indent-aux aas
evil-collection-beginend beginend autorevert filenotify gcmh winner
smartparens-config smartparens-text smartparens loadhist corfu-history
corfu-popupinfo evil-collection-corfu corfu undo-fu-session undo-fu
flycheck-package package-lint evil-collection-imenu imenu
evil-collection-finder finder finder-inf lisp-mnt
evil-collection-flycheck flycheck find-func dash jka-compr
evil-collection-compile compile text-property-search
evil-collection-comint comint ansi-osc ws-butler editorconfig
evil-collection-package-menu evil-collection-custom cus-edit cus-start
cus-load wid-edit evil-collection annalist doom-packages ansi-color
package browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util mailcap
url-handlers url-parse auth-source eieio eieio-core password-cache json
map url-vars editorconfig-core editorconfig-core-handle
editorconfig-fnmatch yank-indent nerd-icons nerd-icons-faces
nerd-icons-data nerd-icons-data-mdicon nerd-icons-data-flicon
nerd-icons-data-codicon nerd-icons-data-devicon nerd-icons-data-sucicon
nerd-icons-data-wicon nerd-icons-data-faicon nerd-icons-data-powerline
nerd-icons-data-octicon nerd-icons-data-pomicon nerd-icons-data-ipsicon
persp-mode minions compat dtrt-indent modus-vivendi-deuteranopia-theme
modus-themes define-repeat-map expand-region-improved expand-region
text-mode-expansions er-basic-expansions expand-region-core
expand-region-custom mu4e-config html2text smartparens-lua let-alist
ob-core org-cycle org-fold org-fold-core org-compat ob-eval org-version
org-macs format-spec ibuf-macs evil evil-integration evil-maps
evil-commands reveal evil-jumps evil-command-window evil-types
evil-search evil-macros evil-repeat evil-states evil-core advice
evil-common thingatpt rect evil-vars ring derived edmacro kmacro
byte-opt use-package-bind-key bind-key easy-mmode comp comp-cstr
warnings icons doom-editor doom-projects doom-ui doom-keybinds pp
cl-extra help-mode use-package-core bytecomp byte-compile general rx
tex-site realgud-recursive-autoloads site-gentoo doom-start doom-modules
cl-seq doom doom-lib cl-macs cl-loaddefs cl-lib pcase gv harfbuzz
jansson dynamic-modules subr-x rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win
x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind inotify lcms2
dynamic-setting font-render-setting cairo x-toolkit xinput2 x multi-tty
move-toolbar make-network-process native-compile emacs)

Memory information:
((conses 16 4294230 490408) (symbols 48 151162 58) (strings 32 790648 51467)
 (string-bytes 1 28356477) (vectors 16 186227) (vector-slots 8 5170629 763366)
 (floats 8 3501 9939) (intervals 56 84263 1885) (buffers 992 71))





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#66755: 30.0.50; how do i lookup a key but also respect key translations?
  2023-10-26  3:57 bug#66755: 30.0.50; how do i lookup a key but also respect key translations? StrawberryTea
@ 2023-10-26  7:22 ` Eli Zaretskii
  2024-01-10 18:00   ` Stefan Kangas
  2024-01-11  3:41 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2023-10-26  7:22 UTC (permalink / raw)
  To: StrawberryTea, Stefan Monnier; +Cc: 66755

> From: StrawberryTea <look@strawberrytea.xyz>
> Date: Wed, 25 Oct 2023 22:57:58 -0500
> 
> 
> Hello. So I am trying to define a function which obtains the command
> that would be called if 'corfu-mode' was not enabled:
> 
> (defun +corfu--get-passthrough-command ()
>   (keymap-lookup
>    (thread-last
>      (current-active-maps t)
>      (delq corfu-map)
>      (delq (and (featurep 'evil)
>                 (evil-get-auxiliary-keymap corfu-map evil-state))))
>    (key-description (this-command-keys-vector))))
> 
> But the issue is basically that
> 
> (keymap-lookup (current-active-maps t)
>     (key-description (vector 'backspace)))
> 
> returns nil whereas
> 
> (keymap-lookup (current-active-maps t) (key-description (vector ?\C-?)))
> 
> returns 'lispy-delete-backward' which is the command I actually want
> returned. When I run 'describe-key-briefly' and type <backspace>, I get
> 
> DEL (translated from <backspace>) runs the command lispy-delete-backward
> 
> but I don't know how to look up that translation from Elisp. I looked at
> the code for 'help.el' and found the above description comes from
> 'read-key-sequence' returning 'C-?' and 'this-single-command-raw-keys'
> returning '[backspace]' but 'read-key-sequence' is defined in C and I
> don't know how trigger it's translation logic programmatically from
> Elisp.

Perhaps Stefan (CC'ed) could help you.

Btw, this kind of questions should be posted to
help-gnu-emacs@gnu.org, not here.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#66755: 30.0.50; how do i lookup a key but also respect key translations?
  2023-10-26  7:22 ` Eli Zaretskii
@ 2024-01-10 18:00   ` Stefan Kangas
  0 siblings, 0 replies; 4+ messages in thread
From: Stefan Kangas @ 2024-01-10 18:00 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Stefan Monnier, 66755-done, StrawberryTea

Eli Zaretskii <eliz@gnu.org> writes:

>> From: StrawberryTea <look@strawberrytea.xyz>
>> Date: Wed, 25 Oct 2023 22:57:58 -0500
>>
>>
>> Hello. So I am trying to define a function which obtains the command
>> that would be called if 'corfu-mode' was not enabled:
>>
>> (defun +corfu--get-passthrough-command ()
>>   (keymap-lookup
>>    (thread-last
>>      (current-active-maps t)
>>      (delq corfu-map)
>>      (delq (and (featurep 'evil)
>>                 (evil-get-auxiliary-keymap corfu-map evil-state))))
>>    (key-description (this-command-keys-vector))))
>>
>> But the issue is basically that
>>
>> (keymap-lookup (current-active-maps t)
>>     (key-description (vector 'backspace)))
>>
>> returns nil whereas
>>
>> (keymap-lookup (current-active-maps t) (key-description (vector ?\C-?)))
>>
>> returns 'lispy-delete-backward' which is the command I actually want
>> returned. When I run 'describe-key-briefly' and type <backspace>, I get
>>
>> DEL (translated from <backspace>) runs the command lispy-delete-backward
>>
>> but I don't know how to look up that translation from Elisp. I looked at
>> the code for 'help.el' and found the above description comes from
>> 'read-key-sequence' returning 'C-?' and 'this-single-command-raw-keys'
>> returning '[backspace]' but 'read-key-sequence' is defined in C and I
>> don't know how trigger it's translation logic programmatically from
>> Elisp.
>
> Perhaps Stefan (CC'ed) could help you.
>
> Btw, this kind of questions should be posted to
> help-gnu-emacs@gnu.org, not here.

That sounds like this is not a bug, so I'm closing the bug report.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#66755: 30.0.50; how do i lookup a key but also respect key translations?
  2023-10-26  3:57 bug#66755: 30.0.50; how do i lookup a key but also respect key translations? StrawberryTea
  2023-10-26  7:22 ` Eli Zaretskii
@ 2024-01-11  3:41 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 0 replies; 4+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-01-11  3:41 UTC (permalink / raw)
  To: StrawberryTea; +Cc: 66755

> Hello. So I am trying to define a function which obtains the command
> that would be called if 'corfu-mode' was not enabled:

I recommend you try and avoid needing to do that.

> (defun +corfu--get-passthrough-command ()
>   (keymap-lookup
>    (thread-last
>      (current-active-maps t)
>      (delq corfu-map)
>      (delq (and (featurep 'evil)
>                 (evil-get-auxiliary-keymap corfu-map evil-state))))
>    (key-description (this-command-keys-vector))))

[ Eww... `keymap-lookup` forcing you to use `key-description` here is
  pretty hideous.  ]

> but I don't know how to look up that translation from Elisp. I looked at
> the code for 'help.el' and found the above description comes from
> 'read-key-sequence' returning 'C-?' and 'this-single-command-raw-keys'
> returning '[backspace]' but 'read-key-sequence' is defined in C and I
> don't know how trigger it's translation logic programmatically from
> Elisp.

Are you saying that `this-command-keys-vector` returns the same
`[backspace]` as `this-single-command-raw-keys` here?  That's odd, I'd
have expected to return `[?\C-?]`.
In any case it still won't always be the answer you're looking for.

There is simply no reliable way to do what you want, because even
deciding when the sequence of keys ends (to run your (presumably Corfu)
command) can be affected by the existence of a binding to that command.

I think the "closest" you can get is to take
`this-single-command-raw-keys` and push it back on `unread-command-events`.

Or else, arrange for your command's binding to be disabled when you
don't actually want to run it, rather than make it delegate manually to
the "next" binding.


        Stefan






^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-01-11  3:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-26  3:57 bug#66755: 30.0.50; how do i lookup a key but also respect key translations? StrawberryTea
2023-10-26  7:22 ` Eli Zaretskii
2024-01-10 18:00   ` Stefan Kangas
2024-01-11  3:41 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).