Commit Graph

138 Commits

Author SHA1 Message Date
f6dc6ac74e Refactor out map.el usage
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.
2018-06-23 19:53:54 +02:00
638ff6b0a2 Fix wrong-type-argument: sequencep from org-agenda
Caused by +org|exclude-agenda-buffers-from-workspace assuming
org-agenda-new-buffers would always be non-nil... then it wasn't.

Reported by @ar1a
2018-06-20 13:31:46 +02:00
6808c46b58 💥 Change set-popup-rule! usage
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!
2018-06-18 02:34:16 +02:00
ec8ae0bedc Add :ui pretty-code & set-pretty-symbols! autodef
Along with defaults for C/C++, elm, elisp, js, typescript, web-mode, and
org-mode. Thanks to @ar1a for inspiration.
2018-06-16 19:32:25 +02:00
d8b1e469bc Introduce autodefs to replace some settings
+ :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.
2018-06-15 03:42:01 +02:00
6693db48af Mark +org-dir obsolete (use org-directory instead)
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).
2018-06-15 01:05:22 +02:00
7f31704815 Minor reformatting of org-agenda config 2018-06-10 17:28:17 +02:00
9bd5cb862d Don't set org-agenda-files by default
Leave this to the user
2018-06-10 17:28:17 +02:00
7493c953fd Restore gQ -> org-fill-paragraph key in org-mode
When gq is insufficient.
2018-06-04 21:17:49 +02:00
8cf407caff Re-init custom keys after evil-org-set-key-theme
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.
2018-06-04 21:17:49 +02:00
f7a6089956 Restore vim zr, zR, zm, & zM folding in org-mode
For evil users.
2018-06-04 21:17:49 +02:00
e2bf520682 Fix dwim RET keybind in evil org-mode
Accidentally removed in 1e81a354
2018-06-03 16:18:02 +02:00
3d893ea53e Update org-format-latex-options when theme changes 2018-06-03 12:23:17 +02:00
f9be8887fb lang/org: minor refactor/reformatting
Also reduce internal use of map! (toward eventual switch to general)
2018-06-03 12:22:39 +02:00
ae86498a41 Tie evil-org/evil-org-agenda to +everywhere flag 2018-06-03 12:20:16 +02:00
da9096acac Fix evil-org-mode keybinds on first org buffer
evil keeps track of auxiliary keymaps. This list is updated when you
switch states, but it _really_ needs to be updated when minor
modes (with keymaps) are toggled. When this isn't done, their keymaps
aren't recognized and their keys will be unavailable at first.

Since there is no global hook for enabling minor modes, we have to
manually add evil-normalize-keymaps to minor mode hooks.

This commit, specifically, fixes evil-org-mode-map. This also indirectly
fixes folding src blocks for evil users (on the first org buffer).
2018-06-03 12:08:33 +02:00
2761e8c841 lang/org: switch to hard word wrapping
Evil's motions are gimped in soft-wrapped buffers. It also hurts
performance.
2018-06-03 01:38:51 +02:00
ebfc5648ef lang/org: major refactor of +ipython feature 2018-05-30 18:14:48 +02:00
31d34ae5f0 Merge pull request #620 from fuxialexander/ob-ipython
lang/org: +ipython
2018-05-30 11:57:14 +02:00
49f16f681c lang/org: realign/recalculate tables on exit evil replace mode 2018-05-30 01:45:35 +02:00
f2be46d60f lang/org: only load evil-org-agenda if evil is loaded 2018-05-29 14:13:31 +02:00
734b464373 Fix: load! ipython when featurep! 2018-05-29 18:32:52 +08:00
1a452b6842 💥 Change first arg of load! macro
load!'s first argument is no longer a symbol (that will cause
void-variable errors now) to save on unnecessary interning and simplify
compile-time logic. It accepts any valid form that evaluates to a string
now.

If you use load!, you need to change its argument to a string!

