Commit graph

96 commits

Author SHA1 Message Date
Henrik Lissner
fe36bbca1f
Standardize C-c C-e for ivy wgrep
Removes backtab in favor of standardizing C-c C-e. Already used by helm,
wgrep and dired.
2019-05-21 00:30:42 -04:00
Henrik Lissner
d3cb394ce4
Refactor +ivy/tasks
Just realized ivy passes the candidate in its original data structure to
its handlers.
2019-05-19 02:18:26 -04:00
Henrik Lissner
2fa2639d64
Add value column to {describe,helpful}-variable 2019-05-14 10:06:36 -04:00
Andrew Whatson
876e2a250f Fix ivy-switch-buffer virtual buffer support 2019-05-13 23:45:21 +10:00
Andrew Whatson
9cdd5b2f99 Fixes for ivy-switch-buffer icons
Corrects the ivy-switch-buffer transformer to use buffer icons (not file
icons), and fixes alignment issues in the icon display.
2019-04-27 00:14:53 +10:00
Henrik Lissner
0f8baf3f3e
Minor comment tweaks 2019-04-17 11:19:37 -04:00
Andrew Whatson
ee11262aca Fix wrong-number-of-args in project-search-from-cwd 2019-04-17 00:32:35 +10:00
Henrik Lissner
b6611d215f
Fix wrong-num-of-args error on SPC *
Adds QUERY and DIRECTORY args to +{ivy,helm}/project-search
2019-04-14 13:39:30 -04:00
Henrik Lissner
3ef2abfb22
Improve ivy-switch-buffer transformer
- Highlights remote/tramp files with ivy-remote face
- Highlights non-file-visiting buffers with ivy-subdir face
- Highlight modified buffers with ivy-modified-buffer face
- Disable built-in ivy-switch-buffer transformer (redundant with our own
  transformer)
2019-04-10 19:24:17 -04:00
Henrik Lissner
00bb00649b
Fix #1065: add +ivy-buffer-unreal-face option 2019-04-07 15:55:45 -04:00
Henrik Lissner
e60b44d255
Fix #1311: remove project check in ivy transformer
Also: minor refactor of `cond` fallback blocks
2019-04-07 15:55:45 -04:00
Henrik Lissner
2514b7476e
completion/ivy: refactor transformers
- Mode icons will now fall back to fundamental-mode icon, rather than
  the blank file icon (whose irregular width ruins ivy's formatting)
- Fixes project-based buffer name highlighting in switch-to-buffer
- Fixes a void-variable ivy-rich--ivy-switch-buffer-transformer error

Relevant to #1159
2019-04-06 01:37:11 -04:00
Henrik Lissner
337c16cb68
Dear byte-compiler, you drive me to drink,
About Emacs Lisp that I have to rethink.
The world could end,
And humanity transcend,
But you'd still be here raising a stink.
2019-04-05 23:52:29 -04:00
Andrew Whatson
09a833338f Fix +ivy-buffer-preview no longer ignoring virtuals
Upstream updated `counsel--switch-buffer-update-fn` to check
`ivy--virtual-buffers` instead of `ivy-use-virtual-buffers`.
2019-03-21 14:37:23 +10:00
Andrew Whatson
0f0b0d720b Tidy up +ivy-buffer-preview functionality
Let-binding `ivy-use-virtual-buffers` is neater and more robust than the
previous solution using some copy-pasta.  Calling the unwind routine
will become important once counsel is patched to restore buffer-list.
2019-03-08 16:14:19 +10:00
Andrew Whatson
c7a29ca025 Add optional support for switch-buffer previews
When `+ivy-buffer-preview` is non-nil, our various switch-buffer
functions will preview the current candidate buffer, like how
`counsel-switch-buffer` works.

When `ivy-use-virtual-buffers` is non-nil, virtual buffers are *not*
previewed unless `+ivy-buffer-preview` is `'everything`.
2019-03-07 14:28:56 +10:00
Andrew Whatson
46f7e6c7e6 Improve +ivy/switch-workspace-buffer
Allow current buffer to be selected when switching other window, so you
can quickly get a second window to the current buffer.

Preselect the most recently selected buffer, so repeated C-x b RET will
switch between your two most recent buffers.
2019-03-07 01:18:37 +10:00
Henrik Lissner
4f40e67e28
Better regexp escaping for ivy project search 2019-03-05 01:59:05 -05:00
Andrew Whatson
faa4367636 Improved switch-to-buffer-other-window for ivy 2019-02-25 22:29:41 +10:00
Henrik Lissner
6a03b37dd3
General refactor for comments & docstrings 2019-01-05 15:20:49 -05:00
Henrik Lissner
a89a2aa70c
completion/{helm,ivy}: fix stringp error
Cause by the expectation that doom-project-root would never return
nil (which was changed to return nil if not in a valid project, due to
an update upstream, in projectile).
2018-12-11 18:59:30 -05:00
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
2d685d736e
completion/ivy: fix +helm--get-command references
Bad copypasta!
2018-09-09 13:44:12 -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
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
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
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
2f7f8f0868
+ivy/tasks: emit better error if project has no tasks 2018-07-29 19:31:32 +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
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
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
a906b82788 add action for counsel-find-file 2018-07-04 23:59:18 +08: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
b72764c6ea
fixup! Refactor ivy project-search functionality 2018-06-02 20:31:50 +02:00
Henrik Lissner
7f00221551
Refactor ivy project-search functionality
To prepare for Helm counterpart
2018-06-02 14:34:12 +02:00
Henrik Lissner
55a3aeec9a
completion/ivy: don't pre-fill ag/rg/pt/grep searches w/ last search 2018-05-25 00:50:24 +02:00
Henrik Lissner
09cb4f6716
Major refactor & optimization of how modules load their packages
Now that we are loading package autoloads files (as part of the
generated doom-package-autoload-file when running make autoloads), many
:commands properties are redundant. In fact, many def-package! blocks
are redundant.

In some cases, we can do without a config.el file entirely, and can move
into the autoloads file or rely entirely on package autoloads.

Also, many settings have been moved in their module's autoloads files,
which makes them available ASAP; their use no longer depends on module
load order.

This gained me a modest ~10% boost in startup speed.
2018-05-25 00:46:16 +02:00
Henrik Lissner
dbdce2a8b2
completion/ivy: fix file search not searching compressed archives 2018-05-17 16:59:55 +02:00
Fangrui Song
f1cf88eeb6 completion/ivy: fix ag/pt/grep file search args 2018-03-28 12:34:04 -07:00
Henrik Lissner
7f6fb69a3d
completion/ivy: reuse last query if none supplied 2018-03-26 00:30:10 -04:00
Henrik Lissner
9e62898d92
completion/ivy: major refactor of file-search commands 2018-03-26 00:02:22 -04:00
Henrik Lissner
2925f5657b
completion/ivy: decouple ivy-rich advice from nullable doom--project-root 2018-03-24 17:05:06 -04:00