Commit graph

691 commits

Author SHA1 Message Date
Henrik Lissner
cd063b4596
fix(org): display warning if org-id-locations-{load,save} fails
This advice suppressed any file errors that org-id-locations-{load,save}
emitted to stop a hard error leaving Org in a broken state, but it also
hides the potentially useful error message itself! The middle ground is
to demote it to a warning, rather than suppress it completely.
2026-01-06 02:00:06 -05:00
Henrik Lissner
b37bcb5f25
refactor!(org): remove org-brain
BREAKING CHANGE: This removes org-brain because it is no longer
functional nor maintained, and is largely superceded by better
alternatives like org-roam, denote, org-journal, and others.
2026-01-05 21:03:06 -05:00
Henrik Lissner
be7ac25a84
fix: file-name-concat paths instead of concat
Treat paths as paths, rather than strings. Removes the requirements that
doom-*-dir variables end in slash (though I'll continue doing so as a
convention). Also moves a lot of cache/data into the current profile's
cache/data directories. Shouldn't actually affect anything for folks not
using Doom's profile system (yet).

Fix: #8616
2025-12-30 22:59:10 -05:00
Samuel Tschiedel
4b7431cba3 fix(org): check :async on already loaded languages
Running a regular/`:sync` source block would prevent successive
invocations of blocks of that same language with `:async` from loading
`ob-async`.
2025-12-01 00:38:18 -05:00
Samuel Tschiedel
bf62193238 fix(org): don't export noweb-cache-related var
Org added a global cache for noweb expansion that includes a buffer
object. Those aren’t readable by the Lisp reader across processes, so
when async.el serializes the parent environment and hits that cons
`'(#<buffer *new*> . 739 )`, the child later tries to read it and errors
with `Invalid read syntax: "#<"'`

Fix: https://github.com/astahlman/ob-async/issues/99
2025-12-01 00:38:18 -05:00
Henrik Lissner
c48aa1851c
fix(org): load +roam.el for +roam2
Was meant to be part of d92883b, for backwards compatibility with folks
still using the +roam2 flag.

Amend: d92883bff8
2025-09-20 14:39:02 -04:00
Henrik Lissner
a72c865c35
tweak(org): don't configure ob-python
More recent versions of ob-python (Org 9.7+) calculates the python
command from `python-shell-interpreter` and
`python-shell-interpreter-args`, effectively rendering this block
(mostly) redundant. It still leaves
`org-babel-python-command-nonsession` to be changed, but I think I'll
leave that to users to set, for simplicity's sake.

What's more, users who repin Org to an older version (predating
bzg/org-mode@9239b0e8d1) will see void-variable errors for this new
variable.

Fix: #8509
2025-09-17 23:28:46 -04:00
Henrik Lissner
6eb467668e
fix(org): update org-babel-python-command-nonsession
Ref: bzg/org-mode@9239b0e8d1
2025-09-17 10:45:14 -04:00
Henrik Lissner
a4526fd10d
refactor(org): remove ob-ditaa fix
The scripts directory was removed from org-contrib back in Org 9.5. Now,
there is no way to resolve the "correct" location of these jar paths
without cloning the entirety of Worg, which is too heavy a dependency to
manage for an unmaintained package.
2025-09-17 10:40:55 -04:00
Henrik Lissner
9dbeafe212
tweak(org): move org-ctrl-c-minus to <localleader> -
Ref: doomemacs/community#32
2025-09-12 16:20:43 -04:00
Henrik Lissner
13ffb0fed3
refactor(org): remove +org-fix-newline-and-indent-in-src-blocks-a
Our rebinding of RET to +org/return in insert mode, already
accompolishes was this advice sets out to do.
2025-08-23 12:33:24 +02:00
Henrik Lissner
41876aa036
refactor(org): remove +org-fix-window-excursions-a
Changes upstream (to honour display-buffer-alist) seem to have addressed
what this advice was deployed for.

Ref: #6061
2025-08-23 12:31:11 +02:00
Henrik Lissner
5217ba75a2
refactor(org): remove +org--respect-org-auto-align-tags-a
`org-auto-align-tags` checks were added upstream in all editing
commands, so this advice is no longer needed.

Ref: emacs-straight/org-mode@aa71facf6d
2025-08-23 11:59:01 +02:00
Henrik Lissner
b6cbfea53d
refactor(org): remove +org--follow-search-string-a
This was upstreamed.

