unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#67569: 29.1; ruby-mode syntax highlighting breaks with variable named "index" and "/" operator
@ 2023-12-01 14:27 Michael Hoy
  2023-12-09  8:32 ` Eli Zaretskii
  2023-12-09 14:13 ` Dmitry Gutov
  0 siblings, 2 replies; 9+ messages in thread
From: Michael Hoy @ 2023-12-01 14:27 UTC (permalink / raw)
  To: 67569

In the standard ruby-mode, a variable named "index" followed by a "/"
causes the syntax highlighting to break -- it appears that after the
slash everything is interpreted as part of a regular expression until
another "/" appears.

You can reproduce this fairly easily. using 'emacs -Q', go to the
scratch buffer and clear it. Run 'M-x ruby-mode'. Enter something like
the following:

def foo
  index = 5
  x = index / 3
  puts "#{x}"
end

Note that starting after the "/" until the end, syntax highlighting and
indentation break (everything, in my color scheme, is purple). If you
add a "/" for instance to the "puts" line, syntax highlighting and
indentation will be restored after that.

There is a report here about the bug:
https://emacs.stackexchange.com/questions/23802/division-sometimes-breaks-syntax-highlighting-in-ruby-mode
The author says in the comments they used "M-x report-emacs-bug", but I
couldn't find it (and the comments suggest that it may not have been
sent correctly). Apologies if this is already reported!

Thanks.
Mikey




In GNU Emacs 29.1 (build 1, aarch64-apple-darwin22.6.0, NS
appkit-2299.70 Version 13.5 (Build 22G74))
Windowing system distributor 'Apple', version 10.3.2487
System Description:  macOS 14.1.1

Configured using:
 'configure
 --prefix=/nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1
 --disable-build-details --with-modules --disable-ns-self-contained
 --with-ns --with-native-compilation --with-tree-sitter'

Configured features:
ACL GLIB GMP GNUTLS JPEG JSON LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE
NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER
WEBP ZLIB

Important settings:
  value of $EMACSLOADPATH: 
  value of $EMACSNATIVELOADPATH: /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/native-lisp::
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8

Major mode: Ruby

