Commit graph

117 commits

Author SHA1 Message Date
Eivind Fonn
08561d8631 core: implement :depends for package declarations
This replaces the older pattern
:toggle (configuration-layer/package-usedp ..)

This implementation ensures that :disabled-for honors dependent packages, i.e.
if package a depends on package b, which is owned by layer c, and layer c is
disabled for layer d, then neither package a nor b will be configured for layer
d. Previously, this was only true for package a, but not b.

This commit also fixes:

- configuration-layer/describe-package now shows which post-init and pre-init
  functions are disabled, if any
- Does not recreate all layer objects unconditionally when calling
  configuration-layer/discover-layers. Previously, this led to all layers being
  recreated after e.g. `SPC h SPC`, without any of the dotfile information.
  Since this information is now necessary for
  configuration-layer/describe-package, it’s important that we don’t clear the
  indexed layers when invoking this function.
2017-06-22 11:53:05 +02:00
MadAnd
8fea6f134d ivy: Use new API to register additional transient state bindings
This is a follow-up commit after #8155 has been merged. It applies the same
changes to code of the `ivy` layer. It is not part of #8155 because there was
no `ivy` layer when that PR was submitted.
2017-05-24 09:12:48 +02:00
Eivind Fonn
909d23f412 Use symbols instead of strings 2017-05-23 16:04:40 +02:00
MadAnd
5eeaed75d9 transient-state: Improve handling of additional bindings
Add two new functions: `spacemacs/transient-state-register-add-bindings`
and `spacemacs/transient-state-register-remove-bindings` to prevent layer
authors and end users from dealing with the underlying variables' subtleties.
2017-05-23 16:03:03 +02:00
JAremko
6c5a0b2b14 update docs to the new toc-org format 2017-05-22 18:35:37 +03:00
Aaron Jensen
c4ce10ad82 helm/ivy: Limit rg results to 150 columns
Emacs doesn't handle long line lengths very well. If you accidentally rg a file
a file that has very long line lengths it can freeze emacs. This prevents rg
from returning any results with more than 150 characters. Instead, it will
indicate that there were results in that file but they were elided.
2017-05-07 22:07:42 -04:00
Muneeb Shaikh
f93730b19c ivy: counsel-faces -> counsel-describe-face
Mistakenly added `counsel-faces` while the intended command that should go under
`SPC h d F` is `counsel-describe-face`.
2017-04-28 22:24:21 -04:00
Adrian Staniec
29605f57eb add perm. highlight and swoop/swiper to Symbol Highlight Transient State 2017-04-23 19:42:32 -04:00
Muneeb Shaikh
52ffc018b1 ivy: Add counsel-faces 2017-04-20 22:43:26 -04:00
ralesi
9b24a38eb9 Ivy: Multiple loading improvements and additional alternates
* Don't list imenu if it isn't loaded
* Add recentf config to :post-init function
* Add :init and :config sections for counsel and ivy for accessibility
* Add projectile alt actions to invalidate cache
* Add recentf alt actions to refresh and delete items
* Load flx since it is listed
2017-04-17 23:39:35 -04:00
duianto
94703a64be Remove "pr" 'projectile-recentf from ivy layer
problem: "pr" 'projectile-recentf is defined in both the Ivy layer
and spacemacs-base/packages.el

solution: remove it from the Ivy layer.
2017-04-17 17:43:05 -04:00
syl20bnr
a4be86cb5d Update documentation to remove explicit mentions to helm
Move some helm explicit sections the helm layer README.
2017-04-16 11:14:59 -04:00
person808
489f391fb5 Add beginners tutorial to ivy-spacemacs-help. 2017-04-16 11:14:59 -04:00
Somelauw
c5066d6100 Add documentation for ivy 2017-04-16 11:14:59 -04:00
Somelauw
4361254e06 Fix #8698 2017-04-13 12:04:30 +02:00
syl20bnr
2fba8eeba8 Remove unecessary parenthesis in comments 2017-04-12 23:35:23 -04:00
tinysong
41de690a55 fix url jump error 2017-04-12 23:34:00 -04:00
MadAnd
33f3cf1293 ivy: add 2 missing bindings "SPC fel" and "SPC hi"
These are available with Helm and Counsel has similar counterparts.
2017-04-12 23:23:09 -04:00
Somelauw
a8f68c0cca Add escape and M-SPC bindings to ivy
- escape quits the minibuffer
- M-SPC enters transient state

