Commit Graph

452 Commits

Author SHA1 Message Date
82ae3a73f3 def-advice!->defadvice! & conform to new advice conventions
This commit does two things:

- Renames def-advice! to defadvice!, in the spirit of naming convenience
  macros after the function/macro they enhance or replace.
- Correct the names of advice functions to indicate visibility and
  intent. A public advice function like doom-set-jump-a is meant to be
  used elsewhere. A private one like +dired--cleanup-header-line-a
  shouldn't -- it likely won't work anywhere but the function(s) it was
  made to advise.
2019-07-23 17:24:56 +02:00
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
8482f26d51 Move cc modes smartparen functions to config/default 2019-07-22 23:51:39 +02:00
567d0b6d16 Have smartparens back off of cc modes in 27+ 2019-07-22 02:37:46 +02:00
8a101a98b9 Add SPC o {t,T} keybinds for term/shell module 2019-07-22 02:37:46 +02:00
f898bbe9e1 Remove C-j/C-k from evil-collection blacklist
And fix ESC binding by evil-collection-vterm.
2019-07-22 02:37:46 +02:00
e39a458be7 config/default: add smartparens fix for markdown asterixes 2019-07-22 02:37:44 +02:00
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
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
62af55dad0 Move emacs-snippets -> doom-snippets
The repo was renamed upstream.
2019-07-14 17:05:48 +02:00
43a82c7e92 non-evil users: C-c C-S-z = open repl in same window 2019-07-14 05:34:28 +02:00
05eb333a0c editor/snippets: expand on snippet commands & keybinds
- Introduces the +snippets/new (SPC s n) command for creating a new
  private snippet
- Introduces the +snippets/new-lias (SPC s N) command for creating a new
  private snippet alias, which will invoke another snippet (you will be
  prompted to select one). This will only work with the emacs-snippets
  library bundled with Doom Emacs, however, as it depends on its API.
- Introduces +snippets/edit (SPC s c) for modifying existing snippets.
  How this differs from yas-visit-snippet-file is it will copy the
  contents of built-in snippets into a buffer primed for your private
  snippets (in DOOMDIR/snippets), while yas-visit-snippet-file will
  simply open the originating snippet.
- Introduces the +snippets/find (SPC s ?),
  +snippets/find-for-current-mode (SPC s /) and
  +snippets/find-private (SPC s f) commands for, respectively, finding a
  snippet file among *all* directories in yas-snippet-dirs, finding a
  snippet for the current major mode (plus parents), and finding a
  snippet from among your private library. This opens built-in snippets
  in read-only mode, but you can press C-c C-e to open it in
  +snippets/edit.
