* 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-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
* 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
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 external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.