Minor modes in effect:
  inf-ruby-minor-mode: t
  yard-mode: t
  yafolding-mode: t
  ruby-test-mode: t
  treemacs-filewatch-mode: t
  treemacs-follow-mode: t
  treemacs-git-mode: t
  treemacs-fringe-indicator-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  server-mode: t
  flycheck-mode: t
  company-box-mode: t
  global-company-mode: t
  company-mode: t
  yas-minor-mode: t
  counsel-projectile-mode: t
  projectile-mode: t
  ivy-mode: t
  windmove-mode: t
  shell-dirtrack-mode: t
  global-hl-line-mode: t
  tooltip-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
  blink-cursor-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/Users/mjhoy/.nix-profile/share/emacs/site-lisp/site-start hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/site-start
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/ace-window-0.10.0/ace-window-autoloads hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/ace-window-20220911.358/ace-window-autoloads
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/ace-window-0.10.0/ace-window hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/ace-window-20220911.358/ace-window
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/ace-window-0.10.0/ace-window-pkg hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/ace-window-20220911.358/ace-window-pkg
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/avy-0.5.0/avy-autoloads hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/avy-20230420.404/avy-autoloads
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/avy-0.5.0/avy hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/avy-20230420.404/avy
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/avy-0.5.0/avy-pkg hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/avy-20230420.404/avy-pkg
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/counsel-0.14.2/counsel hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/counsel-20231025.2311/counsel
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/counsel-0.14.2/counsel-pkg hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/counsel-20231025.2311/counsel-pkg
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/counsel-0.14.2/counsel-autoloads hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/counsel-20231025.2311/counsel-autoloads
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/flycheck-20230813.620/flycheck-autoloads hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/flycheck-32/flycheck-autoloads
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/flycheck-20230813.620/flycheck-pkg hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/flycheck-32/flycheck-pkg
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/flycheck-20230813.620/flycheck-ert hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/flycheck-32/flycheck-ert
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/flycheck-20230813.620/flycheck-buttercup hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/flycheck-32/flycheck-buttercup
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/flycheck-20230813.620/flycheck hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/flycheck-32/flycheck
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/js2-mode-20230408/js2-mode hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/js2-mode-20230628.238/js2-mode
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/js2-mode-20230408/js2-mode-pkg hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/js2-mode-20230628.238/js2-mode-pkg
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/js2-mode-20230408/js2-mode-autoloads hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/js2-mode-20230628.238/js2-mode-autoloads
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/js2-mode-20230408/js2-imenu-extras hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/js2-mode-20230628.238/js2-imenu-extras
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/js2-mode-20230408/js2-old-indent hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/js2-mode-20230628.238/js2-old-indent
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/markdown-mode-2.6/markdown-mode hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/markdown-mode-20231028.853/markdown-mode
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/markdown-mode-2.6/markdown-mode-pkg hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/markdown-mode-20231028.853/markdown-mode-pkg
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/markdown-mode-2.6/markdown-mode-autoloads hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/markdown-mode-20231028.853/markdown-mode-autoloads
/Users/mjhoy/.nix-profile/share/emacs/site-lisp/password-store hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/password-store-1.7.4/password-store
/Users/mjhoy/.nix-profile/share/emacs/site-lisp/password-store hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/password-store-20230503.619/password-store
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/password-store-1.7.4/password-store-autoloads hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/password-store-20230503.619/password-store-autoloads
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/password-store-1.7.4/password-store-pkg hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/password-store-20230503.619/password-store-pkg
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/posframe-1.4.2/posframe-benchmark hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/posframe-20230714.227/posframe-benchmark
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/posframe-1.4.2/posframe-autoloads hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/posframe-20230714.227/posframe-autoloads
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/posframe-1.4.2/posframe hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/posframe-20230714.227/posframe
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/posframe-1.4.2/posframe-pkg hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/posframe-20230714.227/posframe-pkg
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/projectile-2.8.0/projectile-autoloads hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/projectile-20231013.1509/projectile-autoloads
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/projectile-2.8.0/projectile hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/projectile-20231013.1509/projectile
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/projectile-2.8.0/projectile-pkg hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/projectile-20231013.1509/projectile-pkg
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-1.0.5/rust-rustfmt hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-20230805.1558/rust-rustfmt
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-1.0.5/rust-playpen hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-20230805.1558/rust-playpen
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-1.0.5/rust-mode-pkg hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-20230805.1558/rust-mode-pkg
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-1.0.5/rust-mode hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-20230805.1558/rust-mode
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-1.0.5/rust-cargo hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-20230805.1558/rust-cargo
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-1.0.5/rust-compile hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-20230805.1558/rust-compile
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-1.0.5/rust-utils hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-20230805.1558/rust-utils
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-1.0.5/rust-mode-autoloads hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/rust-mode-20230805.1558/rust-mode-autoloads
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/ivy-20231025.2311/elpa hides /nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/ace-window-0.10.0/test/elpa
/Users/mjhoy/.nix-profile/share/emacs/site-lisp/site-start hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/site-lisp/site-start
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/external-completion-0.1/external-completion hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/external-completion
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/jsonrpc-1.0.17/jsonrpc hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/jsonrpc
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/transient-20231118.1318/transient hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/transient
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/xref-1.6.3/xref hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/progmodes/xref
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/project-0.10.0/project hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/progmodes/project
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/eglot-1.15/eglot hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/progmodes/eglot
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/flymake-1.3.7/flymake hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/progmodes/flymake
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-exp hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-exp
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-emacs-lisp hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-emacs-lisp
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/oc hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/oc
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-css hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-css
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-lob hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-lob
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-irc hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol-irc
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-forth hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-forth
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-macs hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-macs
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-version hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-version
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-scheme hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-scheme
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ox
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-C hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-C
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-capture hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-capture
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-ref hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-ref
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-clojure hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-clojure
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-mouse hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-mouse
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-persist hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-persist
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-ctags hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-ctags
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-entities hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-entities
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-archive hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-archive
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-screen hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-screen
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-bibtex hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol-bibtex
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-haskell hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-haskell
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-loaddefs hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-loaddefs
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-table hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-table
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-eww hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol-eww
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-man hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol-man
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-org hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ox-org
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-num hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-num
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-plot hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-plot
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-rmail hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol-rmail
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-awk hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-awk
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-groovy hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-groovy
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-octave hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-octave
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-faces hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-faces
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/oc-biblatex hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/oc-biblatex
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-colview hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-colview
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-R hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-R
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-refile hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-refile
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-timer hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-timer
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-mobile hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-mobile
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-fortran hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-fortran
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-shell hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-shell
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-perl hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-perl
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-sqlite hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-sqlite
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/oc-basic hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/oc-basic
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-sed hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-sed
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-list hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-list
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-ruby hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-ruby
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-eval hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-eval
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-habit hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-habit
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-clock hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-clock
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-goto hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-goto
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-html hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ox-html
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-src hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-src
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-lisp hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-lisp
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-eshell hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol-eshell
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-ditaa hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-ditaa
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-pcomplete hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-pcomplete
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-lint hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-lint
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-latex hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ox-latex
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-sass hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-sass
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-tangle hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-tangle
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-calc hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-calc
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-java hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-java
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-icalendar hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ox-icalendar
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-mhe hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol-mhe
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-attach-git hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-attach-git
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-md hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ox-md
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-beamer hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ox-beamer
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-element hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-element
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/oc-natbib hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/oc-natbib
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-protocol hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-protocol
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-gnuplot hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-gnuplot
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-tempo hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-tempo
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-latex hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-latex
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-w3m hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol-w3m
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-id hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-id
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-man hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ox-man
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-doi hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol-doi
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-feed hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-feed
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-fold-core hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-fold-core
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-julia hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-julia
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-lua hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-lua
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-table hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-table
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-ocaml hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-ocaml
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/oc-csl hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/oc-csl
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-gnus hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol-gnus
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-indent hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-indent
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-lilypond hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-lilypond
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-matlab hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-matlab
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-datetree hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-datetree
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-docview hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol-docview
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/oc-bibtex hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/oc-bibtex
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-python hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-python
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-makefile hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-makefile
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-duration hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-duration
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-agenda hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-agenda
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-dot hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-dot
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-js hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-js
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-publish hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ox-publish
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-inlinetask hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-inlinetask
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-org hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-org
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-keys hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-keys
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-core hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-core
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-compat hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-compat
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-odt hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ox-odt
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-info hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol-info
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-plantuml hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-plantuml
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-eshell hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-eshell
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-ascii hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ox-ascii
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-koma-letter hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ox-koma-letter
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-maxima hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-maxima
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-bbdb hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ol-bbdb
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-macro hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-macro
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-fold hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-fold
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-sql hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-sql
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-attach hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-attach
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-cycle hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-cycle
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-processing hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-processing
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-texinfo hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ox-texinfo
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-crypt hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-crypt
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-footnote hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/org-footnote
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-comint hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/org/ob-comint
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/emacs-lisp/let-alist
/nix/store/2q514vlbcayf355xm92z6pvkl5jd8vhz-emacs-packages-deps/share/emacs/site-lisp/elpa/eldoc-1.14.0/eldoc hides /nix/store/m59in30p0apsv029wrq68ng8si3i1wxh-emacs-29.1/share/emacs/29.1/lisp/emacs-lisp/eldoc