2019-07-12 20:41:50 +02:00
f90c0b8040 Add <escape> to blacklisted evil-collection keys
evil-collection is overzealous about its role in aborting things. We
already have our own doom-escape mechanism.
2019-07-12 18:25:28 +02:00
0a7173b7f8 Auto-pair ( in lisps if cursor is before another ( 2019-07-12 15:05:08 +02:00
c627972d20 Add set-indent-width & toggle-indent-style commands
And SPC t I keybind

Also sorts keybinds under the SPC t prefix
2019-07-11 17:22:01 +02:00
e146cba00e Change g s / and g s SPC
The former searches the current window/buffer, the latter searches all
windows in the frame.

Removes g s ? (deemed not as useful as avy-goto-char-timer)
2019-07-09 02:34:24 +02:00
7f964bfa65 Fix +1 space before closing comment delimiter in C languages 2019-07-09 02:19:35 +02:00
b727b8fbe8 Add SPC p l = projectile-repeat-last-command 2019-07-09 02:19:35 +02:00
74877edd5d Adds SPC / O, rebinds SPC / o
SPC / o = search online w/ last provider (if none, you are prompted)
SPC / O = search online (always prompts for provider)
2019-07-09 02:19:35 +02:00
d748fe0cd2 Improve smartparens support for (* *) comment blocks
In tuareg-mode and fsharp-mode
2019-07-09 02:19:35 +02:00
c14a4c8818 Move newline-and-indent advice outside of after! smartparens
Makes it easier to disable.
2019-07-08 22:08:59 +02:00
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
daa7107def Fix #1538: C-k in switch-buffer killing buffers
Caused by an upstream change.
2019-07-05 16:50:03 +02:00
9ffb740b0f Add SPC / D and SPC / P keybinds #1531
For searching from another directory/project (prompted)
2019-07-02 14:13:30 +02:00
65efbc4204 Fix prompts for search-{cwd,project} commands 2019-07-02 14:06:31 +02:00
08e125d3d0 lang/scala: fix comment continuation #1515
On Doom's modded newline-and-indent.
2019-06-28 17:28:10 +02:00
ba7c713bf6 Add projectile-{run,configure,test}-project keybinds 2019-06-27 17:14:15 +02:00
2387f56ba1 Rethink how we standardize modified RET
C-RET / C-S-RET = add new "item" below/above
On MacOS
  s-RET / S-s-RET = add new line below/above
Elsewhere
  M-RET / M-S-RET = add new line below/above
2019-06-27 13:22:42 +02:00
d697cb7ec7 Fix C-{j,k} in non-read-expression prompts 2019-06-26 19:18:04 +02:00
6bcddad852 Bind s-x (in visual mode) to kill-region on MacOS
To emulate standard cut behavior on cmd+X on MacOS
2019-06-26 14:31:07 +02:00
affa7314f7 Remap C-{j,k} to {next,previous}-line-or-history-element 2019-06-26 14:28:40 +02:00
0290b687a5 Decouple ]e / [e keys from :tools flycheck module #1511
They're generic enough.
2019-06-26 14:28:40 +02:00
9c74d9d669 Add SPC g b and SPC g c b for branching
SPC g b = magit-branch-checkout
SPC g c b = magit-branch-and-checkout
2019-06-18 22:06:29 +02:00
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
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
1a589c546a Replace closures with +workspace/switch-to-N 2019-06-11 17:36:44 +02:00
bc6c4b3e37 Add +workspace/other #1480
- Rename +workspace/switch-to-last to +workspace/switch-to-final, to
  avoid ambiguity.
- Add +workspace/switch-to-N commands
2019-06-11 16:12:06 +02:00
4fec3eb698 Revise term/vterm/eshell commands & keybinds
The semantics of SPC o t and SPC o T (or SPC o e and SPC o E in eshell's
case) have been reversed.

The lowercase keybind toggles the popup (and the prefix arg forciby
recreates the popup), and the uppercase keybind switches to that
terminal in the current buffer (whose prefix arg will open the terminal
in default-directory, rather than the project root).

- +{term,vterm,eshell}/open have been replaced with +X/here commands and
  are bound to SPC o T (and SPC o E in eshell's case).
- +{term,vterm,eshell}/popup* have been replaced with +x/toggle commands
  and are bound to SPC o t (and SPC o e in eshell's case).

The "toggle" behavior will do as the name implies, except will select
the popup if it is visible but unfocused.
2019-06-11 07:53:50 +02:00
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
2f910fb91f objed: add a manual actiation flag
Setting the flag `+manual` of the `objed` module makes the user
responsible for calling `objed-activate` when needed. The binding
`M-SPC` is set in the default Emacs bindings.
2019-06-01 13:30:18 +02:00
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
0733a6dfac Replace SPC h p with doom/help-packages
Now that it supersedes describe-packages in functionality.
2019-05-30 14:01:48 -04:00
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
3474e6bf09 lang/cc: move smartparens config to config/default 2019-05-22 03:50:53 -04:00
87144d3c0c Move scratch buffers off of s keys to x key
For consistency. Also, the SPC p x prefix shouldn't be used (use SPC o t
and SPC o T) instead.
2019-05-22 03:49:39 -04:00
2c5c192b6f Fix conflict on C-c p s #1425
Moved scratch buffer to C-c p x and X. This overrides projectile's term
commands, but users should be using the term, vterm and eshell modules'
commands instead.
2019-05-21 17:24:22 -04:00
fe36bbca1f Standardize C-c C-e for ivy wgrep
Removes backtab in favor of standardizing C-c C-e. Already used by helm,
wgrep and dired.
2019-05-21 00:30:42 -04:00
8f9056906d Rethink scratch buffer keybinds & commands
For non-evil users:

<leader> x    doom/open-scratch-buffer
<leader> X    doom/switch-to-scratch-buffer
<leader> p s  doom/open-project-scratch-buffer
<leader> p S  doom/switch-to-project-scratch-buffer

For evil users:

<leader> x    doom/open-scratch-buffer
<leader> b s  doom/open-scratch-buffer
<leader> b S  doom/switch-to-scratch-buffer
<leader> p s  doom/open-project-scratch-buffer
<leader> p S  doom/switch-to-project-scratch-buffer
2019-05-20 21:09:12 -04:00
9f63d94b13 Add doom/help-package-homepage command (SPC h d P) 2019-05-20 21:09:11 -04:00
243a3a84a8 Add doom/help-news-search command (SPC h d N) 2019-05-20 21:09:11 -04:00