Subject: bug#62301: closed (Re: bug#62301: 29.0.60; treesit-parent-while should mention that the return value may include the initial node)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 21 Mar 2023 21:53:02 +0000

Your bug report

#62301: 29.0.60; treesit-parent-while should mention that the return value may include the initial node

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
62301: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62301
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#62301: 29.0.60; treesit-parent-while should mention that the return value may include the initial node
From: Yuan Fu <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Tue, 21 Mar 2023 14:52:19 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

daanturo <[email-masked]> writes:

> For the current implementation of `treesit-parent-while`, it will return
> the initial argument NODE who satisfies PRED while its immediate parent
> doesn't. But the docstring, when mentioning return values, only said
> about "parent" but not the child itself.
>
> For example, finding the node closest to the root that covers only
> exactly one of its descendant.
>
> (-let* ((node (treesit-node-at (point))))
>   (treesit-parent-while
>    node
>    (lambda (nd)
>      (and (= (treesit-node-start nd) (treesit-node-start node))
>           (= (treesit-node-end nd) (treesit-node-end node))))))
>
>
> I don't think that's a bug as it's useful to include the child
> sometimes, as the example above, but I think the docstring should
> clarify more.

Thanks for the report! I updated the docstring as you suggested.

Yuan

Subject: 29.0.60; treesit-parent-while should mention that the return value may include the initial node
From: daanturo <[email-masked]>
To: [email-masked]
Date: Tue, 21 Mar 2023 01:45:51 +0700
List-Id: <debbugs-submit.debbugs.gnu.org>

For the current implementation of `treesit-parent-while`, it will return
the initial argument NODE who satisfies PRED while its immediate parent
doesn't. But the docstring, when mentioning return values, only said
about "parent" but not the child itself.

For example, finding the node closest to the root that covers only
exactly one of its descendant.

(-let* ((node (treesit-node-at (point))))
  (treesit-parent-while
   node
   (lambda (nd)
     (and (= (treesit-node-start nd) (treesit-node-start node))
          (= (treesit-node-end nd) (treesit-node-end node))))))

I don't think that's a bug as it's useful to include the child
sometimes, as the example above, but I think the docstring should
clarify more.

In GNU Emacs 29.0.60 (build 2, x86_64-pc-linux-gnu, GTK+ Version
3.24.37, cairo version 1.17.8) of 2023-03-14 built on dan-laptop
Repository revision: 03049ef897ee5f73b3d9957efc0182449c41a03f
Repository branch: makepkg
System Description: Arch Linux

Configured using:
'configure --sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib
--localstatedir=/var
'--program-transform-name='\''s/\(ctags\)/\1.emacs/'\'''
--with-mailutils --with-modules --with-native-compilation --with-pgtk
--without-xaw3d --with-sound=alsa --with-tree-sitter --with-xinput2
--with-xwidgets --without-libotf --without-m17n-flt
'CFLAGS=-march=native -O2 -pipe -fno-plt -fexceptions
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
-fstack-clash-protection -fcf-protection'
LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER
PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM XWIDGETS GTK3 ZLIB

Important settings:
value of $LANG: en_GB.UTF-8
value of $XMODIFIERS: @im=fcitx
locale-coding-system: utf-8-unix

Major mode: Rust

Minor modes in effect:
lsp-diagnostics-mode: t
lsp-headerline-breadcrumb-mode: t
dap-tooltip-mode: t
lsp-ui-mode: t
lsp-ui-doc-mode: t
lsp-ui-sideline-mode: t
lsp-modeline-workspace-status-mode: t
lsp-modeline-diagnostics-mode: t
lsp-modeline-code-actions-mode: t
lsp-completion-mode: t
lsp-semantic-tokens-mode: t
dap-ui-many-windows-mode: t
dap-ui-controls-mode: t
dap-ui-mode: t
gdb-many-windows: t
lsp-lens-mode: t
dap-auto-configure-mode: t
dap-mode: t
lsp-managed-mode: t
lsp-mode: t
sideline-mode: t
flymake-mode: t
global-anzu-mode: t
anzu-mode: t
pixel-scroll-precision-mode: t
corfu-indexed-mode: t
corfu-popupinfo-mode: t
treemacs-project-follow-mode: t
my-auto-sidebar-mode: t
treemacs-filewatch-mode: t
treemacs-follow-mode: t
treemacs-git-mode: t
treemacs-fringe-indicator-mode: t
nyan-mode: t
minions-mode: t
doom-modeline-mode: t
all-the-icons-completion-mode: t
marginalia-mode: t
global-blamer-mode: t
blamer-mode: t
minibuffer-depth-indicate-mode: t
which-key-mode: t
better-jumper-mode: t
better-jumper-local-mode: t
evil-goggles-mode: t
evil-snipe-override-mode: t
evil-snipe-mode: t
evil-snipe-override-local-mode: t
evil-snipe-local-mode: t
vertico-multiform-mode: t
vertico-mouse-mode: t
vertico-mode: t
global-hl-todo-mode: t
hl-todo-mode: t
global-git-commit-mode: t
shell-dirtrack-mode: t
yas-global-mode: t
yas-minor-mode: t
savehist-mode: t
my-outline-comment-mode: t
my-outline-minor-highlight-mode: t
eros-mode: t
outline-minor-mode: t
vi-tilde-fringe-mode: t
highlight-numbers-mode: t
display-line-numbers-mode: t
flyspell-lazy-mode: t
flyspell-mode: t
highlight-indent-guides-mode: t
rainbow-delimiters-mode: t
gcmh-mode: t
global-hl-line-mode: t
hl-line-mode: t
winner-mode: t
ws-butler-global-mode: t
ws-butler-mode: t
undo-fu-session-global-mode: t
undo-fu-session-mode: t
undo-fu-mode: t
save-place-mode: t
recentf-mode: t
electric-pair-mode: t
global-corfu-mode: t
corfu-mode: t
global-so-long-mode: t
envrc-global-mode: t
envrc-mode: t
dtrt-indent-mode: t
solaire-global-mode: t
global-subword-mode: t
subword-mode: t
my-scroll-mode: t
cua-mode: t
key-chord-mode: t
+popup-mode: t
+lsp-optimization-mode: t
override-global-mode: t
evil-mode: t
evil-local-mode: t
windmove-mode: t
my-lsp-global-mode: t
my-icon-in-popup-completions-global-mode: t
general-override-mode: t
apheleia-global-mode: t
apheleia-mode: t
my-pair-navigate-mode: t
my-global-pair-edit-mode: t
my-pair-edit-mode: t
my-minibuffer-input-history-mode: t
my-tree-sitter-global-mode: t
global-eldoc-mode: t
eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tab-bar-history-mode: t
file-name-shadow-mode: t
context-menu-mode: t
global-font-lock-mode: t
font-lock-mode: t
window-divider-mode: t
undelete-frame-mode: t
size-indication-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t