See conventions at
https://github.com/syl20bnr/spacemacs/blob/master/doc/CONVENTIONS.org
2017-04-12 23:21:51 -04:00
bmag
b6e553bd06 rg: explicitly request line numbers
rg tries to be smart about printing line numbers in its output (if running
inside a TTY or not). On Windows, sometimes (always?) it chooses not to print
line number. However, we always want line numbers, so we need to pass -n flag.

Also fix a minor grammar mistake.
2017-03-09 09:00:39 +02:00
Aaron Jensen
0c8af9686c Fix ivy wgrep and helm-ag when used with rg
wgrep does not know how to handle column numbers, which the `--vimgrep` flag
adds.
2017-02-20 08:39:42 +02:00
syl20bnr
3162f0e19b core: factorize code in configuration-layer/make-all-packages 2017-01-15 22:19:56 -05:00
syl20bnr
fb27ede558 Bump year in copyright headers
Happy New Year 2017!
2017-01-05 23:08:17 -05:00
Aaron Jensen
10c59bb142
ivy: Add C-c C-e to edit counsel-ag search results 2017-01-04 19:26:33 +02:00
d12frosted
3e60792136
ivy delete file with confirmation 2016-12-22 15:53:28 +02:00
ralesi
1c8cb4a58c
Delete alternate actions is too invasive 2016-12-22 15:52:57 +02:00
Aron Griffis
385c12743a Add ripgrep support
* Add rg to helm completion layer
* Add rg to ivy layer
* Prepend rg to dotspacemacs-search-tools
* Add rg to documentation
2016-11-11 15:22:03 +02:00
Bryan Gilbert
7581662d7e rebind 'SPC f b' to 'counsel-bookmark' when using ivy 2016-11-05 12:27:56 +02:00
Bryan Gilbert
b515253026 move helm specific layout transient state keybindings to helm layer 2016-10-23 19:44:35 +02:00
Bryan Gilbert
389d722996 close layout transient state upon entering layout buffer select when 2016-10-23 19:44:35 +02:00
bmag
0e1491c434 Make ivy restrict buffers to layout
Also create separate non-restricted-buffer-list (`SPC B b`) for helm and
ivy.
2016-10-17 13:45:43 +02:00
Bryan Gilbert
59897e2abd Fixed layout transient state not closing on layer select in ivy layer 2016-10-17 13:14:04 +02:00
syl20bnr
703f78c2b8 Cleanup pass on file spacemacs-base/funcs.el
- Apply `/` and `//` rules (double / is for private functions)
- Add missing `spacemacs/` prefixes
- Move functions used outside of spacemacs-base layer to
  core/core-funcs.el
- Remove unused functions

Commit originally intented to only rename linum-update-window-scale-fix
to spacemacs/linum-update-window-scale-fix :-)
2016-10-09 13:14:41 -04:00
Adam Sokolnicki
51c49531e3
Re-map "pp" to counsel-projectile-switch-project
Move counsel-projectile to "p SPC" as the original package suggests.
2016-09-23 10:47:13 +03:00
syl20bnr
03f9f9f700 core: contain side effects when loading packages for SPC h SPC
Fixes some edge cases like SPC f e R performed after SPC h SPC which
could wrongly install or uninstall packages.

