Commit Graph

180 Commits

Author SHA1 Message Date
e10cd8cf2e Insult byte-compiler's mom
Yeah, that shut him up.
2019-09-20 23:10:53 -04:00
20eb5ce4f6 Bind SPC / f to locate/counsel-locate 2019-09-15 16:21:10 -04:00
2cd1c43217 Suppress errors in +ivy--set-jump-point-maybe-h 2019-08-17 16:04:26 -04:00
1dcbdc8dfb completion/ivy: optimize counsel-file-jump
Instead of `find`, force it to use fd or ripgrep, if available.
2019-08-06 19:43:54 -04:00
19ecf8e46a Correct last inline hook defuns
See a3e262c7 for rationale
2019-07-28 16:10:53 +02:00
82ae3a73f3 def-advice!->defadvice! & conform to new advice conventions
This commit does two things:

- Renames def-advice! to defadvice!, in the spirit of naming convenience
  macros after the function/macro they enhance or replace.
- Correct the names of advice functions to indicate visibility and
  intent. A public advice function like doom-set-jump-a is meant to be
  used elsewhere. A private one like +dired--cleanup-header-line-a
  shouldn't -- it likely won't work anywhere but the function(s) it was
  made to advise.
2019-07-23 17:24:56 +02:00
76cacb5bfe 💥 Rename def-package! -> use-package!
Calling this pivotal macro "def-package!" has frequently been a source
of confusion. It is a thin wrapper around use-package, and it should be
obvious that it is so. For this reason, and to match the naming
convention used with other convenience macros/wrappers, it is now
use-package!.

Also changes def-package-hook! -> use-package-hook!

The old macros are now marked obsolete and will be removed when straight
integration is merged.
2019-07-23 12:50:45 +02:00
060ede0e2e General, minor reformatting across the board
And an offering of blood to our great lord Byte Compiler-sama.
2019-07-22 02:37:45 +02:00
149b2617b0 💥 revise hook/var fns naming convention (2/2)
This is second of three big naming convention changes. In this commit,
we change the naming conventions for hook functions and variable
functions:

1. Replace the bar | to indicate a hook function with a -h suffix, e.g.

     doom|init-ui -> doom-init-ui-h
     doom|run-local-var-hooks -> doom-run-local-var-hooks-h

