Commit Graph

289 Commits

Author SHA1 Message Date
e7d5da2686 feature/evil: detect frame cursor-color #851
In case set-cursor-color was used early in the config process (e.g. in
~/.doom.d/init.el), detect it before resorting to #FFFFFF as a default.
2018-09-03 03:58:44 +02:00
895cf136d5 Ensure evil popup rules are defined later
Otherwise they fall before ui/popup's fallback rules in
display-buffer-alist
2018-08-30 13:29:56 +02:00
068cf5f7d4 Rename +evil|save-buffer to be self-explanitory
+evil|disable-vimlike-save-message
2018-08-30 13:29:56 +02:00
2b560a6a0e General & minor refactoring 2018-08-28 13:36:44 +02:00
9b84d800f3 Make numbered vim markers global
In evil, registers 2-9 are buffer-local. In vim, they're global. This
fixes that.
2018-08-27 21:25:52 +02:00
3e7f1ccf4f Fix reference to doom-narrow-buffer
This was renamed to doom/clone-and-narrow-buffer at some point.
2018-08-27 03:25:49 +02:00
b14bf99d4b Fix over-reindentation when o/O continues comments
This would run indent-according-to-mode after creating a new line, which
would often throw new comment lines out of whack. Now it preserves the
indentation of the originating line.

Also fixes continuation whitespace issues with evil-open-above on
C-style block comments.
2018-08-25 19:45:23 +02:00
e3f412abb7 Add +evil-want-o/O-to-continue-comments
Controls whether o/O continue commented lines. Since this is the default
behavior of vim, it is enabled by default.
2018-08-23 18:42:09 +02:00
5714ff423a Fix evil jumplist after jumping to ag match
helm-ag would formerly add multiple entries to the jump list. It now
only adds one, and recenters the window when jumping to an ag match.
2018-08-13 21:47:55 +02:00
18925b51db Update comments in feature/evil/+everywhere 2018-08-11 21:03:15 +02:00
8d26879f99 Add :editor multiple-cursors module
Moves evil-mc/evil-multiedit out of feature/evil.
2018-08-06 00:31:23 +02:00
43dcaa1853 Demote evil-collection errors 2018-07-31 19:35:30 +02:00
e94f1f39f4 Enable evil-collection-(deadgrep|imenu-list) 2018-07-30 12:34:53 +02:00
3db462ba54 Add regexp support to :mc ex command 2018-07-13 23:35:52 +02:00
6e52e2d07c Refactor +evil:mc
+ Improve error handling when no PATTERN is given (reported by @ar1a)
+ Report correct number of resulting cursors
+ Handle edge case where only one cursor is created
+ Report edge case where no cursors are created
2018-07-13 12:58:58 +02:00
933e52b886 Don't enable evil-visualstar-mode
Redundant with our manual */# keybinds.
2018-07-10 14:21:45 +02:00
93917fd8a2 Fix gsn/gsN & gs*/gs# evil-easymotion binds 2018-07-10 14:21:30 +02:00
db0ad48e4d Enable evil-collection-elfeed 2018-06-29 14:12:50 +02:00
888bd97093 Fix evil-collection-neotree throwing void-function
Because it is using the neotree-make-executor macro without requiring
`neotree` at compile time.

Also, remove the helm fix because they no longer use the
`with-helm-buffer` macro.
2018-06-28 23:16:23 +02:00
875821a95a Remove evil-ediff from :feature evil
It's in evi-collection-ediff now.
2018-06-28 23:16:09 +02:00
5a63f9cb30 Fix some evil-collection modules not loading
Because evil-collection-init was enclosed in one list too many.
2018-06-27 19:12:56 +02:00
8b9d4a94bb Define evil-want-* options as defvars
To make it easier for users to customize.
2018-06-27 03:09:06 +02:00
123df290a6 Rewrite evil +everywhere & evil-collection init
Fixes a couple issues with certain evil-collection modules not loading
and removes some redundant config for 'replace.
2018-06-27 03:05:47 +02:00
69143b20f8 feature/evil: remove macroexpand
Snuck into a commit
2018-06-27 02:57:02 +02:00
fe235c341d Refactor evil-collection-init code
Make it possible to disable image-mode and elisp-mode evil-collection
modules.
2018-06-26 18:58:07 +02:00
5966e9aa9c Restore +evil-collection-disabled-list
Without this variable, the user can't easily prevent certain
evil-collection modules from loading without some provide voodoo.
2018-06-26 18:58:06 +02:00
778f9dea5c feature/evil: correct feature reference
Both help-mode and help-mode-map are defined in file help-mode.el
which provides 'help-mode
2018-06-26 13:25:23 +02:00
a1d02749e5 Rethink how evil-collection is (lazy) loaded
This fixes a keybinding precedence issue that prevented users from
customizing evil-collection's keybinds, because evil-collection would
always run last, *after* user customizations. This precedence problem
occurs because evil-collection was lazy loaded haphazardly.

