Commit Graph

143 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
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
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
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
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
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
9ffb740b0f Add SPC / D and SPC / P keybinds #1531
For searching from another directory/project (prompted)
2019-07-02 14:13:30 +02:00
ba7c713bf6 Add projectile-{run,configure,test}-project keybinds 2019-06-27 17:14:15 +02:00
d697cb7ec7 Fix C-{j,k} in non-read-expression prompts 2019-06-26 19:18:04 +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
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
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
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
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
482c87308f config/default: correct project keybinds
- SPC p > and SPC p ? were the wrong way around
- Add SPC p e to edit project .dir-locals.el
2019-05-20 21:09:10 -04:00
41de07177b Update keybinds for :term modules 2019-05-19 02:30:43 -04:00
0674e4b4b0 Remove :emacs imenu module
Some of it was moved into core as reasonable defaults, but the rest of
it doesn't warrant a whole module dedicated to it.
2019-05-19 02:18:00 -04:00
2e6d8be6fc Rethink SPC n keybinds and add new ones
Adds the following keybinds:

SPC n .    Browses org-directory
SPC n /    Text search in org-directory
SPC n *    Text search in org-directory with symbol at point
SPC n h    Jump to org headline in org-agenda-files
2019-05-17 23:57:24 -04:00
571e7bd527 Fix +lookup/in-docsets & docsets lookup backend
They were throwing 'cannot find docset' errors.

- Adds new +lookup/in-all-docsets command.
- If a prefix arg is passed to +lookup/in-docsets, it will search all
  docsets in dash-docs-common-docsets.
2019-05-17 21:02:24 -04:00
0ac3044606 Add 'SPC / k' and 'SPC c k' keybinds
For searching docsets and documentation, respectively.
2019-05-16 00:39:09 -04:00
f381701aab Bind SPC f m -> doom/move-this-file 2019-05-14 20:28:19 -04:00
13a20866aa Add headers to leader prefixes for easy imenu access
SPC / i to jump between them
2019-05-13 22:34:43 -04:00
b7d1702484 Add :prefix-map to map! macro
Each prefix now defines a doom-leader-DESC-map keymap, where DESC is the
which-key description for that prefix key. This should make it easier
for users to move leader prefixes. e.g.

To move SPC TAB (workspaces) to SPC l:

  (map! :leader
        "TAB" nil
        "l" doom-leader-workspaces-map)
2019-05-13 22:30:21 -04:00
6b69eaa397 Minor refactors across the board 2019-04-26 17:42:44 -04:00
5df4a2f18e do-repeat! -> set-repeater!
Macro was renamed to be consistent with other autodefs

- Make these repeaters buffer-local
- Don't bind repeater if motion failed
- Defer evil-snipe repeaters until evil-snipe is loaded
2019-04-24 18:16:05 -04:00
77e4cc4d58 💥 Remove :feature category
:feature was a "catch-all" category. Many of its modules fit better in
other categories, so they've been moved:

- feature/debugger -> tools/debugger
- feature/evil -> editor/evil
- feature/eval -> tools/eval
- feature/lookup -> tools/lookup
- feature/snippets -> editor/snippets
- feature/file-templates -> editor/file-templates
- feature/workspaces -> ui/workspaces

More potential changes in the future:

- A new :term category for terminal emulation modules (eshell, term and
  vterm).
- A new :os category for modules dedicated to os-specific functionality.
  The :tools macos module would fit here, but so would modules for nixos
  and arch.
- A new :services category for web-service integration, like wakatime,
  twitter, elfeed, gist and pastebin services.
2019-04-24 18:16:04 -04:00
ee754362a2 Fix SPC f / for non-ivy users
Incorrect function signature for doom-project-find-file
2019-04-20 02:18:48 -04:00
d1ab86c38c Revise project & general find-file keybinds
Changes
- SPC f . -> Browse files from here
- SPC f / -> Find file from here (recursive)

Moves
- SPC f > -> SPC p > (Find file in another project)
- SPC f ? -> SPC p ? (Browse files in another project w/ find-file)
2019-04-19 20:53:22 -04:00
c849495849 SPC q q = quit normally; SPC q Q = force quit 2019-04-19 20:51:09 -04:00
6cd30c926b Persist scratch buffer across sessions
- Adds doom/open-project-scratch-buffer (persistent project scratch
  buffers)
- Prefix arg = open scratch buffer in current window, for both
  doom/open-scratch-buffer and doom/open-project-scratch-buffer.
- Rename doom/delete-scratch-files ->
  doom/delete-persistent-scratch-file
- Remove doom-scratch-buffer-display-fn
- Rename doom-scratch-files-dir -> doom-scratch-dir
- Add SPC p s keybind to open project scratch buffer
2019-04-17 11:15:56 -04:00
c1bc899e34 config/default: add & change SPC p keybinds
- Moved SPC p x to SPC p i (invalidate cache)
- Add SPC x prefix for opening terminals/ielm at project root
- Add SPC a and SPC d for adding/removing known projects
- Add SPC f for finding a file in other projects
- Add SPC b for switching project buffer (TODO improve ivy/helm support)
- Add SPC k for killing project buffers
2019-04-11 18:29:26 -04:00
5e8687cd45 Add SPC * for project-searching symbol at point 2019-04-10 18:57:57 -04:00
4aec51525b config/default: replace SPC c c with #'compile
SPC p c exists for projectile-compile-project
2019-04-10 18:52:34 -04:00
3b2befe161 Move evil helpful keybinds to +evil-bindings 2019-04-07 15:56:30 -04:00
72fb5603e7 Minor, general refactor & reformatting
Also swaps C-o and M-o in ivy

And use new ;;;###package cookie (not used yet)
2019-04-06 01:36:46 -04:00
e83a6cbaa1 Turn comment headings into outline-mode headers
Also reformats a few keybinds with incorrect indentation.
2019-04-05 01:24:55 -04:00
5a50820cd9 Bind z= -> flyspell-correct-word-generic
z= is a vim default. `flyspell-correct-word-generic` is superior to the
original command bound to z= (ispell-word).
2019-04-04 18:53:04 -04:00