2. And add a -fn suffix for functions meant to be set on variables,
   e.g.

     (setq magit-display-buffer-function #'+magit-display-buffer-fn)

See ccf327f8 for the reasoning behind these changes.
2019-07-22 02:30:38 +02:00
51d3b1b424 💥 revise advice naming convention (1/2)
This is first of three big naming convention updates that have been a
long time coming. With 2.1 on the horizon, all the breaking updates will
batched together in preparation for the long haul.

In this commit, we do away with the asterix to communicate that a
function is an advice function, and we replace it with the '-a' suffix.
e.g.

  doom*shut-up -> doom-shut-up-a
  doom*recenter -> doom-recenter-a
  +evil*static-reindent -> +evil--static-reindent-a

The rationale behind this change is:

1. Elisp's own formatting/indenting tools would occasionally struggle
   with | and * (particularly pp and cl-prettyprint). They have no
   problem with / and :, fortunately.
2. External syntax highlighters (like pygmentize, discord markdown or
   github markdown) struggle with it, sometimes refusing to highlight
   code beyond these symbols.
3. * and | are less expressive than - and -- in communicating the
   intended visibility, versatility and stability of a function.
4. It complicated the regexps we must use to search for them.
5. They were arbitrary and over-complicated to begin with, decided
   on haphazardly way back when Doom was simply "my private config".

Anyhow, like how predicate functions have the -p suffix, we'll adopt the
-a suffix for advice functions, -h for hook functions and -fn for
variable functions.

Other noteable changes:
- Replaces advice-{add,remove}! macro with new def-advice!
  macro. The old pair weren't as useful. The new def-advice! saves on a
  lot of space.
- Removed "stage" assertions to make sure you were using the right
  macros in the right place. Turned out to not be necessary, we'll
  employ better checks later.
2019-07-22 02:27:45 +02:00
fb16afb4f2 ivy-prescient-retain-classic-highlighting = t
Because prescient's highlighting turns any assumptions themes make
about ivy's faces on their head, making them look odd.
2019-07-11 17:23:20 +02:00
a201409fdd Minor refactors across the board 2019-07-10 21:27:12 +02:00
563629cbd3 Remove unneeded autoloads 2019-07-06 23:22:27 +02:00
9a8faf1df3 completion/ivy: don't ignore order in file search 2019-07-02 13:12:21 +02:00
b5c5b7f10d Move posframe+persp-mode fix to ui/workspaces 2019-06-26 14:31:06 +02:00
33ae889e39 Enable evil-collection-ivy 2019-06-14 11:05:54 +02:00
b1ecd68381 completion/ivy: fix +fuzzy & +prescient
Causd by ivy-re-builders-alist overwriting their modifications.
2019-06-11 18:11:51 +02:00
766fc3e4a9 completion/ivy: inhibit ivy completion in evil-ex
`ivy-completion-in-region' struggles with completing certain
+evil-ex-specific constructs, like globs (:e prefix*.el) or vim filename
modifiers (:e %:p:h).
2019-06-10 09:38:56 +02:00
1de21f57eb completion/ivy: use ivy--regex-ignore-order 2019-06-10 09:38:55 +02:00
761bc570aa completion/ivy: ivy-posframe upstream update 2019-06-04 00:01:28 +02:00
9f4352006f Increase ivy-flx-limit for improved fuzzy behavior
The default setting of 200 is too low for common use-cases like
`describe-function`, `describe-variable` or `counsel-projectile`.

This has a performance impact, but it's barely noticeable on a fast
machine. If performance is not acceptable, set `ivy-flx-limit` lower or
consider disabling the `+fuzzy` feature entirely.
2019-05-29 00:46:57 +10:00
2a511a6576 Add +prescient option for :completion ivy
This provides an alternative backend for filtering and sorting ivy
searches. Uses prescient instead of flx for fuzzy completion when both
+prescient and +fuzzy are selected.
2019-05-29 00:46:57 +10:00
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
a7069b93f2 Remove vestigial imenu-anywhere remappings 2019-05-20 21:09:10 -04:00
39d4fa2256 Improve better-jumper integration into ivy
And remove unnecessary set-jump on imenu-after-jump-hook (it should
happen before the jump, not after).
2019-05-19 02:18:26 -04:00
c4a5a1b007 Remove redundant +ivy--switch-buffer transformer
Mentioned in #1408
2019-05-14 10:12:37 -04:00
2fa2639d64 Add value column to {describe,helpful}-variable 2019-05-14 10:06:36 -04:00
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
1911f44e66 completion/ivy: add +icons flag
This replaces +ivy-buffer-icons.

Renders #1362 unnecessary.
2019-04-25 22:20:31 -04:00
a4c5396558 Add better-jumper
Replaces evil's jumplist; makes its functionality available for non evil
users.
2019-04-24 18:16:04 -04:00
77e4cc4d58 💥 Remove :feature category
:feature was a "catch-all" category. Many of its modules fit better in
other categories, so they've been moved:

- feature/debugger -> tools/debugger
- feature/evil -> editor/evil
- feature/eval -> tools/eval
- feature/lookup -> tools/lookup
- feature/snippets -> editor/snippets
- feature/file-templates -> editor/file-templates
- feature/workspaces -> ui/workspaces

More potential changes in the future:

- A new :term category for terminal emulation modules (eshell, term and
  vterm).
- A new :os category for modules dedicated to os-specific functionality.
  The :tools macos module would fit here, but so would modules for nixos
  and arch.
- A new :services category for web-service integration, like wakatime,
  twitter, elfeed, gist and pastebin services.
2019-04-24 18:16:04 -04:00
7e7d6ae5a2 Fix hydra-ivy keybind on M-o #1342 2019-04-20 02:18:49 -04:00
e3cd82016e Disable fuzzy-matching for swiper-isearch 2019-04-16 11:07:06 +10:00
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
f9b6f6746f General, minor refactor/reformatting 2019-04-08 23:03:19 -04:00
00bb00649b Fix #1065: add +ivy-buffer-unreal-face option 2019-04-07 15:55:45 -04:00
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
72fb5603e7 Minor, general refactor & reformatting
Also swaps C-o and M-o in ivy

And use new ;;;###package cookie (not used yet)
2019-04-06 01:36:46 -04:00
53e0ebb700 Merge pull request #1050 from rschmukler/rschmukler/fix-ivy-buffer-icons
fix: restore +ivy-buffer-icons config var
2019-04-06 00:14:58 -04:00
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
49bbc7107f Disable fuzzy matching for counsel-rg #1292 2019-03-30 00:07:57 -04:00
60c965ded8 Revert restored revert of ee6e4a8b
Holy reverts Batman.
2019-03-14 00:31:59 -04:00
e50157bcec Restore reverted ee6e4a8b
Although Yevgnen/ivy-rich#51 was merged upstream, due to Melpa issues,
it hasn't been pulled. I'll restore this under it has.
2019-03-13 01:35:46 -04:00
cec93933d0 Revert ee6e4a8b
Fix was merged upstream: Yevgnen/ivy-rich#51
2019-03-09 04:38:22 -05:00
b6fcd59a01 completion/ivy: remap describe-bindings & set-variable 2019-03-09 03:42:55 -05:00
54d1c0dd56 Minor, general refactors 2019-03-09 03:42:55 -05:00
ee6e4a8b5c Fix ivy--queue-exhibit: void-function nil error
Until Yevgnen/ivy-rich#51 is merged
2019-03-08 17:58:58 -05:00
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
cf07bac383 Fix persisted workspace storing broken posframes #1017
Not confident this is the best solution, but it will work for now.
2019-02-28 14:19:05 -05:00
faa4367636 Improved switch-to-buffer-other-window for ivy 2019-02-25 22:29:41 +10:00