Commit graph

52 commits

Author SHA1 Message Date
Henrik Lissner
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
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
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
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
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
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
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
f9bcd2aff3
feature/evil: don't revert to initial state on window switch
The issue this "fixes" wasn't really an issue to begin with.
2018-05-26 21:09:10 +02:00
Henrik Lissner
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
Henrik Lissner
8451c4519c
feature/evil: update docstring of +evil/reselect-paste 2018-05-07 19:31:13 +02:00
Henrik Lissner
7c1bb8f658
config/default: add & bind +evil/paste-preserve-register (gp) 2018-05-07 19:26:31 +02:00
Henrik Lissner
26eb33e36e
feature/evil: fix :vs/:sp not focusing split w/ a file argument #552 2018-04-26 22:27:08 -04:00
Henrik Lissner
b8fd35a855
feature/evil: fix inclusivity of evil-matchit #519 2018-04-18 01:08:56 -04:00
Henrik Lissner
bb8304c15d
feature/evil: rename +evil:macro-on-all-lines => +evil:apply-macro 2018-03-24 07:25:01 -04:00
Henrik Lissner
f822fffdd2
feature/evil: fix +evil:macro-on-all-lines 2018-03-24 07:25:01 -04:00
Henrik Lissner
7574e13677
feature/evil: new +evil:align-right command
Bound to :ral[ign]
2018-03-20 23:56:26 -04:00
Henrik Lissner
a26755a089
feature/evil: redesign +evil:align; bang = repeat align 2018-03-20 23:55:24 -04:00
Henrik Lissner
5711bfc903
feature/evil: don't quote ex-buffer-match regex on evil-ex-bang 2018-03-20 23:50:03 -04:00
Henrik Lissner
b9d8116734
feature/evil: switch to initial state on change window
This used to change to normal mode, but now it respects the buffer's
initial state.
2018-02-02 20:47:32 -05:00
Henrik Lissner
5cd29479f4
Refactor feature/evil hacks & advice; fix tests 2018-01-07 00:15:57 -05:00
Henrik Lissner
91357a3e5d
💥 Replace core-popup with new feature/popup module
This is a breaking change! Update your :popup settings. Old ones will
throw errors!

Doom's new popup management system casts off its shackles (hur hur) and
replaces them with the monster that is `display-buffer-alist`, and
window parameters.

However, this is highly experimental! Expect edge cases.  Particularly
with org-mode and magit (or anything that does its own window
management).

Relevant to #261, #263, #325
2018-01-06 02:17:43 -05:00
Henrik Lissner
6b9849fd57
Add conditional autoload/compile cookies #229 2017-11-05 01:16:35 +01:00
Henrik Lissner
642dc094d1
Fix reference to defunct variable #232 2017-10-07 20:32:48 +02:00
Henrik Lissner
6cb5efc929
core-lib: rename helper fns; move doom-resolve-vim-path
+ doom--resolve-paths => doom--resolve-path-forms
+ doom--resolve-hooks => doom--resolve-hook-forms
+ +evil*ex-replace-special-filenames => doom-resolve-vim-path
2017-09-27 01:23:54 +02:00
Henrik Lissner
e7a9a1a3ca
Improve support for moving popup windows (WIP)
Now, the +evil/window-move-* commands are consistent when used with
popups. Also added doom/popup-move-* as popup-alternatives to
evil-window-move-{very,far}-* commands.

Relevant to #141 #171
2017-09-25 13:02:27 +02:00
Henrik Lissner
2ea01a5b66
Add basic support for moving popup windows (WIP)
Relevant to #141 #171
2017-09-24 20:47:24 +02:00
Henrik Lissner
822c78554f
destructuring-bind => cl-destructuring-bind 2017-06-25 02:04:50 +02:00
Henrik Lissner
c294effd8d
Fix incorrect argc in +evil/reselect-paste 2017-06-22 20:03:27 +02:00
Henrik Lissner
392c58ea47
General refactor & cleanup 2017-06-19 00:32:45 +02:00
Henrik Lissner
7d081c3154
Fix subr-x macro autoloads 2017-06-18 23:43:08 +02:00
Henrik Lissner
c7254e7bdc
Major optimization refactor, across the board
+ enable lexical-scope everywhere (lexical-binding = t): ~5-10% faster
  startup; ~5-20% general boost
+ reduce consing, function calls & garbage collection by preferring
  cl-loop & dolist over lambda closures (for mapc[ar], add-hook, and
  various cl-lib filter/map/reduce functions) -- where possible
+ prefer functions with dedicated opcodes, like assq (see byte-defop's
  in bytecomp.el for more)
+ prefer pcase & cond (faster) over cl-case
+ general refactor for code readability
+ ensure naming & style conventions are adhered to
+ appease byte-compiler by marking unused variables with underscore
+ defer minor mode activation to after-init, emacs-startup or
  window-setup hooks; a customization opportunity for users + ensures
  custom functionality won't interfere with startup.
2017-06-09 00:47:45 +02:00
Henrik Lissner
4acacd5c1c
Refactor +evil/reselect-paste 2017-06-07 16:14:05 +02:00
Henrik Lissner
dd11477132 Fix #87: evil-matchit in visual mode 2017-06-04 02:21:52 +02:00
Henrik Lissner
1cc199497d Silence evil-matchit errors 2017-05-28 15:39:36 +02:00
Henrik Lissner
76493bd8fc Refactor <//> & <//g> ex-arg types & :global 2017-05-28 02:48:20 +02:00
Henrik Lissner
8648ea0314 Make evil-delete invoke wgrep-mark-deletion on lines 2017-05-17 18:27:02 +02:00
Henrik Lissner
f49a507ec8 feature/evil: new code-folding system 2017-05-15 20:26:33 +02:00
Henrik Lissner
5fb028b49d feature/evil: refactor 2017-05-15 20:26:32 +02:00
Henrik Lissner
8d9e57e2ce feature/evil: fix path comment 2017-05-06 16:45:48 +02:00
Henrik Lissner
a71ca4d340 feature/evil: abbreviate :P filename modifier 2017-04-15 01:28:38 -04:00
Henrik Lissner
f5b3baf09e feature/evil: generalize custom file modifiers + unit test 2017-04-15 01:22:42 -04:00
Henrik Lissner
988376aaa8 +evil*ex-replace-special-filenames: add url to docstring 2017-04-05 22:13:10 -04:00
Henrik Lissner
afad3a924a feature/evil: make ex command file modifiers more robust; replace @ with :P 2017-04-05 21:46:12 -04:00
Henrik Lissner
e70a6cbb71 feature/evil: require subr-x on compile in autoload/evil.el 2017-04-02 23:03:59 -04:00
Henrik Lissner
5c07f51766 Don't hijack TAB in magit-status-mode 2017-03-31 23:55:54 -04:00
Henrik Lissner
ea8ed1f997 Fix gp (+evil/reselect-paste) 2017-03-02 11:42:09 -05:00
Henrik Lissner
26b5b2d6df Fix incorrect +evil-window-move references 2017-02-20 00:26:48 -05:00
Henrik Lissner
2f87987803 Update modules/feature/evil 2017-02-20 00:26:08 -05:00