Commit Graph

647 Commits

Author SHA1 Message Date
Jakub Darul
ba69c9efe4 added featurep codition to keybindings
includes popup, flycheck, flyspell, org +present, indent-guides
2019-08-29 20:38:56 +02:00
Henrik Lissner
f90cf1f974
Fix +default/org-notes-headlines 2019-08-28 22:08:13 -04:00
Henrik Lissner
b141b4bbd8
Merge pull request #1720 from AloisJanicek/fix-snippets-keybindings
fix function name mismatch in snippets keybindings
2019-08-28 16:49:06 -04:00
Henrik Lissner
f806b54333
Merge pull request #1723 from JakDar/develop
config/default: remove unused floobits & impatient-mode keybinds
2019-08-28 16:48:48 -04:00
Jakub Darul
1a95ed263b removed unused floobits and impatient-mode bindings 2019-08-28 21:57:40 +02:00
Henrik Lissner
4cc359fd2b
Add SPC b d keybind for killing buffers
Relevant to #1436
2019-08-28 12:41:00 -04:00
Henrik Lissner
1cb9dbb2de
Add evil-switch-to-windows-last-buffer keybinds
SPC ` and SPC b l
2019-08-28 12:40:59 -04:00
Alois Janíček
e195d13440
fix function name mismatch in snippets keybindings
some function related to snippets were renamed but their references
weren't updated to reflect this change resulting in error
2019-08-28 11:35:10 +02:00
Henrik Lissner
29614a3187
Merge pull request #1693 from emil-r-petersen/fixup-shortcut
Add leader keybinds for magit-commit-fixup
2019-08-27 16:31:24 -04:00
Andrew Whatson
6381a5c0ae Add :editor word-wrap module
Defines a new minor-mode `+word-wrap-mode` which configures
adaptive-wrap-prefix-mode and visual-line-mode for smart soft-wrapping
of code.

Evil users can toggle it with `SPC t w`.

Enable globally with `+global-word-wrap-mode`.

See the README for more details!
2019-08-27 15:04:38 +10:00
Henrik Lissner
8f01abebfc
Conform set-repeater! to naming conventions 2019-08-22 18:57:18 -04:00
Emil Petersen
8f29901f4d Add magit-commit-fixup shortcut 2019-08-21 14:49:23 -04:00
Henrik Lissner
f4a11fd437
Fix #1679: newline-and-indent advice not deleting trailing whitespace 2019-08-21 00:29:12 -04:00
Henrik Lissner
18cefa0167
Use evil-avy-goto-char-timer #1690 2019-08-20 22:23:59 -04:00
Henrik Lissner
ffa7a0323a
Merge pull request #1641 from alexandergraul/develop
Fix evil-window "c" binding
2019-08-09 22:20:46 -04:00
Alexander Graul
15161c9f46 Fix evil-window "c" binding
Instead of relying on the optional ":ui workspaces" feature, the
built-in evil-window-delete is used. ":ui workspaces" remaps the
evil-window-delete already, so no functionality is lost for users of
that feature.

Fixes https://github.com/hlissner/doom-emacs/issues/1640.
2019-08-09 10:20:53 +02:00
Henrik Lissner
b330728032
Fix #1575: SPC * error when no symbol at point 2019-08-07 18:37:02 -04:00
Henrik Lissner
62aea0a73a
Add ctrl [-+=] keys for adjusting font-size 2019-08-06 14:47:53 -04:00
Henrik Lissner
61b7451b52
config/literate: always tangle asynchronously
Should also fix errors during tangling while running `bin/doom`
commands.
2019-07-29 03:18:38 +02:00
Henrik Lissner
19ecf8e46a
Correct last inline hook defuns
See a3e262c7 for rationale
2019-07-28 16:10:53 +02:00
Henrik Lissner
3e357c2e88
Return real version string from fake org-release fn 2019-07-27 02:46:50 +02:00
Henrik Lissner
8931718e8a
config/literate: fix org-version errors 2019-07-23 17:56:37 +02:00
Henrik Lissner
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
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
8482f26d51
Move cc modes smartparen functions to config/default 2019-07-22 23:51:39 +02:00
Henrik Lissner
567d0b6d16
Have smartparens back off of cc modes in 27+ 2019-07-22 02:37:46 +02:00
Henrik Lissner
8a101a98b9
Add SPC o {t,T} keybinds for term/shell module 2019-07-22 02:37:46 +02:00
Henrik Lissner
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
Henrik Lissner
e39a458be7
config/default: add smartparens fix for markdown asterixes 2019-07-22 02:37:44 +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
62af55dad0
Move emacs-snippets -> doom-snippets
The repo was renamed upstream.
2019-07-14 17:05:48 +02:00
Henrik Lissner
43a82c7e92
non-evil users: C-c C-S-z = open repl in same window 2019-07-14 05:34:28 +02:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
0a7173b7f8
Auto-pair ( in lisps if cursor is before another ( 2019-07-12 15:05:08 +02:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
7f964bfa65
Fix +1 space before closing comment delimiter in C languages 2019-07-09 02:19:35 +02:00
Henrik Lissner
b727b8fbe8
Add SPC p l = projectile-repeat-last-command 2019-07-09 02:19:35 +02:00
Henrik Lissner
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
Henrik Lissner
d748fe0cd2
Improve smartparens support for (* *) comment blocks
In tuareg-mode and fsharp-mode
2019-07-09 02:19:35 +02:00
Henrik Lissner
c14a4c8818
Move newline-and-indent advice outside of after! smartparens
Makes it easier to disable.
2019-07-08 22:08:59 +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
daa7107def
Fix #1538: C-k in switch-buffer killing buffers
Caused by an upstream change.
2019-07-05 16:50:03 +02:00
Henrik Lissner
9ffb740b0f
Add SPC / D and SPC / P keybinds #1531
For searching from another directory/project (prompted)
2019-07-02 14:13:30 +02:00
Henrik Lissner
65efbc4204
Fix prompts for search-{cwd,project} commands 2019-07-02 14:06:31 +02:00
Henrik Lissner
08e125d3d0
lang/scala: fix comment continuation #1515
On Doom's modded newline-and-indent.
2019-06-28 17:28:10 +02:00
Henrik Lissner
ba7c713bf6
Add projectile-{run,configure,test}-project keybinds 2019-06-27 17:14:15 +02:00
Henrik Lissner
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
Henrik Lissner
d697cb7ec7
Fix C-{j,k} in non-read-expression prompts 2019-06-26 19:18:04 +02:00
Henrik Lissner
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
Henrik Lissner
affa7314f7
Remap C-{j,k} to {next,previous}-line-or-history-element 2019-06-26 14:28:40 +02:00
Henrik Lissner
0290b687a5
Decouple ]e / [e keys from :tools flycheck module #1511
They're generic enough.
2019-06-26 14:28:40 +02:00
Henrik Lissner
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
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
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
1a589c546a
Replace closures with +workspace/switch-to-N 2019-06-11 17:36:44 +02:00
Henrik Lissner
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
Henrik Lissner
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
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
UndeadKernel
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
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
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
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
3474e6bf09
lang/cc: move smartparens config to config/default 2019-05-22 03:50:53 -04:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
9f63d94b13
Add doom/help-package-homepage command (SPC h d P) 2019-05-20 21:09:11 -04:00
Henrik Lissner
243a3a84a8
Add doom/help-news-search command (SPC h d N) 2019-05-20 21:09:11 -04:00
Henrik Lissner
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
Henrik Lissner
916a3cb36a
config/default: update & reformat emacs keybinds 2019-05-20 21:09:10 -04:00
Henrik Lissner
57bd7a385e
Fix typo in +default/org-notes-headlines 2019-05-20 21:09:10 -04:00
Henrik Lissner
41de07177b
Update keybinds for :term modules 2019-05-19 02:30:43 -04:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
29a1120f01
config/default: fix F-f9 typo
Should be C-f9, there is no F- modifier.
2019-05-16 15:00:21 -04:00
Henrik Lissner
0ac3044606
Add 'SPC / k' and 'SPC c k' keybinds
For searching docsets and documentation, respectively.
2019-05-16 00:39:09 -04:00
Henrik Lissner
b821bfca1f
Fix newline-and-indent advice forgetting indentation
e.g. in python-mode docstrings. The point-in-string case is no longer
handled, because indent-according-to-mode handles it properly already.
2019-05-15 15:22:08 -04:00
Henrik Lissner
f381701aab
Bind SPC f m -> doom/move-this-file 2019-05-14 20:28:19 -04:00
Henrik Lissner
13a20866aa
Add headers to leader prefixes for easy imenu access
SPC / i to jump between them
2019-05-13 22:34:43 -04:00
Henrik Lissner
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
Henrik Lissner
0f0fdbc00c
Add doom/{increase,decrease,reset}-font commands
Borrows the idea from zoom-frm (see #1389).
2019-05-12 21:56:52 -04:00
Henrik Lissner
c1b0ae6ac1
Move winum to ui/window-select module
And update its README
2019-05-09 21:44:19 -04:00
Henrik Lissner
c324992f7a
SPC h p -> describe-package
We already have doom/help-packages on SPC h d p
2019-05-06 22:09:43 -04:00
Henrik Lissner
84c5da844b
Add email/{wanderlust,mu4e,notmuch} modules
Removed app/{email,notmuch}
2019-05-05 14:14:12 -04:00
Henrik Lissner
2823c4e467
Bind SPC h R = doom/reload
As an alias to SPC h r r
2019-05-02 18:18:01 -04:00
Henrik Lissner
1c976dc0e4
Minor, general refactors
Also rename custom lookup handlers for consistency and use the new
inline :async property instead.
2019-05-02 17:57:31 -04:00
Henrik Lissner
6d314c2795
Revise and update docstrings and comments 2019-05-01 21:02:28 -04:00
Henrik Lissner
4aa65aa019
Move avy, ace-link & ace-window out of core
They don't belong there, and ace-window is no longer a core dependency
anyhow.
2019-05-01 21:02:28 -04:00
Dragnucs
787cab6007
Update treemacs open command
Update treemacs open command toggle +treemacs/toggle
2019-04-30 10:25:39 +01:00
Henrik Lissner
6b69eaa397
Minor refactors across the board 2019-04-26 17:42:44 -04:00
Henrik Lissner
a03b676297
Move leader which-key labels to core-keybinds 2019-04-26 17:29:54 -04:00
Henrik Lissner
40f6a2b6e3
Rewrite vanilla sandbox & report-bug commands
- Renamed doom/open-vanilla-sandbox to doom/sandbox (because it's not
  just for vanilla testing anymore)
- Renamed doom/open-bug-report to doom/report-bug (for consistency with
  `report-emacs-bug`; makes it easier to discover)
- Add SPC h d b for doom/report-bug
- Add SPC h d s for doom/sandbox
2019-04-24 18:16:06 -04:00
Henrik Lissner
fa7f7042b0
Add and expand doom/help* commands
Adds the following commands:

- doom/help (opens the Doom manual)
- doom/help-search (for searching through org headlines in Doom's
  documentation)
- doom/help-faq (for searching the FAQ)
- doom/help-news (for browsing the Doom newsletters)
- doom/help-autodefs (renamed from doom/describe-autodef -- for looking
  up documentation on autodef function/macros, like
  `set-lookup-handler!`)
- doom/help-modules (renamed from doom/describe-module, for jumping to a
  Doom module's documentation)
- doom/help-packages (renamed from doom/describe-package and recently
  fixed -- looks up information about installed packages, including what
  Doom module(s) install it and where it is configured)
- doom/help-package-config (for searching and jumping to any block where
  a package is configured in Doom Emacs)

Also adds the SPC h d (or C-h d) prefix for Doom-specific help commands.
SPC h D will invoke doom/help.

However, the documentation itself hasn't been committed yet, so some of
these commands may be useless atm. Sorry!
2019-04-24 18:16:06 -04:00
Henrik Lissner
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
Henrik Lissner
1fb2178716
Move sp skip-match disabler to config/default
This shouldn't be mandatory.
2019-04-24 18:16:04 -04:00
Henrik Lissner
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
Henrik Lissner
ee754362a2
Fix SPC f / for non-ivy users
Incorrect function signature for doom-project-find-file
2019-04-20 02:18:48 -04:00
Henrik Lissner
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
Henrik Lissner
c849495849
SPC q q = quit normally; SPC q Q = force quit 2019-04-19 20:51:09 -04:00
Henrik Lissner
d6839fc4c6
Remove references to old scratch buffer functions 2019-04-19 20:50:53 -04:00
Henrik Lissner
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
Henrik Lissner
94a2bc77ef
Unbind C-h in help-map
It interferes with which-key help/paging for the SPC h prefix.
2019-04-12 16:13:51 -04:00
Henrik Lissner
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
Henrik Lissner
3c01de8876
Fix #1320: generalize SPC *
Was formerly using ripgrep, and only ripgrep.
2019-04-10 20:14:50 -04:00
Henrik Lissner
3f751c1179
Correctly regexp-quote symbol on SPC * 2019-04-10 20:11:41 -04:00
Henrik Lissner
5e8687cd45
Add SPC * for project-searching symbol at point 2019-04-10 18:57:57 -04:00
Henrik Lissner
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
Henrik Lissner
3b2befe161
Move evil helpful keybinds to +evil-bindings 2019-04-07 15:56:30 -04:00
Henrik Lissner
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
Henrik Lissner
e83a6cbaa1
Turn comment headings into outline-mode headers
Also reformats a few keybinds with incorrect indentation.
2019-04-05 01:24:55 -04:00
Henrik Lissner
5cdb96888f
config/default: refactor/reformat help keybinds
Reduce internal usage of map! and improve readability of comments for
help-map binds.
2019-04-04 22:38:46 -04:00
Henrik Lissner
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
Henrik Lissner
bf2aedc510
lang/org: rethink flyspell keybinds
- Remove ]s/[s keybinds in org-mode (rebound to ]c/[c); they overwrote
  next/prev flyspell error commands (which are vim defaults)
- Remove ]S/[S because z= already exists
- Remove redundant ]s/[s global keybinds (already bound by evil)
- Mention missing and evil's flyspell keybinds in a comment
2019-04-04 13:50:44 -04:00
Henrik Lissner
4b631f07ef
Apply smartparens config to all users
Not just evil users.
2019-04-03 19:15:02 -04:00
Henrik Lissner
9648af6f30
Fix keybinds to reflex helm-occur changes upstream
See emacs-helm/helm@f0f17413
2019-04-03 01:40:58 -04:00
Henrik Lissner
3310f9dfe2
tools/gist: open gists in non-popups
- Removes +gist/kill-cache (gist-list and gist-list-user with a
  universal argument already does this).
- Removes +gist/open-current. No longer necessary when gists aren't
  opened in popups.
- Makes keybinds more consistent with other "porcelains", like elfeed's
  or magit.
2019-04-02 15:47:09 -04:00
Henrik Lissner
5b890757e1
Add which-key labels for leader/localleader keys 2019-04-02 02:42:38 -04:00
Henrik Lissner
445673b0be
Remove reference to old variable in do-repeat! 2019-03-30 13:57:23 -04:00
Henrik Lissner
848399fec1
Add C-c C-e to invoke wgrep from project search
To be consistent with helm-ag-edit
2019-03-30 13:27:09 -04:00
Henrik Lissner
7eb479e3f7
config/literate: set config.el as default target 2019-03-29 03:40:56 -04:00
Henrik Lissner
132ad7d391
Half-revert 92e604d0
+ Fixes config.org buffer being killed when tangled
+ Tangle files in same session if ob-tangle is loaded (and in
  noninteractive sessions). i.e. only tangle quietly when starting up
  interactive Emacs.
2019-03-28 16:20:25 -04:00
Henrik Lissner
92e604d0dc
config/literate: don't tangle file in this session
org-babel-tangle-file has reportedly killed config.org buffers, despite
them being visited. Since we're not doing anything with the return
value, may as well keep it in a separate process.
2019-03-28 14:32:16 -04:00
Henrik Lissner
5cdc2127be
Refactor config/literate module
+ Now recompiles literate config if you modify org files in DOOMDIR
+ Replaced +literate/compile with +literate/reload
+ Calls org-babel-tangle-file directly if org package is loaded
+ Change mtime check mechanism for literate tangling at startup
2019-03-28 01:59:25 -04:00
Henrik Lissner
2dc52bc9be
💥 Replace exec-path-from-shell w/ 'bin/doom env'
IMPORTANT: This is a breaking update for Mac users, as your shell
environment will no longer be inherited correctly (with the removal of
exec-path-from-shell). The quick fix is: 'bin/doom env refresh'. Also,
the set-env! autodef now does nothing (and is deprecated), be sure to
remove calls to it in your config.

Smaller changes:
+ This update also adds --no-* switches to doom quickstart
+ Includes general improvements to the documentation of several bin/doom
  commands.
+ Moves doom/reload* commands to core/autoload/config.el
+ doom/reload-project has been removed (it didn't actually do anything)

The breaking change:
This update adds an "envvar file" to Doom Emacs. This file is generated
by `doom env refresh`, populated with variables scraped from your shell
environment (from both non-interactive and interactive sessions). This
file is then (inexpensively) loaded at startup, if it exists.

+ The file is manually generated with `doom env refresh`.
+ It can be regenerated automatically whenever `doom refresh` is run by
  running `doom env enable` (`doom env clear` will reverse this and
  delete the env file).
+ `doom quickstart` will ask if you want to auto-generate this envvar
  file. You won't need it if you're confident Emacs will always be
  started from the correct environment, however.
+ Your env file can be reloaded from a running Emacs session with `M-x
  doom/reload-env`. Note: this won't work if the Emacs session you're
  running it in doesn't have a correct SHELL set. i.e. don't use this to
  create your first env file!

The idea isn't mine -- it's borrowed from Spacemacs -- and was
introduced to me in #1053 by @yurimx. I was impressed with it. Prior to
this, I was unhappy with exec-path-from-shell (no hate to the dev, I
understand its necessity), and 'doom patch-macos' wasn't ideal for mac
users (needed to be reapplied every time you update Emacs). What's more,
many users (even Linux users) had to install exec-path-from-shell
anyway.

This solution suffers from none of their shortcomings. More reliable
than patch-macos, more performant and complete than
exec-path-from-shell, and easily handled by bin/doom.
2019-03-28 01:56:09 -04:00
Danny Navarro
d589f87253 Add maximize window key bindings
This includes maximization for entire buffer, vertically and
horizontally.
2019-03-24 14:47:55 +00:00
yuhan0
d44c80c565 Update evil-mc "gzu" and "gzq" bindings 2019-03-16 14:15:19 +08:00
Andrew Whatson
cd3346b7ec Add forward/back-button bindings in help-mode 2019-03-15 15:03:30 +10:00
Henrik Lissner
3e2779da39
Refactor leader/localleader keybinds
- Some buffer-local commands were removed from leader binds
- Some more commands were added to org's localleader
- Reformatted some leader keys so that lower/upper case keys are grouped
  together, rather than apart.
- Add SPC-s-c and SPC-s-e for creating/using temporary snippets (with
  auto-yasnippet).
2019-03-14 18:38:51 -04:00
Henrik Lissner
90f36bceff
Undo 1f23eecd: un-homogenize TAB/RET/ESC
This is more trouble than its worth. Better to deal with the old edge
cases than the new ones this causes.

Addresses #1218
2019-03-14 17:59:24 -04:00
Henrik Lissner
5c7da455f8
More help-map keys and remaps
- Move profiler from 't' to 'T' (as not to override
  `help-with-tutorial', esp for non-evil users)
