Commit Graph

94 Commits

Author SHA1 Message Date
6a15db7e00 fix disable ivy fuzzy in swiper and counsel-grep 2018-06-25 14:15:00 +08:00
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
d7f8a9591e completion/ivy: replace smex with amx
Faster and maintained.
2018-06-20 18:39:44 +02:00
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
d8b1e469bc Introduce autodefs to replace some settings
+ :popup -> set-popup-rule!
+ :popups -> set-popup-rules!
+ :company-backend -> set-company-backend!
+ :evil-state -> set-evil-initial-state!

I am slowly phasing out the setting system (def-setting! and set!),
starting with these.

What are autodefs? These are functions that are always defined, whether
or not their respective modules are enabled. However, when their modules
are disabled, they are replaced with macros that no-op and don't
waste time evaluating their arguments.

The old set! function will still work, for a while.
2018-06-15 03:42:01 +02:00
d24807cc2c Don't overwrite ivy-height for ivy-posframe
This would undo user's customizations to this variable.
2018-06-05 12:04:43 +02:00
1e81a35461 Minimize dependence on map!
This is in preparation for general.el integration coming in 2.1.1. It is
very likely that map! will change (and even more, be split into several
macros). Not much, but change none-the-less. Specifically, the state
keywords (e.g. :nvi, :n, :i) will be removed in favor of a :state
property that takes a list, e.g. (normal visual insert).

In any case, both map! and general are also relatively expensive
compared to define-key and evil-define-key* (and the new define-key!
macro), so use that when we can.

This also means changes to either API won't affect Doom's modules in the
long term.
2018-06-03 15:46:00 +02:00
f1bf9d1632 ivy-do-completion-in-region = t #640
Evil ex command completion is now handled by ivy, if it's enabled.
2018-06-01 12:00:57 +02:00
4d9ddf27a9 Fix over-zealous evil-integration in ivy #636 2018-06-01 02:18:46 +02:00
183ccbb8f1 Merge evil-collection-ivy into completion/ivy
Disables evil-collection-ivy. Another step toward the removal of
evil-collection from Doom.
2018-05-31 13:59:21 +02:00
cf974db0bf completion/ivy: remove redundant autoloads
Many of these exist in {swiper,counsel,smex}-autoloads already.
2018-05-30 16:05:24 +02:00
a25e2e0c89 completion/ivy: add +fuzzy flag
As mentioned in #626
2018-05-30 16:05:21 +02:00
3b85720c9c Fix incorrect uses of add-to-list 2018-05-28 12:26:03 +02:00
b36eca2ae7 completion/ivy: ivy-height = 15 2018-05-25 00:50:33 +02:00
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
0b48575c14 Remove def-hydra! macro alias
Causes byte-compilation issues and the alias is unnecessary.
2018-05-24 22:03:19 +02:00
80adb9c1f6 General refactor for consistency & idempotency
Also updated comments
2018-05-18 01:26:41 +02:00
dbdce2a8b2 completion/ivy: fix file search not searching compressed archives 2018-05-17 16:59:55 +02:00
94f9e43f25 Rewrite :defer semantics
:defer now supports a hook, a cons cell with (SYMBOL . INTEGER) where
SYMBOL is a hook and INTEGER is a number of idle seconds before the
package is autoloaded, or just the integer (as per the default behavior
of :defer).

Also fixes an issue where switch-buffer-deffered packages (like
smartparens) wouldn't load.
2018-05-15 10:54:45 +02:00
67dab98859 Improve idempotency of Doom config (in case of reloading) 2018-05-14 20:54:58 +02:00
a631c10d05 Exploit new :defer input|buffer across various modules 2018-05-14 20:45:47 +02:00
6e3f500a39 completion/ivy: ivy-use-selectable-prompt = t
Solves the "I want to enter something new, but it also is a part of
a match" issue. Thanks to @gilbertw1 for letting me know about this.