Ref: https://cgit.git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=95554543b
2025-07-13 22:28:34 +02:00
Henrik Lissner
190a389cf8
fix(org): remove [return] keybinds
I'm only trying to override the RET key that evil-org binds, but also
binding these to [return] interferes with "RET" keybinds in various
places, like transient bindings on RET (e.g. gptel).
2025-05-11 00:51:10 -04:00
Henrik Lissner
b51d41e1cf
fix(org): save-buffer more selectively after org-refile
Fixing interop between this hook and org-reminders (or other org
packages affected by the side-effects of `save-buffer`).
2025-04-16 19:07:27 -04:00
Henrik Lissner
fb0dc4cc85
refactor(lib): doom-debug-mode: make verbosity selective
Now `doom-debug-mode` manipulates `doom-log-level` if you activate it
with a prefix arg, setting it to 1 by default, reducing its verbosity
and cutting down on noise in the logs.
2025-04-11 12:17:44 -04:00
Henrik Lissner
35e348ea20
bump: :lang org
doomelpa/org-contacts@f0a430442b -> doomelpa/org-contacts@b06a597368
emacs-jupyter/jupyter@db8a9e233a -> emacs-jupyter/jupyter@3615c2de16
emacs-straight/org-mode@07e380f76d87[release_9.7.26] ->
emacs-straight/org-mode@74dde3abae74[release_9.7.27]
hakimel/reveal.js@5c77e86301 -> hakimel/reveal.js@dfc5690c6d
magit/orgit-forge@2718a6aaf0 -> magit/orgit-forge@764820769e
magit/orgit@6ad0dc35c8 -> magit/orgit@efd98e5caa
msnoigrs/ox-rst@99fa790da5 -> msnoigrs/ox-rst@b4ba5c7e95
2025-04-05 17:03:30 -04:00
Henrik Lissner
98e37b9cea
tweak(org): org-priority-faces: use shadow face for #C
Defaulting to green for the lowest priority indicators seemed
inappropriate, so use a more washed out face.
2025-04-05 16:56:36 -04:00
Henrik Lissner
dac6e05b87
refactor: deprecate appendq!, prependq!, & delq! macros
In the interest of slimming down Doom's core (as we near v3), I've
deprecated these macros. They doesn't really need to exist. Sure, the
alternatives aren't as ergonomic or elegant, but they're good enough
that we don't need these trivial wrappers. Their local uses have been
refactored out as well.
2025-03-25 14:16:56 -04:00
StrawberryTea
a7ee1edf3f fix(org): allow tab to expand yasnippets in org
I do not see any evidence of a [tab] binding in `outline-mode-cycle-map`
in Emacs29, Emacs30, nor Emacs31. Moreover, this keybinding is
overriding our TAB keybinding in GUI Emacs, so YaSnippets are not being
expanded.
2025-02-21 15:09:11 -05:00
Henrik Lissner
0a715cc3f2
refactor: (if|when)-let -> (if|when)-let*
With the former macros' future in the air (and likely to be targeted in
future, potentially breaking changes), I'll deal with this now than have
it bite me later.

Ref: https://lists.gnu.org/archive/html/emacs-devel/2024-10/msg00637.html
2025-01-08 19:33:37 -05:00
Henrik Lissner
15904349cf
refactor!: module API
BREAKING CHANGE: This backports some architectural choices from v3.0.
This changes Doom's module API, renaming some functions and removing
others, in order to facilitate some new features, prepare to move Doom's
modules into separate repos, and make way for two, much larger breaking
commits coming in the next few days.

This commit won't break anything for users unless they're tinkering with
Doom's internals/using its `doom-module-*` API directly. I am avoiding
broader backwards incompatibilities until the 3.0 release.

What's new:

- Negated flags. (modulep! :editor evil -everywhere) will return non-nil
  if :editor evil is active without its +everywhere flag.
- `modulep!` now takes multiple flags to simplify AND checks. E.g.

    (and (modulep! +foo)
         (modulep! +bar)
         (not (modulep! +baz)))

  Can now be expressed with:

    (modulep! +foo +bar -baz)
- Adds pcase matchers for `doom-module-context` and `doom-module`
  structs, making the following destructuring binds possible:

    (pcase-dolist ((doom-module group name flags features)
                   (hash-table-values doom-modules))
      ...)

  This will be used more in v3.0.