- Replace C-c (describe-copying) with describe-coding-system
- Bind doom/describe-symbol to 'h'
- Bind `describe-key-briefly' to 'C-k'
2019-03-13 01:54:40 -04:00
Henrik Lissner
5e5ae456bb
Replace doom/what-face with describe-char
describe-char produces the same information and much more.
2019-03-13 01:37:55 -04:00
Henrik Lissner
d22538d6ce
Merge pull request #1238 from flatwhatson/fix-ace-helpful
Fix ace-link-help binding in helpful-mode
2019-03-12 11:29:05 -04:00
Andrew Whatson
7b4afa32e4 Improvements to apropos and describe-symbol
Patch the apropos button types so they call helpful instead of the
built-in describe functions.  Also add some bindings to apropos-mode-map
so it behaves like other help modes.

Add `doom/describe-symbol` function, which shows documentation for
callable and variable symbols.  If a symbol is both a variable and a
callable, it dispatches to apropos.  This gives a better workflow than
`helpful-symbol`, which annoyingly prompts the user.

Remap `describe-symbol` to `doom/describe-symbol`, and update
`+emacs-lisp-lookup-documentation` to call it also.
2019-03-12 18:52:24 +10:00
Henrik Lissner
8392c9dcf6
Add new :ui indent-guides module
Replaces old highlight-indentation-mode with new highlight-indent-guides
plugin.
2019-03-11 12:39:38 -04:00
Andrew Whatson
ea14407c16 Fix ace-link-help binding in helpful-mode 2019-03-10 23:05:03 +10:00
Henrik Lissner
b0bc1d925f
Minor refactors; revise docstrings+comments 2019-03-09 19:56:47 -05:00
Henrik Lissner
66d75936fc
config/default: split into evil/emacs files
Done to better facilitate a non-evil config.

- Adds winum (and enables support for it in doom-modeline)
- Adds expand-region (#1231)
- Uses default smartparens config for non-evil users (WIP)
2019-03-09 03:43:14 -05:00
Henrik Lissner
1a6f0c2f1d
💥 Redesign vanilla Emacs keybind scheme
The leader keys have been redesigned a) for consistency, b) to reduce
collisions with packages, and c) to improve command coverage. However,
much of it still comes from a vim user, so it needs more testing.
2019-03-09 03:42:55 -05:00
Henrik Lissner
54d1c0dd56
Minor, general refactors 2019-03-09 03:42:55 -05:00
Henrik Lissner
442bd7cfb9
Only apply prefix arg fix to evil leaders 2019-03-09 02:42:32 -05:00
Henrik Lissner
d5ba685817
Don't overwrite C-i in GUI Emacs 2019-03-09 02:42:31 -05:00
Henrik Lissner
9758aae389
config/default: move help keybinds out of +bindings
These ought to be available to all users, whether or not they want the
rest of Doom's keybinds.
2019-03-09 02:42:31 -05:00
Henrik Lissner
f2b8280b2a
Add +default/search-from-cwd & +default/search-project 2019-03-08 04:25:45 -05:00
Henrik Lissner
748b197676
Minor, general refactors 2019-03-08 04:25:45 -05:00
Henrik Lissner
1f23eecdc8
(Try to) homogenize TAB/RET/ESC keybinds
Map them to \t/^M/^[, rather than [tab], [return] and [escape].
2019-03-08 04:25:45 -05:00
Henrik Lissner
44de995ca5
config/default: change SPC h keymaps
SPC h now maps to help-map to reduce redundancy. Some adjustments and
additions were made to this map so all users (evil and vanilla) can
benefit from Doom's extra help commands.
2019-03-08 02:37:33 -05:00
Henrik Lissner
4fbf7a2687
Remove expand-region package
It was unused, and is redundant with evil's text object expansion keys.
2019-03-08 02:34:26 -05:00
Henrik Lissner
4d649333a6
Add keybind: SPC h C-k -> describe-key-briefly 2019-03-07 18:26:41 -05:00
Henrik Lissner
c1beb39c5b
Rename doom/describe-setters -> doom/describe-autodefs 2019-03-05 01:55:40 -05:00
Henrik Lissner
cfa97470fc
Add links to config files in describe-packages
Also dims packages that aren't installed.
2019-03-05 01:55:40 -05:00
Henrik Lissner
fbcb4e6973
Minor refactor across the board 2019-03-04 20:47:26 -05:00
Henrik Lissner
b054190820
New doom/describe-packages command
Replaces describe-packages and adds Doom module awareness to package
documentation.
2019-03-04 20:47:25 -05:00
Henrik Lissner
6a8b968807
Autopair HTML <!-- --> more conservatively 2019-03-02 01:38:18 -05:00
Henrik Lissner
d46bb287ae
General refactor of Doom core
- Code reduction and refactor across the board (cull unneeded minor
  advise, hooks and hacks or update them)
- Revise outdated comments and docstrings
- Reorganize core autoload libraries
- Remove large file check (Emacs already has a built-in one, which we
  augment to be even more performant when it does kick in)
- helpful.el can now be disabled completely through package!
2019-03-02 01:34:19 -05:00
Henrik Lissner
8a90f29c91
Make session persistence module agnostic
They've been removed from feature/workspaces and moved into
core/autoload/sessions, which falls back to desktop.el if persp-mode
isn't present. This also offers a substantial speed up to
restart+restoring and restoring sessions in general.

Also fixes #1210, where the newly spawned frame after doom/restart
wasn't focused.

Introduces the following commands:

- doom/restart
- doom/restart-and-restore
- doom/quickload-session
- doom/quicksave-session
- doom/load-session
- doom/save-session
- +workspace/restore-last-session (alias for doom/quickload-session)

And removes

- +workspace/load-session
- +workspace/save-session
- +workspace/load-last-session (renamed to +workspace/restore-last-session)
- +workspace/restart-emacs-then-restore (replaced by doom/restart-and-restore)
- :ss (ex command)
- :sl (ex command)
2019-03-02 01:34:19 -05:00
Henrik Lissner
fb57f367e7
Enable delete-selection-mode & shift-select-mode
This makes text insertion behave more like traditional editors.

Delete-selection-mode allows selections to be replaced when yanking or
inserting. This enables it by default for non-evil users and in insert
mode for evil users. Also enables selecting text with shift.
2019-03-02 01:34:14 -05:00
Henrik Lissner
ad837e6d13
Move evil ex commands to feature/evil
These commands aren't used by config/default anyway, and
+default:multi-{next,previous}-line were moved to my private config.

Also fixes #1208 (:cd without args will now CD to $HOME).
2019-02-28 14:31:16 -05:00
Henrik Lissner
aa9c4f63ed
Fix :cd #1208 2019-02-27 14:43:24 -05:00
Henrik Lissner
609e577ce7
Refactor evil keybinds; remove SPC {],[} prefixes
These were redundant with the ],[ motion keys.
2019-02-26 22:59:40 -05:00
Henrik Lissner
594df64913
Smarter RET in normal mode over flyspell regions
Will now trigger flyspell-correct-word-generic
2019-02-26 16:55:29 -05:00
Henrik Lissner
1b43ea50f0
Revise SPC f keybinds
- SPC f . -> counsel-file-jump or find-file
- SPC f > -> doom/browse-in-other-projects
- SPC f / -> projectile-find-file
- SPC f ? -> doom/find-file-in-other-project
- Moved doom/sudo-find-file to SPC f S

This change was made to accommodate the new
doom/browse-in-other-projects and doom/find-file-in-other-project
commands, which make it easy to jump to files in other known projects.
2019-02-26 13:21:16 -05:00
Andrew Whatson
6e4e11ebb8 Remove C/C++ tab-always-indent override 2019-02-26 20:30:00 +10:00
Andrew Whatson
faa4367636 Improved switch-to-buffer-other-window for ivy 2019-02-25 22:29:41 +10:00
Luigy Leon
2e3cf80ffc Bind C-l to ivy-done in counsel-ag-map
to make it more consistent with ivy-minibuffer-map
2019-02-24 18:49:40 -05:00
Andrew Whatson
a39f366f6a Fix wrong function name for non-evil repl 2019-02-24 22:07:23 +10:00
Andrew Whatson
e479e83534 Fix wrong function names in non-evil yas-keymap 2019-02-23 23:53:45 +10:00
Henrik Lissner
acddf6a047
Move delete-backward-char & newline-and-indent advice
To config/default; the only place it is used.
2019-02-22 00:25:30 -05:00
Henrik Lissner
69ed1a4a99
feature/{syntax-checker,spellcheck} -> tools/fly{check,spell} 2019-02-22 00:25:30 -05:00
Henrik Lissner
88f50bbdec
Merge pull request #1144 from SteamedFish/develop
Add vterm layer
2019-02-21 20:16:57 -05:00
Henrik Lissner
afae6e4f1d
Remove doom/toggle-comment-region-or-line
Replaced with simpler keybinds.
2019-02-21 19:13:36 -05:00
Henrik Lissner
9567b1f97f
Move ESC keybind for transient to tools/magit 2019-02-20 14:45:18 -05:00
Henrik Lissner
8e1010a2ba
Fix C-a/C-b in evil-ex minibuffer 2019-02-20 00:25:03 -05:00
Henrik Lissner
bacf4c7a6a
Fix C-SPC fold toggling keybind
+evil/fold-toggle was replaced with +fold/toggle
2019-02-19 18:06:28 -05:00
Henrik Lissner
f1c13337cc
Fix snippet expansion on TAB in visual mode
Overzealous dispatcher was overriding yas-insert-snippet.
2019-02-19 18:05:56 -05:00
Henrik Lissner
cfe54f1d77
Merge pull request #1178 from luigy/transient-quit-evil-bindings
Add transient quit evil-bindings
2019-02-19 15:52:03 -05:00
Henrik Lissner
002914c912
Update SPC o t/T keybind predicate
Since :emacs vterm was moved to :tools
2019-02-18 18:50:02 -05:00
Henrik Lissner
ed0a4bc5ca
lang/csharp: add electric/autopairing behavior 2019-02-18 15:38:26 -05:00
Henrik Lissner
9dd88e5924
Move c electric disabler to config/default
Because it is tied to the smartparens config, and we'll want this
behavior to extend to all C-derived modes (like csharp and php modes).
2019-02-18 15:36:44 -05:00
Luigy Leon
5e0385ed6b Add transient quit bindings
this adds back the dismiss behavior of "popups" that was lost from the
magit-popup -> transient update
2019-02-18 11:38:55 -05:00
Henrik Lissner
94b16cba6c
Standardize REPL commands & improve SPC o r
- SPC o r now prompts for a REPL to open when none was found for the
  current buffer.
- REPL handlers must now follow the naming convention "*/open*-repl".
  e.g. +python/open-ipython-repl, +emacs-lisp/open-repl, etc.
- +eval/open-repl has been split in two:
  - +eval/open-repl-other-window
  - +eval/open-repl-same-window
2019-02-18 01:59:56 -05:00
Henrik Lissner
7d0caf3efd
New editor/fold module
Extracted from feature/evil and emacs/hideshow.
2019-02-18 00:47:46 -05:00
Henrik Lissner
a72a0e6a62
Replace magithub with forge
Should also fix void-function/void-variable errors caused by evil-magit
depending on the newer version of magit (#1174).

Also introduces a redesign of the SPC g prefix.
2019-02-16 18:26:17 -05:00
Henrik Lissner
9f96e3eae8
Merge pull request #1076 from filalex77/magit-forge
[tools/magit] Add magit-forge
2019-02-12 15:33:48 -05:00
Henrik Lissner
d46c2582d0
Fix 'not an evil-paste' error on SPC i y #1095
yank-pop and evil-paste-pop are picky little buggers, we need our own
delegate.
2019-02-12 00:51:07 -05:00
Henrik Lissner
d79817edeb
Fix unbalanced parens in +default/project-tasks 2019-02-12 00:47:15 -05:00
Niklas Carlsson
1ea507e56c Align flyspell as well 2019-02-05 10:56:55 +01:00
Niklas Carlsson
fa564e33b9 Update text and workspaces as well
These have a left/right and increase/behaviour.
2019-02-05 10:52:45 +01:00
Niklas Carlsson
478d80379d Harmonize next/previous
The description of next and previous was not aligned with the actual
functions that was being called. This patch aligns them.
2019-02-05 10:29:02 +01:00
Henrik Lissner
1676cc56e3
config/default: standardize C/M/s-RET behavior
Also enable these to work from normal mode.

Mentioned in #1146
2019-02-03 18:56:07 -05:00
Henrik Lissner
99fd8b4e1b
O'byte-compiler
Who forbade the obsolete,
Hooks, functions; adieu.

(And an unused argument too)
2019-02-03 18:42:09 -05:00
Henrik Lissner
4a94599b19
Fix TAB fallthrough if yas-minor-mode is disabled
yas-expand will error out if yas-minor-mode is disabled, preventing TAB
from falling through to the next action.
2019-02-03 18:39:34 -05:00
Henrik Lissner
bd9df22f99
Merge pull request #1147 from seanfarley/smf/bindings
More MacOS bindings
2019-02-01 15:57:11 -05:00
Henrik Lissner
b0c84384a4
Fix <f9> = +treemacs/toggle for non-evil users 2019-01-29 18:59:21 -05:00
Sean Farley
11b4a3502a bindings: add common comment toggle
This is fairly common in most editors so let's make lives easier.
2019-01-28 23:14:14 -08:00
Sean Farley
febad24a1d bindings: add some more macos behaviors 2019-01-28 23:14:14 -08:00