From d633c15042351766171912aab6fdaabbf1922037 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 14 Sep 2024 15:49:50 -0400 Subject: [PATCH 1/5] perf(cc): lsp-clangd: halve core count for indexing Ref: cec81ac2ccdb --- modules/lang/cc/config.el | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/lang/cc/config.el b/modules/lang/cc/config.el index 3a6e1cd64..789c6fca2 100644 --- a/modules/lang/cc/config.el +++ b/modules/lang/cc/config.el @@ -160,7 +160,12 @@ This is ignored by ccls.") cuda-mode-local-vars-hook) :append #'lsp!) - (when (modulep! :tools lsp +eglot) + (if (not (modulep! :tools lsp +eglot)) + (after! lsp-clangd + ;; Prevent clangd from consuming all your cores indexing larger projects + ;; and grinding your system to a halt. + (cl-pushnew (format "-j=%d" (max 1 (/ (doom-system-cpus) 2))) + lsp-clients-clangd-args)) (set-eglot-client! 'cuda-mode '("clangd")) ;; Map eglot specific helper @@ -203,6 +208,8 @@ This is ignored by ccls.") (featurep :system 'linux)) (setq ccls-initialization-options `(:index (:trackDependency 1 + ;; Prevent ccls from consuming all your cores indexing + ;; larger projects and grinding your system to a halt. :threads ,(max 1 (/ (doom-system-cpus) 2)))))) (when (featurep :system 'macos) (setq ccls-initialization-options From 7ec570fdf5a43a81dca985eae7eb1bb7bda4bc75 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 14 Sep 2024 16:52:10 -0400 Subject: [PATCH 2/5] fix(format): clang-format: respect c-basic-offset In the absence of a .clang-format file, imposing the value of `c-basic-offset` onto clang-format seems like reasonable, default behavior. Like all other cases, this can be disabled by unsetting `apheleia-formatters-respect-indent-level` globally or mode-locally with `setq-hook!` or similar. --- modules/editor/format/config.el | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modules/editor/format/config.el b/modules/editor/format/config.el index 4ea019010..df38a12ad 100644 --- a/modules/editor/format/config.el +++ b/modules/editor/format/config.el @@ -79,6 +79,18 @@ This is controlled by `+format-on-save-disabled-modes'." ;; `+format-with-lsp-mode' in the appropriate modes. (add-to-list 'apheleia-formatters '(lsp . +format-lsp-buffer)) + ;; Apheleia's default clang-format config doesn't respect `c-basic-offset', so + ;; force it to in the absence of a .clang-format file. + (setf (alist-get 'clang-format apheleia-formatters) + `("clang-format" + "-assume-filename" + (or (apheleia-formatters-local-buffer-file-name) + (apheleia-formatters-mode-extension) + ".c") + (when apheleia-formatters-respect-indent-level + (unless (locate-dominating-file default-directory ".clang-format") + (format "--style={IndentWidth: %d}" c-basic-offset))))) + ;; Apheleia's default config for prettier passes an explicit --tab-width N to ;; all prettier formatters, respecting your indent settings in Emacs, but ;; overriding any indent settings in your prettier config files. This changes From 037b018cdd579f981cfa1cfd55971eedd0dfc165 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 14 Sep 2024 16:59:59 -0400 Subject: [PATCH 3/5] feat: add .doommodule files These optional dotfiles indicate the root of a module or module group (:lang), and will later contain module metadata. They will also serve as an alternative to packages.el and doctor.el, and will aide the parts of the v3.0 module API concerned with resolving the current module from a path (`doom-module-from-path`), which currently rely too heavily on parsing path strings. For now, however, they're simply placeholders. --- lisp/.doommodule | 10 ++++++++++ modules/app/.doommodule | 0 modules/app/calendar/.doommodule | 0 modules/app/emms/.doommodule | 0 modules/app/everywhere/.doommodule | 0 modules/app/irc/.doommodule | 0 modules/app/rss/.doommodule | 0 modules/checkers/.doommodule | 0 modules/checkers/grammar/.doommodule | 0 modules/checkers/spell/.doommodule | 0 modules/checkers/syntax/.doommodule | 0 modules/completion/.doommodule | 0 modules/completion/company/.doommodule | 0 modules/completion/corfu/.doommodule | 0 modules/completion/helm/.doommodule | 0 modules/completion/ido/.doommodule | 0 modules/completion/ivy/.doommodule | 0 modules/completion/vertico/.doommodule | 0 modules/config/.doommodule | 0 modules/config/default/.doommodule | 0 modules/config/literate/.doommodule | 0 modules/config/use-package/.doommodule | 0 modules/core/.doommodule | 0 modules/core/cli/.doommodule | 0 modules/core/defaults/.doommodule | 0 modules/editor/.doommodule | 0 modules/editor/evil/.doommodule | 0 modules/editor/file-templates/.doommodule | 0 modules/editor/fold/.doommodule | 0 modules/editor/format/.doommodule | 0 modules/editor/god/.doommodule | 0 modules/editor/lispy/.doommodule | 0 modules/editor/multiple-cursors/.doommodule | 0 modules/editor/objed/.doommodule | 0 modules/editor/parinfer/.doommodule | 0 modules/editor/rotate-text/.doommodule | 0 modules/editor/snippets/.doommodule | 0 modules/editor/word-wrap/.doommodule | 0 modules/emacs/.doommodule | 0 modules/emacs/dired/.doommodule | 0 modules/emacs/electric/.doommodule | 0 modules/emacs/eww/.doommodule | 0 modules/emacs/ibuffer/.doommodule | 0 modules/emacs/tramp/.doommodule | 0 modules/emacs/undo/.doommodule | 0 modules/emacs/vc/.doommodule | 0 modules/email/.doommodule | 0 modules/email/mu4e/.doommodule | 0 modules/email/notmuch/.doommodule | 0 modules/email/wanderlust/.doommodule | 0 modules/input/.doommodule | 0 modules/input/bidi/.doommodule | 0 modules/input/chinese/.doommodule | 0 modules/input/japanese/.doommodule | 0 modules/input/layout/.doommodule | 0 modules/lang/.doommodule | 0 modules/lang/agda/.doommodule | 0 modules/lang/beancount/.doommodule | 0 modules/lang/cc/.doommodule | 0 modules/lang/clojure/.doommodule | 0 modules/lang/common-lisp/.doommodule | 0 modules/lang/coq/.doommodule | 0 modules/lang/crystal/.doommodule | 0 modules/lang/csharp/.doommodule | 0 modules/lang/dart/.doommodule | 0 modules/lang/data/.doommodule | 0 modules/lang/dhall/.doommodule | 0 modules/lang/elixir/.doommodule | 0 modules/lang/elm/.doommodule | 0 modules/lang/emacs-lisp/.doommodule | 0 modules/lang/erlang/.doommodule | 0 modules/lang/ess/.doommodule | 0 modules/lang/factor/.doommodule | 0 modules/lang/faust/.doommodule | 0 modules/lang/fortran/.doommodule | 0 modules/lang/fsharp/.doommodule | 0 modules/lang/fstar/.doommodule | 0 modules/lang/gdscript/.doommodule | 0 modules/lang/go/.doommodule | 0 modules/lang/graphql/.doommodule | 0 modules/lang/graphviz/.doommodule | 0 modules/lang/haskell/.doommodule | 0 modules/lang/hy/.doommodule | 0 modules/lang/idris/.doommodule | 0 modules/lang/janet/.doommodule | 0 modules/lang/java/.doommodule | 0 modules/lang/javascript/.doommodule | 0 modules/lang/json/.doommodule | 0 modules/lang/julia/.doommodule | 0 modules/lang/kotlin/.doommodule | 0 modules/lang/latex/.doommodule | 0 modules/lang/lean/.doommodule | 0 modules/lang/ledger/.doommodule | 0 modules/lang/lua/.doommodule | 0 modules/lang/markdown/.doommodule | 0 modules/lang/nim/.doommodule | 0 modules/lang/nix/.doommodule | 0 modules/lang/ocaml/.doommodule | 0 modules/lang/org/.doommodule | 0 modules/lang/php/.doommodule | 0 modules/lang/plantuml/.doommodule | 0 modules/lang/purescript/.doommodule | 0 modules/lang/python/.doommodule | 0 modules/lang/qt/.doommodule | 0 modules/lang/racket/.doommodule | 0 modules/lang/raku/.doommodule | 0 modules/lang/rest/.doommodule | 0 modules/lang/rst/.doommodule | 0 modules/lang/ruby/.doommodule | 0 modules/lang/rust/.doommodule | 0 modules/lang/scala/.doommodule | 0 modules/lang/scheme/.doommodule | 0 modules/lang/sh/.doommodule | 0 modules/lang/sml/.doommodule | 0 modules/lang/solidity/.doommodule | 0 modules/lang/swift/.doommodule | 0 modules/lang/terra/.doommodule | 0 modules/lang/web/.doommodule | 0 modules/lang/yaml/.doommodule | 0 modules/lang/zig/.doommodule | 0 modules/os/.doommodule | 0 modules/os/macos/.doommodule | 0 modules/os/tty/.doommodule | 0 modules/term/.doommodule | 0 modules/term/eshell/.doommodule | 0 modules/term/shell/.doommodule | 0 modules/term/term/.doommodule | 0 modules/term/vterm/.doommodule | 0 modules/themes/.doommodule | 0 modules/themes/doom/.doommodule | 0 modules/tools/.doommodule | 0 modules/tools/ansible/.doommodule | 0 modules/tools/biblio/.doommodule | 0 modules/tools/collab/.doommodule | 0 modules/tools/debugger/.doommodule | 0 modules/tools/direnv/.doommodule | 0 modules/tools/docker/.doommodule | 0 modules/tools/editorconfig/.doommodule | 0 modules/tools/ein/.doommodule | 0 modules/tools/eval/.doommodule | 0 modules/tools/lookup/.doommodule | 0 modules/tools/lsp/.doommodule | 0 modules/tools/magit/.doommodule | 0 modules/tools/make/.doommodule | 0 modules/tools/pass/.doommodule | 0 modules/tools/pdf/.doommodule | 0 modules/tools/prodigy/.doommodule | 0 modules/tools/terraform/.doommodule | 0 modules/tools/tmux/.doommodule | 0 modules/tools/tree-sitter/.doommodule | 0 modules/tools/upload/.doommodule | 0 modules/ui/.doommodule | 0 modules/ui/dashboard/.doommodule | 0 modules/ui/deft/.doommodule | 0 modules/ui/doom-quit/.doommodule | 0 modules/ui/emoji/.doommodule | 0 modules/ui/hl-todo/.doommodule | 0 modules/ui/indent-guides/.doommodule | 0 modules/ui/ligatures/.doommodule | 0 modules/ui/minimap/.doommodule | 0 modules/ui/modeline/.doommodule | 0 modules/ui/nav-flash/.doommodule | 0 modules/ui/neotree/.doommodule | 0 modules/ui/ophints/.doommodule | 0 modules/ui/popup/.doommodule | 0 modules/ui/tabs/.doommodule | 0 modules/ui/treemacs/.doommodule | 0 modules/ui/unicode/.doommodule | 0 modules/ui/vc-gutter/.doommodule | 0 modules/ui/vi-tilde-fringe/.doommodule | 0 modules/ui/window-select/.doommodule | 0 modules/ui/workspaces/.doommodule | 0 modules/ui/zen/.doommodule | 0 173 files changed, 10 insertions(+) create mode 100644 lisp/.doommodule create mode 100644 modules/app/.doommodule create mode 100644 modules/app/calendar/.doommodule create mode 100644 modules/app/emms/.doommodule create mode 100644 modules/app/everywhere/.doommodule create mode 100644 modules/app/irc/.doommodule create mode 100644 modules/app/rss/.doommodule create mode 100644 modules/checkers/.doommodule create mode 100644 modules/checkers/grammar/.doommodule create mode 100644 modules/checkers/spell/.doommodule create mode 100644 modules/checkers/syntax/.doommodule create mode 100644 modules/completion/.doommodule create mode 100644 modules/completion/company/.doommodule create mode 100644 modules/completion/corfu/.doommodule create mode 100644 modules/completion/helm/.doommodule create mode 100644 modules/completion/ido/.doommodule create mode 100644 modules/completion/ivy/.doommodule create mode 100644 modules/completion/vertico/.doommodule create mode 100644 modules/config/.doommodule create mode 100644 modules/config/default/.doommodule create mode 100644 modules/config/literate/.doommodule create mode 100644 modules/config/use-package/.doommodule create mode 100644 modules/core/.doommodule create mode 100644 modules/core/cli/.doommodule create mode 100644 modules/core/defaults/.doommodule create mode 100644 modules/editor/.doommodule create mode 100644 modules/editor/evil/.doommodule create mode 100644 modules/editor/file-templates/.doommodule create mode 100644 modules/editor/fold/.doommodule create mode 100644 modules/editor/format/.doommodule create mode 100644 modules/editor/god/.doommodule create mode 100644 modules/editor/lispy/.doommodule create mode 100644 modules/editor/multiple-cursors/.doommodule create mode 100644 modules/editor/objed/.doommodule create mode 100644 modules/editor/parinfer/.doommodule create mode 100644 modules/editor/rotate-text/.doommodule create mode 100644 modules/editor/snippets/.doommodule create mode 100644 modules/editor/word-wrap/.doommodule create mode 100644 modules/emacs/.doommodule create mode 100644 modules/emacs/dired/.doommodule create mode 100644 modules/emacs/electric/.doommodule create mode 100644 modules/emacs/eww/.doommodule create mode 100644 modules/emacs/ibuffer/.doommodule create mode 100644 modules/emacs/tramp/.doommodule create mode 100644 modules/emacs/undo/.doommodule create mode 100644 modules/emacs/vc/.doommodule create mode 100644 modules/email/.doommodule create mode 100644 modules/email/mu4e/.doommodule create mode 100644 modules/email/notmuch/.doommodule create mode 100644 modules/email/wanderlust/.doommodule create mode 100644 modules/input/.doommodule create mode 100644 modules/input/bidi/.doommodule create mode 100644 modules/input/chinese/.doommodule create mode 100644 modules/input/japanese/.doommodule create mode 100644 modules/input/layout/.doommodule create mode 100644 modules/lang/.doommodule create mode 100644 modules/lang/agda/.doommodule create mode 100644 modules/lang/beancount/.doommodule create mode 100644 modules/lang/cc/.doommodule create mode 100644 modules/lang/clojure/.doommodule create mode 100644 modules/lang/common-lisp/.doommodule create mode 100644 modules/lang/coq/.doommodule create mode 100644 modules/lang/crystal/.doommodule create mode 100644 modules/lang/csharp/.doommodule create mode 100644 modules/lang/dart/.doommodule create mode 100644 modules/lang/data/.doommodule create mode 100644 modules/lang/dhall/.doommodule create mode 100644 modules/lang/elixir/.doommodule create mode 100644 modules/lang/elm/.doommodule create mode 100644 modules/lang/emacs-lisp/.doommodule create mode 100644 modules/lang/erlang/.doommodule create mode 100644 modules/lang/ess/.doommodule create mode 100644 modules/lang/factor/.doommodule create mode 100644 modules/lang/faust/.doommodule create mode 100644 modules/lang/fortran/.doommodule create mode 100644 modules/lang/fsharp/.doommodule create mode 100644 modules/lang/fstar/.doommodule create mode 100644 modules/lang/gdscript/.doommodule create mode 100644 modules/lang/go/.doommodule create mode 100644 modules/lang/graphql/.doommodule create mode 100644 modules/lang/graphviz/.doommodule create mode 100644 modules/lang/haskell/.doommodule create mode 100644 modules/lang/hy/.doommodule create mode 100644 modules/lang/idris/.doommodule create mode 100644 modules/lang/janet/.doommodule create mode 100644 modules/lang/java/.doommodule create mode 100644 modules/lang/javascript/.doommodule create mode 100644 modules/lang/json/.doommodule create mode 100644 modules/lang/julia/.doommodule create mode 100644 modules/lang/kotlin/.doommodule create mode 100644 modules/lang/latex/.doommodule create mode 100644 modules/lang/lean/.doommodule create mode 100644 modules/lang/ledger/.doommodule create mode 100644 modules/lang/lua/.doommodule create mode 100644 modules/lang/markdown/.doommodule create mode 100644 modules/lang/nim/.doommodule create mode 100644 modules/lang/nix/.doommodule create mode 100644 modules/lang/ocaml/.doommodule create mode 100644 modules/lang/org/.doommodule create mode 100644 modules/lang/php/.doommodule create mode 100644 modules/lang/plantuml/.doommodule create mode 100644 modules/lang/purescript/.doommodule create mode 100644 modules/lang/python/.doommodule create mode 100644 modules/lang/qt/.doommodule create mode 100644 modules/lang/racket/.doommodule create mode 100644 modules/lang/raku/.doommodule create mode 100644 modules/lang/rest/.doommodule create mode 100644 modules/lang/rst/.doommodule create mode 100644 modules/lang/ruby/.doommodule create mode 100644 modules/lang/rust/.doommodule create mode 100644 modules/lang/scala/.doommodule create mode 100644 modules/lang/scheme/.doommodule create mode 100644 modules/lang/sh/.doommodule create mode 100644 modules/lang/sml/.doommodule create mode 100644 modules/lang/solidity/.doommodule create mode 100644 modules/lang/swift/.doommodule create mode 100644 modules/lang/terra/.doommodule create mode 100644 modules/lang/web/.doommodule create mode 100644 modules/lang/yaml/.doommodule create mode 100644 modules/lang/zig/.doommodule create mode 100644 modules/os/.doommodule create mode 100644 modules/os/macos/.doommodule create mode 100644 modules/os/tty/.doommodule create mode 100644 modules/term/.doommodule create mode 100644 modules/term/eshell/.doommodule create mode 100644 modules/term/shell/.doommodule create mode 100644 modules/term/term/.doommodule create mode 100644 modules/term/vterm/.doommodule create mode 100644 modules/themes/.doommodule create mode 100644 modules/themes/doom/.doommodule create mode 100644 modules/tools/.doommodule create mode 100644 modules/tools/ansible/.doommodule create mode 100644 modules/tools/biblio/.doommodule create mode 100644 modules/tools/collab/.doommodule create mode 100644 modules/tools/debugger/.doommodule create mode 100644 modules/tools/direnv/.doommodule create mode 100644 modules/tools/docker/.doommodule create mode 100644 modules/tools/editorconfig/.doommodule create mode 100644 modules/tools/ein/.doommodule create mode 100644 modules/tools/eval/.doommodule create mode 100644 modules/tools/lookup/.doommodule create mode 100644 modules/tools/lsp/.doommodule create mode 100644 modules/tools/magit/.doommodule create mode 100644 modules/tools/make/.doommodule create mode 100644 modules/tools/pass/.doommodule create mode 100644 modules/tools/pdf/.doommodule create mode 100644 modules/tools/prodigy/.doommodule create mode 100644 modules/tools/terraform/.doommodule create mode 100644 modules/tools/tmux/.doommodule create mode 100644 modules/tools/tree-sitter/.doommodule create mode 100644 modules/tools/upload/.doommodule create mode 100644 modules/ui/.doommodule create mode 100644 modules/ui/dashboard/.doommodule create mode 100644 modules/ui/deft/.doommodule create mode 100644 modules/ui/doom-quit/.doommodule create mode 100644 modules/ui/emoji/.doommodule create mode 100644 modules/ui/hl-todo/.doommodule create mode 100644 modules/ui/indent-guides/.doommodule create mode 100644 modules/ui/ligatures/.doommodule create mode 100644 modules/ui/minimap/.doommodule create mode 100644 modules/ui/modeline/.doommodule create mode 100644 modules/ui/nav-flash/.doommodule create mode 100644 modules/ui/neotree/.doommodule create mode 100644 modules/ui/ophints/.doommodule create mode 100644 modules/ui/popup/.doommodule create mode 100644 modules/ui/tabs/.doommodule create mode 100644 modules/ui/treemacs/.doommodule create mode 100644 modules/ui/unicode/.doommodule create mode 100644 modules/ui/vc-gutter/.doommodule create mode 100644 modules/ui/vi-tilde-fringe/.doommodule create mode 100644 modules/ui/window-select/.doommodule create mode 100644 modules/ui/workspaces/.doommodule create mode 100644 modules/ui/zen/.doommodule diff --git a/lisp/.doommodule b/lisp/.doommodule new file mode 100644 index 000000000..dd22805c5 --- /dev/null +++ b/lisp/.doommodule @@ -0,0 +1,10 @@ +(3 0 0) +((name . :doom) + (depth . -110) + ;; (packages + ;; (elpaca :host github + ;; :repo "progfolio/elpaca" + ;; :pin "213a72646e024af007c610ea7574dc82e992637f") + ;; (compat :host github :repo "emacs-compat/compat" + ;; :pin "e9203e164903a6bb7de3e58aa0d653bbcff9d3d1")) + ) diff --git a/modules/app/.doommodule b/modules/app/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/app/calendar/.doommodule b/modules/app/calendar/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/app/emms/.doommodule b/modules/app/emms/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/app/everywhere/.doommodule b/modules/app/everywhere/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/app/irc/.doommodule b/modules/app/irc/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/app/rss/.doommodule b/modules/app/rss/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/checkers/.doommodule b/modules/checkers/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/checkers/grammar/.doommodule b/modules/checkers/grammar/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/checkers/spell/.doommodule b/modules/checkers/spell/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/checkers/syntax/.doommodule b/modules/checkers/syntax/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/completion/.doommodule b/modules/completion/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/completion/company/.doommodule b/modules/completion/company/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/completion/corfu/.doommodule b/modules/completion/corfu/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/completion/helm/.doommodule b/modules/completion/helm/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/completion/ido/.doommodule b/modules/completion/ido/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/completion/ivy/.doommodule b/modules/completion/ivy/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/completion/vertico/.doommodule b/modules/completion/vertico/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/config/.doommodule b/modules/config/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/config/default/.doommodule b/modules/config/default/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/config/literate/.doommodule b/modules/config/literate/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/config/use-package/.doommodule b/modules/config/use-package/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/core/.doommodule b/modules/core/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/core/cli/.doommodule b/modules/core/cli/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/core/defaults/.doommodule b/modules/core/defaults/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/editor/.doommodule b/modules/editor/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/editor/evil/.doommodule b/modules/editor/evil/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/editor/file-templates/.doommodule b/modules/editor/file-templates/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/editor/fold/.doommodule b/modules/editor/fold/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/editor/format/.doommodule b/modules/editor/format/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/editor/god/.doommodule b/modules/editor/god/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/editor/lispy/.doommodule b/modules/editor/lispy/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/editor/multiple-cursors/.doommodule b/modules/editor/multiple-cursors/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/editor/objed/.doommodule b/modules/editor/objed/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/editor/parinfer/.doommodule b/modules/editor/parinfer/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/editor/rotate-text/.doommodule b/modules/editor/rotate-text/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/editor/snippets/.doommodule b/modules/editor/snippets/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/editor/word-wrap/.doommodule b/modules/editor/word-wrap/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/emacs/.doommodule b/modules/emacs/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/emacs/dired/.doommodule b/modules/emacs/dired/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/emacs/electric/.doommodule b/modules/emacs/electric/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/emacs/eww/.doommodule b/modules/emacs/eww/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/emacs/ibuffer/.doommodule b/modules/emacs/ibuffer/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/emacs/tramp/.doommodule b/modules/emacs/tramp/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/emacs/undo/.doommodule b/modules/emacs/undo/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/emacs/vc/.doommodule b/modules/emacs/vc/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/email/.doommodule b/modules/email/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/email/mu4e/.doommodule b/modules/email/mu4e/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/email/notmuch/.doommodule b/modules/email/notmuch/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/email/wanderlust/.doommodule b/modules/email/wanderlust/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/input/.doommodule b/modules/input/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/input/bidi/.doommodule b/modules/input/bidi/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/input/chinese/.doommodule b/modules/input/chinese/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/input/japanese/.doommodule b/modules/input/japanese/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/input/layout/.doommodule b/modules/input/layout/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/.doommodule b/modules/lang/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/agda/.doommodule b/modules/lang/agda/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/beancount/.doommodule b/modules/lang/beancount/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/cc/.doommodule b/modules/lang/cc/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/clojure/.doommodule b/modules/lang/clojure/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/common-lisp/.doommodule b/modules/lang/common-lisp/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/coq/.doommodule b/modules/lang/coq/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/crystal/.doommodule b/modules/lang/crystal/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/csharp/.doommodule b/modules/lang/csharp/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/dart/.doommodule b/modules/lang/dart/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/data/.doommodule b/modules/lang/data/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/dhall/.doommodule b/modules/lang/dhall/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/elixir/.doommodule b/modules/lang/elixir/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/elm/.doommodule b/modules/lang/elm/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/emacs-lisp/.doommodule b/modules/lang/emacs-lisp/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/erlang/.doommodule b/modules/lang/erlang/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/ess/.doommodule b/modules/lang/ess/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/factor/.doommodule b/modules/lang/factor/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/faust/.doommodule b/modules/lang/faust/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/fortran/.doommodule b/modules/lang/fortran/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/fsharp/.doommodule b/modules/lang/fsharp/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/fstar/.doommodule b/modules/lang/fstar/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/gdscript/.doommodule b/modules/lang/gdscript/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/go/.doommodule b/modules/lang/go/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/graphql/.doommodule b/modules/lang/graphql/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/graphviz/.doommodule b/modules/lang/graphviz/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/haskell/.doommodule b/modules/lang/haskell/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/hy/.doommodule b/modules/lang/hy/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/idris/.doommodule b/modules/lang/idris/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/janet/.doommodule b/modules/lang/janet/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/java/.doommodule b/modules/lang/java/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/javascript/.doommodule b/modules/lang/javascript/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/json/.doommodule b/modules/lang/json/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/julia/.doommodule b/modules/lang/julia/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/kotlin/.doommodule b/modules/lang/kotlin/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/latex/.doommodule b/modules/lang/latex/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/lean/.doommodule b/modules/lang/lean/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/ledger/.doommodule b/modules/lang/ledger/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/lua/.doommodule b/modules/lang/lua/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/markdown/.doommodule b/modules/lang/markdown/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/nim/.doommodule b/modules/lang/nim/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/nix/.doommodule b/modules/lang/nix/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/ocaml/.doommodule b/modules/lang/ocaml/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/org/.doommodule b/modules/lang/org/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/php/.doommodule b/modules/lang/php/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/plantuml/.doommodule b/modules/lang/plantuml/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/purescript/.doommodule b/modules/lang/purescript/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/python/.doommodule b/modules/lang/python/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/qt/.doommodule b/modules/lang/qt/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/racket/.doommodule b/modules/lang/racket/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/raku/.doommodule b/modules/lang/raku/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/rest/.doommodule b/modules/lang/rest/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/rst/.doommodule b/modules/lang/rst/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/ruby/.doommodule b/modules/lang/ruby/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/rust/.doommodule b/modules/lang/rust/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/scala/.doommodule b/modules/lang/scala/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/scheme/.doommodule b/modules/lang/scheme/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/sh/.doommodule b/modules/lang/sh/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/sml/.doommodule b/modules/lang/sml/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/solidity/.doommodule b/modules/lang/solidity/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/swift/.doommodule b/modules/lang/swift/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/terra/.doommodule b/modules/lang/terra/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/web/.doommodule b/modules/lang/web/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/yaml/.doommodule b/modules/lang/yaml/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/lang/zig/.doommodule b/modules/lang/zig/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/os/.doommodule b/modules/os/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/os/macos/.doommodule b/modules/os/macos/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/os/tty/.doommodule b/modules/os/tty/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/term/.doommodule b/modules/term/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/term/eshell/.doommodule b/modules/term/eshell/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/term/shell/.doommodule b/modules/term/shell/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/term/term/.doommodule b/modules/term/term/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/term/vterm/.doommodule b/modules/term/vterm/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/themes/.doommodule b/modules/themes/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/themes/doom/.doommodule b/modules/themes/doom/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/.doommodule b/modules/tools/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/ansible/.doommodule b/modules/tools/ansible/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/biblio/.doommodule b/modules/tools/biblio/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/collab/.doommodule b/modules/tools/collab/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/debugger/.doommodule b/modules/tools/debugger/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/direnv/.doommodule b/modules/tools/direnv/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/docker/.doommodule b/modules/tools/docker/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/editorconfig/.doommodule b/modules/tools/editorconfig/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/ein/.doommodule b/modules/tools/ein/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/eval/.doommodule b/modules/tools/eval/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/lookup/.doommodule b/modules/tools/lookup/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/lsp/.doommodule b/modules/tools/lsp/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/magit/.doommodule b/modules/tools/magit/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/make/.doommodule b/modules/tools/make/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/pass/.doommodule b/modules/tools/pass/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/pdf/.doommodule b/modules/tools/pdf/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/prodigy/.doommodule b/modules/tools/prodigy/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/terraform/.doommodule b/modules/tools/terraform/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/tmux/.doommodule b/modules/tools/tmux/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/tree-sitter/.doommodule b/modules/tools/tree-sitter/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/tools/upload/.doommodule b/modules/tools/upload/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/.doommodule b/modules/ui/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/dashboard/.doommodule b/modules/ui/dashboard/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/deft/.doommodule b/modules/ui/deft/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/doom-quit/.doommodule b/modules/ui/doom-quit/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/emoji/.doommodule b/modules/ui/emoji/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/hl-todo/.doommodule b/modules/ui/hl-todo/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/indent-guides/.doommodule b/modules/ui/indent-guides/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/ligatures/.doommodule b/modules/ui/ligatures/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/minimap/.doommodule b/modules/ui/minimap/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/modeline/.doommodule b/modules/ui/modeline/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/nav-flash/.doommodule b/modules/ui/nav-flash/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/neotree/.doommodule b/modules/ui/neotree/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/ophints/.doommodule b/modules/ui/ophints/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/popup/.doommodule b/modules/ui/popup/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/tabs/.doommodule b/modules/ui/tabs/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/treemacs/.doommodule b/modules/ui/treemacs/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/unicode/.doommodule b/modules/ui/unicode/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/vc-gutter/.doommodule b/modules/ui/vc-gutter/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/vi-tilde-fringe/.doommodule b/modules/ui/vi-tilde-fringe/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/window-select/.doommodule b/modules/ui/window-select/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/workspaces/.doommodule b/modules/ui/workspaces/.doommodule new file mode 100644 index 000000000..e69de29bb diff --git a/modules/ui/zen/.doommodule b/modules/ui/zen/.doommodule new file mode 100644 index 000000000..e69de29bb From 22d5e3059f5502df314b9df75e34f2d821f01d78 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 14 Sep 2024 17:15:13 -0400 Subject: [PATCH 4/5] feat(emacs-lisp): extend config to lisp-{data,interaction}-mode So these modes (and particularly .doom* dotfiles and .dir-locals.el) can benefit from smarter syntax highlighting and integration with other modules. --- modules/lang/emacs-lisp/config.el | 39 ++++++++++++++++--------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index eeebdc5ce..fe64e68bc 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -32,24 +32,25 @@ See `+emacs-lisp-non-package-mode' for details.") :mode ("\\.Cask\\'" . emacs-lisp-mode) :interpreter ("doomscript" . emacs-lisp-mode) :config - (set-repl-handler! '(emacs-lisp-mode lisp-interaction-mode) #'+emacs-lisp/open-repl) - (set-eval-handler! '(emacs-lisp-mode lisp-interaction-mode) #'+emacs-lisp-eval) - (set-lookup-handlers! '(emacs-lisp-mode lisp-interaction-mode helpful-mode) - :definition #'+emacs-lisp-lookup-definition - :documentation #'+emacs-lisp-lookup-documentation) - (set-docsets! '(emacs-lisp-mode lisp-interaction-mode) "Emacs Lisp") - (set-ligatures! 'emacs-lisp-mode :lambda "lambda") - (set-formatter! 'lisp-indent #'apheleia-indent-lisp-buffer :modes '(emacs-lisp-mode)) - (set-rotate-patterns! 'emacs-lisp-mode - :symbols '(("t" "nil") - ("let" "let*") - ("when" "unless") - ("advice-add" "advice-remove") - ("defadvice!" "undefadvice!") - ("add-hook" "remove-hook") - ("add-hook!" "remove-hook!") - ("it" "xit") - ("describe" "xdescribe"))) + (let ((modes '(emacs-lisp-mode lisp-interaction-mode lisp-data-mode))) + (set-repl-handler! modes #'+emacs-lisp/open-repl) + (set-eval-handler! modes #'+emacs-lisp-eval) + (set-lookup-handlers! `(,@modes helpful-mode) + :definition #'+emacs-lisp-lookup-definition + :documentation #'+emacs-lisp-lookup-documentation) + (set-docsets! modes "Emacs Lisp") + (set-ligatures! modes :lambda "lambda") + (set-formatter! 'lisp-indent #'apheleia-indent-lisp-buffer :modes modes) + (set-rotate-patterns! modes + :symbols '(("t" "nil") + ("let" "let*") + ("when" "unless") + ("advice-add" "advice-remove") + ("defadvice!" "undefadvice!") + ("add-hook" "remove-hook") + ("add-hook!" "remove-hook!") + ("it" "xit") + ("describe" "xdescribe")))) (setq-hook! 'emacs-lisp-mode-hook ;; Emacs' built-in elisp files use a hybrid tab->space indentation scheme @@ -83,7 +84,7 @@ See `+emacs-lisp-non-package-mode' for details.") ;; and `editorconfig' would force fixed indentation on elisp. (add-to-list 'doom-detect-indentation-excluded-modes 'emacs-lisp-mode) - (add-hook! 'emacs-lisp-mode-hook + (add-hook! '(emacs-lisp-mode-hook lisp-data-mode-local-vars-hook) ;; Allow folding of outlines in comments #'outline-minor-mode ;; Make parenthesis depth easier to distinguish at a glance From 0b2ccac00751dfc2f7628b1a2496727633cc3db5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 16 Sep 2024 06:15:15 -0400 Subject: [PATCH 5/5] fix(emacs-lisp): lookup docs backend w/o helpful Use `helpful-symbol` if it's present and the symbol at point doesn't represent a cl-type (falling back to `describe-symbol` otherwise). Fix: #8068 --- modules/lang/emacs-lisp/autoload.el | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index fd8e0b343..3b9af8585 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -95,6 +95,15 @@ Intended to replace `lisp-outline-level'." (doom/help-modules (car module) (cadr module) 'visit-dir) (call-interactively #'elisp-def))) +(defun +emacs-lisp--describe-symbol (symbol) + (if (or (not (fboundp 'helpful-symbol)) + (cl-some (lambda (x) (funcall (nth 1 x) symbol)) + describe-symbol-backends)) + (progn + (describe-symbol symbol) + (pop-to-buffer (help-buffer))) + (helpful-symbol symbol))) + ;;;###autoload (defun +emacs-lisp-lookup-documentation (thing) "Lookup THING with `helpful-variable' if it's a variable, `helpful-callable' @@ -117,10 +126,12 @@ if it's callable, `apropos' otherwise." (org-show-hidden-entry)))) 'deferred)) (thing - (funcall (if (fboundp #'helpful-symbol) - #'helpful-symbol - #'describe-symbol) - (intern thing))) + (let ((thing (intern thing))) + (if (and (not (cl-find-class thing)) + (fboundp 'helpful-symbol)) + (helpful-symbol thing) + (describe-symbol thing) + (pop-to-buffer (help-buffer))))) ((call-interactively (if (fboundp #'helpful-at-point) #'helpful-at-point