e.g. (load! +my-module) => (load! "+my-module")
2018-05-27 12:52:28 +02:00
fa17de9f19 ui/popup: refactor :popup/:popups settings
And move org popup settings to lang/org
2018-05-26 23:26:45 +02:00
0e9add5844 Merge pull request #598 from ar1a/patch-agenda-span
lang/org Make agenda view span 10 days
2018-05-25 18:27:03 +02:00
5472cd4a37 lang/org: set org-clock variables sooner 2018-05-25 00:51:35 +02:00
fd87a0bd9e lang/org: add ]h/[h keybinds; correct bind motion keys to motion map 2018-05-25 00:51:15 +02:00
09cb4f6716 Major refactor & optimization of how modules load their packages
Now that we are loading package autoloads files (as part of the
generated doom-package-autoload-file when running make autoloads), many
:commands properties are redundant. In fact, many def-package! blocks
are redundant.

In some cases, we can do without a config.el file entirely, and can move
into the autoloads file or rely entirely on package autoloads.

Also, many settings have been moved in their module's autoloads files,
which makes them available ASAP; their use no longer depends on module
load order.

This gained me a modest ~10% boost in startup speed.
2018-05-25 00:46:16 +02:00
1bbf5b7d19 lang/org Make agenda view span 10 days 2018-05-18 13:45:06 +10:00
7db7aed52d lang/org: refactor & add org-clock config/keybinds 2018-05-18 01:43:37 +02:00
022baf808c lang/org: use evil-org-key-theme variable to initialize evil-org
Gives people a chance to customize which evil-org key themes are
available to them.

Addresses #591
2018-05-17 11:10:46 +02:00
9a2c4f297c Fix void macro errors after byte-compiling 2018-05-15 03:24:30 +02:00
bb88411cc9 General minor refactor & docstring fixes 2018-05-14 20:55:55 +02:00
48cb10a9cc lang/org: fix void-function +org|setup-ui error
Caused if org is loaded early in your config, before :lang org is
loaded. Or when byte-compiling.
2018-05-14 20:49:45 +02:00
daf4c93e36 lang/org: unbind [/] (interfering w/ default binds) 2018-05-14 13:05:03 +02:00
b6e2599358 lang/org: change recentf/persp clobbering fix 2018-05-14 13:05:03 +02:00
9e141cd01b lang/org: fix newline-and-indent behavior in src blocks 2018-05-08 15:36:42 +02:00
d7889e69b3 lang/org: unbind C-j/C-k (restoring window movement keys) 2018-05-07 19:30:24 +02:00
c8b3c5c493 lang/org: don't insert a second * at BOL 2018-05-07 19:30:09 +02:00
7173e6abcd lang/org: fix TAB in insert mode not indenting 2018-04-29 00:46:45 -04:00
bc91c55acc lang/org: augment org-cycle, rather than replace it
This removes +org/toggle-fold in favor of a more compatible alternative:
a org-tab-first-hook function that forces org-cycle only to toggle the
current subtree, and not cycle through all visibility states.
2018-04-04 06:56:59 -04:00
21da187361 lang/org: fix forward/backward motion keys 2018-03-31 18:06:38 -04:00
28f221ed9c lang/org: fix backtab (rebound by evil-collection-org) 2018-03-25 17:19:22 -04:00
0dd2df5a86 lang/org: doom-init-theme-hook => doom-load-theme-hook 2018-03-22 19:56:53 -04:00
fbb16b4c5e lang/org: fix ^/0 motion keys
^ = now goes to the beginning of current visual line
0 = goes to the true beginning of the line
2018-03-22 14:54:59 -04:00
85e443cca1 lang/org: minor refactor of +org|remove-occur-highlights ESC hook 2018-03-18 02:38:41 -04:00
efdcb01c19 lang/org: change default +org-dir to ~/org 2018-03-14 18:49:26 -04:00
8d11682e99 lang/org: make doom/delete-backward-char respect tables #457
With or without evil.
2018-03-12 17:09:36 -04:00
88d3e91ee4 lang/org: highlight broken file: links with error face 2018-03-12 13:32:01 -04:00
62025c8107 lang/org: indent continued org-list lines more consistently
Before:

+ abcdefghi :: User can set *any* parameters of ivy-posframe with the help of
               `ivy-posframe-parameters'.
+ xyz :: When non-nil, ivy-posframe will ignore prompt. This variable is useful
         for `ivy-posframe-read-action'.

After

+ abcdefghi :: User can set *any* parameters of ivy-posframe with the help of
     `ivy-posframe-parameters'.
+ xyz :: When non-nil, ivy-posframe will ignore prompt. This variable is useful
     for `ivy-posframe-read-action'.
2018-03-12 13:32:01 -04:00