Commit graph

586 commits

Author SHA1 Message Date
Henrik Lissner
aed2972d74
fix(org): don't show parent trees by default
Instead of changing the behavior of the showNlevels startup options,
I've added a new set of showNlevels* options to perform the new behavior
of unfolding parent trees all the way up to the target level.

Ref: https://www.reddit.com/r/emacs/comments/tj0na6/comment/i1laya6/?utm_source=reddit&utm_medium=web2x&context=3
2022-03-22 02:49:09 +01:00
Henrik Lissner
aeef05bfd7
feat(org): add ::SEARCH support to id: links 2022-03-19 16:43:28 +01:00
Mora Unie Youer
18f74d277f
feat(org): keybinds for removing #+RESULTS blocks
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
2022-03-19 16:19:54 +01:00
Henrik Lissner
bdac4466f8
tweak(org): move org-persist-directory to doom-cache-dir 2022-02-19 01:08:08 +01:00
Henrik Lissner
9217bb81f4 fix(org): org-babel-do-in-edit-buffer deleting popups
Fix: #6061
2022-02-10 21:28:55 +01:00
Henrik Lissner
9672dbcb5e refactor(org): name anonymous keybind on RET
Makes it easier to advise, swap, or reference.
2022-02-10 21:07:20 +01:00
Henrik Lissner
8179dc641e fix(org): better-jumper support for more links
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
2022-02-10 21:07:20 +01:00
Henrik Lissner
5941a41fd9 tweak(org): larger capture/src popups by default 2022-02-06 03:27:08 +01:00
Henrik Lissner
9cfd798076 fix(org): unbalanced parens
A regression caused by typo in 451be94.

Amend: 451be94fb8
2022-01-30 02:42:54 +01:00
Henrik Lissner
9dbdb854b9 fix(org): bounds for inline images in babel results
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
2022-01-29 18:43:40 +01:00
Henrik Lissner
2c06577edf fix(org): type error when refreshing images in src results
Ref: 451be94fb8
2022-01-29 04:07:21 +01:00
Henrik Lissner
451be94fb8 fix(org): out-of-bounds refreshing inline images
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
2022-01-27 14:37:04 +01:00
Henrik Lissner
69340149f9 fix(org): don't refresh images while exporting/tangling
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).
2022-01-27 03:43:51 +01:00
Henrik Lissner
c93790bb5c fix(org): omit -i switch from org-babel-python-command
The -i switch for python or ipython can cause python org src blocks to
hang indefinitely when executed.

Ref: hlissner/doom-emacs@c0d988fe0d
Ref: #5569
2021-11-28 22:08:07 +01:00
Henrik Lissner
45ee0ecf21 refactor(biblio): reformat module
- 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
2021-11-22 15:45:00 +01:00
Henrik Lissner
7034378968 nit: s/#+BEGIN_SRC/#+begin_src, s/elisp/emacs-lisp/
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.
2021-10-18 12:09:42 +02:00
Ethan Leba
0ca2e791f7 feat(org): add binding for org-clone-subtree-with-time-shift 2021-10-03 20:40:55 +02:00
Henrik Lissner
c0d988fe0d fix(org): recognize python-shell-interpreter-args
Also does not tamber with org-babel-python-command if the user has
changed it.

Fix #5569
2021-10-03 20:40:00 +02:00
Henrik Lissner
3179c2a744 tweak(org): org-clock-history-length = 20
The default value of 5 is too conservative. 20 seems more reasonable,
without being overwhelming.
2021-09-28 22:42:29 +02:00
Henrik Lissner
ed43b8e36f tweak(org): org-startup-folded = nil
'nil' behaves the same as 'showeverything' in every other way, except it
respects visibility options (like 'hideblocks').
2021-09-25 23:54:44 +02:00
Henrik Lissner
d210b983d4 tweak(org): unset org-list-demote-modify-bullet
Imposing different list bullets per-level was a poor and jarring
default.
2021-09-25 00:55:19 +02:00
Henrik Lissner
206063f27d tweak(org): org-imenu-depth = 6
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.
2021-09-25 00:54:13 +02:00
David Lukes
a03d30047c tweak(org): map f to org-footnote-action 2021-09-14 19:25:57 +02:00
Henrik Lissner
bf8495b412 fix(org): epdfinfo error when storing/exporting links
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.
2021-08-22 01:41:26 -04:00
Robert Irelan
ff356e9c37
fix(org): error trying to kill dead agenda buffers
It may happen that org-agenda-new-buffers contains a killed buffer.
2021-08-06 03:18:47 -04:00
Henrik Lissner
06392a723f refactor: rename orig-fn arg in advice to fn
A minor tweak to our naming conventions for the first argument of an
:around advice.
2021-08-04 01:53:12 -04:00
Henrik Lissner
11007f3997 feat(org): add kbd & doom-{module,package}} links
I make extensive use of these in our new in-repo Org documentation.
2021-07-31 19:40:58 -04:00
Henrik Lissner
858a0e44a3 feat(org): open help:* links with helpful-*
Rather than describe-*
2021-07-31 04:35:49 -04:00
Henrik Lissner
83171ac554 feat(org): add #+STARTUP inlinegifs playgifs
- #+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)
2021-07-31 04:35:49 -04:00
Henrik Lissner
823fb275a0 feat(org): expand parents for showNlevels option
#+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?
2021-07-28 15:02:14 -04:00
Henrik Lissner
7b274c7dbe feat(org): add native :async support
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.
2021-07-28 15:00:38 -04:00
Henrik Lissner
c48c01ebab feat(org): set org-num-face & org-num-skip-tags
+ Perhaps a dedicated face would be better, but org-special-keyword will
  do for now.