Load-path shadows:
/home/dan/.config/emacs/.local/straight/build-29.0.60/ivy/elpa hides /home/dan/.config/emacs/.local/straight/build-29.0.60/lispy/elpa
/home/dan/.config/emacs/.local/straight/build-29.0.60/ht/ht hides ~/.local/state/emacs-29.0.60/my-use-elisp/ht
/home/dan/.config/emacs/.local/straight/build-29.0.60/f/f-shortdoc hides ~/.local/state/emacs-29.0.60/my-use-elisp/f-shortdoc
/home/dan/.config/emacs/.local/straight/build-29.0.60/f/f hides ~/.local/state/emacs-29.0.60/my-use-elisp/f
/home/dan/.config/emacs/.local/straight/build-29.0.60/s/s hides ~/.local/state/emacs-29.0.60/my-use-elisp/s
/home/dan/.config/emacs/.local/straight/build-29.0.60/dash/dash hides ~/.local/state/emacs-29.0.60/my-use-elisp/dash
~/.local/state/emacs-29.0.60/my-use-elisp/my-evalu hides ~/.config/doom/lisp/my-evalu
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-org hides ~/.config/doom/lisp/my-functions-org
~/.local/state/emacs-29.0.60/my-use-elisp/after-org hides ~/.config/doom/lisp/after-org
~/.local/state/emacs-29.0.60/my-use-elisp/my-treesit-expansions hides ~/.config/doom/lisp/my-treesit-expansions
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-expand-region hides ~/.config/doom/lisp/my-functions-expand-region
~/.local/state/emacs-29.0.60/my-use-elisp/after-expand-region hides ~/.config/doom/lisp/after-expand-region
~/.local/state/emacs-29.0.60/my-use-elisp/01-my-core-functions hides ~/.config/doom/lisp/01-my-core-functions
~/.local/state/emacs-29.0.60/my-use-elisp/my-utilities-emacs hides ~/.config/doom/lisp/my-utilities-emacs
~/.local/state/emacs-29.0.60/my-use-elisp/my-sticky-header hides ~/.config/doom/lisp/my-sticky-header
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-package hides ~/.config/doom/lisp/my-functions-package
~/.local/state/emacs-29.0.60/my-use-elisp/32-my-config-functions hides ~/.config/doom/lisp/32-my-config-functions
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-toml hides ~/.config/doom/lisp/my-functions-toml
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-dart hides ~/.config/doom/lisp/my-functions-dart
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-bash-completion hides ~/.config/doom/lisp/my-functions-bash-completion
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-sh-mode hides ~/.config/doom/lisp/my-functions-sh-mode
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-compile hides ~/.config/doom/lisp/my-functions-compile
~/.local/state/emacs-29.0.60/my-use-elisp/hook-comint-mode-hook hides ~/.config/doom/lisp/hook-comint-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/hook-rust-mode-hook hides ~/.config/doom/lisp/hook-rust-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-treesit hides ~/.config/doom/lisp/my-functions-treesit
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-doom hides ~/.config/doom/lisp/my-functions-doom
~/.local/state/emacs-29.0.60/my-use-elisp/after-treemacs hides ~/.config/doom/lisp/after-treemacs
~/.local/state/emacs-29.0.60/my-use-elisp/16-my-commands hides ~/.config/doom/lisp/16-my-commands
~/.local/state/emacs-29.0.60/my-use-elisp/after-consult hides ~/.config/doom/lisp/after-consult
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-tramp hides ~/.config/doom/lisp/my-functions-tramp
~/.local/state/emacs-29.0.60/my-use-elisp/my-pkg hides ~/.config/doom/lisp/my-pkg
~/.local/state/emacs-29.0.60/my-use-elisp/my-help-to-pcomplete hides ~/.config/doom/lisp/my-help-to-pcomplete
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-code-completion hides ~/.config/doom/lisp/my-functions-code-completion
~/.local/state/emacs-29.0.60/my-use-elisp/my-utilities-application hides ~/.config/doom/lisp/my-utilities-application
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-inspector hides ~/.config/doom/lisp/my-functions-inspector
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-emacs-lisp hides ~/.config/doom/lisp/my-functions-emacs-lisp
~/.local/state/emacs-29.0.60/my-use-elisp/after-inspector hides ~/.config/doom/lisp/after-inspector
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-net hides ~/.config/doom/lisp/my-functions-net
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-command-line hides ~/.config/doom/lisp/my-functions-command-line
~/.local/state/emacs-29.0.60/my-use-elisp/hook-magit-mode-hook hides ~/.config/doom/lisp/hook-magit-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-evil hides ~/.config/doom/lisp/my-functions-evil
~/.local/state/emacs-29.0.60/my-use-elisp/after-evil hides ~/.config/doom/lisp/after-evil
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-magit hides ~/.config/doom/lisp/my-functions-magit
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-frame-window hides ~/.config/doom/lisp/my-functions-frame-window
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-profiler hides ~/.config/doom/lisp/my-functions-profiler
~/.local/state/emacs-29.0.60/my-use-elisp/my-code-format hides ~/.config/doom/lisp/my-code-format
~/.local/state/emacs-29.0.60/my-use-elisp/00-my-core-macros hides ~/.config/doom/lisp/00-my-core-macros
~/.local/state/emacs-29.0.60/my-use-elisp/hook-dired-mode-hook hides ~/.config/doom/lisp/hook-dired-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/after-info hides ~/.config/doom/lisp/after-info
~/.local/state/emacs-29.0.60/my-use-elisp/after-eww hides ~/.config/doom/lisp/after-eww
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-multiple-cursors hides ~/.config/doom/lisp/my-functions-multiple-cursors
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-edit hides ~/.config/doom/lisp/my-functions-edit
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-dash-docs hides ~/.config/doom/lisp/my-functions-dash-docs
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-consult hides ~/.config/doom/lisp/my-functions-consult
~/.local/state/emacs-29.0.60/my-use-elisp/hook-python-mode-hook hides ~/.config/doom/lisp/hook-python-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/hook-java-mode-hook hides ~/.config/doom/lisp/hook-java-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/hook-c-mode-common-hook hides ~/.config/doom/lisp/hook-c-mode-common-hook
~/.local/state/emacs-29.0.60/my-use-elisp/after-web-mode hides ~/.config/doom/lisp/after-web-mode
~/.local/state/emacs-29.0.60/my-use-elisp/after-dash-docs hides ~/.config/doom/lisp/after-dash-docs
~/.local/state/emacs-29.0.60/my-use-elisp/16-my-commands-compiled hides ~/.config/doom/lisp/16-my-commands-compiled
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-dired hides ~/.config/doom/lisp/my-functions-dired
~/.local/state/emacs-29.0.60/my-use-elisp/my-dired-undop hides ~/.config/doom/lisp/my-dired-undop
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-python hides ~/.config/doom/lisp/my-functions-python
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-jupyter hides ~/.config/doom/lisp/my-functions-jupyter
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-shell hides ~/.config/doom/lisp/my-functions-shell
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-latex hides ~/.config/doom/lisp/my-functions-latex
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-documentation hides ~/.config/doom/lisp/my-functions-documentation
~/.local/state/emacs-29.0.60/my-use-elisp/after-image-mode hides ~/.config/doom/lisp/after-image-mode
~/.local/state/emacs-29.0.60/my-use-elisp/after-ein hides ~/.config/doom/lisp/after-ein
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-repo hides ~/.config/doom/lisp/my-functions-repo
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-project hides ~/.config/doom/lisp/my-functions-project
~/.local/state/emacs-29.0.60/my-use-elisp/after-wdired hides ~/.config/doom/lisp/after-wdired
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-file-directory hides ~/.config/doom/lisp/my-functions-file-directory
~/.local/state/emacs-29.0.60/my-use-elisp/my-pair hides ~/.config/doom/lisp/my-pair
~/.local/state/emacs-29.0.60/my-use-elisp/my-minibuffer-input-history-mode hides ~/.config/doom/lisp/my-minibuffer-input-history-mode
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-sgml hides ~/.config/doom/lisp/my-functions-sgml
~/.local/state/emacs-29.0.60/my-use-elisp/after-typescript-mode hides ~/.config/doom/lisp/after-typescript-mode
~/.local/state/emacs-29.0.60/my-use-elisp/01-my-use-elisp-x hides ~/.config/doom/lisp/01-my-use-elisp-x
~/.local/state/emacs-29.0.60/my-use-elisp/my-no-mode-line hides ~/.config/doom/lisp/my-no-mode-line
~/.local/state/emacs-29.0.60/my-use-elisp/00-my-use-elisp hides ~/.config/doom/lisp/00-my-use-elisp
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-minibuffer hides ~/.config/doom/lisp/my-functions-minibuffer
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-embark hides ~/.config/doom/lisp/my-functions-embark
~/.local/state/emacs-29.0.60/my-use-elisp/my-archived-functions hides ~/.config/doom/lisp/my-archived-functions
~/.local/state/emacs-29.0.60/my-use-elisp/after-vterm hides ~/.config/doom/lisp/after-vterm
~/.local/state/emacs-29.0.60/my-use-elisp/after-eat hides ~/.config/doom/lisp/after-eat
~/.local/state/emacs-29.0.60/my-use-elisp/my-completion-style hides ~/.config/doom/lisp/my-completion-style
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-DE-OS hides ~/.config/doom/lisp/my-functions-DE-OS
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-occur hides ~/.config/doom/lisp/my-functions-occur
~/.local/state/emacs-29.0.60/my-use-elisp/after-ivy hides ~/.config/doom/lisp/after-ivy
~/.local/state/emacs-29.0.60/my-use-elisp/hook-scheme-mode-hook hides ~/.config/doom/lisp/hook-scheme-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/hook-scala-mode-hook hides ~/.config/doom/lisp/hook-scala-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/hook-markdown-mode-hook hides ~/.config/doom/lisp/hook-markdown-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/hook-eshell-mode-hook hides ~/.config/doom/lisp/hook-eshell-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/hook-elixir-mode-hook hides ~/.config/doom/lisp/hook-elixir-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/hook-clojure-mode-hook hides ~/.config/doom/lisp/hook-clojure-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/after-tex-mode hides ~/.config/doom/lisp/after-tex-mode
~/.local/state/emacs-29.0.60/my-use-elisp/after-ox-latex hides ~/.config/doom/lisp/after-ox-latex
~/.local/state/emacs-29.0.60/my-use-elisp/after-antlr-mode hides ~/.config/doom/lisp/after-antlr-mode
~/.local/state/emacs-29.0.60/my-use-elisp/my-highlight-just hides ~/.config/doom/lisp/my-highlight-just
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-snippet hides ~/.config/doom/lisp/my-functions-snippet
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-flymake hides ~/.config/doom/lisp/my-functions-flymake
~/.local/state/emacs-29.0.60/my-use-elisp/my-minibuffer-next-history hides ~/.config/doom/lisp/my-minibuffer-next-history
~/.local/state/emacs-29.0.60/my-use-elisp/my-preview-latex hides ~/.config/doom/lisp/my-preview-latex
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-tree-sitter hides ~/.config/doom/lisp/my-functions-tree-sitter
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-thing-at-point hides ~/.config/doom/lisp/my-functions-thing-at-point
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-markdown hides ~/.config/doom/lisp/my-functions-markdown
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-image hides ~/.config/doom/lisp/my-functions-image
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-ein hides ~/.config/doom/lisp/my-functions-ein
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-apheleia hides ~/.config/doom/lisp/my-functions-apheleia
~/.local/state/emacs-29.0.60/my-use-elisp/my-code-format-try-region hides ~/.config/doom/lisp/my-code-format-try-region
~/.local/state/emacs-29.0.60/my-use-elisp/my-center-mode hides ~/.config/doom/lisp/my-center-mode
~/.local/state/emacs-29.0.60/my-use-elisp/after-tree-sitter hides ~/.config/doom/lisp/after-tree-sitter
~/.local/state/emacs-29.0.60/my-use-elisp/after-multiple-cursors hides ~/.config/doom/lisp/after-multiple-cursors
~/.local/state/emacs-29.0.60/my-use-elisp/after-iedit hides ~/.config/doom/lisp/after-iedit
~/.local/state/emacs-29.0.60/my-use-elisp/after-devdocs hides ~/.config/doom/lisp/after-devdocs
~/.local/state/emacs-29.0.60/my-use-elisp/16-my-commands-edit hides ~/.config/doom/lisp/16-my-commands-edit
~/.local/state/emacs-29.0.60/my-use-elisp/my-outline-comment-mode hides ~/.config/doom/lisp/my-outline-comment-mode
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-tabulated-list hides ~/.config/doom/lisp/my-functions-tabulated-list
~/.local/state/emacs-29.0.60/my-use-elisp/alphapapa-unpackaged hides ~/.config/doom/lisp/alphapapa-unpackaged
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-theme hides ~/.config/doom/lisp/my-functions-theme
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-dabbrev hides ~/.config/doom/lisp/my-functions-dabbrev
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-clipboard hides ~/.config/doom/lisp/my-functions-clipboard
~/.local/state/emacs-29.0.60/my-use-elisp/after-helpful hides ~/.config/doom/lisp/after-helpful
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-version-control hides ~/.config/doom/lisp/my-functions-version-control
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-recentf hides ~/.config/doom/lisp/my-functions-recentf
~/.local/state/emacs-29.0.60/my-use-elisp/after-undo-tree hides ~/.config/doom/lisp/after-undo-tree
~/.local/state/emacs-29.0.60/my-use-elisp/my-scripts hides ~/.config/doom/lisp/my-scripts
~/.local/state/emacs-29.0.60/my-use-elisp/my-other-window hides ~/.config/doom/lisp/my-other-window
~/.local/state/emacs-29.0.60/my-use-elisp/my-move-lines hides ~/.config/doom/lisp/my-move-lines
~/.local/state/emacs-29.0.60/my-use-elisp/my-levenshtein-edit-distance hides ~/.config/doom/lisp/my-levenshtein-edit-distance
~/.local/state/emacs-29.0.60/my-use-elisp/my-latex-math hides ~/.config/doom/lisp/my-latex-math
~/.local/state/emacs-29.0.60/my-use-elisp/my-goto-outline hides ~/.config/doom/lisp/my-goto-outline
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-vterm hides ~/.config/doom/lisp/my-functions-vterm
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-typescript hides ~/.config/doom/lisp/my-functions-typescript
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-tab-bar hides ~/.config/doom/lisp/my-functions-tab-bar
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-system-theme hides ~/.config/doom/lisp/my-functions-system-theme
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-structural-edit hides ~/.config/doom/lisp/my-functions-structural-edit
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-straight hides ~/.config/doom/lisp/my-functions-straight
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-ssh hides ~/.config/doom/lisp/my-functions-ssh
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-other hides ~/.config/doom/lisp/my-functions-other
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-mouse hides ~/.config/doom/lisp/my-functions-mouse
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-man hides ~/.config/doom/lisp/my-functions-man
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-lispy hides ~/.config/doom/lisp/my-functions-lispy
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-iedit hides ~/.config/doom/lisp/my-functions-iedit
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-flycheck hides ~/.config/doom/lisp/my-functions-flycheck
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-fcitx hides ~/.config/doom/lisp/my-functions-fcitx
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-epkg hides ~/.config/doom/lisp/my-functions-epkg
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-elixir hides ~/.config/doom/lisp/my-functions-elixir
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-eldoc hides ~/.config/doom/lisp/my-functions-eldoc
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-edit-indirect hides ~/.config/doom/lisp/my-functions-edit-indirect
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-code-cells hides ~/.config/doom/lisp/my-functions-code-cells
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-clojure hides ~/.config/doom/lisp/my-functions-clojure
~/.local/state/emacs-29.0.60/my-use-elisp/my-export-minibuffer-annotations hides ~/.config/doom/lisp/my-export-minibuffer-annotations
~/.local/state/emacs-29.0.60/my-use-elisp/my-display-point-mode hides ~/.config/doom/lisp/my-display-point-mode
~/.local/state/emacs-29.0.60/my-use-elisp/my-dired-count hides ~/.config/doom/lisp/my-dired-count
~/.local/state/emacs-29.0.60/my-use-elisp/my-M-z-keys hides ~/.config/doom/lisp/my-M-z-keys
~/.local/state/emacs-29.0.60/my-use-elisp/hook-sh-mode-hook hides ~/.config/doom/lisp/hook-sh-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/after-symex hides ~/.config/doom/lisp/after-symex
~/.local/state/emacs-29.0.60/my-use-elisp/after-lispy hides ~/.config/doom/lisp/after-lispy
~/.local/state/emacs-29.0.60/my-use-elisp/after-ielm hides ~/.config/doom/lisp/after-ielm
~/.local/state/emacs-29.0.60/my-use-elisp/after-fcitx hides ~/.config/doom/lisp/after-fcitx
~/.local/state/emacs-29.0.60/my-use-elisp/after-embark hides ~/.config/doom/lisp/after-embark
~/.local/state/emacs-29.0.60/my-use-elisp/after-dap-mode hides ~/.config/doom/lisp/after-dap-mode
~/.local/state/emacs-29.0.60/my-use-elisp/after-apheleia hides ~/.config/doom/lisp/after-apheleia
~/.local/state/emacs-29.0.60/my-use-elisp/my-functions-avy hides ~/.config/doom/lisp/my-functions-avy
~/.local/state/emacs-29.0.60/my-use-elisp/after-bookmark hides ~/.config/doom/lisp/after-bookmark
~/.local/state/emacs-29.0.60/my-use-elisp/hook-dart-mode-hook hides ~/.config/doom/lisp/hook-dart-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/after-tramp hides ~/.config/doom/lisp/after-tramp
~/.local/state/emacs-29.0.60/my-use-elisp/my-execu hides ~/.config/doom/lisp/my-execu
~/.local/state/emacs-29.0.60/my-use-elisp/my-ensure-extension-edit hides ~/.config/doom/lisp/my-ensure-extension-edit
~/.local/state/emacs-29.0.60/my-use-elisp/hook-racket-mode-hook hides ~/.config/doom/lisp/hook-racket-mode-hook
~/.local/state/emacs-29.0.60/my-use-elisp/after-eaf hides ~/.config/doom/lisp/after-eaf
~/.local/state/emacs-29.0.60/my-use-elisp/my-async-emacs-lisp hides ~/.config/doom/lisp/my-async-emacs-lisp
~/.local/state/emacs-29.0.60/my-use-elisp/my-invert-background hides ~/.config/doom/lisp/my-invert-background
~/.local/state/emacs-29.0.60/my-use-elisp/after-rotate-text hides ~/.config/doom/lisp/after-rotate-text
~/.local/state/emacs-29.0.60/my-use-elisp/my-utilities-cli hides ~/.config/doom/lisp/my-utilities-cli
~/.local/state/emacs-29.0.60/my-use-elisp/my-undim-commentary hides ~/.config/doom/lisp/my-undim-commentary
~/.local/state/emacs-29.0.60/my-use-elisp/my-idle-eval hides ~/.config/doom/lisp/my-idle-eval
~/.local/state/emacs-29.0.60/my-use-elisp/my-hydras hides ~/.config/doom/lisp/my-hydras
~/.local/state/emacs-29.0.60/my-use-elisp/my-fun-lib hides ~/.config/doom/lisp/my-fun-lib
~/.local/state/emacs-29.0.60/my-use-elisp/my-dired-multi-paste hides ~/.config/doom/lisp/my-dired-multi-paste
~/.local/state/emacs-29.0.60/my-use-elisp/my-async-shell-command-with-limited-jobs hides ~/.config/doom/lisp/my-async-shell-command-with-limited-jobs
~/.local/state/emacs-29.0.60/my-use-elisp/after-wgrep hides ~/.config/doom/lisp/after-wgrep
~/.local/state/emacs-29.0.60/my-use-elisp/after-term hides ~/.config/doom/lisp/after-term
~/.local/state/emacs-29.0.60/my-use-elisp/after-sql hides ~/.config/doom/lisp/after-sql
~/.local/state/emacs-29.0.60/my-use-elisp/after-org-elp hides ~/.config/doom/lisp/after-org-elp
~/.local/state/emacs-29.0.60/my-use-elisp/after-npm-mode hides ~/.config/doom/lisp/after-npm-mode
~/.local/state/emacs-29.0.60/my-use-elisp/after-jupyter hides ~/.config/doom/lisp/after-jupyter
~/.local/state/emacs-29.0.60/my-use-elisp/after-epkg hides ~/.config/doom/lisp/after-epkg
~/.local/state/emacs-29.0.60/my-use-elisp/after-copilot hides ~/.config/doom/lisp/after-copilot
~/.local/state/emacs-29.0.60/my-use-elisp/after-code-cells hides ~/.config/doom/lisp/after-code-cells
~/.local/state/emacs-29.0.60/my-use-elisp/after-cape hides ~/.config/doom/lisp/after-cape
~/.local/state/emacs-29.0.60/my-use-elisp/after-avy hides ~/.config/doom/lisp/after-avy
~/.local/state/emacs-29.0.60/my-use-elisp/doom-lib hides /home/dan/.config/emacs/lisp/doom-lib
/home/dan/.config/emacs/.local/straight/build-29.0.60/cmake-mode/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/home/dan/.config/emacs/.local/straight/build-29.0.60/transient/transient hides /usr/share/emacs/29.0.60/lisp/transient
/home/dan/.config/emacs/.local/straight/build-29.0.60/map/map hides /usr/share/emacs/29.0.60/lisp/emacs-lisp/map

