Commit graph

59 commits

Author SHA1 Message Date
sooheon 8a64b2c28d Let counsel-search respect ivy-count-format
There is no reason to hardcode the formatting string for this search
function in particular.
2016-04-17 00:37:47 -04:00
person808 4010c63276 Change theme search keybinding to SPC T s.
Unify the bindings of spacemacs-helm and spacemacs-ivy. The new mnemonic
for both ivy and helm is `Themes/select`.
2016-04-01 00:26:20 -04:00
syl20bnr 2d61e5304e core: add support for :variables keyword in dotspacemacs-editing-style
Add variable `hybrid-mode-enable-hjkl-bindings` to enable hjkl
navigation in hybrid mode.

example:

dotspacemacs-editing-style '(hybrid :variables
                                     hybrid-mode-enable-hjkl-bindings t
                                     hybrid-mode-default-state 'normal)
2016-03-16 22:43:50 -04:00
syl20bnr 82fdd9a511 Use evil in holy-mode
Motivation

While disabling Evil in holy-mode makes its implementation shorter and
sounds elegant on the paper, in practice it puts a big burden on the
configuration parts which need to know if Evil is enable or not. This is
a bad separation of concerns and the bunch of fixes that we were forced
to do in the past weeks shows this issue. Those fixes were about
removing the knowledge of the activation of Evil by implementing new
dispatching functions to be used by layers, this is cumbersome and makes
Spacemacs layer configuration more subtle which is not good. There was
additional bad consequences of the removal of Evil state like the
impossibility to use Evil lisp state or iedit states, or we would have
been forced to implement a temporary activation of Evil which is
awkward.

Instead I reintroduce Evil as the central piece of Spacemacs design thus
Evil is now re-enabled in holy-mode. It provides the abstraction we need
to isolate editing styles and be able to grow the Spacemacs
configuration coverage sanely. Layers don't need to check whether the
holy mode is active or not and they don't need to know if Evil is
available (it is always available). We also don't need to write
additional dispatching functions, this is the job of Evil, and I think
it provides everything for this. Ideally configuration layer should be
implemented with only Evil in mind and the holy-mode (and hybrid-mode)
should magically make it work for Emacs style users, for instance we can
freely use `evil-insert-state` anywhere in the code without any guard.

Evil is now even more part of Spacemacs, we can really say that
Spacemacs is Emacs+Evil which is now an indivisible pair. Spacemacs
needed this stable API to continue on the right track.

While these changes should be rather transparent to the user, I'm sorry
for this experimental period, I failed to see all the implications of
such a change, I was just excited about the possibility to make Evil
optional. The reality is that Spacemacs has to embrace it and keep its
strong position on being Emacs+Evil at the core.

Implementation

- insert, motion and normal states are forced to emacs state using an
advice on `evil-insert-state`, `evil-motion-state` and
`evil-normal-state` respectively. These functions can be used freely in
the layer configuration.
- A new general hook `spacemacs-editing-style-hook` allow to hook any
code that need to be configured based on the editing style. Functions
hooked to this hook takes the current style as parameter, this
basically generalize the hook used to setup hjkl navigation bindings.
- ESC has been removed from the emacs state map.
- Revert unneeded changes
  - Revert "evil: enter insert-state only from normal-state"
    commit bdd702dfbe.
  - Revert "avoid being evil in deft with emacs editing style"
    commit f3a16f49ed.

Additional changes

All editing style packages have been moved to a layer called
`spacemacs-editing-styles`

Notes

