Commit graph

167 commits

Author SHA1 Message Date
syl20bnr 97cd83e169 Apply GPLv3 terms explicitly to all elisp files 2021-03-25 22:59:32 -04:00
syl20bnr d55a9e2e67 Update header for year 2021 2021-03-25 22:59:32 -04:00
Thanh Vuong 54e3cc572f [ivy] extend highlight for selection in emacs 27 2021-02-25 14:56:34 +01:00
Thanh Vuong c11e8baa9d [ivy-rich] enable ivy-rich-project-root-cache-mode
which improves performance when many buffers opened.

Ref:
https://github.com/Yevgnen/ivy-rich#project-performance
ref https://github.com/syl20bnr/spacemacs/issues/10101
2021-02-09 15:04:23 +01:00
Thanh Vuong ae65f3cedd
Fix #14213 remove dash and ht from core libs
- delete dash and ht in core
- reimplemented all ht functions we need in `spacemacs-ht.el` and use them
- add dash to spacemacs-bootstrap
2021-02-07 22:22:39 +01:00
Daniel Nicolai 7276970c91
Implement C-(S)-tab buffer switch in Ivy layer 2021-02-04 23:33:39 +01:00
Maximilian Wolff 1be72042e1 [ivy] Add doc for new C-SPC binding 2020-12-13 09:52:43 +00:00
Thanh Vuong 49a4fa072d [ivy] improve key bindings
bind c-spc to  ivy-call-and-recenter
this is the closest thing to helm follow mode in ivy world

unbin `g` key and map `U` for
for ivy-occur-mode-map and ivy-occur-grep-mode-map
2020-12-13 10:36:37 +01:00
madand 5884aa9aaa [ivy] Lazy load ivy-avy and ivy-hydra after ivy 2020-10-26 23:08:04 +01:00
duianto 331bf1b5bf [ivy] Rebind C-k to C-M-k in ivy-reverse-i-search
This enables navigating up in the `ivy-reverse-i-search` list with `C-k`.