Features:
(shadow sort flymake-proselint adaptive-wrap mail-extr emacsbug
hide-mode-line rust-ts-mode c-ts-common evil-multiedit vertico-directory
tramp-cmds my-functions-tree-sitter my-functions-doom lsp-diagnostics
lsp-headerline lsp-icons dap-mouse lsp-ui lsp-ui-flycheck lsp-ui-doc
evil-collection-xwidget xwidget after-image-mode image-mode exif
goto-addr evil-collection-lsp-ui-imenu lsp-ui-imenu lsp-ui-peek
lsp-ui-sideline rustic-flycheck consult-flycheck flycheck-package
package-lint evil-collection-finder finder finder-inf
evil-collection-flycheck flycheck lsp-ui-util lsp-modeline
hook-rust-mode-hook rustic-spellcheck rustic-expand rustic-lsp
rustic-playground rustic-rustfix rustic-racer rustic-babel
rustic-rustfmt rustic-comint rustic-clippy rustic-doc rustic-popup
rustic-cargo rustic-compile xterm-color rustic-interaction rustic
smartparens-rust rust-utils rust-mode consult-xdg-recent-files rotate
my-functions-frame-window treesit my-functions-embark
evil-collection-embark after-embark embark-org embark-consult embark
ffap flyspell-correct cape-keyword after-cape cape after-iedit iedit
iedit-lib after-multiple-cursors multiple-cursors mc-separate-operations
rectangular-region-mode mc-mark-pop mc-edit-lines
mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors
multiple-cursors-core drag-stuff dabbrev hippie-exp my-functions-dabbrev
tempel my-functions-snippet cl-print ace-window after-avy avy
my-other-window misc lispyville evil-collection-indent
evil-collection-view view my-center-mode evil-collection-helpful
after-helpful helpful cc-langs trace info-look after-info info
evil-collection-elisp-refs elisp-refs my-code-format elisp-autofmt
loadhist my-functions-emacs-lisp my-functions-apheleia after-apheleia
apheleia sideline-flymake my-sticky-header lsp-zig lsp-steep lsp-svelte
lsp-sqls lsp-ruby-syntax-tree lsp-yaml lsp-xml lsp-vimscript lsp-vhdl
lsp-volar lsp-vetur lsp-html lsp-verilog lsp-vala lsp-v lsp-typeprof
lsp-ttcn3 lsp-toml lsp-terraform lsp-tex lsp-sorbet lsp-solargraph
lsp-rust lsp-rf lsp-remark lsp-racket lsp-r lsp-purescript lsp-pylsp
lsp-pyls lsp-pwsh lsp-php lsp-pls lsp-perlnavigator lsp-perl
lsp-openscad lsp-ocaml lsp-magik lsp-nix lsp-nim lsp-nginx lsp-mint
lsp-marksman lsp-markdown lsp-lua lsp-kotlin lsp-json lsp-javascript
lsp-idris lsp-haxe lsp-groovy lsp-hack lsp-graphql lsp-gleam lsp-go
lsp-completion lsp-gdscript lsp-fsharp lsp-fortran lsp-eslint lsp-erlang
lsp-emmet lsp-elixir lsp-elm lsp-dockerfile lsp-dhall lsp-d lsp-css
lsp-csharp lsp-crystal lsp-cmake lsp-clojure lsp-semantic-tokens
lsp-clangd lsp-beancount lsp-bash lsp-astro lsp-ansible lsp-angular
lsp-ada lsp-actionscript checkdoc lsp lsp-pyright dap-gdb-lldb dap-utils
dap-lldb ccls ccls-member-hierarchy ccls-inheritance-hierarchy
ccls-call-hierarchy ccls-tree ccls-code-lens ccls-semantic-highlight
ccls-common smartparens-c cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs dap-ui lsp-treemacs
lsp-treemacs-generic lsp-treemacs-themes treemacs-treelib gdb-mi bindat
gud bui bui-list bui-info bui-entry bui-core bui-history bui-button
bui-utils lsp-lens after-dap-mode dap-mode dap-tasks dap-launch
lsp-docker dap-overlays lsp-mode lsp-protocol spinner network-stream lv
my-functions-file-directory 16-my-commands mwim sideline
evil-collection-flymake flymake-proc flymake elisp-demos shortdoc
evil-collection-help my-functions-lispy evil-anzu anzu char-fold swiper
evil-collection-ivy after-ivy ivy ivy-faces ivy-overlay colir
pixel-scroll lispy lispy-inline etags fileloop evil-collection-edebug
edebug help-fns radix-tree lispy-tags mode-local dumb-jump
evil-collection-popup popup elisp-def ert ewoc evil-collection-debug
debug backtrace consult-xref my-functions-evil tabify
evil-collection-evil-mc evil-mc evil-mc-command-execute
evil-mc-command-record evil-mc-cursor-make evil-mc-region
evil-mc-cursor-state evil-mc-undo evil-mc-vars evil-mc-known-commands
evil-mc-common apheleia-core apheleia-formatters my-functions-shell
my-functions-repo kind-icon svg-lib corfu-indexed corfu-popupinfo puni
my-pair my-functions-structural-edit my-functions-minibuffer
my-minibuffer-next-history my-functions-code-completion
my-help-to-pcomplete mule-util desktop frameset doom-palenight-theme
my-minibuffer-input-history-mode my-completion-style
treemacs-project-follow-mode treemacs-magit treemacs-projectile
treemacs-evil after-treemacs treemacs-all-the-icons treemacs
treemacs-header-line treemacs-compatibility treemacs-mode
treemacs-bookmarks treemacs-tags evil-collection-xref xref
treemacs-interface treemacs-persistence treemacs-filewatch-mode
treemacs-follow-mode treemacs-rendering treemacs-annotations
treemacs-async treemacs-workspaces treemacs-dom treemacs-visuals
treemacs-fringe-indicator treemacs-scope treemacs-faces treemacs-icons
treemacs-themes treemacs-core-utils pfuture inline treemacs-logging
treemacs-customization treemacs-macros nyan-mode minions doom-modeline
doom-modeline-segments doom-modeline-env doom-modeline-core shrink-path
cursor-sensor vertico-repeat all-the-icons-completion all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons marginalia
evil-collection-consult after-consult consult-vertico consult
magit-bookmark evil-collection-bookmark after-bookmark bookmark blamer
posframe after-tramp tramp tramp-loaddefs trampver tramp-integration
files-x tramp-compat ls-lisp mb-depth evil-collection-which-key
which-key better-jumper evil-goggles evil-easymotion evil-snipe
vertico-multiform vertico-mouse evil-collection-vertico vertico
orderless org-capture org-agenda oc-natbib oc-csl citeproc
citeproc-itemgetters citeproc-biblatex citeproc-bibtex parsebib
ol-bibtex evil-collection-org after-org smartparens-org org-yt
org-element org-persist xdg org-id org-refile avl-tree generator org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-emacs-lisp
org-table ol org-keys org-loaddefs citeproc-cite citeproc-subbibs
citeproc-sort citeproc-name citeproc-formatters citeproc-number
smartparens-rst rst citeproc-proc citeproc-disamb citeproc-itemdata
citeproc-generic-elements citeproc-macro citeproc-choose citeproc-date
citeproc-context citeproc-prange citeproc-style citeproc-locale
citeproc-term citeproc-rt citeproc-lib citeproc-s queue bibtex
oc-biblatex oc ob-comint org-pcomplete org-list org-footnote
org-entities org-faces find-func evil-collection-calendar cal-menu
calendar cal-loaddefs evil-collection-magit-todos magit-todos pcre2el
rxt re-builder hl-todo async code-review code-review-actions
code-review-comment code-review-section code-review-bitbucket
code-review-faces shr pixel-fill kinsoku url-file svg xml dom emojify
evil-collection-apropos apropos ht code-review-gitlab code-review-utils
forge-list forge-commands forge-semi forge-bitbucket buck forge-gogs
gogs forge-gitea gtea forge-gitlab glab forge-github forge-notify
forge-revnote forge-pullreq forge-issue forge-topic yaml parse-time
iso8601 bug-reference forge-post smartparens-config smartparens-markdown
smartparens-text smartparens evil-collection-markdown-mode markdown-mode
edit-indirect forge-repo forge forge-core forge-db
code-review-parse-hunk code-review-github code-review-db uuidgen
calc-misc calc-ext a code-review-interfaces deferred ghub-graphql treepy
gsexp ghub url-http url-gw nsm url-auth gnutls closql emacsql-sqlite
emacsql-sqlite-common emacsql emacsql-compiler magit-autoloads
magit-submodule magit-obsolete 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
evil-collection-imenu imenu magit-diff smerge-mode diff magit-core
magit-autorevert magit-margin magit-transient magit-process magit-mode
evil-collection-package-menu doom-packages package browse-url
url-handlers git-commit magit-git magit-base
evil-collection-magit-section magit-section crm transient
evil-collection-log-edit log-edit message sendmail yank-media puny
rfc822 mml mml-sec evil-collection-epa epa epg rfc6068 epg-config
gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils
mailheader pcvs-util add-log with-editor shell pcomplete doom-snippets
doom-snippets-lib yasnippet-snippets yasnippet after-lispy savehist
time-date autorevert filenotify nav-flash pulse git-gutter-fringe
fringe-helper git-gutter evil-collection-vc-git vc-git
evil-collection-diff-mode diff-mode vc-dispatcher my-functions-recentf
jka-compr auto-minor-mode my-outline-comment-mode eros highlight-quoted
noutline outline vi-tilde-fringe highlight-numbers parent-mode
display-line-numbers flyspell-lazy flyspell ispell
highlight-indent-guides color rainbow-delimiters
evil-collection-elisp-mode elisp-mode gcmh hl-line winner ws-butler
undo-fu-session undo-fu saveplace recentf tree-widget elec-pair
evil-collection-corfu corfu compat server evil-collection-so-long
so-long envrc inheritenv dtrt-indent doom-themes-ext-treemacs
doom-themes-ext-org solaire-mode face-remap doom-vibrant-theme
doom-themes doom-themes-base my-custom my-config after-evil projectile
project lisp-mnt evil-collection-grep grep ibuf-ext
evil-collection-ibuffer ibuffer ibuffer-loaddefs two-column cap-words
superword subword my-functions-mouse after-tree-sitter
evil-textobj-tree-sitter tree-sitter-langs tree-sitter-langs-build
evil-collection-tar-mode tar-mode evil-collection-arc-mode arc-mode
archive-mode url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util url-parse
auth-source eieio eieio-core password-cache json url-vars mailcap
tree-sitter-hl ts-fold ts-fold-summary ts-fold-parsers ts-fold-util
tree-sitter tree-sitter-load tree-sitter-cli map tsc tsc-dyn tsc-dyn-get
evil-collection-compile compile text-property-search
evil-collection-comint comint ansi-osc ansi-color dired-aux
evil-collection-dired evil-collection-custom cus-edit cus-load wid-edit
evil-collection annalist dired dired-loaddefs tsc-obsolete delsel
cua-base key-chord smartparens-elixir let-alist ob-core org-cycle
org-fold org-fold-core org-compat ob-eval org-version org-macs
format-spec use-package-bind-key bind-key evil evil-integration
evil-maps evil-commands reveal evil-jumps evil-command-window
evil-search evil-types evil-macros evil-repeat evil-states evil-core
byte-opt advice evil-common windmove calc calc-loaddefs calc-macs
thingatpt rect evil-digraphs evil-vars ring edmacro kmacro
32-my-config-functions derived comp comp-cstr warnings icons rx
doom-editor doom-projects doom-ui doom-keybinds pp cl-extra help-mode
use-package-core general realgud-recursive-autoloads tex-site doom-start
my-local-init my-init 01-my-core-functions f f-shortdoc s
00-my-core-macros my-use-elisp-autoloads easy-mmode dash 00-my-use-elisp
bytecomp byte-compile my-early-init doom-modules cl-seq doom doom-lib
cl-macs cl-loaddefs cl-lib pcase gv jansson dynamic-modules subr-x rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type mwheel term/pgtk-win pgtk-win term/common-win
pgtk-dnd 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 xwidget-internal dbusbind inotify dynamic-setting
system-font-setting font-render-setting cairo gtk pgtk lcms2 multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 1644709 290990)
(symbols 48 103290 47)
(strings 32 483527 36994)
(string-bytes 1 12974741)
(vectors 16 169179)
(vector-slots 8 3701178 289354)
(floats 8 3423 6181)
(intervals 56 12861 4322)
(buffers 984 64))

-- 
Daanturo.