Commit graph

11389 commits

Author SHA1 Message Date
Antonio Ruiz
6fc1aa9c62 feat(rss): only call elfeed if necessary
If our *rss* workspace is already populated by elfeed buffers, there is
no reason to re-initialize elfeed.
2022-09-21 01:05:34 +02:00
Antonio Ruiz
3f9e62dab7 feat(notmuch): use a different workspace name
The workspace name *notmuch* is more consistent with Doom's other app
workspace names like *mu4e* and *rss*.
2022-09-21 01:05:34 +02:00
Antonio Ruiz
b2154b5f9b fix(irc): do not emit an error when calling =irc
When the *IRC* workspace is already populated by circe buffers, there is
no reason to emit an error, just switch to the *IRC* workspace and do
nothing.
2022-09-21 01:05:34 +02:00
Antonio Ruiz
31a6fa77d0 feat(calendar): only initialize calfw if necessary
If the *calendar* workspace is already populated with calfw buffers,
there is no reason to re-initialize calfw.
2022-09-21 01:05:34 +02:00
Antonio Ruiz
9d14d093c0 feat(calendar): use a different workspace name
The workspace name *calendar* is more consistent with other app
workspaces like *mu4e*, *notmuch*, *rss*, and *IRC*.
2022-09-21 01:05:34 +02:00
Antonio Ruiz
32baf538ee feat(mu4e): only call mu4e if necessary
If we are already reading emails in Mu4e or composing a message, there
is no reason to go back to the main window.
2022-09-21 01:05:34 +02:00
TEC
f6bddc8fe2 tweak(mu4e): autoload +mu4e-lock-available
+mu4e-lock-available seems like a potential entry-point to the mu-lock
functionality, e.g. on startup check if another Emacs process has mu4e
active, and so it might as well be turned into an autoload.
2022-09-21 00:58:30 +02:00
TEC
4d9ea6853b tweak(mu4e): don't reverse dired marks to attach
Originally this was added to have the order of attached files match the
order of mark selection. Recent usage indicates that this was either
misguided or the behaviour has changed, as this now achieves the opposite
effect --- with nreverse files are attached in reverse order. Removing
nreverse provides the expected behaviour.
2022-09-21 00:56:33 +02:00
TEC
2662d68ae8 fix(mu4e): only widen the mu4e headers frame
It's a bit silly to just unconditionally widen the current frame when
you could have the mu4e headers view in another frame entirely. Instead
we can look for the mu4e headers buffer, and only widen frames where it
is the active buffer.
2022-09-21 00:56:20 +02:00
Samuel Tschiedel
9b73ce3ad8 fix(magit): remap magit-browse-thing to forge-browse-*
When using evil +everywhere, we disable the default forge bindings.
We must then explicitly remap magit-browse-thing, as it's just a
placeholder command (bound in multiple places).
2022-09-21 00:54:09 +02:00
TEC
e2608cbdd5 tweak(literate): clear the tangle output buffer
While this is a hidden buffer, it's raised when an error occurs. In such
situations, it can be a little confusing to see the result of every
tangle to date instead of just the last tangle. It's easy enough to
simple clear the buffer at the start of the tangle process.
2022-09-21 00:53:30 +02:00
Henrik Lissner
c994e3ed59
bump: :completion vertico
minad/consult@6319aec351 -> minad/consult@76aab86015
minad/marginalia@69442c2d94 -> minad/marginalia@7f5bf7818b
minad/vertico@2ad4619665 -> minad/vertico@8078b8cb94
oantolin/embark@5d0459d27a -> oantolin/embark@3add321d74
oantolin/orderless@8b9af2796f -> oantolin/orderless@6b86527b30
tumashu/vertico-posframe@7ca364d319 -> tumashu/vertico-posframe@46aa1dffd1
2022-09-20 02:26:51 +02:00
Henrik Lissner
5c9672a28a
bump: :ui treemacs
Alexander-Miller/treemacs@b18a05b1f6 -> Alexander-Miller/treemacs@e4bb236bd5
emacs-lsp/lsp-treemacs@355e468b7f -> emacs-lsp/lsp-treemacs@f7ae97560c