Features:
(shadow emacsbug misearch multi-isearch mailalias gnus-icalendar
icalendar ace-window avy cal-move org-datetree inf-ruby yard-mode
pcmpl-unix gptel-curl gptel-transient dired-aux ffap goto-addr
network-stream url-cache epa-file sh-script executable view conf-mode
org-archive timezone org-duration cargo cargo-process rust-utils
rust-mode rust-rustfmt rust-playpen rust-compile rust-cargo qp sort
gnus-cite smiley shr-color mm-archive mail-extr textsec uni-scripts
idna-mapping uni-confusable textsec-check vc-hg vc-bzr vc-src vc-sccs
vc-svn vc-cvs vc-rcs log-view vc magit-extras emacsql-sqlite-builtin
sqlite tabify orgit org-capture cal-china lunar solar cal-dst cal-bahai
cal-islam cal-hebrew holidays holiday-loaddefs diary-lib diary-loaddefs
cal-iso vc-git vc-dispatcher org-eldoc org-indent oc-basic ol-eww eww
url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb
ol-w3m ol-doi org-link-doi face-remap yafolding company-oddmuse
company-keywords company-etags company-gtags company-dabbrev-code
company-dabbrev company-files company-clang company-capf company-cmake
company-semantic company-template company-bbdb init-misc bm mjhoy-misc
sensitive-mode init-pass init-presentation init-dotfile-shortcuts
init-ledger ledger-mode ledger-check ledger-texi ledger-test ledger-sort
ledger-report ledger-reconcile ledger-occur ledger-fonts ledger-fontify
ledger-state ledger-complete ledger-schedule ledger-init ledger-xact
ledger-post ledger-exec ledger-navigate ledger-context
ledger-commodities ledger-regex init-avy init-folding init-copilot
copilot editorconfig editorconfig-core editorconfig-core-handle
editorconfig-fnmatch init-gpt gptel gptel-openai init-term init-protobuf
init-coq init-css init-xml init-php init-gdk init-yaml init-swift
init-go init-csharp init-c init-scala sbt-mode sbt-mode-rgrep
sbt-mode-comint sbt-mode-buffer sbt-mode-project sbt-mode-vars
scala-mode scala-mode-prettify-symbols scala-mode-imenu scala-mode-map
scala-mode-fontlock scala-mode-indent scala-mode-paragraph
scala-mode-syntax scala-mode-lib init-elm elm-mode elm-interactive
elm-font-lock elm-indent-simple elm-indent elm-imenu elm-format
reformatter elm-tags elm-util inf-haskell haskell-decl-scan f f-shortdoc
init-haskell haskell-mode haskell-cabal haskell-utils haskell-font-lock
haskell-indentation haskell-string haskell-sort-imports haskell-lexeme
haskell-align-imports haskell-complete-module haskell-ghc-support etags
fileloop dabbrev haskell-customize flymake-proc init-svelte
init-web-mode init-typescript web-mode disp-table init-purescript
init-javascript init-rust flycheck-rust init-python init-ruby
ruby-test-mode pcre2el rxt re-builder ruby-mode smie init-scheme
init-eglot eglot external-completion jsonrpc flymake ert ewoc debug
backtrace init-treemacs 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 pulse treemacs-faces treemacs-icons
treemacs-scope treemacs-themes treemacs-core-utils pfuture inline ht
treemacs-logging treemacs-customization treemacs-macros s init-magit
forge-list forge-commands forge-semi forge-bitbucket buck forge-gogs
gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy
gsexp ghub let-alist forge-notify forge-revnote forge-pullreq
forge-issue forge-topic yaml bug-reference forge-post forge-repo forge
forge-core forge-db closql emacsql-sqlite-common emacsql
emacsql-compiler eieio-base magit-bookmark 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 imenu magit-diff smerge-mode diff
diff-mode git-commit log-edit pcvs-util add-log magit-core
magit-autorevert autorevert filenotify magit-margin magit-transient
magit-process with-editor server magit-mode transient edmacro kmacro
magit-git magit-base magit-section cursor-sensor crm init-ivy
init-flyspell flyspell ispell init-flycheck flycheck init-sql init-mu4e
mu4e-contrib eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg
esh-module esh-groups esh-util mu4e mu4e-org mu4e-notification
notifications mu4e-main mu4e-view gnus-art mm-uu mml2015 mm-view
mml-smime smime gnutls dig gnus-sum gnus-group gnus-undo gnus-start
gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec
gnus-int gnus-range gnus-win gnus nnheader range wid-edit mu4e-headers
mu4e-compose mu4e-draft mu4e-actions smtpmail mu4e-search mu4e-lists
mu4e-bookmarks mu4e-mark mu4e-message shr pixel-fill kinsoku url-file
svg xml dom flow-fill mu4e-contacts mu4e-update mu4e-folders
mu4e-context mu4e-query-items mu4e-server mu4e-modeline mu4e-vars
mu4e-helpers mu4e-config mu4e-window bookmark ido mu4e-obsolete
init-company company-box company-box-doc frame-local company-box-icons
dash company init-yas yasnippet init-uniquify init-dired init-ibuffer
ibuffer-vc init-projectile counsel-projectile projectile lisp-mnt grep
ibuf-ext ibuffer ibuffer-loaddefs counsel xref compile swiper ivy delsel
ivy-faces ivy-overlay colir init-compilation init-winring winring
init-windmove windmove init-erc erc-truncate erc-goodies erc pp
erc-backend erc-networks erc-common erc-compat erc-loaddefs init-org-ai
org-ai org-ai-useful easy-mmode org-ai-openai-image org-ai-openai
url-http url-auth url-gw nsm org-ai-block init-org init-org/bindings
init-org/captures init-org/code ob-diagrams ob-scheme geiser-impl
help-fns radix-tree geiser-custom geiser-base geiser ob-dot ob-R
ob-python python project compat treesit ob-haskell ob-sql ob-shell
org-tempo tempo init-org/todo init-org/shortcuts init-org/agenda
ox-reveal org-habit org-agenda org-clock org-mime message sendmail
yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg
rfc6068 epg-config gnus-util text-property-search mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr mailabbrev mail-utils gmm-utils mailheader ox-org 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-md ox-html table ox-ascii
ox-publish ox 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 ob-comint org-pcomplete org-list org-footnote org-faces
org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table ol
org-fold org-fold-core org-keys oc org-loaddefs find-func cal-menu
calendar cal-loaddefs org-version org-compat org-macs init-tramp tramp
tramp-loaddefs trampver tramp-integration files-x tramp-compat shell
pcomplete comint ansi-osc ansi-color ring parse-time iso8601 time-date
format-spec init-markdown markdown-mode edit-indirect noutline outline
init-prog init-multiple-cursors multiple-cursors
mc-hide-unmatched-lines-mode mc-separate-operations
rectangular-region-mode mc-mark-pop mc-mark-more thingatpt
mc-cycle-cursors mc-edit-lines multiple-cursors-core comp comp-cstr
warnings icons rx cl-extra help-mode advice rect init-hl-line hl-line
init-theme sanityinc-tomorrow-night-theme color-theme-sanityinc-tomorrow
color init-ui init-diminish diminish init-env init-local init-basic
finder-inf ag-autoloads apache-mode-autoloads bm-autoloads
cargo-autoloads color-theme-sanityinc-tomorrow-autoloads
company-box-autoloads company-racer-autoloads company-autoloads
counsel-projectile-autoloads counsel-autoloads dap-mode-autoloads
bui-autoloads deferred-autoloads diminish-autoloads
dracula-theme-autoloads edit-indirect-autoloads editorconfig-autoloads
eglot-autoloads elm-mode-autoloads ess-autoloads ess-generics
flycheck-rust-autoloads flycheck-autoloads flymake-autoloads
forge-autoloads closql-autoloads emacsql-autoloads frame-local-autoloads
geiser-autoloads ghub-autoloads go-mode-autoloads gptel-autoloads
haml-mode-autoloads haskell-mode-autoloads ibuffer-vc-autoloads
inf-ruby-autoloads ivy-pass-autoloads jsonrpc-autoloads
julia-mode-autoloads ledger-mode-autoloads lsp-treemacs-autoloads
lsp-mode-autoloads eldoc-autoloads markdown-mode-autoloads
material-theme-autoloads multiple-cursors-autoloads nix-mode-autoloads
org-contrib-autoloads org-mime-autoloads org-tree-slide-autoloads
orgit-autoloads magit-autoloads pcase magit-section-autoloads
git-commit-autoloads ox-reveal-autoloads org-autoloads
password-store-autoloads php-mode-autoloads pkg-info-autoloads
epl-autoloads prettier-autoloads nvm-autoloads iter2-autoloads
project-autoloads projectile-autoloads proof-general-autoloads
proof-site proof-autoloads protobuf-mode-autoloads
purescript-mode-autoloads racer-autoloads f-autoloads
rainbow-mode-autoloads reformatter-autoloads restclient-autoloads
rjsx-mode-autoloads js2-mode-autoloads ruby-test-mode-autoloads
pcre2el-autoloads rust-mode-autoloads sbt-mode-autoloads
scala-mode-autoloads spinner-autoloads swift-mode-autoloads
swiper-autoloads ivy-autoloads terraform-mode-autoloads
hcl-mode-autoloads transient-autoloads treemacs-autoloads cfrs-autoloads
posframe-autoloads ht-autoloads hydra-autoloads lv-autoloads
pfuture-autoloads ace-window-autoloads avy-autoloads s-autoloads
dash-autoloads treepy-autoloads web-mode-autoloads winring-autoloads
with-editor-autoloads info compat-autoloads yafolding-autoloads
yaml-autoloads yaml-mode-autoloads yard-mode-autoloads
yasnippet-autoloads 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 cl-seq
eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv
bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util
term/common-win 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 kqueue cocoa ns multi-tty make-network-process native-compile
emacs)