As such, the C-RET keybind from 310d81ab is no longer necessary
2018-05-14 20:37:13 +02:00
317b556bde Extract :ui posframe packages into other modules 2018-05-09 00:20:01 +02:00
70b49282a3 completion/ivy: add counsel-grep-or-swiper to autoloads 2018-03-24 07:25:01 -04:00
dacf50627c completion/ivy: don't kill ivy on DEL in empty minibuffer 2018-03-23 02:23:57 -04:00
8d72257aa6 completion/ivy: refactor ag/rg/pt/git-grep advice functions
They are no isolated to their evil use cases.
2018-03-18 22:01:18 -04:00
bf771dcbdb Set evil jump point before counsel-ag (and variants) 2018-03-18 15:18:19 -04:00
73f397560b completion/ivy: remove yank-pop remap (doesn't work) 2018-03-14 19:50:03 -04:00
128b11a8bc Minor style/comment edits 2018-03-02 23:26:55 -05:00
1758008ca5 completion/ivy: remap swiper -> counsel-grep-or-swiper #432 2018-02-28 17:57:31 -05:00
210a80a74f completion/ivy: add counsel-org-capture autoload #412 2018-02-07 14:47:33 -05:00
4658d22bf7 completion/ivy: remap org-capture to counsel-org-capture #407 2018-02-06 14:07:27 -05:00
f632ec3df1 Add 'counsel-descbinds' to councel defer commands. 2018-01-30 13:13:45 +01:00
272a34da45 completion/ivy: larger ivy-occur popup #375 2018-01-28 22:24:48 -05:00
3578d433c2 Integrate counsel-projectile-switch-project & restore file prompt when switching projects 2018-01-28 03:34:18 -05:00
d0cce3cafb completion/ivy: remove projectile-switch-project remap 2018-01-28 03:13:40 -05:00
d556e1190e completion/ivy: refactor; lazy-load counsel & counsel-projectile
Counsel loads a number of other packages, like dired, etags, swiper and
some of the eshell library. We're better off lazy-loading it.
2018-01-27 21:41:44 -05:00
45c2221316 General update for docstrings and comments & minor refactor 2018-01-15 00:43:28 -05:00
5ee50c6b53 Move wgrep config from core-editor to completion/{ivy,helm} 2018-01-14 02:04:34 -05:00
233b2021ce completion/ivy: add transformer for projectile-find-file 2018-01-09 03:45:27 -05:00
865fe29a9d completion/ivy: use switch-buffer transformer for projectile 2018-01-08 19:07:23 -05:00
4b4447d31e completion/ivy: dim non-project entries in counsel-recentf
Added +ivy-recentf-transformer to counsel-recentf. Entries that aren't
in the same project as the buffer recentf was opened from will be
slightly dimmed.
2018-01-08 19:05:12 -05:00
1c2683ce9d completion/ivy: add ivy-rich; rewrite custom transformer #331
+ivy-buffer-transformer does *most* of what ivy-rich does, so lets cut down on
our own code, bring in ivy-rich, and add our customizations on top of it.

This fixes ivy-use-virtual-buffers support, too.
2018-01-08 14:41:41 -05:00
25619908a2 Narrow down the purpose of init & post-init hooks
Essential hooks should be added to doom-init-hook. Non-essential and
extra hooks should be added to doom-psot-init-hook.
2018-01-07 00:15:58 -05:00
91357a3e5d 💥 Replace core-popup with new feature/popup module
This is a breaking change! Update your :popup settings. Old ones will
throw errors!

Doom's new popup management system casts off its shackles (hur hur) and
replaces them with the monster that is `display-buffer-alist`, and
window parameters.

However, this is highly experimental! Expect edge cases.  Particularly
with org-mode and magit (or anything that does its own window
management).

Relevant to #261, #263, #325
2018-01-06 02:17:43 -05:00
9e3682535a Fix describe-(function|variable) and ivy-resume
describe-(function|variable) weren't remapped to their counsel variants,
so ivy-resume wouldn't resume those sessions properly.
2018-01-06 00:08:53 -05:00
b6eec664bb Fix new workspace when switching projects #314 2017-12-30 01:18:41 -05:00
2eb0c4adb6 completion/ivy: remap globally 2017-12-26 19:39:33 -05:00
73333784f8 completion/ivy: fix cyclical-load errors when compiling 2017-12-17 00:03:45 -05:00
a41f02e6e7 completion/ivy: turn off my "very magic" regex mod
This makes regex consistent between evil-search, ivy, ripgrep and ag.
2017-12-10 14:54:33 -05:00