Side effects is contained using the variable
configuration-layer--package-properties-read-onlyp, if non nil then
properties value of a package cannot be overwritten.
2016-09-05 20:54:07 -04:00
YeJun Su
87bddc0dac Replace "ivy-recentf" with "counsel-recentf"
As the tip says: ‘ivy-recentf’ is an obsolete command (as of 0.8.0); use ‘counsel-recentf’ instead.
2016-08-30 15:04:47 +08:00
syl20bnr
e4b15b16de Dispatch function spacemacs/jump-in-buffer to layers
Use imenu init and post-init functions to leverage the layer system and
get better isolation of configuration.
2016-08-25 20:42:01 -04:00
syl20bnr
1c4f685b13 core: refactor layer system
TL;DR Should get 20~25% speed improvement on startup, should get a big
improvement when using ivy or helm SPC h SPC. Users with layers.el files
in their layers must use `configuration-layer/declare-used-layer`
instead of `configuration-layer/declare-layer`

The implementation of the layer system made heavy use of `object-assoc`
and `object-assoc-list` functions which are not efficient. This PR
mainly replaces those object lists with hash maps in order to index the
objects by their name and achieve an O(1) access time.

The old object lists `configuration-layer--layers` and
`configuration-layer--packages` have been each by two variables each:
- `configuration-layer--indexed-layers` which is a hash-map of all the
layer objects and `configuration-layer--used-layers` which is a list of
all _used_ layers symbols,
- symmetrically `configuration-layer--indexed-packages` which is a
hash-map of all the package objects and
`configuration-layer--used-packages` which is a list of all _used_
packages symbols.

The hash map `configuration-layer--layer-paths` is gone, now we create
directly layer objects when discovering the layers and set the :dir
property. Note that previously the layer paths were the parent directory
of the layer, now :dir is the layer path.

The function `configuration-layer//make-layer` is now similar to its
counterpart `configuration-layer//make-package` in the sense that it
takes an optional `obj` to be able to override its properties.

The functions `configuration-layer/declare-layer` and
`configuration-layer/declare-layers` now takes an optional parameter
`usedp` in order to declare used or not used layers. For convenience
new functions have been added: `configuration-layer/declare-used-layer`
and `configuration-layer/declare-used-layers`, users _must_ update all
occurrences of `configuration-layer/declare-layer` by
`configuration-layer/declare-used-layers` in their `layers.el` files.

`helm-spacemacs-help` and `ivy-spacemacs-help` are updated to match the
changes in `core-configuration-layer.el`.

Rename some variables to make them more explicit:
`configuration-layer-no-layer` -> `configuration-layer-exclude-all-layers`
`configuration-layer-distribution` -> `configuration-layer-force-distribution`
2016-07-28 23:26:54 -04:00
d12frosted
5c5ca4e7a3
add open config action to layer spacemacs help 2016-07-17 09:57:13 +03:00
d12frosted
c64d04f944
fix ivy-spacemacs-help//layer-action-add-layer 2016-07-16 11:37:09 +03:00
d12frosted
28220ef979
fix ivy layer help actions 2016-07-16 11:28:59 +03:00
Muneeb Shaikh
5ae1013854 ivy: remove extra projectile-switch-project binding 2016-07-14 20:37:05 +05:30
Muneeb Shaikh
212944ac2b
ivy: fix open spacemacs doc function
fix #6513
2016-07-08 09:04:24 +03:00
zilongshanren
94969fd81d fix break API changes for ivy 0.8
fix describe packages

refine

rename car cdr to cadr

fix SPC h l
2016-07-05 00:23:16 -04:00
Exaos-memes
904f7ea665 Define new variable: spacemacs-start-directory.
With this new variable, user can load spacemacs anywhere, e.g.
"~/.emacs.d/spacemacs/". Only user's cache directory is still hard-coded
as "~/.emacs.d/.cache/". If user want to use spacemacs this way, drop
one line as the below in "~/.emacs.d/init.el":

    (setq spacemacs-start-directory "~/.emacs.d/spacemacs/")
    (load-file (concat spacemacs-start-directory "init.el"))