Memory information:
((conses 16 1502968 193402)
 (symbols 48 61997 7)
 (strings 32 282179 39694)
 (string-bytes 1 9281094)
 (vectors 16 152902)
 (vector-slots 8 3606903 260823)
 (floats 8 1619 852)
 (intervals 56 67417 2734)
 (buffers 984 181))





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

* bug#67569: 29.1; ruby-mode syntax highlighting breaks with variable named "index" and "/" operator
  2023-12-01 14:27 bug#67569: 29.1; ruby-mode syntax highlighting breaks with variable named "index" and "/" operator Michael Hoy
@ 2023-12-09  8:32 ` Eli Zaretskii
  2023-12-16 11:58   ` Eli Zaretskii
  2023-12-09 14:13 ` Dmitry Gutov
  1 sibling, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2023-12-09  8:32 UTC (permalink / raw)
  To: Michael Hoy, Dmitry Gutov; +Cc: 67569

> From: Michael Hoy <mjh@mjhoy.com>
> Date: Fri, 01 Dec 2023 09:27:47 -0500
> 
> In the standard ruby-mode, a variable named "index" followed by a "/"
> causes the syntax highlighting to break -- it appears that after the
> slash everything is interpreted as part of a regular expression until
> another "/" appears.
> 
> You can reproduce this fairly easily. using 'emacs -Q', go to the
> scratch buffer and clear it. Run 'M-x ruby-mode'. Enter something like
> the following:
> 
> def foo
>   index = 5
>   x = index / 3
>   puts "#{x}"
> end
> 
> Note that starting after the "/" until the end, syntax highlighting and
> indentation break (everything, in my color scheme, is purple). If you
> add a "/" for instance to the "puts" line, syntax highlighting and
> indentation will be restored after that.
> 
> There is a report here about the bug:
> https://emacs.stackexchange.com/questions/23802/division-sometimes-breaks-syntax-highlighting-in-ruby-mode
> The author says in the comments they used "M-x report-emacs-bug", but I
> couldn't find it (and the comments suggest that it may not have been
> sent correctly). Apologies if this is already reported!

Dmitry, any comments?





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

* bug#67569: 29.1; ruby-mode syntax highlighting breaks with variable named "index" and "/" operator
  2023-12-01 14:27 bug#67569: 29.1; ruby-mode syntax highlighting breaks with variable named "index" and "/" operator Michael Hoy
  2023-12-09  8:32 ` Eli Zaretskii
