lispy 0.21.0
Fixes
- ( adds a space when wrapping region
- w/s work for files indented with both tabs and spaces (but this doesn't
mean that anyone should do that) - p doesn't change the whitespace
- fix the issue of dynamic variable
cmd
inlispy--insert-or-call
- i will fall back to the default indent-sexp if the thing to indent is too large
- '' will not insert an extra space
- F (follow) and M-. (goto-symbol) now unfold a hidden outline if they end up there.
- mm (mark-list) will not trigger
company-mode
completion.
Enhancements
-
xh (describe) now describes variables in addition to functions.
-
y (occur) pre-select was improved.
-
y (occur) will deactivate mark.
-
C (convolute) now works from both sides, not just from the front.
-
t (teleport) will now work only within the current defun. This will make it more consistent, since
it will not depend on the window scroll amount. -
e (eval) is greatly improved for Clojure. It will now concatenate both the output
and the eval result, with output colored as string. -
i (indent) now works also with Clojure map literals.
-
B (ediff-bounds) the ediff will try re-use the current window configuration.
-
C-4 C-h or C-h F1 will describe the bindings
-
C-d and DEL are now less whitespace-hungry and more intuitive
-
xj (debug-step-in) now works for adviced functions
-
A (beginning-of-defun) will restore point and mark when called twice
-
S (stringify) or C-u " (quote) don't move the point.
-
S (stringify) will keep the region.
-
' (tick) will unquote if the current region is a string. So now you can
quote/unquote region with "/'. -
m and M-m will mark the full sexp, i.e. together with
,@'
stuff. -
i now works for marked quoted symbols, so if you have
|(add-to-list 'auto-mode-alist '(\"\\\\.cache\\\\'\" . emacs-lisp-mode))
you can eval auto-mode-alist
with mijie.
New features
- xb now calls
lispy-bind-variable
: the current expression will be moved to
a let binding and you will write down the binding name withiedit
. You can use M-m
to exitiedit
and to mark the newly created name. Then, if you want to move thelet
, just use
a combination of C and h. - C-return now calls
lispy-open-line
: it's useful to add a new line after the current
expression without moving the point. lispy-alt-line
is the alternative newline. It might be a bit confusing, so it's not bound.
However, it's very useful: see the tests. You can bind it to one of C-j or C-m
or return, as they all don't have to do the same thing.- you can now enable
lispy-mode
forcider-repl-mode
andslime-repl-mode
, RET will work. - p (eval-other-window) now works for
cl-labels
: it will appropriately bind the function at point. - 0m (mark-list) now marks the inner part of the list, i.e. without parens.
- # (hash) now works in a similar way to other keys that add one extra space:
`, : etc. - c (clone) is now improved for region selection. You can now generate a function call
from function definition with 2mcol( or mijcol(. - ~ (tilde) is a new function that, besides inserting tilde can toggle it at the start
of the region when the region is active.
Extended outline support
The outline style was changed, to allow for nested outlines.
- j: If at outline, move to next outline.
- k: If at outline, move to previous outline.
- h: If at top-level, move to parent outline. Go back when called the second time.
- l: If at outline, move to the first child sexp.
- i: If at outline, fold/unfold it with
org-mode
(3-way cycle) - I: fold/unfold all outlines with
org-mode
(3-way cycle) - M-return: Add an outline, just like in
org-mode
. - v: works for outlines
- a: If at outline, add a new outline and move there.
- M-j (split) and M-J (join) were improved a lot for strings and lists. See tests.
- + (join) will no longer exit the list, instead keeping the position.
You can easily view tests now
- the testing support was improved, so now the tests look more clear.
- xv (view-test): You can position the point at a
(should
statement inlispy-test.el
,
and this function will should you in an overlay:- initial state of the code, with point and mark
- the key to trigger the transformation
- the expected final state of the code
Here's another preview, with special handling of point, mark, region and show-paren-mode
:
Incompatible changes
In an effort to simplify the notation, lispy-out-forward
was renamed to lispy-right
; and lispy-out-backward
was renamed to lispy-left
.
The old names are retained as obsolete aliases for the current functions. They will be removed in the next release.