A new major version of treemacs was released some days ago. The
currently pinned version is from February 2022, and it stops LSP servers
from starting with message "cannot load treemacs-lib" via lsp-treemacs.

Fix: #6814
Close: #6812
Co-authored-by: logc <logc@users.noreply.github.com>
2022-09-20 00:56:07 +02:00
Henrik Lissner
e2ce4345d2
bump: :lang org
abo-abo/org-download@947ca22364 -> abo-abo/org-download@19e166f0a8
alf/ob-restclient.el@3ac834b02b -> alf/ob-restclient.el@1b021ce1c6
emacs-straight/org-mode@00adad9357 -> emacs-straight/org-mode@86c4635dba
emacsmirror/org-contrib@39e2abc562 -> emacsmirror/org-contrib@0740bd3fe6
hakimel/reveal.js@e219184f37 -> hakimel/reveal.js@c1c4145240
org-roam/org-roam@7f453f3fff -> org-roam/org-roam@d95d25615e

Close: #6692
Fix: #6691
2022-09-18 13:10:49 +02:00
Henrik Lissner
87f85ab459
bump: :tools debugger lsp
emacs-lsp/dap-mode@50c2a99059 -> emacs-lsp/dap-mode@5d5043f962
emacs-lsp/lsp-ivy@3e87441a62 -> emacs-lsp/lsp-ivy@9ecf4dd9b1
emacs-lsp/lsp-mode@3fa645c039 -> emacs-lsp/lsp-mode@68bdac0f80
joaotavora/eglot@bd970be047 -> joaotavora/eglot@aeea7c719a
realgud/realgud@3c88611c4e -> realgud/realgud@aff03aeef1

Close: #6721
2022-09-18 00:28:13 +02:00
Henrik Lissner
46527c0b85
fix(org): eldoc showing empty heading breadcrumbs
Fix: #6795
Amend: ab9896c526
2022-09-17 10:37:09 +02:00
Henrik Lissner
6bd8cbf903
fix(vertico): relax doctor tests
consult--grep-lookahead-p throws an error if argv[0] can't be found, and
so will require if consult isn't installed (which would be redundant
with the package checks the doctor already does). To prevent misleading
backtraces here, I've suppressed the latter issue, but the former will
need attention later.
2022-09-16 17:33:44 +02:00
Henrik Lissner
732d87ac3e
nit: minor comment revision and refactors 2022-09-16 17:01:57 +02:00
Henrik Lissner
7ffe0df8eb
bump: :editor evil
edkolev/evil-lion@4da660e124 -> edkolev/evil-lion@a55eb64742
emacs-evil/evil-collection@6cc02b238c -> emacs-evil/evil-collection@665d5c99e2
emacs-evil/evil@157af04d2c -> emacs-evil/evil@26ec0cda1b
redguardtoo/evil-nerd-commenter@386cd758a4 -> redguardtoo/evil-nerd-commenter@b1a92221c9
2022-09-16 17:01:57 +02:00
Henrik Lissner
c5e88d229f
fix(lib): doom-compile-function throwing native-compiler-error 2022-09-16 16:15:07 +02:00
Gerry Agbobada
559229c250 fix(layout): Bépo rotation happening before magit
Fixes an issue where binding rotations in Bépo were happening too soon,
resulting in some remaps not being visible to the user when interacting
with magit, :editor evil +everywhere, and :input layout +bepo

