Added new keybinds for easy removal of RESULTS blocks in org-mode.
SPC m k - delete RESULTS block under cursor
SPC m K - delete all RESULTS blocks under cursor
SPC u SPC m K - delete all RESULTS blocks in buffer
Doom sets jump points before following most org links. This allows you
to jump back to where you were afterwards using
C-o (better-jumper-jump-backward) or forward with
C-i (better-jumper-jump-forward). It does this by setting a jump point
on the org-open-at-point-functions hook.
However, not all org links' :follow handlers trigger this hook (like id:
or roam: links), and you can get around it by triggering link opener
handlers directly (with M-x org-goto). Most of these link openers use
org-mark-ring-push to record jump points in org's own jumplist, so
advising it to call better-jumper-set-jump should address more of these
fringe cases.
Fix: #6098
org-babel-result-end can return the wrong position if cursor is in a src
block (which is where it will be when org-babel-after-execute-hook
triggers).
Amend: 451be94fb8
A regression caused by 6934014, due to
org-babel-where-is-src-block-result returning a position after
org-babel-result-end.
Fix: #6046
Amend: 69340149f9
Also limits the scope of org-display-inline-images to the current src
block. org-display-inline-images was previously used on the entire
subtree, which was slower than it needed to be (especially while
exporting/tangling org).
- Defer citar-org, since citar autoloads it.
- Add introducing PR to #+SINCE and use new calver scheme.
- Move <localleader> @ keybind to :lang org
Ref: #5810
From now on Doom will enforce two conventions for its org files for
consistency's sake:
- Lower-case meta-lines in org files, like #+begin_src, #+name, or
#+end_quote (only exception are the top-level ones, like #+TITLE and
#+STARTUP).
- Use 'emacs-lisp' as the lang specifier for elisp blocks rather than
'elisp'. Emacs doesn't natively recognize the latter.
This will be reflected in our rewritten docs/*.org and module
README.org's.
Headings beyond 6 are excessive in almost any org document, and only
muddy (and slow down) imenu search results, so I'm reducing it to the
number of available HTML headings.
Here's the problem:
1. Org's link system unconditionally calls *all* link :store handlers
when you call `org-store-link`, and all :export handlers when you
export an Org file.
2. The org-pdftools package works by defining a custom pdf: link with
custom :store and :export handlers.
3. Those handlers do not perform error handling before using pdftool's
API.
4. pdf-tools fails loudly and ungracefully with a
"pdf-info-epdfinfo-program is not executable" error when its API is
used and epdfinfo isn't installed.
TL;DR org-pdftools effectively breaks storing/exporting in org-mode
until pdf-tools-install is executed to install epdfinfo. This is awful
UX, so let's suppress the error.
- #+STARTUP: inlinegifs = play inline gif previews when point is on
them.
- #+STARTUP: playgifs = play all gifs in the visible buffer (super,
super slow; use at your own risk).
- Add +org-startup-with-animated-gifs for changing the global
default (nil). Can be set to 'at-point (inlinegifs) or t (playgifs)
#+STARTUP: showNlevels
This tells org to expand N levels at startup, but it only partially
unfolds headings, so show2levels gets you:
* A [...]
** X [...]
** Y [...]
** Z [...]
Instead of (what I think is expected):
* A
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.
** X [...]
** Y [...]
** Z [...]
Perhaps this should be upstreamed?
ob-comint (included with org) added native :async support. It only works
for python currently, but unlike ob-async supports :session for :async
python blocks. In fact, it *requires* :session, so we still fall back to
ob-async in its absence, failing that, it ultimately falls back to
synchronous execution.
- Rename module from `:completion selectrum` to `:completion vertico`
- Rename all files involved
- Do *not* yet rename all the functions, as that messes up git's rename
detection.
- add `completion-at-point` as analogue to `cousnel-company`
- fix emacs-bindings `counsel-company` binding to respect helm and selectrum
- add org jump commands `consult-org-heading` and `consult-org-agenda` bindings
- add `consult-history` as `counsel-minibuffer-history` analogue
- add support for `doom/help-search`
- update TODO.org
Not sure if this was a recent change (28.0.50+), but a new conditional
keybind in outline-mode-cycle-map was overriding TAB in insert mode in
org-mode (in GUI Emacs).
Emacs 27.x has been the stable version of Emacs for nearly a year, and
introduces a litany of bugfixes, performance, and quality-of-life
improvements that significantly reduce Doom's maintenance burden (like
XDG support, early-init.el, image manipulation without imagemagick, a
native JSON library, harfbuzz support, pdumper, and others).
With so many big changes on Doom's horizon, I like having one less (big)
thing to worry about.
Also reverts bb677cf7a (#5232) as it is no longer needed.
With current hacks involving `org-agenda-files`, one cannot use org agenda
commands like clock in or change the entry's state to done, etc.
Specifically, the mangled behavior observed at #4901. This commit fixes those
problems around `org-agenda` buffer specific commands.
For more details, please refer to https://github.com/hlissner/doom-emacs/issues/4759#issuecomment-822100632.
Due to case shenanigans, ob-C.el's feature name is ob-C, not ob-c,
preventing folks from using 'c' (lowercase) as a language name for org
babel blocks.
This fixes a class of issues where doom-first-file-hook would fire even
for files not opened interactively (e.g. via org-agenda reading agenda
files or helpful scraping definitions from source files).
In instances like these, hooks like find-file-hook or pre-command-hook
are set to nil to speed up this process and reduce noise, but many
packages add to these hooks when they are loaded; these are lost when
their lexical values fall out of scope, leading to odd errors (like the
one in #4759).
Fixes#4759 (again)
First brought up in hlissner/doom-emacs@9f08db8
When a capture target didn't have an *.org file extension OR its buffer
was displayed before it was renamed to CAPTURE-* (e.g. while a capture
template prompts for input) the popup handler fails to capture the new
window, displaying it in other-window, rather than a popup.
An optimization that minimizes how much work is done when grabbing org
agenda files in the background prevented side-effects in
doom-first-file-hook. This had the indirect effect of preventing
save-place-mode from adding its hook to find-file-hook IF org-agenda was
the first thing you ran at startup.