Commit graph

326 commits

Author SHA1 Message Date
Henrik Lissner
3db462ba54
Add regexp support to :mc ex command 2018-07-13 23:35:52 +02:00
Henrik Lissner
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
Henrik Lissner
933e52b886
Don't enable evil-visualstar-mode
Redundant with our manual */# keybinds.
2018-07-10 14:21:45 +02:00
Henrik Lissner
93917fd8a2
Fix gsn/gsN & gs*/gs# evil-easymotion binds 2018-07-10 14:21:30 +02:00
Henrik Lissner
db0ad48e4d
Enable evil-collection-elfeed 2018-06-29 14:12:50 +02:00
Henrik Lissner
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
Henrik Lissner
875821a95a
Remove evil-ediff from :feature evil
It's in evi-collection-ediff now.
2018-06-28 23:16:09 +02:00
Henrik Lissner
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
Henrik Lissner
8b9d4a94bb
Define evil-want-* options as defvars
To make it easier for users to customize.
2018-06-27 03:09:06 +02:00
Henrik Lissner
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
Henrik Lissner
69143b20f8
feature/evil: remove macroexpand
Snuck into a commit
2018-06-27 02:57:02 +02:00
Henrik Lissner
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
Henrik Lissner
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
Alois Janíček
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
4ad9e18135
+default/easymotion => +evil/easymotion 2018-06-22 12:02:31 +02:00
Henrik Lissner
5531d7115a
Fix indentation for many autodef setters 2018-06-22 01:49:21 +02:00
Henrik Lissner
13cb219e49
lang/common-lisp: improve evil+sly integration 2018-06-22 01:49:21 +02:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
615735a404
Add exato (x/html attribute text objects for evil)
Bound to x
2018-06-18 23:46:14 +02:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
f801939ce7
test-evil: load :feature evil module 2018-06-15 04:46:13 +02:00
Henrik Lissner
5a427b1c2b
Move custom evil arg types back to config.el
No need to autoload that.
2018-06-15 04:45:09 +02:00
Henrik Lissner
cbb5b2ed7d
Fix unknown interactive code error in evil tests 2018-06-15 04:03:22 +02:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
c9a3c9e615
Disable evil-collection-minibuffer 2018-06-05 13:23:46 +02:00
Henrik Lissner
d5934ec8f7
feature/evil: update evil-shift-width manually (experimental) 2018-06-05 13:23:37 +02:00
Henrik Lissner
48fdc8a5b5
feature/evil: fix missing keymap in key def 2018-06-03 18:11:49 +02:00
Henrik Lissner
1e81a35461
Minimize dependence on map!
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.
2018-06-03 15:46:00 +02:00
Henrik Lissner
43152d774f
Fix commented out :config causing errors
Semicolons, what have you done?
2018-06-01 16:32:38 +02:00
Henrik Lissner
553867bf61
Remove evil-collection-helm hack (it's disabled) 2018-06-01 16:20:11 +02:00
Henrik Lissner
dc2dad0af3
Disable evil-collection-ruby-mode
May indirectly fix broken :localleader keybinds on ruby-mode-map
2018-06-01 16:19:49 +02:00
Henrik Lissner
002f514b22
Minor refactor of evil-mc->smartparens integration 2018-06-01 13:40:48 +02:00
Henrik Lissner
3c967cf3a3
Resume evil-mc upon switching to insert mode #618
I believe this is intuitive, but I've designed it to be easily disabled
with:

  (remove-hook 'evil-insert-state-entry-hook #'+evil-mc|resume-cursors)
2018-06-01 13:40:47 +02:00
Henrik Lissner
9b3decaaa1
Merge evil-collection-helm into completion/helm 2018-05-31 13:59:21 +02:00
Henrik Lissner
601c9a654e
Merge evil-collection-dired into emacs/dired 2018-05-31 13:59:21 +02:00
Henrik Lissner
183ccbb8f1
Merge evil-collection-ivy into completion/ivy
Disables evil-collection-ivy. Another step toward the removal of
evil-collection from Doom.
2018-05-31 13:59:21 +02:00
Henrik Lissner
1f5dae9176
Merge evil-collection-anaconda into lang/python #628
This is the first step of removing evil-collection from Doom.
2018-05-31 13:59:21 +02:00
Henrik Lissner
b4ebb2abca
feature/evil: remove ; evil-snipe alias 2018-05-30 01:38:36 +02:00
Henrik Lissner
7a61615666 Disable evil-snipe in Info-mode 2018-05-29 15:47:17 +02:00