- Adds file cookie support to module init.el and config.el files.

Here's a summary of breaking changes made in this commit:

- `doom-module-context` was changed from a vector to a struct (record).
- `doom-modules` is now a table of `doom-module` structs, rather than
  free-form plists.
- The following macros have been renamed:
  - `doom-context-with` -> `with-doom-context`
  - `doom-module-context-with` -> `with-doom-module`
- The followings functions have been replaced/removed:
  - `doom-module-context`+`doom-module-context-get` -> `doom-module`
  - `doom-module-set` -> `doom-module--put`
  - `doom-module-p` -> `doom-module-active-p`
  - `doom-module-context-key` (is now a getter with the same name)
  - `doom-module-put` (removed)
  - `doom-module--context-field` (removed)
- The signatures for these functions have changed:
  - `doom-module-get CATEGORY &optional MODULE PROP` ->
    `doom-module-get (GROUP . MODULE) &optional PROP`
  - `doom-module-locate-path CATEGORY &optional MODULE FILE` ->
    `doom-module-locate-path (GROUP . MODULE) &optional FILE`
  - `doom-module-expand-path CATEGORY MODULE &optional FILE` ->
    `doom-module-expand-path (GROUP . MODULE) &optional FILE`
- Adds the following functions
  - `doom-module-exists-p`
  - `doom-module-key`
  - `doom-module->context`
  - `doom-module<-context`
- Removes the following variables
  - `doom-module--empty-context`

This commit results in a little redundancy, which I will address in
parts 2/3 and/or v3.0.
2024-10-20 02:41:42 -04:00
Henrik Lissner
d8157d8cc6
tweak(org): move RET keybinds from normal to motion state 2024-08-31 22:08:56 -04:00
Henrik Lissner
b2ce4f0afc
refactor(org): +org-exclude-agenda-buffers-from-workspace-h 2024-08-31 22:08:55 -04:00
Henrik Lissner
6671adc687
refactor!: move helpful from :core to :lang emacs-lisp
BREAKING CHANGE: This moves helpful.el out of core into :lang
emacs-lisp. Since most (all) people have this module enabled, this
shouldn't make a difference for most people, but if you're one of the
few that don't have :lang emacs-lisp enabled, Doom will revert to using
Emacs' built-in help.el and describe-* commands.

Others can also disable helpful with (package! helpful :disable t) if
they prefer Emacs' built-in help system, which wasn't possible before,
because it was a core package.

This was done as part of an ongoing effort to slim down Doom's core in
preparation for v3.
2024-08-30 02:26:41 -04:00
Henrik Lissner
cea17bbea3
refactor(org): remove redundant key remapping
This is already remapped in the vertico module. Plus,
`consult-org-heading` and `consult-org-agenda` are already on
"<localleader> ." and "<localleader> /".

Amend: 5e3c794d31
Ref: #7716
2024-08-28 19:34:04 -04:00
Henrik Lissner
5e3c794d31
tweak(org): remap imenu to consult-imenu
Ref: #7716
Co-authored-by: aisamu <aisamu@users.noreply.github.com>
2024-08-28 14:49:14 -04:00
Henrik Lissner
8e76097d49
fix(org): respect evil-disable-insert-state-bindings
Close: #8023
Co-authored-by: ambirdsall <ambirdsall@users.noreply.github.com>
2024-08-23 17:48:33 -04:00
Henrik Lissner
334157d741
fix(popup,org): popup management for org-mode
Adapts to changes made upstream to Org's window management logic (e.g.
Org dropped `org-switch-to-buffer-other-window` for
`switch-to-buffer-other-window`, and org-journal renamed one of its
helper functions).
2024-08-09 17:41:48 -04:00
Henrik Lissner
b1b40754fe
fix(org): don't optimize already-open agenda buffers
`org-map-entries` uses `org-get-agenda-file-buffer` to visit agenda
files, and Doom optimizes the latter to open those org buffers in a
limited capacity (since buffers opened this way are rarely visible, and
full initialization of them is very expensive), deferring their
initialization until the user interactively switches to the buffer
later.