The same rebinding from `C-k` to `C-M-k` to kill a list entry,
is also done in the `ivy-switch-buffer`.
2020-10-15 23:10:06 +02:00
Daniel Nicolai 2cdb535d04 Fix counsel find-file functions to use Spacemacs large file check
By default Ivy uses `find-file` which uses Emacs `abort-if-file-too-large`
function to check/warn before opening large files. That function however does
not take into account Spacemacs its `spacemacs-large-file-modes-list`. Instead
ivy should use `find-file-noselect` to skip Emacs it large file warning and let
it to Spacemacs its `spacemacs/check-large-file` function. Additionally [Emacs
tips on
comments](https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html)
recommends to use 3 semicolons for comments that function as headings.
2020-10-15 23:08:05 +02:00
Wieland Hoffmann b606d82dfb [ivy] Bind SPC s l to ivy-resume
Helm already has spacemacs/resume-last-search-buffer bound to it and is in my
muscle memory. spacemacs/resume-last-search-buffer doesn't work with ivy, so
just use ivy-resume.
2020-10-10 06:11:12 +02:00
Maximilian Wolff 23f956659b
Fix formatting of ivy keybinding table 2020-10-04 11:48:37 +02:00
Daniel Nicolai 34bd5ab40d
Add C-RET keybinding for ivy-alt-done 2020-10-04 11:48:36 +02:00
Daniel Nicolai 4acea82f7b Replace spacemacs/swiper with better native swiper functions
Spacemacs uses spacemacs/swiper functions that use the less sophisticated
spacemacs//counsel-current-region-or-symbol instead of ivy's native
ivy-thing-at-point function. This commit removes those spacemacs functions and
rebinds the shortcuts to their better native equivalents.
2020-10-04 11:16:10 +02:00
Robert O'Connor 82ba73a1c0
update copyright to 2020 2020-09-23 21:25:01 +02:00
thanhvg 26a9f51dff
[ivy] add ivy-avy (#13961)
ivy-avy makes it possible to select a candidate with avy by using C-' in an ivy minibuffer.

This functionality used to come with swiper, but it was split: https://github.com/melpa/melpa/pull/6951

Copy pasta from our sister project Doom: https://github.com/hlissner/doom-emacs/pull/3414
2020-09-18 19:54:06 +02:00
syl20bnr 52ec07bb44 [core] Fix installation of unused layer dependencies after SPC h SPC
Fix bug where layer dependencies of all layers (even the unused ones)
are installed after SPC h SPC and then SPC f e R
2020-08-29 21:51:52 -04:00
emacspace ff4a528bb4
documentation formatting: Sat Mar 21 19:36:41 UTC 2020 2020-03-21 20:57:20 +01:00
Daniel Nicolai 2049817b12
[ivy] Replace custom hydra-menu by original hydra-menu 2020-03-17 09:51:12 +01:00
duianto 96438694f4
[base] Add cl- prefix to letf and letf*
The cl package has been deprecated.

It had aliases for cl- prefixed commands without the cl- prefix.
Ex: letf or letf* instead of cl-letf or cl-letf*

On the `spacemacs-base` distribution, with the `ivy` layer.
When one tries to search with `SPC /`
(which calls `spacemacs/counsel-search`)

Then this error message is shown:
>spacemacs/counsel-search: Symbol’s function definition is void: letf*

It doesn't happen with the `helm` layer,
because it's search commands already has the `cl-` prefix.

There are also three instances of: `letf`
in the `spacemacs-editing-visual` layers functions:
- `spacemacs/toggle-centered-buffer` (`SPC w c c`)
- `spacemacs/toggle-distraction-free` (`SPC w c C`)
- `spacemacs/centered-buffer-transient-state` (`SPC w c .`)

Without the `cl-` prefix they show the error message:
>Symbol’s function definition is void: letf
2020-02-08 09:17:52 +00:00
Zach Latta 1d2a1fa6e4 Fix capitalization of GitHub
Change instances of "Github" to "GitHub".
2020-01-20 09:14:12 +01:00
Nikita Leshenko aaa11a6823 Convert case' to cl-case' to fix cl-lib related errors
Broken since PR #13059
2019-12-18 12:08:05 +01:00
madand 194de4d73a
[ivy] Fix visual selection expansion across the buffer on SPC s S
and `SPC s B`

When one invokes `spacemacs/swiper-region-or-symbol` (`SPC s S`) or
`spacemacs/swiper-all-region-or-symbol` (`SPC s B`) with active visual selection
(transient-mark-mode), the selection expands over the buffer while one jumps
around with swiper. Thus I believe it is appropriate to deactivate visual
selection within the above command.

Since the mentioned commands both use identical code for getting the text to
operate on, I moved that code into a separate function.
2019-12-15 15:17:21 +01:00
madand 57e6849c68
[ivy] SPC h m: fallback to woman on Windows
`man` command displays output from the external program with the same name,
so it will generally fail to work on Windows.

`woman` is a pure elisp parser for manpages, so it will work on Windows. But
`woman` lacks colorizing of manpages, so we only use it as a fallback.
2019-12-15 15:06:26 +01:00
Spenser Truex 05fb56bfbf Remove uses of lexical-let, part of the deprecated cl package
These prevented loading, a serious bug.
2019-12-15 08:45:27 +01:00
kimr da80634370
converted cl to cl-lib 2019-12-14 20:20:51 +00:00
madand 239f60a65f [ivy][docs] Add SPC h m: search available man pages
This keybinding is documented in DOCUMENTATION.org, yet was missing in ivy layer.
2019-12-10 22:54:40 +01:00
duianto 6649e78f3e
Document helm and ivy colors/faces key bindings
Helm:
SPC C l   calls helm-colors
SPC h d F calls spacemacs/helm-faces

Ivy:
SPC C e   calls counsel-colors-emacs
SPC C f   calls counsel-colors-faces
SPC C w   calls counsel-colors-web
SPC h d F calls counsel-describe-face

Thanks Miciah for the SPC h d F suggestion.
2019-12-03 22:21:42 +00:00
madand fd184bb94f Fix spacemacs/counsel-search with ag and rg
The commit 9c613b8 introduced a regression for ivy users that use ag or rg as
the search tool. It made `C-c C-e` and `F3` keybindings unavailable, and thus
making it impossible to make multi-file edits.

Partially fixes #12838
2019-11-24 22:07:17 +01:00
Carlos Ibáñez 6ca42efe7c Fix wrong initial directory 2019-11-18 15:32:25 +01:00
duianto d125f2abd2 Fix void counsel-find-file-map
When the ivy package is installed without counsel,
and (require 'ivy) is called, then an error message
appears: void-variable counsel-find-file-map
2019-11-08 11:23:10 +01:00
Hong Xu 5cd73edd1d Use string= instead of eq when comparing strings.
This is a follow-up of #12885, in which I used the wrong operator.
2019-11-06 10:07:50 +01:00
Hong Xu 9c613b8770 Optimize =spacemacs/counsel-search= for =ag= and =rg=
Use =counsel-ag= and =counsel-rg= when possible. They have more
optimizations, such as switching directory, the ability to turn
on and off casefold, etc. Counsel will also carry future
improvement with these two functions, and spacemacs will
automatically benefit from it.
2019-11-05 16:40:27 +01:00
duianto b837c1d397 [ivy] remove boundp check
Thanks yuhan0 for the suggestion
https://github.com/syl20bnr/spacemacs/pull/12865/files#r340909922
2019-10-31 10:55:23 +01:00
Hong Xu 383da46e38 Keep ~C-h~ binding in =counsel-find-file-map= only for hjkl navigation
It has already been bound to <kbd>C-backspace</kbd> and
<kbd>C-delete</kbd>. Such an
additional binding is redundant (if hjkl navigation is not used) and
makes the original <kbd>C-h</kbd> binding
(help) unavailable.
2019-10-30 18:18:54 +01:00
Carlos Ibáñez 0b0203e03f Fix git-grep on point 2019-10-27 12:59:06 +01:00
Carlos Ibáñez cb99bf9f39 Fix broken ivy-occur 2019-10-27 12:59:06 +01:00
Hong Xu cff6b47e6f Set counsel-find-file-at-point to t by default.
This enables better auto completion of =counsel-find-file=.
2019-10-27 05:06:02 +01:00
duianto 86c4ca2133 [ivy] Add counsel colors and faces key bindings
SPC C e calls counsel-colors-emacs
SPC C f calls counsel-faces
SPC C w calls counsel-colors-web
2019-10-19 23:13:35 +02:00
Hong Xu e37b70cfa3 Bound counsel-git to gff and move magit-find-file to gfF.
counsel-git find a file in the current git repository. "gff" is
currently bound to magit-find-file. While counsel-git seemingly performs the
same functionality as magit-find-file, they are substantially different:
magit-find-file is not intended to find a file, contrary to what the
name indicates. See https://github.com/magit/magit/issues/3967 for
explanation. This is why we need another key binding for counsel-git.
2019-10-16 22:03:42 +02:00
duianto 98e7bf38ad [ivy] Rename counsel-more-chars to ivy-more-chars
counsel-more-chars was renamed to ivy-more-chars a year ago:
Move counsel-more-chars-alist and counsel-more-chars to ivy.el.
4461ef302a

with an alias to counsel-more-chars.

The alias was removed 2 days ago:
ivy.el: Clean up obsolete aliases
1a9002bf4b
2019-10-14 10:34:19 +02:00
duianto 5894c396cb Fix C-k ivy-previous-line in ivy-switch-buffer
It applies to the editing styles:
- hybrid with the variable hybrid-style-enable-hjkl-bindings set to t
- vim

Moved the default key binding for ivy-switch-buffer-kill:
From: C-k
To:   C-M-k

Thanks for the suggestion: asok
2019-09-17 18:28:02 +02:00
madand 630781581a Fix definitions of extra actions R and D for recentf
`ivy-recentf` was renamed into `counsel-recentf` upstream.
2019-09-10 12:40:21 +02:00
duianto 3868a5364f [doc] Fix typos and add missing/remove extra ~
Add missing ~ (tilde) around key bindings.
Remove an extra ~.
2019-06-01 20:40:22 +02:00
emacspace c7c348a676 documentation formatting: Sun May 26 20:58:52 UTC 2019 2019-05-27 01:23:35 +03:00
bb2020 6f34185784 [ivy] Add ivy-ret-visits-directory variable 2019-05-21 22:47:21 +02:00
Anton-Latukha f6660f82d4
Switch to the new layers generator 2019-05-15 21:08:21 +03:00
Miciah Masters 322528ca8d spacemacs-layouts: Fix adding buffers to new persp
Delete the hook that commit 9fcf8c898d added
to persp-created-functions, and change spacemacs/ivy-spacemacs-layouts,
spacemacs/helm-perspectives, spacemacs/helm-persp-switch-project, and
spacemacs/ivy-persp-switch-project to achieve the intended goal of adding
the desired buffers after creating a new perspective.

Change spacemacs/helm-persp-switch-project and
spacemacs/ivy-persp-switch-project as follows: If the user selects a
project but then quits without selecting a file or buffer, the new
perspective is now immediately killed.  Otherwise, if the perspective did
not already exist, any buffers that belong to the selected project are
added to the perspective.

Add the following actions to spacemacs/ivy-spacemacs-layouts and
spacemacs/helm-perspectives:

* Create a new perspective with the Spacemacs home buffer (default action).
* Create a new perspective with the buffers that belong to the current
  buffer's project.
* Create a new perspective with the buffers that belong to the current
  perspective (i.e., make a copy of the current perspective).

This commit resolves the problem reported in
9fcf8c898d (commitcomment-33343455).

This commit also fixes a problem with the default action for
spacemacs/ivy-spacemacs-layouts and spacemacs/helm-perspectives.  According to
commit 7b931a9f5b, the default action is supposed
to display the home buffer if the action creates a new perspective, which was
determined by checking whether the perspective was missing from the list of
perspectives _before_ switching.  However, commit
eb7ca651fe changed this logic so it was checking
whether the perspective was missing from the list of perspectives _after_
switching.  This commit restores the correct logic.

* CHANGELOG.develop: Update.
* layers/+completion/ivy/funcs.el (spacemacs/ivy-spacemacs-layouts): Add
"Copy Current Layout" and "Create Project Layout" actions to the docstring.
Use spacemacs//create-persp-with-home-buffer for the default action.
* layers/+completion/ivy/packages.el (ivy/post-init-persp-mode): Add
actions for spacemacs//create-persp-with-current-project-buffers and
persp-copy.
* layers/+spacemacs/spacemacs-layouts/funcs.el
(spacemacs||switch-layout): New macro.  Switch to the named perspective,
and initialize it using the provided forms if the perspective is new.
(spacemacs//create-persp-with-current-project-buffers): New function.
Create a new perspective with the current project's buffers.
(spacemacs||switch-project-persp): New macro.  Switch to the named
perspective, and evaluate the provided forms with
projectile-after-switch-project-hook bound with a hook that adds the
current project's buffers to the perspective.  If the user quits during the
evaluation of the forms, kill the perspective.
(spacemacs//create-persp-with-home-buffer): New function.  Switch to the
named perspective, and go to the Spacemacs home buffer if the perspective
is new.
(spacemacs/helm-perspectives): Use spacemacs//create-persp-with-home-buffer
for the default action.  Add actions for
spacemacs//create-persp-with-current-project-buffers and persp-copy.
(spacemacs//helm-persp-switch-project-action): New function.  Switch to the
named perspective and call projectile-switch-project-by-name, using the new
spacemacs||switch-project-persp macro.  Bind helm-quit-hook with a hook
that kills the new perspective if the user quits
projectile-switch-project-by-name.
(spacemacs/helm-persp-switch-project): Use
spacemacs//helm-persp-switch-project-action.
(spacemacs//ivy-persp-switch-project-action): New function.  Switch to the
named perspective and call counsel-projectile-switch-project-action with a
hook to add the project's buffers to the new perspective.
(spacemacs/ivy-persp-switch-project): Delete advice for
counsel-projectile-switch-project-action.  Use
spacemacs//ivy-persp-switch-project-action instead.
(spacemacs//add-project-buffers-to-persp): Deleted.
* layers/+spacemacs/spacemacs-layouts/packages.el
(spacemacs-layouts/init-persp-mode): Don't add a hook to
persp-created-functions.
2019-05-13 17:11:27 +02:00
JAremko 5d02b1c4bb Add more tags 2019-05-03 03:44:19 +03:00