Ref: https://discourse.doomemacs.org/t/layout-bepo-does-not-properly-remap-k-in-magit/3063
2022-09-16 13:15:46 +02:00
AlessandroW
d156e58577
fix(org): respect org-insert-heading-hook in +org--insert-item
Doom replaces `org-insert-heading`, but its replacement does not respect
`org-insert-heading-hook`. This commit fixes that, enabling folks to
customize their insert-heading behavior, e.g.  adding a time stamp:

  (defun my/org-set-creation-date-heading-property ()
    (save-excursion
      (org-back-to-heading)
      (org-set-property "CREATED" (format-time-string "[%Y-%m-%d %T]"))))
  (add-hook 'org-insert-heading-hook #'my/org-set-creation-date-heading-property)

Ref: https://git.savannah.gnu.org/cgit/emacs/org-mode.git/tree/lisp/org.el#n6187
Ref: https://git.savannah.gnu.org/cgit/emacs/org-mode.git/tree/lisp/org.el#n1615
2022-09-16 13:14:36 +02:00
Henrik Lissner
e1ef4cc001
fix(emacs-lisp): datatype error in fileless elisp buffers
Due to +emacs-lisp-non-package-mode assuming it would always execute in
a file-visiting buffer.

Fix: #6786
2022-09-16 13:07:28 +02:00
Henrik Lissner
f3ffb9e1e1
bump: :ui doom
doomemacs/themes@83fd9545c2 -> doomemacs/themes@535800fd6c

Improves Emacs 29 compatibility (see ref).

Ref: emacs-mirror/emacs@d0a66f3e0e
2022-09-16 13:07:28 +02:00
Henrik Lissner
67a42e8222
bump: :ui modeline
emacsorphanage/evil-anzu@d3f6ed4773 -> emacsorphanage/evil-anzu@d1e98ee697
seagle0128/doom-modeline@ce9899f00a -> seagle0128/doom-modeline@bed80b82d7

Also improves Emacs 29 compatibility (see ref).

Ref: emacs-mirror/emacs@d0a66f3e0e
2022-09-16 13:07:28 +02:00
Henrik Lissner
ab9896c526
refactor(org): move doom-docs link defs to :lang org
Where they will be further generalized, later.

This also prevents an issue where org was loaded while the profile init
files are generated, which caused a warning about org-loaddefs which
introduces a noticable delay.
2022-09-16 13:06:17 +02:00
Henrik Lissner
511f0ca38f
fix(org): void-variable doom-user-dir on org-async export
This advice needed to be updated to reflect recent changes.

Fix: #6624
2022-09-16 03:17:46 +02:00
Henrik Lissner
e499e05ff3
fix(fold): void-function evil-define-key* error on Emacs 29 2022-09-16 03:17:46 +02:00
Henrik Lissner
36d3a62f6e
fix(emacs-lisp): defconst->defvar for +emacs-lisp-linter-warnings
This wasn't supposed to be a constant, and there's no reason it should
be one.

Amend: afa154db27
2022-09-16 02:06:43 +02:00
theschmocker
de2f538fd6 fix(ivy): ensure flx is loaded with (ivy +fuzzy)
Overriding `ivy--flx-featurep` here would always prevent flx from being
loaded and enabled---even if it were `t`---because ivy `require`s it in
`ivy--flx-featurep`'s initvalue. So instead, this sets the variable if
and only if it should be disabled. Because flx isn't installed when
+prescient is enabled, I've included that in the condition for disabling
ivy--flx-featurep as well

Fix: https://github.com/doomemacs/doomemacs/issues/6034
Amend: bae7ab0d8d
2022-09-16 01:26:36 +02:00
TEC
18b661873e fix(literate): tangle with the same Org as Doom 2022-09-16 01:23:43 +02:00
Henrik Lissner
20ab9154c2
refactor(emacs-lisp): sharp-quote function symbols 2022-09-16 01:14:24 +02:00
Henrik Lissner
41051f4761
fix: disable UI elements earlier
Moves this from doom-ui to doom-start, since there is more savings to be
had if this is done early.