I did not have time to attack hybrid mode, I should be able to do it
later.
2016-03-13 21:16:55 -04:00
Eivind Fonn 0585c4047b Fix indentation 2016-03-12 17:55:29 +01:00
M. Tong d2d82e2312 Fix error when using `spacemacs/counsel-search' wihout initial input. 2016-03-12 17:54:43 +01:00
Muneeb Shaikh dfceb3deb9 spacemacs-ivy: escape special chars in counsel input 2016-03-09 20:12:01 -05:00
Muneeb Shaikh c955014102 spacemacs-ivy: hide lighter counsel 2016-03-06 19:50:17 -05:00
justbur 5da4ce9d6c counsel: Use counsel-mode
Minor mode that remaps all built-in Emacs commands that have a counsel
replacement.
2016-03-05 21:01:46 +01:00
justbur 39e06feba9 Use unless-debug version of condition-case
It's not possible to get full backtraces in these instances when an
error is signaled, and I think we should generate full backtraces when
debug-on-error is enabled as a general rule.

I had to make this change at one place to track down the root of problem
2 in #5200.
2016-03-03 20:30:30 +01:00
d12frosted 39273ce87b fix spacemacs/swiper-region-or-symbol 2016-02-25 20:31:14 +01:00
person808 cbf42bbff2 Change ivy-spacemacs-face to match counsel-M-x. 2016-02-23 20:50:39 +01:00
syl20bnr fd9326486a core: new function configuration-layer/describe-package
Add actions for both helm and ivy.

TODO:
- see TODO in function body
- replace SPC h d p (list all packages, use spacemacs describe when
it is a layer package, otherwise use vanilla describe).
2016-02-22 02:29:43 -05:00
syl20bnr 83fa2996a6 ivy: put ivy-resume on SPC r l
As helm-resume
2016-02-16 23:58:44 -05:00
justbur 3e494749f1 counsel: Add spacemacs//counsel-occur
Puts counsel occur buffers in grep mode for easy transition to wgrep
mode.
2016-02-16 23:58:07 -05:00
justbur 3ac7efeb90 ivy: Add wgrep package
Can be used with counsel-git-grep to edit results in an occur buffer.
Handy!

Add wgrep bindings
",w" to enter wgrep mode
",," to commit changes
",a" to abort

counsel: Fix command output for wgrep
wgrep doesn't work with the column number in the command output
2016-02-16 23:57:28 -05:00
justbur 19c262ea0c ivy: Fix counsel-git-grep-region-or-symbol 2016-02-16 23:57:27 -05:00
justbur e94a80db49 ivy: Promote ivy-occur-mode-map
Prevent evil normal state keys from shadowing the ivy occur buffer keys
2016-02-16 23:57:27 -05:00
justbur d0cec17919 ivy: spacemacs layouts support
- port helm-perspectives
- port persp switch buffer
- port persp-close[kill]-other to use ivy
- layouts-ts: Make help more consistent
- layouts-ts: Reorganize docstring
Instead of one big list, try to organize into sections to make it easier
to find the right key
2016-02-16 23:55:23 -05:00
justbur 95a1583c73 ivy: After enabling ivy-mode disable ido-mode 2016-02-16 23:53:43 -05:00
justbur f6b82ee90d helm/ivy: Use hook to update hjkl navigation
Introduce hjkl-completion-navigation-functions to hold the functions to
disable and enable hjkl navigation for ivy and/or helm. The hook is run
with args to indicate whether to enable or disable.
2016-02-16 23:53:43 -05:00
justbur cf90c8ee07 ivy: Add custom transient state
Replace the hydra usually bound to C-o
2016-02-16 23:53:42 -05:00
justbur 1762b85869 ivy-help: Show no package layers under SPC h SPC
See #4540
2016-02-16 23:53:42 -05:00
justbur 3f7501fe92 ivy: Use ivy for auto-highlight-symbol search 2016-02-16 23:53:42 -05:00
Marat Safin 8d21d236e2 ivy: projectile-vc binding 2016-02-01 00:09:47 -05:00
Balaji Sivaraman e19abfc559 Fix/delete dead references to HOWTOs.org file 2016-01-31 23:04:47 -05:00
Xue Fuqiao 4958f7fc10 Fix "the point" problems
Point is a proper name when it refers to the current editing location.
Moreover, point designates a place *between* two characters (or before the first
character, or after the last character), rather than a particular character.

References:

* http://lists.gnu.org/archive/html/emacs-devel/2008-10/msg00414.html
* https://www.gnu.org/software/emacs/manual/html_node/elisp/Point.html#index-point
2016-01-31 21:48:52 +01:00
justbur 90df083ad3 spacemacs-base: Add hydra package 2016-01-26 01:20:59 -05:00
justbur 1bf4052f37 counsel: Allow command line args in search
If " -- " appears in the search string split the search string on the
first occurrence with everything before treated as args to the search
and everything after treated as part of the regex.
2016-01-26 01:20:58 -05:00
justbur 2ed37e4a33 counsel: New async implementation
This version of counsel--async-command feels smoother for me. Right now
it is just being used for the search functions. If others like it, I'll
propose it upstream.
2016-01-26 01:20:58 -05:00
justbur d69c40d320 counsel: Bind M-x to counsel-M-x 2016-01-23 18:28:34 +01:00
justbur c166b3ab54 ivy-spacemacs-help: Add ivy-spacemacs-help-faq 2016-01-23 18:22:34 +01:00
justbur c3823970f0 spacemacs-ivy: Add counsel-search-docs
Command to grep the spacemacs docs using dotspacemacs-search-tools
2016-01-23 18:20:22 +01:00
person808 efaef81ca5 Port helm-available-repls to spacemacs-ivy layer. 2016-01-23 14:09:05 +01:00
syl20bnr 3d8ca682bf ivy: remove blending hack
Last version of Spacemacs is fine with blending enabled
2016-01-21 19:27:34 -05:00
syl20bnr 33ead6fc42 Deprecation of extensions and <pkg>-excluded-packages variables
As announced in previous releases, see CHANGELOG.next for more info
in the Breaking Changes section.
2016-01-17 22:06:04 -05:00
syl20bnr 9b7789124b ivy: fix removal of blending 2016-01-16 03:25:46 -05:00
syl20bnr 8198b332a0 ivy: removed forced blending method for dark theme
Temporary hack to make the occurrences highlighting more visible in
ivy minibuffer.
2016-01-16 03:02:40 -05:00
syl20bnr 813114efa1 Unify key bindings for helm/ivy-spacemacs-help
SPC h .        helm/ivy-spacemacs-help-dotspacemacs
SPC h SPC      helm/ivy-spacemacs-help
SPC h f        helm/ivy-spacemacs-help-faq
SPC h l        helm/ivy-spacemacs-help-layers
SPC h p        helm/ivy-spacemacs-help-packages
SPC h r        helm/ivy-spacemacs-help-docs
SPC h t        helm/ivy-spacemacs-help-toggles
2016-01-13 00:37:26 -05:00
justbur 56f656fdeb ivy: Move ivy-spacemacs-help cmds down a level
There's not that many commands under `SPC h` so this gives easier access
to these commands. It also makes `SPC h SPC` get you straight to the
docs in both helm and ivy.
2016-01-13 00:19:05 -05:00
justbur 9edc44df66 ivy: SPC ? -> counsel-descbinds
Note that this is a new function and may require an update of the
counsel package.
2016-01-13 00:15:39 -05:00
syl20bnr a94539c3ec ivy: move counsel config to init-config 2016-01-13 00:15:11 -05:00
justbur 1d28c96fae ivy: Better C-h in counsel-find-file-map
Use new function counsel-up-directory which keeps track of the directory
you left.

Also add way to get to C-h through C-S-h.
2016-01-13 00:13:18 -05:00
syl20bnr da385d6a48 spacemacs-ivy: simplify handling of smex 2016-01-13 00:07:04 -05:00
syl20bnr 046d86800c Clean copyrights and update for year 2016 2016-01-11 21:42:17 -05:00
syl20bnr 6bf066584a Ivy: choose ivy--regex-ignore-order as regexp builder
Allow to type some text and then refine them by adding other word
separated by a space.
2016-01-11 01:27:38 -05:00
justbur c5528a5031 ivy: Minor changes to make more consistent w/ helm
1. Ask for intial directory in "file" search commands
2. "ry" -> counsel-yank-pop (browse kill ring)
3. Shorten which-key description for project search commands.
2016-01-11 01:13:09 -05:00
justbur d91b6e4902 ivy: Correct sp and sP bindings
They were bound to a nonexistent function. Fixes one of the issues in
issue #4528.
2016-01-11 01:13:09 -05:00
syl20bnr ebad32293f Remove remaining mentions of dotspacemacs-command-key 2016-01-10 01:22:49 -05:00
syl20bnr 6747e9a9f6 Fix prefix error triggered by Helm
See docstring in changes.
2016-01-10 01:20:26 -05:00