'SPC n c' -> Toggle last org clock
'SPC n C' -> Cancel current org clock
'SPC n n' -> org-capture
'SPC n S' -> Search org-directory headings
Closes#2043
We generate an org-version.el file, rendering our old org-release hacks
unnecessary. This may cause breakages for uses who do deep clones of
org-plus-contrib; needs testing.
- Fixes an issue where evil bindings weren't working in org-mode
- Significantly slims down on unnecessary keybinds
- Remove +org-init-keybinds-for-evil-h hook and reli more on our new
evil-org fork, which has upstreamed some of our changes.
- Documents undocumented functions, remove unnused ones, and reorganize
org's autoload libraries by convention.
- Adds org-fancy-priorities for more elegant (and subtle) priority
display than ugly [#A] tags.
Some packages that depend on org (like elfeed) will load the built-in
org early in the rebuild/package install process, which causes org to
define org-release and org-git-version, sometimes overwriting our stubs
for it. Without our hack, org call 'git describe' in the org repo in an
attempt to determine the installed version, which won't work in a sparse
clone. To ensure future definitions never overwrite ours, we advise them
as well.
Also moves magit-version hack to its autoload file, for consistency with
org's hacks.
The motivation for this change was to rethink lang/org's flags. Many of
its former flags represented non-features. Therefore, its flags have
been reduced to five: +dragndrop, +ipython, +pandoc, +gnuplot and
+present. Everything else is included as org-load-hooks and treated as
reasonable defaults.
Other changes:
- Fixes#1502: don't autopair certain pairs when in a math region
- Fixes#1483: broken localleader in org-agenda
- Adds gnuplot support #1108
- Doom's org submodules have been moved into lang/org/contrib/, because
I expect there will be *many* more to come, and I don't want to
pollute the moudle's root.
Fixes two issues:
1. Evil users would be left in visual mode after expanding a snippet on
a region, making it awkward to insert text. It now switches to insert
state.
2. While yasnippet reindent the snippet's contents post-expansion, org's
mode-specific indentation (see `org-src-tab-acts-natively`) can throw
errors for arbitrary reasons. We don't need smart indentation when
expanding snippets, so we turn it off only in this case.
- No longer use org-load-hook; it was unnecessary and there were corner
cases where org would get loaded before hooks were added to it.
- Update comments
- Remove config that was redundant with org's defaults (wrt org-file-apps)
- Perform persp-mode check before using persp-mode API in
+org|exclude-agenda-buffers-from-workspace advice.
- Update outdated smartparens config and move it out of
org-mode-hook (only needs to be run once, not everytime org-mode is
enabled)
- Autoload mode hooks
This update focuses on improving the key UX of org tables.
- Adds new table localleader keys under `SPC m s'
- Adds new localleader keybinds
- New `s` prefix for table commands
- New `f`/`F` keybinds for footnotes
- New `'` keybind for `org-edit-special`
- New `r` keybind for `org-refile`
- Bind localleader keys for both evil and non-evil users
- Refactors org table API
- For evil users:
- Adds `zi` to toggle inline images
- Finalize insert-mode keybind scheme for evil users (ala excel/gdocs)
- C-{h,j,k,l} = move cursor between cells
- C-M-{h,j,k,l} = insert cells in direction
- C-M-S-{h,j,k,l} = swap cells in direction
This would formerly update _all_ statistics cookies in the org document,
which can be terribly slow in large documents. This restricts that to
just the parent headlines of the subtree the cursor is in.
Previously, new TODO headers created with M-RET or M-S-RET (bound to
+org/insert-item) would use the first TODO keyword in org-todo-keywords
in the new header. This wouldn't necessarily match the previous header.
e.g.
* [ ] Item 1
* TODO |
This fix ensures new headers will preserve the correct header, even if
the previous one is in a DONE state.
* [ ] Item 1
* [ ] |
It's possible for the debugger to be invoked from inside code wrapped in
a (quiet! ...) call. The debugger pauses Emacs in a broken state where
the functions locally rebound by quiet! (e.g. message, load-file,
write-region, etc) are never returned to their original definitions.
This attempts to reduce that probabilityby changing how quiet! silences
code. Rather than silencing them completely, they will be logged
to *Messages* but not displayed in the echo area.
Also, quiet! is now used less, where it isn't strictly needed (or where
inhibit-message is sufficient).
+ Removes redundant/unhelpful comments
+ Renames functions, hooks and variables to be self-documenting
+ Use add-to-list to ensure idempotency (and is more performant)