This isn't the most elegant solution, but I can live with it.
2018-06-25 15:39:38 +02:00
69fc80d7cf Revert "Fix evil-escape aborting multiedit too eagerly"
This reverts commit ba1488279b.

This hack is no longer necessary now that syl20bnr/evil-escape#83 was
merged upstream.
2018-06-24 10:34:16 +02:00
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
4ad9e18135 +default/easymotion => +evil/easymotion 2018-06-22 12:02:31 +02:00
5531d7115a Fix indentation for many autodef setters 2018-06-22 01:49:21 +02:00
13cb219e49 lang/common-lisp: improve evil+sly integration 2018-06-22 01:49:21 +02:00
ba1488279b Fix evil-escape aborting multiedit too eagerly
When evil-escape is invoked from multiedit-insert state, it erroneously
quits the current multiedit session entirely. No more.

This can be removed when syl20bnr/evil-escape#83 is merged.
2018-06-19 14:14:32 +02:00
ccce20b581 set-evil-initial-state!: fix wrong-type-arguments
Caused when set-evil-initial-state! was used with a single mode (which
is 99% of the time!).

Indirectly fixes #696
2018-06-19 12:01:52 +02:00
615735a404 Add exato (x/html attribute text objects for evil)
Bound to x
2018-06-18 23:46:14 +02:00
ca2c8b5a45 Minor refactor, across the board
Do you see the board? Now look at the other side. That's how far this
refactor extends.

Yes.
2018-06-18 15:02:24 +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
19f1c70144 Refactor company keybinds
Also merge evil-collection-company into Doom.

Two new features to note: C-S-s will invoke your completion engine for
the remaining results.
2018-06-17 16:43:10 +02:00
f81a0e6f41 Remove redundant def-setting! docstrings
def-setting! will now grab the autodef's docstring if it has an
:obsolete property defined.
2018-06-15 16:54:39 +02:00
f801939ce7 test-evil: load :feature evil module 2018-06-15 04:46:13 +02:00
5a427b1c2b Move custom evil arg types back to config.el
No need to autoload that.
2018-06-15 04:45:09 +02:00
cbb5b2ed7d Fix unknown interactive code error in evil tests 2018-06-15 04:03:22 +02:00
eaca8c58fa Move unit tests from ert to buttercup
Easier to organize and write. Now I can hopefully strive for better
coverage!
2018-06-15 03:42:01 +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
f22eeff763 Add treemacs-mode to evil-escape-excluded-major-modes
Fixes an unresponsive "j" key in treemacs-mode.
2018-06-07 02:51:46 +02:00
69a796ff60 Don't invoke doom/escape too eagerly from evil
This fixes an issue where certain evil plugins would call
evil-force-normal-state non-interactively, causing `doom-escape-hook` to
wreck havoc. Instead, this should only happen when
evil-force-normal-state is called interactively (e.g. via ESC in normal
mode).

Fixes evil-mc-make-cursor-move-next-line and
evil-mc-make-cursor-move-prev-line.
2018-06-07 02:51:45 +02:00
bc4fb8f18e Fix helm macro errors due to load order
Some packages (like evil-collection and dumb-jump) use helm macros, but
Doom cannot ensure helm will be installed by the time these packages are
byte-compiled during installation. In fact, the default load order
prevents this.

Rather than imposing hard load order requirements, we just make sure
helm is higher on the packages list, so it gets installed sooner.
2018-06-05 14:08:29 +02:00
c9a3c9e615 Disable evil-collection-minibuffer 2018-06-05 13:23:46 +02:00
d5934ec8f7 feature/evil: update evil-shift-width manually (experimental) 2018-06-05 13:23:37 +02:00