Commit Graph

678 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
d8157d8cc6 tweak(org): move RET keybinds from normal to motion state 2024-08-31 22:08:56 -04:00
b2ce4f0afc refactor(org): +org-exclude-agenda-buffers-from-workspace-h 2024-08-31 22:08:55 -04:00
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
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
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
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
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
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
ba3f30ef67 nit(org): punctuate docstrings
Plus minor grammar fix.
2024-07-15 00:23:43 -04:00
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
3965df56e8 docs(org): +org--fix-inconsistent-uuidgen-case-a: link to bug report
For posterity.
2024-07-11 15:19:03 -04:00
11cf61fef2 feat(org): display link at point in eldoc 2024-07-11 15:18:30 -04:00
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
b4b1b48e26 nit(org): update outdated comment
Amend: b0e16dc243
2024-07-10 01:45:59 -04:00
16b243733b fix(org): restart org in all optimized buffers
Fix: #7737
2024-07-10 01:45:59 -04:00
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
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
4e795c3a55 tweak(org): use consult-outline instead of imenu
Ref: #7716
2024-07-06 20:40:08 -04:00
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
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
b0e16dc243 fix(org): reload org-mode in half-loaded capture buffers
Fix: #5411
2024-07-05 20:10:58 -04:00
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
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
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
98d0b52836 refactor(org): remove unneeded advice
These were all upstreamed into org-mode at some point.
2024-06-29 13:40:44 -04:00
d9c5f747ab tweak(org): org-effort-property = EFFORT 2024-06-28 19:11:28 -04:00
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
d2efb01d29 fix(org): attachment image inline preview
Fix originally proposed by Khoulaiz here:
https://github.com/doomemacs/doomemacs/issues/7222#issuecomment-1535932540

Fix: #7222 #3185

Co-authored-by: Andreas Sahlbach <Khoulaiz>
2024-06-28 16:49:32 -04:00
587f237e93 fix(org): avoid (file-exists-p "file://") on Windows
Emacs bug#70914 handles `file://whatever` incorrectly, potentially
crashing emacs.

Fixed in emacs commit 350ae75f5c1c47a03560e43e8699781c04c9078a:
    Avoid crashes on MS-Windows due to invalid UNC file names

    * src/w32.c (parse_root): Avoid crashes due to invalid (too short)
    UNC names, such as "\\".  (Bug#70914)
2024-06-03 16:21:00 -04:00
63605189f3 nit(org): reformat or block
I want to add a commented line as the first entry without showing all
lines as changed.
2024-06-03 16:21:00 -04:00
230c82fc95 docs: remove unintended repetition
Signed-off-by: carehabit <shenyuting@outlook.com>
2024-04-01 13:30:10 -04:00
39db5de570 fix(org): only reveal point on save-place-after-find-file-hook
Prior to this change, whenever you enter an org-mode buffer, any
invisible regions around the cursor (which had been moved by save-place)
would be unfolded unconditionally. There may be cases where moving
the cursor immediately after visiting the file could cause errors (e.g.
when yasnippet tries to wrestle control over the cursor,
org-agenda-switch-to moves the cursor before switching to the buffer,
etc).

This change ensures the expansion *only* happens when save-place does
its thing (and successfully).
2024-03-13 01:00:38 -04:00
43870bf831 fix(editorconfig): prevent changes to tab-width in org-mode
- Add another measure for preventing changes to tab-width in org-mode.
  The hook introduced in 2757a97 runs too early and could be overwritten
  by editorconfig.
- Fix the hook in 2757a97 to run much later, ensuring (as a last resort)
  no other packages can overwrite tab-width either.

Amend: 2757a97a30
Ref: #7670
2024-03-11 00:53:44 -04:00
2757a97a30 fix(org): don't change tab-width in org-mode
Recently, org-mode made a non-standard tab-width an error state.
Unfortunately, it's way too easy for users to accidentally change
it (e.g. with editorconfig, indiscriminate setter hooks, or other
packages), and since there is zero reason to ever want a non-standard
tab-width in org-mode, I not only exclude it from dtrt-indent as a
global default (i.e. not only as part of :lang org), but I add a late
org-mode-hook hook to reset tab-width, just in case.
2024-03-04 22:07:51 -05:00
52355c6131 fix(org): initialize eldoc in org-mode buffers
A recent change upstream (see emacsmirror/org-contrib@6e208c87bf)
removed the autoload for adding org-eldoc-load to org-mode-hook, so we
have to add the hook ourselves (the function is still autoloaded,
fortunately).

Also moves org-eldoc config into its own use-package! block.

Fix: #7633
Ref: emacsmirror/org-contrib@6e208c87bf
2024-02-14 02:42:30 -05:00
d6db0312fd tweak(org): honor default command when archiving
Change the binding for archiving to `org-archive-subtree-default`, which
is the recommend "catch-all" command in the org manual. The user can
specify the actual command in `org-archive-default-command`. The default
for this variable is `org-archive-subtree`, which we previously used for
the binding, so this commit changes behavior only for users who have set
`org-archive-default-command` explicitly.
2024-02-10 16:57:45 -05:00
2ace90233c feat(org): add Kagi custom link type 2024-02-04 21:48:23 -05:00
77ea4013dd refactor: doom-module: conform variables to conventions
- Rename doom--empty-module-context to doom-module--empty-context.
- Nest doom-module-context symbol plist in its 'keys' property. (By
  convention, Doom uses keywords as keys in most places. Let's be
  consistent)
- Updates all uses of doom-module--context-field and
  doom-module-context-get.
2024-02-04 17:54:29 -05:00
659f7bfc71 refactor!: deprecate IS-* OS constants
BREAKING CHANGE: This deprecates the IS-(MAC|WINDOWS|LINUX|BSD) family
of global constants in favor of a native `featurep` check:

  IS-MAC      ->  (featurep :system 'macos)
  IS-WINDOWS  ->  (featurep :system 'windows)
  IS-LINUX    ->  (featurep :system 'linux)
  IS-BSD      ->  (featurep :system 'bsd)

The constants will stick around until the v3 release so folks can still
use it -- and there are still some modules that use it, but I'll phase
those uses out gradually.

Fix: #7479
2024-02-04 17:54:29 -05:00
1ee429406b fix(org): restart org-mode before indirect buffer
Fix: #5714
2024-01-24 12:11:48 -05:00