+ Don't number trees tagged :noexport: or :nonum:.
2021-07-28 14:06:35 -04:00
Henrik Lissner
4ac5332a1d
Merge pull request #5271 from Wetlize/add-roam2
lang/org: Add `+roam2` flag for org-roam v2
2021-07-25 04:13:03 -04:00
Itai Y. Efrat
24eaa1317c completion/selectrum -> completion/vertico, part 2
- 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.
2021-07-25 02:51:15 +03:00
Itai Y. Efrat
26a310d04c selectrum: improve ivy parity
- 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
2021-07-25 02:50:31 +03:00
Wetlize
5ef733b488 lang/org: Add +roam2 flag for org-roam v2 2021-07-25 01:42:09 +03:00
Henrik Lissner
2855351b2c lang/org: fix TAB override in GUI emacs
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).
2021-07-23 22:10:43 -04:00
Henrik Lissner
044a1a5f2b Drop Emacs 26.x support
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.
2021-07-06 02:31:52 -04:00
Henrik Lissner
26aeb72e63 org-clock-out-remove-zero-time-clocks = t
Reverts 334c309; the original issue was reportedly fixed upstream at
some point.
2021-06-04 14:08:42 -04:00
Henrik Lissner
4dceae1826 lang/org: hl dead links in warning + org-link faces 2021-06-01 21:24:32 -04:00
Henrik Lissner
a4d2e873ab Bump :ui doom
hlissner/emacs-doom-themes@4199e74 -> hlissner/emacs-doom-themes@4d24728
hlissner/emacs-solaire-mode@9d143db -> hlissner/emacs-solaire-mode@186f97d

Rewrite solaire-mode usage to adapt to upstream changes. This will yield
a new class of edge cases, but I'll tackle those as I encounter them.

Closes #5063
2021-05-21 23:13:14 -04:00
Henrik Lissner
bd94ef8f84 Optimize reading org-agenda buffers in the bg
Less init work when opening org-agenda buffers = faster org-agenda.
2021-05-16 21:18:26 -04:00
Hynggyu Jang
1e1838d29b fix #4901: suppress strange behavior of org agenda commands
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.
2021-04-24 10:53:29 +09:00
Henrik Lissner
f621ff8047 lang/org: fix org-ditaa jar paths
Now also includes contrib/scripts in org-mode's build directory.
2021-04-21 21:45:04 -04:00
Henrik Lissner
c339bb0929 Fix #4563: ob-c.elc failed to provide feature ob-c
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.
2021-04-17 00:09:50 -04:00
Henrik Lissner
0683861f3f Make doom-first-*-hooks trigger less aggressively
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
2021-04-14 23:43:45 -04:00
Henrik Lissner
83e0451cba Fix org-capture popup rules for partials & non-org files
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.
2021-03-27 18:27:02 -04:00
Henrik Lissner
9f08db8e33 Fix #4759: suppressed doom-first-file-hook side-effects
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.
2021-03-10 20:33:37 -05:00
Henrik Lissner
377608c54b Fix #4651: don't trigger formatters on org tangle 2021-03-10 13:03:29 -05:00
Henrik Lissner
7c38eee96c Fix #4727: wrong-type-arg error on async org export
Because org-export-async-init-file will have a different value in the
temp buffer created for the temp file.
2021-03-10 13:03:29 -05:00