+ Removes redundant/unhelpful comments
+ Renames functions, hooks and variables to be self-documenting
+ Use add-to-list to ensure idempotency (and is more performant)
It only uses the face's :foreground, which should be enough, but it
prevents the minibuffer from being resized when eldoc displays
breadcrumbs in org-mode.
+ Changed org-export-directory to +org-export-dir (conform to naming
convention). It turns out org-export-directory never existed in org.
+ Make org-export-backends addition (for ox-pandoc) idempotent.
+ Fix redundant forward slash in org-publish-timestamp-directory.
+ Resolve export directory later, giving the user a larger window to
change +org-export-dir.
evil-org changes the behavior of o/O to create new headlines, plain list
items or table rows. I disable its new behavior in plain lists only.
This was done because:
1. It isn't uncommon to want o/O's default behavior in plain list bodies
of text. Unlike tables, where a new line in the middle of a table
doesn't make much sense.
2. M-RET/S-M-RET exists.
At some point, org changed how soon it popped up this window, so
+popup-shrink-to-fit would run before there was any content in the
buffer, causing it to take up way too much space.
+ It's too much trouble supporting the evil-org-set-key-theme workflow.
Perhaps I'll make it complain when you do.
+ Don't add +org|setup-ui to doom-load-theme-hook, it's unnecsesary.
+ Use faces in org-priority-faces rather than colors.
Caused when evil-org-set-key-theme is called too early (somehow).
Also makes evil-org-key-theme customizable, so it doesn't override a
user's changes to it.
Reported by @majorgreys
After some profiling, it turns out map-put and map-delete are 5-7x
slower (more on Emacs 25) than delq, setf/alist-get and add-to-list for
small lists (under 250 items), which is exactly how I've been using
them.
The only caveat is alist-get's signature is different on Emacs 25, thus
a polyfill is necessary in core-lib.
Now accepts a flat plist of all its former parameters, including new
:parameters and :actions properties to increase your control over the
fate of your windows.
The old usage of set-popup-rule! is deprecated and may not work right!
The :ui popup module has also seen a major refactor to improve
efficiency and load times.
Sorry! This is the last "big" change before 2.1!
+ :popup -> set-popup-rule!
+ :popups -> set-popup-rules!
+ :company-backend -> set-company-backend!
+ :evil-state -> set-evil-initial-state!
I am slowly phasing out the setting system (def-setting! and set!),
starting with these.
What are autodefs? These are functions that are always defined, whether
or not their respective modules are enabled. However, when their modules
are disabled, they are replaced with macros that no-op and don't
waste time evaluating their arguments.
The old set! function will still work, for a while.
I prefer not to invent new variables when they aren't strictly
necessary. org-directory is one such variable (although the other path
variables are still necessary).
evil-org-set-key-theme blanks out evil-org-mode-map, undoing all our
custom keybinds. Using it isn't the correct way to customize evil-org,
but it is understandable people would use it expecting it to be, so
`+org|setup-evil` will now run after it is called.
The "Doom" way to customize evil-org would be to modify the
`evil-org-key-theme` variable, but with this change, either will work.
This is in preparation for general.el integration coming in 2.1.1. It is
very likely that map! will change (and even more, be split into several
macros). Not much, but change none-the-less. Specifically, the state
keywords (e.g. :nvi, :n, :i) will be removed in favor of a :state
property that takes a list, e.g. (normal visual insert).
In any case, both map! and general are also relatively expensive
compared to define-key and evil-define-key* (and the new define-key!
macro), so use that when we can.
This also means changes to either API won't affect Doom's modules in the
long term.