Commit Graph

97 Commits

Author SHA1 Message Date
54749d04e6 Have :P modifier throw error when not in a project
If it returns nil, it will throw a stringp error otherwise.
2018-10-19 23:27:58 -04:00
005a07b416 +evil:apply-macro: fix operator & fail gracefully
Formly, this would fail silently. This has been rewritten to let you
know if no macro is available at a register. It will also inform you how
many times the macro was executed.

Also fixes g@ not invoking the operator state.
2018-10-18 19:41:29 -04:00
2ca2050c6d feature/evil: fix o/O indentation in haskell-mode
Refactors +evil*insert-newline-*-and-respect-comments advice. This also
fixes an issue where o uses haskell's line indenter in haskell-mode,
which is naive. Instead, we use haskell-indentation-newline-and-indent,
which is smarter.

This is a dirty dirty hack. May Nyarlathotep have mercy on our souls.

Reported by @ar1a
2018-10-18 12:17:30 -04:00
09f9e12638 Fix evil-open-above in auto-filled comments
If comment-auto-fill-only-comments is enabled, evil-open-above (O) can
break comments, e.g. in haskell

-- 1 :. 2 :. 3 :. Nil
-- |a
--

Becomes

-- 1 :. 2 :. 3 :. Nil
-- |
--
  a
--

Reported by @ar1a
2018-10-17 22:27:41 -04:00
b4f0d60894 fix: allow deadgreap folding in normal mode 2018-10-08 18:37:13 +02:00
fe425c005e Add g-/g= keys for buffer narrowing/widening 2018-10-03 11:14:08 -04:00
3dbeb4e3a7 Add doctstrings to +evil/fold-* commands 2018-09-23 21:06:45 -04:00
8c4504380f +evil/fold-toggle: don't hide recursively
Otherwise sub-entries will be folded and remain folded when unfolding
entries.
2018-09-23 21:04:20 -04:00
f8fb321f2c Remove outline support from +evil/fold-close-all
It is buggy in modes with a poorly written outline-level function (like
elisp).
2018-09-22 10:34:31 -04:00
1b3511890e feature/evil: fix overzealous folding from :n TAB
Changes +evil/matchit-or-toggle-fold to be less trigger-happy about
toggling folds (it will only open folds not, not toggle them).

Also updates its docstring.
2018-09-20 22:27:15 -04:00
feabbc31da feature/evil: add +evil/fold-{next,previous}
Brings zj/zk to evil
2018-09-20 22:27:01 -04:00
6fce87bd06 feature/evil: refactor folding & outline support
Code folding commands will now obey outline headers (if
outline-minor-mode is on and in outline-mode).
2018-09-20 22:26:36 -04:00
18554ca5b5 feature/evil: extract advice functions
Into its own autoloads file, for better organization.
2018-09-09 09:58:20 -04:00
7d3ffdff06 Remove third line in section headers
This is truly important stuff. We've saved many lives with this update.
2018-09-09 09:58:19 -04: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
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
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
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
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
5a427b1c2b Move custom evil arg types back to config.el
No need to autoload that.
2018-06-15 04:45:09 +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
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
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
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
8451c4519c feature/evil: update docstring of +evil/reselect-paste 2018-05-07 19:31:13 +02:00
7c1bb8f658 config/default: add & bind +evil/paste-preserve-register (gp) 2018-05-07 19:26:31 +02:00
26eb33e36e feature/evil: fix :vs/:sp not focusing split w/ a file argument #552 2018-04-26 22:27:08 -04:00
b8fd35a855 feature/evil: fix inclusivity of evil-matchit #519 2018-04-18 01:08:56 -04:00
b050c14129 Fix "z o". 2018-04-08 15:28:56 +08:00
bb8304c15d feature/evil: rename +evil:macro-on-all-lines => +evil:apply-macro 2018-03-24 07:25:01 -04:00
f822fffdd2 feature/evil: fix +evil:macro-on-all-lines 2018-03-24 07:25:01 -04:00
7574e13677 feature/evil: new +evil:align-right command
Bound to :ral[ign]
2018-03-20 23:56:26 -04:00
a26755a089 feature/evil: redesign +evil:align; bang = repeat align 2018-03-20 23:55:24 -04:00
5711bfc903 feature/evil: don't quote ex-buffer-match regex on evil-ex-bang 2018-03-20 23:50:03 -04:00
0d27eda45a feature/evil: make evil-vimish-fold less ubiquitous #439 2018-02-28 17:57:30 -05:00
5e5d075431 New doom/*-this-file commands; move doom/sudo* to new files library 2018-02-14 05:40:37 -05:00
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
abd3bc87fe feature/evil: use magit-section-toggle if mode is derived from magit-mode
- Closes #359
- See also https://github.com/hlissner/doom-emacs/pull/359#issuecomment-359220633
2018-01-21 11:53:21 +08:00
322e6afd55 feature/evil: fix +evil/matchit-or-toggle-fold in magit modes
- this function only worked in magit-status-mode but not other modes like
  magit-log-mode, magit-process-mode
2018-01-15 16:45:11 +08:00
5cd29479f4 Refactor feature/evil hacks & advice; fix tests 2018-01-07 00:15:57 -05:00
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
f61d7c9e7f doom-force-kill-buffer => doom/kill-this-buffer-in-all-windows 2017-12-30 00:55:44 -05:00
76a4ae459d Fix obsolete (when|if)-let messages in Emacs 26 2017-12-10 14:49:52 -05:00
6b9849fd57 Add conditional autoload/compile cookies #229 2017-11-05 01:16:35 +01:00
642dc094d1 Fix reference to defunct variable #232 2017-10-07 20:32:48 +02:00
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
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