Also moves the menu-bar fix for macos out of the :os macos module into
doom-start, because it is a fix (and for a Doom optimization) and not a
feature, so it shouldn't be behind a module.
2022-09-16 01:14:23 +02:00
Henrik Lissner
7a2be67efa
refactor!: redesign module init/config hooks
BREAKING CHANGE: For consistency and correctness, I've renamed the
module init/config hooks, and added new ones:

- Adds doom-before-modules-config-hook
- Adds doom-after-modules-config-hook (replaced doom-before-init-modules-hook)
- Adds doom-before-modules-init-hook
- Adds doom-after-modules-init-hook (replaced doom-init-modules-hook)
- Removed doom-after-init-modules-hook (replaced w/ after-init-hook)

The old naming (and timing) was counterintuitive. Now, it's named after
the loaded file group (init.el vs config.el), and I added before/after
variants. Altogether, this should make them less ambiguous.

I've also moved some functions in various modules to more correct hooks.

Load order before this change:
- $EMACSDIR/early-init.el
- $EMACSDIR/lisp/doom.el
- $EMACSDIR/lisp/doom-start.el
- $DOOMDIR/init.el
- {$DOOMDIR,~/.emacs.d}/modules/*/*/init.el
- `doom-before-init-modules-hook'
- {$DOOMDIR,~/.emacs.d}/modules/*/*/config.el
- `doom-init-modules-hook'
- $DOOMDIR/config.el
- `doom-after-init-modules-hook'
- `after-init-hook'
- `emacs-startup-hook'
- `window-setup-hook'

