I realize org-src-tab-acts-natively exists, but it doesn't work for me.
This little fix (plus the next commit's editorconfig fix) should make
tab act much more reliably in src blocks.
Turns out the native TAB/Backtab/RET functionality in org already does
what I've replaced them with (somewhat).
Also, I discovered that the canonical way to modify TAB behavior was
through org-tab-first-hook. So, instead of replacing native
functionality, I've rewritten these keybinds to leverage them.
+ Fix frame-spawning when calling bin/org-capture
+ Integrate counsel-org-capture into bin/org-capture workflow
+ Ensure frame is closed if counsel-org-capture is cancelled
+ Ensure org-capture buffer closes the associated frame
+ Add transient frame property for org-capture frames
If you are using a tiling window manager, you'll need to add a rule for
a window named "org-capture" in order to make a floating window.
The ob-C.el library takes care of C, C++ and D. This modifies the babel
lazy-loader to take this into account. Name => library mappings are
defined in +org-babel-mode-alist.
Removes +org-babel-languages and no longer eagerly loads babel
libraries. If an ob-*.el exists for the language, it will be loaded once
you execute its src block.
Warning: this may interfere with tangling. An unloaded library can't
register a language extension in org-babel-tangle-lang-exts (if any).
This means babel won't be able to figure out the correct file extension
for certain src blocks.
Either load the package explicitly or provide a filename + extension for
the TARGET-FILE argument:
(require 'ob-rust)
(org-babel-tangle-file "notes.org")
;; or
(org-babel-tangle-file "notes.org" "notes.rs")
Originally, I built the load-path with site-lisp paths first, then
packages. There was a modest ~10% startup boost doing this, because
there were considerably more site packages loaded at startup than
plugins.
However, this meant built-in packages would get precedence over plugins,
which is undesirable. In org's case, I simply modified the load-path
in lang/org/init.el. However, this issue has cropped up again in #340.
Evidently, that 10% boost may not be worth the risk it imposes, so I've
rearranged the load-path with packages first.
lang/org's initialization process is now split up into hooks on
org-load-hook. This approach is cleaner and easier to customize. I also
removed the escape binding in org-agenda-mode-map, as the popup system
makes it redundant.
Previously, Doom would forget lang/org's modification of the load-path
if you call doom//reload-load-path (which is called when you do package
management with an open Emacs session).
No more!
During runtime, the new version of org (installed via ELPA) is added to
load-path, but this doesn't happen during compile-time. Wrap it in
eval-and-compile and that changes.
Now that the org ELPA archive has https support, we can add it to
package-archives. This fixes some 'org is unavailable' errors when
installing org packages that have declared earlier versions of org as
a dependency.
This also makes installing a newer version of org-mode much simpler.
Woo!