However, if an agenda buffer has already been visited, opening it with
`org-get-agenda-file-buffer` with all these disabled initializations
could have unpredictable effects on whatever the user is doing in their
`org-map-entries` call. Since these optimizations aren't needed for
agenda buffers that already exist, I'll no-op `+org--restart-mode-h` in
those cases.

Fix: #7979
2024-08-08 17:26:58 -04:00
Henrik Lissner
ba3f30ef67
nit(org): punctuate docstrings
Plus minor grammar fix.
2024-07-15 00:23:43 -04:00
Henrik Lissner
c616831a8f
fix(org): TAB in org-mode (for corfu users)
For evil users, TAB used to invoke `org-cycle` in insert mode, until
recent changes with the corfu module undid them, making them invoke only
completion.
2024-07-15 00:23:43 -04:00
Henrik Lissner
3965df56e8
docs(org): +org--fix-inconsistent-uuidgen-case-a: link to bug report
For posterity.
2024-07-11 15:19:03 -04:00
Henrik Lissner
11cf61fef2
feat(org): display link at point in eldoc 2024-07-11 15:18:30 -04:00
Henrik Lissner
250f3a3899
feat(org): bind <localleader> l y to +org/yank-link
For copying the URL component of an org link at point.
2024-07-11 15:17:25 -04:00
Tim Ruffing
b4b1b48e26 nit(org): update outdated comment
Amend: b0e16dc243
2024-07-10 01:45:59 -04:00
Tim Ruffing
16b243733b fix(org): restart org in all optimized buffers
Fix: #7737
2024-07-10 01:45:59 -04:00
Henrik Lissner
a4869f32e7
refactor(org): org-src-lang-modes: move md alias
This is a general convenience for org users, not specifically for users
of the markdown module, so it belongs in :lang org.
2024-07-09 20:59:53 -04:00
Henrik Lissner
1131d5b36d
refactor(org): remove +org--recenter-after-follow-link-a
Since I changed `scroll-conservatively` in f427c8a, this is no longer
necessary.

Amend: f427c8a30e
2024-07-09 19:16:29 -04:00
Henrik Lissner
4e795c3a55
tweak(org): use consult-outline instead of imenu
Ref: #7716
2024-07-06 20:40:08 -04:00
Henrik Lissner
cc358a60c4
refactor(org): remove unused hooks
These hooks had the potential to be too expensive (in larger Org files)
to be enabled by default.
2024-07-06 20:07:14 -04:00
Henrik Lissner
f6e65c4010
feat(org): add +org/reformat-at-point command
A DWIM command to reformat a src block, table, or paragraph at point.

Ref: #7685
2024-07-06 19:58:27 -04:00
Henrik Lissner
b0e16dc243
fix(org): reload org-mode in half-loaded capture buffers
Fix: #5411
2024-07-05 20:10:58 -04:00
Henrik Lissner
b7954f927f
refactor!(org): remove ob-ipython
BREAKING CHANGE: This commit removes the ob-ipython package; it's been
deprecated for some time because the upstream package is no longer
maintained and is broken on most, common versions of Python anyway.
Jupyter is a superior alternative, in any case.
2024-07-05 18:05:15 -04:00
Henrik Lissner
c91c29c03e
refactor(org): remove redundant org-catch-invisible-edits setting
This is already set to 'smart by default, upstream.
2024-07-01 19:01:43 -04:00
Henrik Lissner
321f2d2249
refactor!(org): remove org-yt
BREAKING CHANGE: This removes the org-yt package, which will break
[[yt:...]] links in org, if you're using them. The package is a source
of errors, likely because it hasn't been updated for Org's new element
parsing system.

This package was originally included for eventual use in Doom's
documentation, but it likely won't be used and isn't universally useful
enough to keep in this module by default.

Fix: #7913
Fix: #7317
2024-07-01 18:21:35 -04:00
Henrik Lissner
98d0b52836
refactor(org): remove unneeded advice
These were all upstreamed into org-mode at some point.
2024-06-29 13:40:44 -04:00
Henrik Lissner
d9c5f747ab
tweak(org): org-effort-property = EFFORT 2024-06-28 19:11:28 -04:00
Henrik Lissner
36a1cda724
fix(org): revise org-crypt init
The `org-decrypt-entry` hook is redundant with a hook org-crypt already
adds to `org-fold-reveal-start-hook` at load time.

Fix: #7835
Fix: #6250
2024-06-28 19:04:12 -04:00