Commit graph

303 commits

Author SHA1 Message Date
Henrik Lissner
a3fa1e07b1
Refactor doom/kill-*-buffer commands 2019-10-10 16:11:42 -04:00
Henrik Lissner
d87310bd55
Replace evil-commentary with evil-nerd-commenter
The latter provides a comment text object and better commenting support
across various languages.
2019-10-10 16:11:42 -04:00
Henrik Lissner
07380af819
Add gy operator for yanking without indentation
Copies

   (a
    b
    c)

As

(a
 b
 c)
2019-10-10 16:11:41 -04:00
Henrik Lissner
f93d3ca596
editor/evil: evil-escape-delay = 0.15 2019-09-20 23:55:25 -04:00
Henrik Lissner
e10cd8cf2e
Insult byte-compiler's mom
Yeah, that shut him up.
2019-09-20 23:10:53 -04:00
Henrik Lissner
8a634bc04d
Fix evil-collection-pdf not loading #1789
And prevents evil-collection-pdf from loading pdf-tools' eval-after-load
blocks twice.
2019-09-20 01:22:25 -04:00
Henrik Lissner
fdeb1aa45d
Prevent evil-collection from loading packages twice
Triggering eval-after-load blocks (and after!/use-package!) twice.
2019-09-15 16:18:31 -04:00
Henrik Lissner
ab8b31e5bc
Change behavior of BANG for +evil:narrow-buffer
BANG = use indirect buffers, otherwise, narrow/widen the current buffer.
2019-09-14 18:32:14 -04:00
Henrik Lissner
20d15c685e
Fix :narrow ex command 2019-09-14 01:56:38 -04:00
Henrik Lissner
887bc05478
Ensure evil-escape loads later at startup
evil-normal-state-exit-hook is fired prematurely at startup, which makes
it a poor candidate for :after-call deferral.
2019-09-09 23:04:07 -04:00
Henrik Lissner
059ede53b6
Update all unit tests
To meet changes introduced from the straight branch merge.
2019-09-03 00:59:46 -04:00
Henrik Lissner
7138d47ef4
Disable evil-want-abbrev-expand-on-insert-exit
It may be a vim default, but why would anyone want this?
2019-08-19 12:48:36 -04:00
Henrik Lissner
c8baa2b3f6
editor/evil: refactor ex commands; add evil-traces
This commit lazy loads Doom's custom ex commands. To add your own,
you'll need to wrap them in (after! evil-ex ...).
2019-08-15 14:58:41 -04:00
Henrik Lissner
09d13fd60d
Use add-hook! for inline hook defuns 2019-07-27 02:46:49 +02:00
Henrik Lissner
ca295e4c79
Refactor evil-collection initialization
- Update comments
- Add code for easily refreshing evil-collection-mode-list
- Load evil-collection-term for multi-term
- Fix buffer-menu, image-mode, elisp and occur modules not loading
2019-07-26 03:12:07 +02:00
Henrik Lissner
76cacb5bfe
💥 Rename def-package! -> use-package!
Calling this pivotal macro "def-package!" has frequently been a source
of confusion. It is a thin wrapper around use-package, and it should be
obvious that it is so. For this reason, and to match the naming
convention used with other convenience macros/wrappers, it is now
use-package!.

Also changes def-package-hook! -> use-package-hook!

