Commit Graph

56 Commits

Author SHA1 Message Date
Henrik Lissner
3f195614d9 Normalize :leader/:localleader keybinds
Evil states no longer apply to them. Also removes x-alt-keysym.
2018-12-23 23:54:27 -05:00
Henrik Lissner
9936532ea3 Move auth-sources & mc/list-files
...to move appropriate locations.
2018-12-23 23:16:03 -05:00
Niklas Carlsson
6b2b5c225f Close the ending quote in lispy-mode
With this setting lispy closes the ending quote which is in alignment
with how Doom treats quotes in other modes.
2018-11-03 10:29:20 +01:00
Quentin Le Guennec
faf5eea115 editor/lispyville: Add lispy
smartparens being disabled in lispyville-mode, typing ( in
insert state would not pair the paren
2018-11-01 12:03:36 +01:00
Henrik Lissner
00d91661e2 editor/lispyville: minor reformatting
+ Ensure lispyville is properly lazyloaded by deferring the call to lispyville-set-key-theme
+ Fix indentation on :hook entries
2018-10-31 15:38:13 -04:00
The-BigDaddy
6dc3cddf19 added :editor lispyville 2018-10-27 16:44:12 -05:00
Henrik Lissner
09603c5444 +format-region-p = nil
Should be a boolean in the first place; this fixes custom formatters
that use it like a boolean.
2018-10-19 11:48:47 -04:00
Edwin Török
e5ff6c8418 fix +format--set error path
In +format--set:
../modules/editor/format/autoload/settings.el:81:26:Warning: ‘error’ called
    with 0 args to fill 1 format field(s)

Signed-off-by: Edwin Török <edwin@etorok.net>
2018-10-04 00:38:05 +01:00
Edwin Török
6859f77e1d format.el: fix Wrong type argument: listp, t
The intention here was to build a list of two elements.

Signed-off-by: Edwin Török <edwin@etorok.net>
2018-10-03 23:03:11 +01:00
Henrik Lissner
eb9fa90adf editor/parinfer: fix void-function evil-define-key errors
Parinfer uses `evil-define-key' without loading evil. This means that if
evil is installed *after* parinfer, parinfer will throw up void-function
errors, because evil-define-key (a macro) wasn't expanded at
compile-time.

So we make extra sure evil is installed before parinfer (or at least,
make sure evil-define-key is autoloaded at install time, in case evil
was installed in another session).
2018-09-26 10:45:05 -04:00
Henrik Lissner
c2c7def192 editor/multiple-cursors: better command whitelist
+ Fixes explicit usage of evil-escape from evil-mc cursors (e.g. M-x
  evil-escape or C-g, not the escape sequences jk/fd)
+ Fixes delete-char (DEL key) from cursors
+ Fixes all custom commands when used with a COUNT
2018-09-23 10:26:41 -04:00
Henrik Lissner
6a44cf0124 editor/reformat: refactor & fixes
+ Change +format-type to +format-region-p (now a boolean)
+ Add PRESERVE-INDENT-P boolean argument to +format-buffer
+ Add +format-preserve-indentation variable (only controls indent
  preservation during +format/buffer, not +format/region, where it's
  always enabled).
+ Fix error arising from +format|buffer hook when no formatter is
  defined for the current mode #893
+ Change +format|buffer to alias for +format/buffer.
2018-09-18 15:19:50 -04:00
Henrik Lissner
bd39ff3526 Minor reformatting 2018-09-13 19:15:16 -04:00
Henrik Lissner
c52d2a5a14 editor/format: add +format-type letvar
In case we need a conditional to test against in our formatters. e.g. in
go-mode, goimports is incompatible with partial formatting, so we force
it to use gofmt in that case.
2018-09-10 08:25:48 -04:00
Henrik Lissner
e0f8325f45 editor/format: fix wrong-number-of-args error
+format|buffer takes no arguments
2018-09-10 08:25:48 -04:00
Henrik Lissner
e38e79e6d7 editor/format: fix not-a-function error
Because unquoted lists were being evaluated, it was treated as a
function call.
2018-09-10 08:25:48 -04:00
Henrik Lissner
a963bcfe2c editor/format: add (some) unit tests & stubs 2018-09-09 09:58:23 -04:00
Henrik Lissner
f6234e463a editor/format: rewrite set-formatter!
+ First argument is no longer a major mode or list thereof, it is NAME.
  Use :modes instead.
+ Updated docstring & examples.
+ Added formatting unsetting: (set-formatter! 'some-formatter nil)
2018-09-09 09:58:23 -04:00
Henrik Lissner
e3d590784c editor/format: defer test for formatter
By deferring formatter predicates until formatting actually happens,
users won't have to reset the major mode to get formatting to work.
2018-09-09 09:58:22 -04:00
Henrik Lissner
3c34ff003b editor/format: override format-all-buffer w/ +format/buffer 2018-09-09 09:58:22 -04:00
Henrik Lissner
8480f52081 editor/format: add +format-with option
+ A formatter can now be specified explicitly buffer-locally by setting
  +format-with to a symbol representing the name of the
  formatter (accepts any key of format-all-format-table)
+ Passing C-u to any of +format/buffer, +format/region or
  +format/region-or-buffer will now prompt you to select a formatter.
+ Revise docstring for +format-on-save-enabled-modes
2018-09-09 09:58:22 -04:00
Henrik Lissner
46083ed398 editor/format: preserve indent in +format-buffer 2018-09-09 09:58:22 -04:00
Henrik Lissner
c58077810d General refactor of modules
General code and comment improvements.

Also, removed the :desc's for csv-mode because map! is currently unable
to set which-key descriptions mode-locally, and should be avoided for
anything but global keybinds. This will be fixed when General is
introduced into Doom.
2018-09-09 09:58:20 -04:00
Henrik Lissner
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
Henrik Lissner
df42d8ce89 editor/format: rewrite & fix set-formatter!
+ Updated docstring (and added two more examples)
+ Can now be used with shell command strings or string lists. String
  sublists can have more than 2 elements. Non-string items will be
  interpolated into the string before it. If any non-string item is nil,
  its sublist is omitted entirely.
+ Can now be used to redefine formatters predefined by the format-all
  package, by passing the formatter's name (as a symbol) as the first
  argument.
+ Added :modes property for cases when first argument isn't a major mode
  or list of them (when redefining a formatter).
2018-09-03 03:58:44 +02:00
Henrik Lissner
81ee563c4c +format|buffer: use pcase-let & return boolean
So it can be used in other functions.
2018-09-03 03:58:43 +02:00
Henrik Lissner
75b39a9396 editor/format: preserve indentation for regions 2018-09-03 03:58:43 +02:00
Henrik Lissner
c885cd2b9d editor/format: refactor & reformat +format-buffer
Also switches cl-destructuring-bind to pcase-let to avoid breaking
errors being thrown.
2018-09-03 03:58:43 +02:00
Henrik Lissner
a33165d47a editor/format: disable in sql-mode by default
sqlformat appears to be broken. It either throws an IndexError or
formats SQL incorrectly and/or poorly.
2018-08-31 12:44:24 +02:00
Henrik Lissner
349fb49c7b editor/format: refactor +format-buffer & users 2018-08-30 15:00:33 +02:00
Henrik Lissner
1b4040229e editor/format: update documentation 2018-08-30 14:56:50 +02:00
Henrik Lissner
1ae3523f75 editor/format: autoload format-all-probe #834 2018-08-30 14:44:37 +02:00
Henrik Lissner
7616316634 editor/format: improve message feedback
Announce failures, noops and successes clearly, and log errors.
2018-08-30 13:29:49 +02:00
Henrik Lissner
fd9a3c36ee editor/format: refactor (again) 2018-08-29 17:02:49 +02:00
Henrik Lissner
6e03ddacda Update & revise set-formatter! docstring 2018-08-29 15:56:59 +02:00
Henrik Lissner
4b9233bec7 editor/format: format by diff & major refactor
This redesigns how format-all applies changes. Before, it would erase
the buffer and insert the formatted result. This would throw markers out
of whack, and usually meant the cursor would end up somewhere else (e.g.
the beginning of the file).

Now, changes are made to the buffer line by line, via RCS patch.

Other changes:

+ +format-region function was removed (replaced by +format-buffer and
  +format/region).
+ set-formatter! was moved to autoload/settings.el
+ New +format/buffer command to replace format-all-buffer
2018-08-29 12:48:38 +02:00
Henrik Lissner
cb5c9cc9ea Don't autoformat emacs-lisp-mode buffers on save
This is much too unpredictable, considering the variable nature of elisp
indentation, and the possibility that certain functions and their indent
behavior may not be defined/declared when the file is being formatted.
2018-08-29 12:46:24 +02:00
Henrik Lissner
2b560a6a0e General & minor refactoring 2018-08-28 13:36:44 +02:00
Henrik Lissner
ed0cbc1323 editor/format: fix format-all-probe check
Returns '(nil nil) when there is no formatter for the current mode. This
is truthy, so we needed a better check.
2018-08-28 13:35:03 +02:00
Henrik Lissner
e932c74758 editor/format: don't move cursor on format-on-save
Also renames +format|on-save to +format|buffer for clarity. It should
not (normally) be used directly. Use `+format|enable-on-save-maybe` and
`+format|enable-on-save`.
2018-08-28 12:02:56 +02:00
Henrik Lissner
98b5c95ee5 editor/format: add +format|enable-on-save alias 2018-08-27 10:30:31 +02:00
Henrik Lissner
3b69045ed4 editor/format: add +format|on-save buffer-locally 2018-08-26 17:31:14 +02:00
Henrik Lissner
f1460ff592 editor/format: don't move cursor on save 2018-08-26 17:26:54 +02:00
Henrik Lissner
6515a1c539 editor/format: fix +onsave 2018-08-25 01:10:47 +02:00
Henrik Lissner
171c87aa2c editor/format: general fix & refactor
+ Fixes function/command formatters (like #'gofmt)
+ Fixes formatting by region
+ Adds default keybindings:
  + gQ evil operator
  + SPC c f (normal mode) to format buffer
  + SPC c f (visual mode) to format selection
2018-08-25 00:06:12 +02:00
Henrik Lissner
8e7a7c1878 Fix void-function format-all-resolve-system error
This function is only defined at compile time for the format-all
package, so we must extract it into a new function.
2018-08-22 20:38:16 +02:00
Henrik Lissner
f51f2948af New :editor format module
Centralized code formatting with built-in support for a variety of
languages. Provides the set-formatter! function for defining your own.

Still experimental and needs more testing!
2018-08-22 02:20:11 +02:00
Henrik Lissner
8d26879f99 Add :editor multiple-cursors module
Moves evil-mc/evil-multiedit out of feature/evil.
2018-08-06 00:31:23 +02:00
Henrik Lissner
5531d7115a Fix indentation for many autodef setters 2018-06-22 01:49:21 +02:00
Henrik Lissner
3a3eb92087 Move :tools rotate-text to :editor rotate-text
This change was a long time coming.
2018-06-22 01:49:20 +02:00