@ 2023-12-09 14:13 ` Dmitry Gutov
  2023-12-09 14:35   ` Eli Zaretskii
  1 sibling, 1 reply; 9+ messages in thread
From: Dmitry Gutov @ 2023-12-09 14:13 UTC (permalink / raw)
  To: Michael Hoy, 67569, Eli Zaretskii

[-- Attachment #1: Type: text/plain, Size: 2206 bytes --]

On 01/12/2023 16:27, Michael Hoy wrote:
> In the standard ruby-mode, a variable named "index" followed by a "/"
> causes the syntax highlighting to break -- it appears that after the
> slash everything is interpreted as part of a regular expression until
> another "/" appears.
> 
> You can reproduce this fairly easily. using 'emacs -Q', go to the
> scratch buffer and clear it. Run 'M-x ruby-mode'. Enter something like
> the following:
> 
> def foo
>    index = 5
>    x = index / 3
>    puts "#{x}"
> end
> 
> Note that starting after the "/" until the end, syntax highlighting and
> indentation break (everything, in my color scheme, is purple). If you
> add a "/" for instance to the "puts" line, syntax highlighting and
> indentation will be restored after that.

Thanks for filing this. The reasons is our regexp detection mechanism, 
with a whitelist for methods that call accept regexps (of which 'index' 
is one), and could be called without parens.

Anyway, it looks like Ruby actually looks at whether there is a space 
after "/", and if so, interprets this as division (when there is nothing 
else to disambiguate, such as parens around the call). So we can follow 
suit, the attached patch seems to fix it.

Also, perhaps you'll want to try ruby-ts-mode which is in Emacs 29.1, 
and which uses a "real" (tree-sitter) grammar. Indentation-wise, it 
should behave more or less the same as ruby-mode.

Eli, should we put this in Emacs 29.2? It's not a regression (a fairly 
old problem), but the fix looks simple enough.