The old macros are now marked obsolete and will be removed when straight
integration is merged.
2019-07-23 12:50:45 +02:00
Henrik Lissner
d106272574
Fix ]f/[f (next/previous file) motions 2019-07-22 23:51:12 +02:00
Henrik Lissner
88813ff196
Minor reformatting across the board
Gotta

Look

Nice
2019-07-22 22:34:08 +02:00
Henrik Lissner
ffadd1307d
Disable evil-collection-want-unimpaired-p
We have our own, better vim-unimpaired keybinds.
2019-07-22 13:31:56 +02:00
Henrik Lissner
755835a207
Change ex command from :m[sg] to :messages
The former overwrote :m[ove].
2019-07-22 13:30:42 +02:00
Henrik Lissner
060ede0e2e
General, minor reformatting across the board
And an offering of blood to our great lord Byte Compiler-sama.
2019-07-22 02:37:45 +02:00
Henrik Lissner
b90dede1ab
💥 Replace package.el/quelpa with straight #374
There are a few kinks to iron out, but for the most part it's done. Doom
Emacs, powered by straight. Goodbye gnutls and elpa/quelpa issues.

This update doesn't come with rollback or lockfile support yet, but I
will eventually include one with Doom, and packages will be (by default,
anyway) updated in sync with Doom.

Relevant threads: #1577 #1566 #1473
2019-07-22 02:30:40 +02:00
Henrik Lissner
fdcb259bcd
Major refactor of Doom core files
- Remove core-os and move many of its settings out to other core
  libraries, where they belong
- Significantly improve commenting & compartmentalization of many
  settings
- Correct some mis-named public hooks (that were named as if they were
  private)
- Move the vast majority of optimizations to "Optimizations" section in
  core.el
- Don't activate xclip-mode or osx-clipboard-mode if we're accessing
  Emacs through an SSH connection (does more bad than good there)
- Add fast-but-imprecise-scrolling = t
- Set bidi-display-reordering = 'left-to-right, at the recommendation of
  an Emacs dev. Apparently setting it to nil is undefined, as Emacs is
  designed to always assume it's set; setting it explicitly to
  left-to-right will still do what was originally intended by turning it
  off: to reduce line/text scans for bidirectional text, which gives us
  a moderate boost in general runtime snappiness
- Set inhibit-compacting-fon-caches = t on windows (where it struggles
  especially with icon fonts)
- Disables "literal" mode for very large files (because I will be
  backporting so-long.el from Emacs 27 in the next commit)
2019-07-22 02:30:38 +02:00
Henrik Lissner
149b2617b0
💥 revise hook/var fns naming convention (2/2)
This is second of three big naming convention changes. In this commit,
we change the naming conventions for hook functions and variable
functions:

1. Replace the bar | to indicate a hook function with a -h suffix, e.g.

     doom|init-ui -> doom-init-ui-h
     doom|run-local-var-hooks -> doom-run-local-var-hooks-h

2. And add a -fn suffix for functions meant to be set on variables,
   e.g.

     (setq magit-display-buffer-function #'+magit-display-buffer-fn)

See ccf327f8 for the reasoning behind these changes.
2019-07-22 02:30:38 +02:00
Henrik Lissner
51d3b1b424
💥 revise advice naming convention (1/2)
This is first of three big naming convention updates that have been a
long time coming. With 2.1 on the horizon, all the breaking updates will
batched together in preparation for the long haul.

In this commit, we do away with the asterix to communicate that a
function is an advice function, and we replace it with the '-a' suffix.
e.g.

  doom*shut-up -> doom-shut-up-a
  doom*recenter -> doom-recenter-a
  +evil*static-reindent -> +evil--static-reindent-a

The rationale behind this change is:

1. Elisp's own formatting/indenting tools would occasionally struggle
   with | and * (particularly pp and cl-prettyprint). They have no
   problem with / and :, fortunately.
2. External syntax highlighters (like pygmentize, discord markdown or
   github markdown) struggle with it, sometimes refusing to highlight
   code beyond these symbols.
3. * and | are less expressive than - and -- in communicating the
   intended visibility, versatility and stability of a function.
4. It complicated the regexps we must use to search for them.
5. They were arbitrary and over-complicated to begin with, decided
   on haphazardly way back when Doom was simply "my private config".

Anyhow, like how predicate functions have the -p suffix, we'll adopt the
-a suffix for advice functions, -h for hook functions and -fn for
variable functions.

Other noteable changes:
- Replaces advice-{add,remove}! macro with new def-advice!
  macro. The old pair weren't as useful. The new def-advice! saves on a
  lot of space.
- Removed "stage" assertions to make sure you were using the right
  macros in the right place. Turned out to not be necessary, we'll
  employ better checks later.
2019-07-22 02:27:45 +02:00
Henrik Lissner
18758c3926
Fix +evil/easymotion for certain keys 2019-07-12 16:24:01 +02:00
Henrik Lissner
feb9799f23
Add f surround key to other lisp modes
This already existed for elisp, but is now available to lisp-mode (CL),
clojure and racket.
2019-07-12 01:08:41 +02:00
Henrik Lissner
403c2e1b5d
Add < surround key
ysiw<testRET will transform

  String

To

  test<String>

In C-style major modes that use angle bracket generics/templates (e.g.
C++, rust, C#, java, swift, and typescript).
2019-07-12 01:07:23 +02:00
Henrik Lissner
9d8dc93515
Fix evil-collection-term triggering on multi-term #1554
Since multi-term loads term, this is redundant, and ends up overwriting
users' after! term or after! multi-term blocks.
2019-07-10 18:07:28 +02:00
Henrik Lissner
d45b9348c0
Update evil-collection-mode-list #1543 2019-07-08 13:51:11 +02:00
Henrik Lissner
096a3b96cc
Update & refactor tools/debugger
- Polish dap-mode support
- Fix realgud autoloads
- Add +debugger/start and +debugger/quit
- Move dap-breakpoints file into doom-etc-dir
- Fix SPC o d
- Add popup rule for realgud:pdb debugger
- Update display-in-popup advice to reflect changes upstream
- Realgud command buffer is auto-killed (and popup closed) when quitting
  the debugger.
- (evil users) Add :debug ex command
2019-07-07 22:01:24 +02:00
Henrik Lissner
9a02bd8ac8
Minor refactors across the board
- when-let* -> when-let
- Fix projectile-locate-dominating-file for connected remote files
2019-06-26 14:31:06 +02:00
Henrik Lissner
168c1d5e61
Disable evil-snipe in calc-mode 2019-06-26 14:28:40 +02:00
Henrik Lissner
8434ae619d
Enable evil-escape in term-mode
It was formerly escaped because of general bugginess, particularly when
bind -v was used in zsh. It's still too buggy to enable in vterm-mode,
however.
2019-06-26 14:28:33 +02:00
Henrik Lissner
855ff34e2c
Port more next/previous motions from vim
They are:

]m, [m
  Jump to next/previous beginning of method/function.
]M, [M
  Jump to next/previous end of method/function
]#, [#
  Jump to next/previous preprocessor directive (only supports C-style
  directives for now)
]*, [* (or ]\, [\)
  Jump to next/previous comment
2019-06-17 12:37:19 +02:00
Henrik Lissner
61502d7e31
Reformat editor/evil/autoload/evil library 2019-06-17 12:05:54 +02:00
Henrik Lissner
72fd61e07b
Ensure order of after-change-major-mode-hook hooks
Reduces the likeliness of load order issues.
2019-06-16 19:16:23 +02:00
Henrik Lissner
0b1ecb8105
editor/evil: port vim-unimpaired keybinds
Adds these keys, inspired by tpope/vim-unimpaired:

[ SPC, ] SPC (or [o, ]o)
  Add COUNT blank lines above/below the cursor
[f, ]f
  Visit previous/next file in current folder, alphabetically
[u, ]u
  Url encode/decode operators
[y, ]y
  C-string-style escaping/unescaping operators (escapes quotes,
  backslashes and control characters)
[x, ]x
  XML entity encoding/decoding operators (only if :lang web is enabled)
[F, ]F
  Focus previous/next frame (decided this is better than ]t/[t which is
  being used by hl-todo-{next,previous})

We already had gp and ]b/[b (buffers).

We're not going to port ]e/[e because it is redundant with ddp/ddP or gx
(evil-exchange). I also think these keybinds are better suited to
{next,previous}-error.
2019-06-16 19:16:22 +02:00
Henrik Lissner
33ae889e39
Enable evil-collection-ivy 2019-06-14 11:05:54 +02:00
Henrik Lissner
5d94f048b6
editor/evil: remove evil-matchit
Its bugginess doesn't justify the "intelligence" it offers for block
keywords.
2019-06-10 09:38:57 +02:00
Siddharth Shekar
aa64cf9426 Replace kill-this-buffer with kill-current-buffer
As per the documentation for kill-this-buffer, it should only be invoked
from the menu and behaves unpredictably when invoked programmatically.
2019-05-30 18:54:58 -07:00
Henrik Lissner
6ea000393f
Use superior evil-numbers fork
And rebind its keys from C-a/C-S-a to g= and g-. This is because the old
narrow/widen commands aren't nearly as useful (and have a number of
alternative keybinds).

As much as I'd like to us C-a/C-x (as it is in Vim), C-x is an essential
keybind for Emacs.

Also, in visual mode, each number will be affected incrementally (ala g
C-a and g C-x in vim).
2019-05-30 13:56:06 -04:00
Henrik Lissner
892f0164af
Add :h[elp] ex command 2019-05-19 02:17:58 -04:00
Henrik Lissner
f7b75a7d68
editor/evil: use evil-set-cursor-color
set-cursor-color causes an expensive redraw. Plugins like treemacs may
silently change window focus, triggering these calls and causing
freezing. We use evil-set-cursor-color instead, which avoids
set-cursor-color unless the cursor's color has changed.
2019-05-17 21:02:24 -04:00
Henrik Lissner
507fb50ff2
Warn us if evil-collection module loads too early 2019-05-17 20:23:52 -04:00
Henrik Lissner
4c65ce4c71
Start help-with-tutorial in emacs state 2019-05-14 22:26:56 -04:00
Henrik Lissner
00f88a509f
editor/evil: evil-want-C-i-jump = t in daemon
Since we can't predict what kind of frames the user will open, we assume
they're graphical. Terminal+daemon users will have to undo this in
`~/.emacs.d/init.el`.
2019-05-12 01:43:45 -04:00
Henrik Lissner
e5d566ea2a
Prevent non-prefix key errors on doom//refresh
May also help doom/reload
2019-05-12 01:43:22 -04:00
Henrik Lissner
0f06b7702e
Remove which-key dependency from +evil/easymotion 2019-05-12 00:56:17 -04:00
Henrik Lissner
414d340567
Correct typo in editor/evil/README.org #1361 2019-04-29 20:57:48 -04:00