Commit graph

352 commits

Author SHA1 Message Date
Henrik Lissner
c6c3054fbb
completion/ivy: update ivy-rich integration
And remove unused/defunct code. Also fixes a `file-in-directory-p: Wrong
type argument: stringp, nil` error when invoking counsel-recentf.
2018-10-17 14:34:43 -04:00
Henrik Lissner
ce6e34aff0
completion/ivy: fix +helm/grep* commands
They weren't being defined, since grep is not in
+ivy-project-search-engines.
2018-10-13 13:26:59 -04:00
Henrik Lissner
53fe7a1f04 Refactor Project API to reflect changes upstream
projectile-project-root no longer returns `default-directory` if not in
a project (it returns nil). As such, doom-project-* functions (and their
uses) have been refactored.

+ doom-project-p & doom-project-root are aliases for
  projectile-project-p & projectile-project-root.
+ doom-project-{p,root,name,expand} now has a DIR argument (for
  consistency, since projectile-project-name and
  projectile-project-expand do not).
+ The nocache parameter is no longer necessary, as projectile's caching
  behavior is now more sane.
+ Removed some projectile advice/hacks that are no longer necessary.
+ Updated unit tests
2018-09-28 21:13:27 -04:00
Henrik Lissner
4a9a2c00d9
Remove smex-completion-read reference
Doom no longer uses smex.
2018-09-26 12:29:55 -04:00
Henrik Lissner
b53b300657
Don't affect ivy-switch-buffer's transformer
ivy-rich already does this under the hood. This is redundant.
2018-09-23 16:30:43 -04:00
Henrik Lissner
f415762e8b
completion/ivy: fix ivy-rich integration 2018-09-19 23:34:00 -04:00
Henrik Lissner
2d685d736e
completion/ivy: fix +helm--get-command references
Bad copypasta!
2018-09-09 13:44:12 -04:00
Henrik Lissner
86d51dd056
Add +doom-dashboard-mode to swiper-font-lock-exclude
It breaks the dashboard
2018-09-09 09:58:22 -04:00
Henrik Lissner
22a94fc41a
Make helm/ivy project search api more consistent
+{helm,ivy}/*-from-cwd no longer accepts a third DIRECTORY argument.
2018-09-09 09:58:21 -04:00
Henrik Lissner
4d10c28c37
Change doom-ansi-apply, print! & format!
Color let-functions no longer take format string arguments. e.g.

  (format! (red "Hello %s" "world"))

Becomes

  (format! (red "Hello %s") "world")

The same goes for print!. Also, doom-ansi-apply now takes two arguments
instead of three.

Also merges doom-message-{fg,bg,fx} into doom-ansi-alist, and reduces
backtrace noise when errors originate from inside these macros.
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
Ben Johnson
eed835b7cc
Fix typo in ivy/README.org
Wrong command was listed in the table
2018-08-27 22:49:57 -07:00
Henrik Lissner
7a578eb242
Move counsel+helpful integration to ivy module 2018-08-17 03:37:07 +02:00
Henrik Lissner
7d1246888b
Only set display function for counsel-ag
counsel-rg and counsel-pt both identify themselves as counsel-ag, so
these extra specifications were unnecessary.
2018-08-15 21:19:59 +02:00
Henrik Lissner
77408ff12f
Refactor ivy project search API
The same as 7d617f15, but for ivy:

+ Heavily refactored +ivy-file-search
+ Removed -z flag from all engines by default
+ Changed the behavior of the universal argument for from-cwd
  interactive commands (e.g. +ivy/rg-from-cwd). It used to enable
  recursive searches, but now enables inclusion of hidden and compressed
  files in the search instead. *-from-cwd searches are always recursive
  now.
+ Now generates +ivy/X and +ivy/X-from-cwd commands dynamically.
+ Split +ivy/project-search into +ivy/project-search-from-cwd.
  Universal arguments are passed from these commands to their delegated
  engine command.
2018-08-13 21:47:56 +02:00
Henrik Lissner
ddf107a507
Disable counsel-projectile temporarily #93
Until upstream resolves ericdanan/counsel-projectile#93
2018-08-11 01:59:37 +02:00
Henrik Lissner
87c8f6e18e
Temporary fix for counsel-projectile arrayp error
This should be reversed once the issue is fixed upstream.

Addresses #792
2018-08-09 13:00:11 +02:00
Henrik Lissner
685f282b53
completion/ivy: nudge posframe up some
It was too far down on smaller displays
2018-08-07 14:43:27 +02:00
Henrik Lissner
9a3e71731c
completion/ivy: bring back flx 2018-08-04 13:47:19 +02:00
Henrik Lissner
e916a4d6fe
Remove ivy-prescient
Doesn't bring enough to the table, slows down fuzzy searches too much,
and alters the way ivy highlights.
2018-08-04 02:42:32 +02:00
Henrik Lissner
41a641f53b
Disable counsel-projectile-find-file transformer 2018-08-04 02:30:26 +02:00
Henrik Lissner
c878314aa6
Refactor +ivy/projectile-find-file to use counsel
counsel-projectile-find-file has other capabilities (like actions and
sorting). So we conditionally use projectile-find-file only if the
project is large enough to warrant it.
2018-08-04 02:28:45 +02:00
Henrik Lissner
1f1f2c3ebf
completion/ivy: fix ivy--regex-fuzzy typos 2018-08-03 21:57:47 +02:00
Henrik Lissner
35b88a597b
Activate ivy-prescient-mode on ivy-mode 2018-08-03 21:40:54 +02:00
Henrik Lissner
ab4052b8dc
Refactor completion/ivy & optimize projectile-find-file
counsel-projectile-find-file fontifies visited files and sorts the
resulting file list from projectile-find-file, adding considerable
overhead. Then, ivy-prescient performs a frecency sort and filter,
adding more overhead.

Altogether, this makes projectile-find-file unusable for larger projects
when fuzzy search is on (and in some extreme cases, when it's off). This
change disables both features specifically for projectile-find-file.

Fixes #774, hopefully
2018-08-03 16:35:42 +02:00
Henrik Lissner
3673067736
Fix projectile-find-file locking up Emacs
This occurs when invoking it from the root of massive file trees, like
$HOME or certain non-project folders. It's better that it defer to a
different command altogether (counsel-find-file) if invoked from $HOME,
and counsel-file-jump from anywhere else, which offers approximately
what we want, but at a fraction of the performance cost in those cases.
2018-08-03 16:10:20 +02:00
Henrik Lissner
0b8f3e29d5
Remove rg/pt ivy-re-builders-alist entries
Both counsel-(rg|pt) identify themselves as counsel-ag, so these extra
entries are necessary.
2018-08-02 03:51:15 +02:00
Henrik Lissner
baf400b736
completion/ivy: add ivy-prescient #774
Better fuzzy support versus flx; hopefully faster. Also brings frecency
sorting to ivy commands.
2018-08-02 01:53:29 +02:00
Henrik Lissner
59bc7653d5
completion/ivy: remove flx #774
flx is much too slow with large lists of candidates (i.e.
counsel-projectile-find-file).
2018-08-02 00:29:26 +02:00
Henrik Lissner
2f7f8f0868
+ivy/tasks: emit better error if project has no tasks 2018-07-29 19:31:32 +02:00
Henrik Lissner
c87c2bd5a6
Remove redundant magit-completing-read-function 2018-07-29 17:41:59 +02:00
Henrik Lissner
277915b28c
Fix order of +(helm|ivy)-project-search-engines 2018-07-24 14:18:44 +02:00
Henrik Lissner
e865526c75
Add +(helm|ivy)-project-search-engines variables
This allows you to control what search engines for project-search
commands (bound to SPC / p) to try, and in what order. If you didn't
want to use ripgrep, for instance, remove 'rg from these variables, or
move it to the end of the list.
2018-07-23 00:06:47 +02:00
Henrik Lissner
4323886b1b
Use ivy fallback display function for swiper et co
As they don't work well with ivy-posframe.
2018-07-14 04:08:17 +02:00
Henrik Lissner
bb6e9b0a4f
Remove counsel-more-chars removal hacks
Fixes wrong-number-of-args error caused by new counsel-more-chars
implementation upstream.

These hacks removed the hard-coded minimum input length requirement for
counsel-ag and its ilk. The recent counsel update made those
requirements customizable through counsel-more-chars-alist.
2018-07-14 02:56:46 +02:00
Henrik Lissner
9f50ca01a0
Rename amx-save-file: smex-items -> amx-items 2018-07-12 16:45:57 +02:00
Henrik Lissner
eb79760c66
ivy-rich-switch-buffer-pad => ivy-rich-pad
To match upstream changes.

Reported by @sarg
2018-07-06 12:17:29 +02:00
Henrik Lissner
2d30d996c3
Refactor counsel-find-file actions
Conform them to naming conventions & only autoload the functions that
aren't used immediately.
2018-07-05 14:05:09 +02:00
fuxialexander
0df9bae16b don't override original actions 2018-07-05 00:38:41 +08:00
fuxialexander
a906b82788 add action for counsel-find-file 2018-07-04 23:59:18 +08:00
Henrik Lissner
4a213e07f8
Fix void-function ivy--matcher-desc
When invoking +ivy-coo-hydra/body

Reported by @fuxialexander
2018-06-27 20:31:56 +02:00
Henrik Lissner
af41e17355
Minor reformatting & docstring tweak 2018-06-26 01:48:15 +02:00
Henrik Lissner
017ba8d79c
Autoload defhydras & use new naming convention
Phasing out the +module@name convention for plain old
+module-name-hydra, which is more compatible with elisp reflection tools
like describe-function and such.

Also, Emacs starts up faster now. Tee hee.
2018-06-26 01:43:54 +02:00
Henrik Lissner
2f63c5fa47
Merge pull request #723 from fuxialexander/fix-ivy-fuzzy
Fix disable ivy fuzzy search in counsel-grep and swiper
2018-06-25 15:02:41 +02:00
Henrik Lissner
106062da0d
Fix ivy posframe
The display function was being set on ivy-display-functions-props. The
correct variable for it is ivy-display-functions-alist.

Reported by randoom in discord.
2018-06-25 14:59:01 +02:00
fuxialexander
6a15db7e00 fix disable ivy fuzzy in swiper and counsel-grep 2018-06-25 14:15:00 +08:00
Henrik Lissner
f6dc6ac74e
Refactor out map.el usage
After some profiling, it turns out map-put and map-delete are 5-7x
slower (more on Emacs 25) than delq, setf/alist-get and add-to-list for
small lists (under 250 items), which is exactly how I've been using
them.

The only caveat is alist-get's signature is different on Emacs 25, thus
a polyfill is necessary in core-lib.
2018-06-23 19:53:54 +02:00
Henrik Lissner
d7f8a9591e
completion/ivy: replace smex with amx
Faster and maintained.
2018-06-20 18:39:44 +02:00
Henrik Lissner
d5bb770ea6
Make +(helm|ivy)-file-search public and autoloaded
So it can be safely used anywhere. Maybe these should be defgenerics?
2018-06-20 18:39:08 +02:00
Henrik Lissner
6808c46b58
💥 Change set-popup-rule! usage
Now accepts a flat plist of all its former parameters, including new
:parameters and :actions properties to increase your control over the
fate of your windows.

The old usage of set-popup-rule! is deprecated and may not work right!

The :ui popup module has also seen a major refactor to improve
efficiency and load times.

Sorry! This is the last "big" change before 2.1!
2018-06-18 02:34:16 +02:00