> There is a report here about the bug:
> https://emacs.stackexchange.com/questions/23802/division-sometimes-breaks-syntax-highlighting-in-ruby-mode
> The author says in the comments they used "M-x report-emacs-bug", but I
> couldn't find it (and the comments suggest that it may not have been
> sent correctly). Apologies if this is already reported!

I was hoping the author would follow through with investigating why the 
bug did not reach the tracker, but that didn't happen. I've seen this 
kind of feedback a few times, but not lately. Maybe whatever the issue 
was, got resolved in 2016. Or people still send reports into nowhere, 
and we just don't hear about it.

[-- Attachment #2: ruby-index-slash-no-regexp.diff --]
[-- Type: text/x-patch, Size: 1658 bytes --]

diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 5c34ddc562b..b2d833fa2b0 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -2125,7 +2125,7 @@ ruby-find-library-file
                    "or" "not" "&&" "||"))
      ;; Method name from the list.
      "\\|\\_<"
-     (regexp-opt ruby-syntax-methods-before-regexp)
+     (regexp-opt ruby-syntax-methods-before-regexp t)
      "\\)\\s *")
     "Regexp to match text that can be followed by a regular expression."))
 
@@ -2183,14 +2183,18 @@ ruby-syntax-propertize
         (when (save-excursion
                 (forward-char -1)
                 (cl-evenp (skip-chars-backward "\\\\")))
-          (let ((state (save-excursion (syntax-ppss (match-beginning 1)))))
+          (let ((state (save-excursion (syntax-ppss (match-beginning 1))))
+                space-after-slash)
             (when (or
                    ;; Beginning of a regexp.
                    (and (null (nth 8 state))
                         (save-excursion
+                          (setq space-after-slash (eql (char-after) ?\s))
                           (forward-char -1)
                           (looking-back ruby-syntax-before-regexp-re
-                                        (line-beginning-position))))
+                                        (line-beginning-position)))
+                        (or (not space-after-slash)
+                            (not (match-beginning 2))))
                    ;; End of regexp.  We don't match the whole
                    ;; regexp at once because it can have
                    ;; string interpolation inside, or span

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

* bug#67569: 29.1; ruby-mode syntax highlighting breaks with variable named "index" and "/" operator
  2023-12-09 14:13 ` Dmitry Gutov
@ 2023-12-09 14:35   ` Eli Zaretskii
  2023-12-09 17:38     ` Dmitry Gutov
  0 siblings, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2023-12-09 14:35 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: mjh, 67569

> Date: Sat, 9 Dec 2023 16:13:02 +0200
> From: Dmitry Gutov <dmitry@gutov.dev>
> 
> Eli, should we put this in Emacs 29.2? It's not a regression (a fairly 
> old problem), but the fix looks simple enough.

Yes, please.

Thanks.





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

* bug#67569: 29.1; ruby-mode syntax highlighting breaks with variable named "index" and "/" operator
  2023-12-09 14:35   ` Eli Zaretskii
@ 2023-12-09 17:38     ` Dmitry Gutov
  2023-12-09 17:47       ` Eli Zaretskii
  0 siblings, 1 reply; 9+ messages in thread
From: Dmitry Gutov @ 2023-12-09 17:38 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: mjh, 67569

[-- Attachment #1: Type: text/plain, Size: 591 bytes --]

On 09/12/2023 16:35, Eli Zaretskii wrote:
>> Date: Sat, 9 Dec 2023 16:13:02 +0200
>> From: Dmitry Gutov<dmitry@gutov.dev>
>>
>> Eli, should we put this in Emacs 29.2? It's not a regression (a fairly
>> old problem), but the fix looks simple enough.
> Yes, please.

Very good, pushed to emacs-29.

Here's a second patch on top which gets rid of the whitelist altogether 
(the new heuristic seems to cover the cases better anyway), though I'm 
on the fence whether this should go here or into master.

It seems to work well with some testing, but it is more adventurous than 
the previous one.

[-- Attachment #2: ruby-parenless-regexp-no-whitelist.diff --]
[-- Type: text/x-patch, Size: 4263 bytes --]

diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 0ecb3579278..862aaf8e182 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -2105,12 +2105,6 @@ ruby-find-library-file
     "\\(%\\)[qQrswWxIi]?\\([[:punct:]]\\)"
     "Regexp to match the beginning of percent literal.")
 
-  (defconst ruby-syntax-methods-before-regexp
-    '("gsub" "gsub!" "sub" "sub!" "scan" "split" "split!" "index" "match"
-      "assert_match" "Given" "Then" "When")
-    "Methods that can take regexp as the first argument.
-It will be properly highlighted even when the call omits parens.")
-
   (defvar ruby-syntax-before-regexp-re
     (concat
      ;; Special tokens that can't be followed by a division operator.
@@ -2122,11 +2116,9 @@ ruby-find-library-file
      "\\|\\(?:^\\|\\s \\)"
      (regexp-opt '("if" "elsif" "unless" "while" "until" "when" "and"
                    "or" "not" "&&" "||"))
-     ;; Method name from the list.
-     "\\|\\_<"
-     (regexp-opt ruby-syntax-methods-before-regexp t)
      "\\)\\s *")
-    "Regexp to match text that can be followed by a regular expression."))
+    "Regexp to match text that disambiguates a regular expression.
+Any slash character after any of these should begin a regexp."))
 
 (defun ruby-syntax-propertize (start end)
   "Syntactic keywords for Ruby mode.  See `syntax-propertize-function'."
@@ -2182,20 +2174,18 @@ ruby-syntax-propertize
         (when (save-excursion
                 (forward-char -1)
                 (cl-evenp (skip-chars-backward "\\\\")))
-          (let ((state (save-excursion (syntax-ppss (match-beginning 1))))
-                division-like)
+          (let ((state (save-excursion (syntax-ppss (match-beginning 1)))))
             (when (or
                    ;; Beginning of a regexp.
                    (and (null (nth 8 state))
-                        (save-excursion
-                          (setq division-like
-                                (or (eql (char-after) ?\s)
-                                    (not (eql (char-before (1- (point))) ?\s))))
-                          (forward-char -1)
-                          (looking-back ruby-syntax-before-regexp-re
-                                        (line-beginning-position)))
-                        (not (and division-like
-                                  (match-beginning 2))))
+                        (or (not
+                             ;; Looks like division.
+                             (or (eql (char-after) ?\s)
+                                 (not (eql (char-before (1- (point))) ?\s))))
+                            (save-excursion
+                              (forward-char -1)
+                              (looking-back ruby-syntax-before-regexp-re
+                                            (line-beginning-position)))))
                    ;; End of regexp.  We don't match the whole
                    ;; regexp at once because it can have
                    ;; string interpolation inside, or span
diff --git a/test/lisp/progmodes/ruby-mode-resources/ruby.rb b/test/lisp/progmodes/ruby-mode-resources/ruby.rb
index 81d0dfd75c9..a411b39a8fc 100644
--- a/test/lisp/progmodes/ruby-mode-resources/ruby.rb
+++ b/test/lisp/progmodes/ruby-mode-resources/ruby.rb
@@ -34,11 +34,11 @@ def foo
 # Regexp after whitelisted method.
 "abc".sub /b/, 'd'
 
-# Don't mismatch "sub" at the end of words.
-a = asub / aslb + bsub / bslb;
+# Don't mistake division for regexp.
+a = sub / aslb + bsub / bslb;
 
 # Highlight the regexp after "if".
-x = toto / foo if /do bar/ =~ "dobar"
+x = toto / foo if / do bar/ =~ "dobar"
 
 # Regexp options are highlighted.
 
diff --git a/test/lisp/progmodes/ruby-mode-tests.el b/test/lisp/progmodes/ruby-mode-tests.el
index a931541ba35..fea5f58b92e 100644
--- a/test/lisp/progmodes/ruby-mode-tests.el
+++ b/test/lisp/progmodes/ruby-mode-tests.el
@@ -164,7 +164,7 @@ ruby-slash-not-regexp-when-no-spaces
   (ruby-assert-state "x = index/3" 3 nil))
 
 (ert-deftest ruby-regexp-not-division-when-only-space-before ()
-  (ruby-assert-state "x = index /3" 3 ?/))
+  (ruby-assert-state "x = foo_index /3" 3 ?/))
 
 (ert-deftest ruby-slash-not-regexp-when-only-space-after ()
   (ruby-assert-state "x = index/ 3" 3 nil))

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

* bug#67569: 29.1; ruby-mode syntax highlighting breaks with variable named "index" and "/" operator
  2023-12-09 17:38     ` Dmitry Gutov
@ 2023-12-09 17:47       ` Eli Zaretskii
  2023-12-09 18:00         ` Dmitry Gutov
  0 siblings, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2023-12-09 17:47 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: mjh, 67569

> Date: Sat, 9 Dec 2023 19:38:28 +0200
> Cc: mjh@mjhoy.com, 67569@debbugs.gnu.org
> From: Dmitry Gutov <dmitry@gutov.dev>
> 
> >> Eli, should we put this in Emacs 29.2? It's not a regression (a fairly
> >> old problem), but the fix looks simple enough.
> > Yes, please.
> 
> Very good, pushed to emacs-29.
> 
> Here's a second patch on top which gets rid of the whitelist altogether 
> (the new heuristic seems to cover the cases better anyway), though I'm 
> on the fence whether this should go here or into master.
> 
> It seems to work well with some testing, but it is more adventurous than 
> the previous one.

Yes, I think we have enough adventures on emacs-29.





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

* bug#67569: 29.1; ruby-mode syntax highlighting breaks with variable named "index" and "/" operator
  2023-12-09 17:47       ` Eli Zaretskii
@ 2023-12-09 18:00         ` Dmitry Gutov
  0 siblings, 0 replies; 9+ messages in thread
From: Dmitry Gutov @ 2023-12-09 18:00 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: mjh, 67569-done

On 09/12/2023 19:47, Eli Zaretskii wrote:
>> Date: Sat, 9 Dec 2023 19:38:28 +0200
>> Cc:mjh@mjhoy.com,67569@debbugs.gnu.org
>> From: Dmitry Gutov<dmitry@gutov.dev>
>>
>>>> Eli, should we put this in Emacs 29.2? It's not a regression (a fairly
>>>> old problem), but the fix looks simple enough.
>>> Yes, please.
>> Very good, pushed to emacs-29.
>>
>> Here's a second patch on top which gets rid of the whitelist altogether
>> (the new heuristic seems to cover the cases better anyway), though I'm
>> on the fence whether this should go here or into master.
>>
>> It seems to work well with some testing, but it is more adventurous than
>> the previous one.
> Yes, I think we have enough adventures on emacs-29.

All right. Guess I'm closing this, then, and will push the second patch 
after the next merge into master.





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

* bug#67569: 29.1; ruby-mode syntax highlighting breaks with variable named "index" and "/" operator
  2023-12-09  8:32 ` Eli Zaretskii
@ 2023-12-16 11:58   ` Eli Zaretskii
  2023-12-16 12:17     ` Dmitry Gutov
  0 siblings, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2023-12-16 11:58 UTC (permalink / raw)
  To: dmitry; +Cc: mjh, 67569

Ping!

> Cc: 67569@debbugs.gnu.org
> Date: Sat, 09 Dec 2023 10:32:22 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> 
> > From: Michael Hoy <mjh@mjhoy.com>
> > Date: Fri, 01 Dec 2023 09:27:47 -0500
> > 
> > In the standard ruby-mode, a variable named "index" followed by a "/"
> > causes the syntax highlighting to break -- it appears that after the
> > slash everything is interpreted as part of a regular expression until
> > another "/" appears.
> > 
> > You can reproduce this fairly easily. using 'emacs -Q', go to the
> > scratch buffer and clear it. Run 'M-x ruby-mode'. Enter something like
> > the following:
> > 
> > def foo
> >   index = 5
> >   x = index / 3
> >   puts "#{x}"
> > end
> > 
> > Note that starting after the "/" until the end, syntax highlighting and
> > indentation break (everything, in my color scheme, is purple). If you
> > add a "/" for instance to the "puts" line, syntax highlighting and
> > indentation will be restored after that.
> > 
> > There is a report here about the bug:
> > https://emacs.stackexchange.com/questions/23802/division-sometimes-breaks-syntax-highlighting-in-ruby-mode
> > The author says in the comments they used "M-x report-emacs-bug", but I
> > couldn't find it (and the comments suggest that it may not have been
> > sent correctly). Apologies if this is already reported!
> 
> Dmitry, any comments?
> 
> 
> 
> 





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

* bug#67569: 29.1; ruby-mode syntax highlighting breaks with variable named "index" and "/" operator
  2023-12-16 11:58   ` Eli Zaretskii
@ 2023-12-16 12:17     ` Dmitry Gutov
  0 siblings, 0 replies; 9+ messages in thread
From: Dmitry Gutov @ 2023-12-16 12:17 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: mjh, 67569

This is resolved and closed, I just replied to a different subthread.

I suppose you set up some automation for pinging non-respondents? :)

On 16/12/2023 13:58, Eli Zaretskii wrote:
> Ping!
> 
>> Cc:67569@debbugs.gnu.org
>> Date: Sat, 09 Dec 2023 10:32:22 +0200
>> From: Eli Zaretskii<eliz@gnu.org>
>>
>>> From: Michael Hoy<mjh@mjhoy.com>
>>> Date: Fri, 01 Dec 2023 09:27:47 -0500
>>>
>>> In the standard ruby-mode, a variable named "index" followed by a "/"
>>> causes the syntax highlighting to break -- it appears that after the
>>> slash everything is interpreted as part of a regular expression until
>>> another "/" appears.
>>>
>>> You can reproduce this fairly easily. using 'emacs -Q', go to the
>>> scratch buffer and clear it. Run 'M-x ruby-mode'. Enter something like
>>> the following:
>>>
>>> def foo
>>>    index = 5
>>>    x = index / 3
>>>    puts "#{x}"
>>> end
>>>
>>> Note that starting after the "/" until the end, syntax highlighting and
>>> indentation break (everything, in my color scheme, is purple). If you
>>> add a "/" for instance to the "puts" line, syntax highlighting and
>>> indentation will be restored after that.
>>>
>>> There is a report here about the bug:
>>> https://emacs.stackexchange.com/questions/23802/division-sometimes-breaks-syntax-highlighting-in-ruby-mode
>>> The author says in the comments they used "M-x report-emacs-bug", but I
>>> couldn't find it (and the comments suggest that it may not have been
>>> sent correctly). Apologies if this is already reported!
>> Dmitry, any comments?
>>
>>
>>
>>






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

end of thread, other threads:[~2023-12-16 12:17 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-01 14:27 bug#67569: 29.1; ruby-mode syntax highlighting breaks with variable named "index" and "/" operator Michael Hoy
2023-12-09  8:32 ` Eli Zaretskii
2023-12-16 11:58   ` Eli Zaretskii
2023-12-16 12:17     ` Dmitry Gutov
2023-12-09 14:13 ` Dmitry Gutov
2023-12-09 14:35   ` Eli Zaretskii
2023-12-09 17:38     ` Dmitry Gutov
2023-12-09 17:47       ` Eli Zaretskii
2023-12-09 18:00         ` Dmitry Gutov

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).