2016-06-23 00:19:34 -04:00
ralesi
560f86f997
Fix :owner reference in ivy-spacemacs-help 2016-06-22 07:44:15 +03:00
Eivind Fonn
2a6ffc72d9 ivy: Support GNE
Implement a keymap for Spacemacs’ counsel search that supports saving
the results to a buffer (bound on F3 as in helm). Ensure that the new
buffer supports the GNE API.
2016-06-18 19:21:26 -04:00
syl20bnr
775c1f78db ivy: create missing layers.el file
Was triggering an error if ivy and smex layer were both used at the
same time and smex layer stole ownership of smex package.
Fixes #6281
2016-06-10 20:53:23 -04:00
syl20bnr
f5799ab1ec ahs: move b, f and / key bindings to helm and ivy
Correctly augment the docstring based on the presence of b,f and /
bindings using dynamic hint.
b,f and / are not available if none of helm or ivy layers are used.
2016-06-09 22:50:24 -04:00
ralesi
2a07a7fd76 Add custom evil-register listing with ivy. 2016-06-09 21:27:30 -04:00
Laszlo Szekeres
a89573eb85 Enable make completion with ivy
Invoking "make" or "project compilation" (<kbd>SPC c m</kbd>, <kbd>SPC c
c</kbd>) is currently not supported in ivy mode. The PR re-enables them
by adding helm-make to the ivy packages with ivy completion method.
2016-06-07 23:19:32 -04:00
Markus Koller
58bb7d122f spacemacs-base: Always kill buffers with SPC b d
Fixes #4929
2016-06-05 21:22:50 -04:00
Muneeb Shaikh
7f22bf1fc8 completion/ivy: fix projectile-switch-project-action 2016-06-02 15:44:34 +05:30
ralesi
bb37cb9b9a ivy: spacemacs-help
* Provide dired functionality for package and layer lists.
2016-06-01 21:38:35 -04:00
d12frosted
d404490ed1 [ivy] add delete and remove file actions 2016-06-01 21:36:45 -04:00
zilongshanren
f06129c0f3 add ivy-hydra packages 2016-06-01 21:32:48 -04:00
syl20bnr
8f45a94095 ivy: perspective -> persp-mode and layout
Fix wrong package name.
Replace `perspective` words by `layout`
2016-05-31 23:39:47 -04:00
ralesi
1ef6f10643 Provide custom actions for ivy and counsel-search 2016-05-31 23:26:21 -04:00
syl20bnr
4dead4cca7 Use use-package hooks for helm and ivy projectile setup
It allows the configuration function for projectile to be agnostic of
other packages.

Also fix wrong `SPC p s` key binding (it is `SPC p p`).
2016-05-31 23:19:54 -04:00
syl20bnr
47988be186 ivy: use :toggle keywork for counsel-projectile 2016-05-31 23:09:55 -04:00
ralesi
0c3ab2f3d1 Use counsel-projectile for projects with ivy. 2016-05-31 23:07:57 -04:00
Eivind Fonn
845c42d252 core: add predicate function for toggles
Also use output in Spacemacs help sources
2016-05-31 22:33:44 -04:00
syl20bnr
5e448a60ed Remove loading of funcs.el and config.el for helm and ivy spacemacs help 2016-05-29 22:39:56 -04:00
syl20bnr
818867e012 Fix package sources for ivy and helm 2016-05-29 21:12:54 -04:00
syl20bnr
519d42e7c6 ivy: remove pcre2el from package list 2016-05-27 00:32:05 -04:00
sooheon
cd848d7e28 We don't need to declare pcre2el in ivy 2016-05-27 00:32:05 -04:00
syl20bnr
1f993bddf6 Rename spacemacs-helm and spacemacs-ivy layers to helm and ivy
For ivy users: be sure to update your dotfile by replacing spacemacs-ivy
by ivy
2016-05-15 22:24:27 -04:00