Load order after this change:
- $EMACSDIR/early-init.el
- $EMACSDIR/lisp/doom.el
- $EMACSDIR/lisp/doom-start.el
- $DOOMDIR/init.el
- `doom-before-modules-init-hook'
- {$DOOMDIR,~/.emacs.d}/modules/*/*/init.el
- `doom-after-modules-init-hook'
- `doom-before-modules-config-hook'
- {$DOOMDIR,~/.emacs.d}/modules/*/*/config.el
- `doom-after-modules-config-hook'
- $DOOMDIR/config.el
- `after-init-hook'
- `emacs-startup-hook'
- `window-setup-hook'
2022-09-16 01:14:22 +02:00
Henrik Lissner
6ddaed5cdd
nit: comment revision and formatting
For clarity, to enforce conventions, and explain the unexplained.
2022-09-16 01:14:22 +02:00
Henrik Lissner
94ea4aa7dc
docs: add examples.org
This adds the basic framework of docs/examples.org, including the former
contents of demo.org in :lang emacs-lisp. elisp-demo has also been
reconfigured to search it instead.

Keep in mind that examples.org references a few things in as-of-yet
published documentation. This will be rectified soon.
2022-09-16 01:14:20 +02:00
Henrik Lissner
e71daf5cc3
tweak(emacs-lisp): elisp indentation for data/plists
This was adapted from
https://www.reddit.com/r/emacs/comments/d7x7x8/finally_fixing_indentation_of_quoted_lists/.
It fixes the indentation of quoted data (and plist keywords) so they're
indented like data, rather than function arguments, like so:

  BEFORE:
    `(foo bar baz
          doom emacs)
    '(:foo 1
           :bar 2
           :baz 3)
    '(:foo 1
           2
           3
           :bar 4)
    (:foo 1
          :bar 2)
    (:foo 1
          ;; test comment
          :bar 2)
    (:foo 1
          2
          :bar 3)

  AFTER:
    `(foo bar baz
      doom emacs)
    '(:foo 1
      :bar 2
      :baz 3)
    '(:foo 1
      2
      3
      :bar 4)
    ;; only align unquoted keywords if keywords start each line:
    (:foo 1
     :bar 2)
    (:foo 1
     ;; test comment
     :bar 2)
    (:foo 1
          2
          :bar 3)

Also, I added a way to declare that plists in an macro's arguments
should be indented like data:

  (put 'map! 'indent-plists-as-data t)

  BEFORE:
    (map! :localleader
          :map emacs-lisp-mode-map
          (:prefix ("d" . "debug")
                   "f" #'+emacs-lisp/edebug-instrument-defun-on
                   "F" #'+emacs-lisp/edebug-instrument-defun-off))

  AFTER:
    (map! :localleader
          :map emacs-lisp-mode-map
          (:prefix ("d" . "debug")
           "f" #'+emacs-lisp/edebug-instrument-defun-on
           "F" #'+emacs-lisp/edebug-instrument-defun-off))

There was a third improvement I was hoping to include, namely,
proper indentation of interpolated forms:

  BEFORE:
    `(foo
      bar
      ,(if t
           'baz
         'boo))

    `(foo
      bar
      (if t
          baz
        boo))

  AFTER:
  `(foo
    bar
    ,(if t
          'baz
        'boo))

  `(foo
    bar
    (if t
     baz
     boo))

But this was removed because it breaks indentation for quoted macro
forms (or dynamic elisp programming):

  BEFORE: (good)
    `(with-temp-buffer
       (if (always)
           (message
            "Hello %s"
            user-login-name)
         (message
          "Goodbye %s"
          user-login-name)))

  AFTER: (bad)
    `(with-temp-buffer
      (if (always)
       (message
        "Hello %s"
        user-login-name)
       (message
        "Goodbye %s"
        user-login-name)))

Ref: https://www.reddit.com/r/emacs/comments/d7x7x8/finally_fixing_indentation_of_quoted_lists/'
2022-09-16 01:14:20 +02:00
Henrik Lissner
a18ea683d2
refactor(python): autoload syntax highlighter fix for 28.1
A summary of the issue:
- emacs-mirror/emacs@c44908c059 broke syntax highlighting for
  python-mode.
- emacs-mirror/emacs@a8acb9516e fixes the issue shortly after, but the
  fix did not make it into the 28.1 release (but made it into 28.2).
- This fix was deployed in #6414 (773122f1ec).
- This commit ensures the fix is only effective for 28.1 users, and
  documents it for posterity.

Ref: #6414
Ref: emacs-mirror/emacs@c44908c059
Ref: emacs-mirror/emacs@a8acb9516e
Amend: 773122f1ec
Co-authored-by: dani84bs <dani84bs@users.noreply.github.com>
2022-09-16 01:14:20 +02:00
Henrik Lissner
afa154db27
refactor!(emacs-lisp): flycheck config in non-packages
BREAKING CHANGE: This performs the following backwards-incompatible
changes:

- Replaces `+emacs-lisp-reduce-flycheck-errors-in-emacs-config-h` with a
  `+emacs-lisp-non-package-mode` minor-mode.
- Removed the `+emacs-lisp-disable-flycheck-in-dirs` variable, as this
  mechanism no longer checks a directory list to detect a "non-package".

If you've referenced either of these symbols, you'll need to
update/remove them from your config. No extra config is needed
otherwise.

Why: Doom has always tried to reduce the verbosity of Flycheck when
viewing elisp config files or scripts (i.e. non-packages). These are so
stateful that the byte-compiler, package-lint, and checkdoc inundate
users with false positives that are more overwhelming than helpful.

The heuristic for this has always been a simple "is this file in
$DOOMDIR or $EMACSDIR", but this wasn't robust enough, especially in
cases where symlinking was involved, so I've employed a new, more
general heuristic for detecting non-package files:

- The file isn't a theme in `custom-theme-load-path`,
- The file doesn't have a (provide ...) or (provide-theme ...)
  statement whose first argument matches the file name,
- The file lives in a project with a .doommodule file (doom modules
  never have convention package files in them),
- Or the file is a dotfile (like .dir-locals.el or .doomrc).

I've also tweaked byte-compile-warnings to yield a little more output,
but not by much. Whether this is too permissive or not will require
further testing to determine.

What's more, I've updated this to reflect recent changes to Doom's
startup process (in c05e615).

Ref: c05e61536e
2022-09-12 11:45:56 +02:00
Sean Farley
2548632600 fix(mu4e): force the account stripe face to be non-italic
With mu4e came a new face for the header view. While this is nice for
the text, it had the consequence of making the account stripe (the
vertical bar) a bit jarring. This patch fixes that behavior to make the
stripe non-italic by append `'default` to the face.
2022-09-10 23:54:31 +02:00
tecosaur
01bb743c6c
tweak(mu4e): set last-child thread symbol
Also tweak the line order and whitespace while I'm at it, to show the
overall styling more clearly.
2022-09-10 23:52:36 +02:00
Krzysztof Baranowski
836d229636 fix(nix): remove :mode hook for nix-drv-mode
The nix-mode package already does this and it shadows other entries for the .drv files in auto-mode-alist (namely Guix derivations).

Ref: 34d51e2731/nix-drv-mode.el (L48)
2022-09-10 23:37:50 +02:00
Henrik Lissner
b66ccaeca0
fix(agda): tree-sitter compatibility with agda2-mode
Tree-sitter-lang recognized agda-mode, but not agda2-mode.
2022-09-10 18:36:24 +02:00
Henrik Lissner
49f4ec3b10
feat(tree-sitter): add set-tree-sitter-lang! autodef 2022-09-10 18:36:24 +02:00
Gerry Agbobada
2cd8f85bac fix(debugger): fix dap-ui conditional loading
Probably missed when adding eglot support code in the module
2022-09-07 16:23:24 +02:00
Henrik Lissner
9e3d99277e
docs(everywhere): update CLI command
6c0b7e1 introduced a new convention for CLIs defined by Doom's modules:
to namespace them under `doom +MODULE ...`. What was once 'doom
everywhere' is now 'doom +everywhere', so the docs needed correcting.

Ref: 6c0b7e1530
2022-09-07 02:34:57 +02:00
Andrew Whatson
71e0190618 bump: :lang scheme
emacs-geiser/chicken@79a9ac78f4 -> emacs-geiser/chicken@a480598b59
emacs-geiser/gauche@fd52cbaed9 -> emacs-geiser/gauche@8ff743f641
emacs-geiser/geiser@9507e81a07 -> emacs-geiser/geiser@550d57d347
emacs-geiser/guile@c641fcc50b -> emacs-geiser/guile@b2d6f398e3
flatwhatson/flycheck-guile@e46d6e5453 -> flatwhatson/flycheck-guile@e58ceb8b51
2022-09-07 01:40:10 +02:00
Andrew Whatson
5fb96f2886 fix(scheme): restore repl-per-project for scheme
Geiser commit 476897e4f8a1 introduced `geiser-repl-per-project-p` which
defaults to false, breaking our repl-per-project support.  Previously,
setting `geiser-repl-current-project-function` was sufficient.
2022-09-07 01:40:10 +02:00
Henrik Lissner
a1c9d40ee8
docs(rust): de-emphasize rls
RLS has been deprecated for rust-analyzer, so it's best that our rust
module refrain from advertising it so prominently.

Ref: https://blog.rust-lang.org/2022/07/01/RLS-deprecation.html
2022-09-07 01:25:22 +02:00
Henrik Lissner
63b0ebeda7
refactor!(rust): remove racer and default to +lsp
BREAKING CHANGE: Racer is no longer developed and its project page
recommends using rust-analyzer instead. Moreover, users have reported
issues trying to build/install it on recent versions of rust, so I've
removed support for Racer from Doom, and now default solely to LSP for
IDE features.

Users that want these features will need to activate the module's +lsp
flag (along with the :tools lsp module) and install rust-analyzer. See
the module's README for instructions.

Close: #6705
Co-authored-by: c1ttim <c1ttim@users.noreply.github.com>
2022-09-07 01:25:18 +02:00