Commit graph

119 commits

Author SHA1 Message Date
Henrik Lissner
0cfd35cfc0
Refactor how helm mode-line is hidden 2018-08-06 00:31:22 +02:00
Henrik Lissner
41697e4e6e
Move helm posframe up slightly
And display input line in posframe.
2018-08-06 00:31:22 +02:00
Henrik Lissner
ca6afcf3c7
Add +helm-posframe-border-width option
Controls posframe's internal-border-width
2018-08-06 00:31:18 +02:00
Henrik Lissner
a9357bb467
completion/helm: use hide-mode-line-mode 2018-08-05 00:39:54 +02:00
Henrik Lissner
860dff3e63
completion/helm: refactor posframe config 2018-08-05 00:39:54 +02:00
Henrik Lissner
7f5e778b0c
Replace helm-swoop with swiper-helm
Swiper is superior. The downside is it pulls in ivy as a dependency, but
that is acceptable considering how small it is.
2018-08-04 19:54:54 +02:00
Henrik Lissner
b180aceaa8
completion/helm: fix 'n refactor +fuzzy flag
Didn't properly disable fuzzy search when +fuzzy flag was absent.
2018-08-04 18:42:38 +02:00
Henrik Lissner
2c956593cf
completion/helm: don't index HOME
Invoke helm-find-files instead
2018-08-04 16:00:11 +02:00
Henrik Lissner
fb233bd37d
completion/helm: fix evil keybinds in helm
Evil-mode was disabled in the minibuffer due to odd behavior, causing
all helm's evilified keybinds to be inaccessible.
2018-07-30 03:43:43 +02:00
Henrik Lissner
5aef36951d
Goto file keybind in helm-ag-edit buffers 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
a8d41a93c0
Fix helm project search commands
Used ivy variable in helm commands, causing a void-variable error.

Reported by @ar1a
2018-07-24 14:07:13 +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
afa1fe3fc5
Phase out meta keybinds in helm+evil integration
We want to generally avoid meta. M-RET is an exception, and is commonly
used as an "alternate open" key.
2018-06-25 15:45:24 +02: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
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
Henrik Lissner
ce86fa0557
helm-swoop: always split below current window 2018-06-17 17:19:33 +02:00
Henrik Lissner
f8625a62ac
Lazy-load helm-projectile 2018-06-16 15:05:08 +02:00
Henrik Lissner
4122ff4314
Reformat helm package configs 2018-06-16 15:04:27 +02:00
Henrik Lissner
44363cae40
General, minor refactor & revision
Across the board. All the boards.
2018-06-16 12:26:58 +02:00
Henrik Lissner
cdcc4eec5d
Refactor +helm*replace-prompt
In case +helm-global-prompt is nil, which will effectively disable this
advice.
2018-06-15 22:10:40 +02:00
Henrik Lissner
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
Henrik Lissner
641425ab77
Fix "failed" error from +helm/ag{,-from-cwd} #644
Only affected Ag backend.
2018-06-05 19:49:34 +02:00
Henrik Lissner
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
Henrik Lissner
6e6dfc2215
Implement helm project search functionality #644
Adds +helm/project-search, as well as +helm/ag and +helm/ag-from-cwd,
and variants for rg, pt and grep/git-grep, to mirror the functionality
available to :completion ivy.

Also updates the evil ex commands and keybinds
2018-06-02 20:37:02 +02:00
Henrik Lissner
8aa21517a2
Remap swiper => helm-swoop for helm users #644
Plus remove redundant remappings
2018-06-02 14:01:31 +02:00
Henrik Lissner
cc159ed9a9
completion/helm: add-hook! => add-hook
add-hook! is unnecessary for adding 1-to-1 hook.
2018-06-01 13:06:30 +02:00
Henrik Lissner
8f673f52fc
Conform helm posframe code to Doom conventions 2018-06-01 13:03:25 +02:00
Henrik Lissner
a3915dfc91
Merge branch 'develop' into helm-posframe 2018-06-01 13:00:23 +02:00
Henrik Lissner
6536637cec
Add +helm--set-prompt-display 2018-05-31 16:16:24 +02:00
Henrik Lissner
9b3decaaa1
Merge evil-collection-helm into completion/helm 2018-05-31 13:59:21 +02:00
Henrik Lissner
acfa8a0bc1
completion/helm: minor refactor
Remove unnecessary after!/def-package! blocks (settings variables
doesn't require the variables be defined).
2018-05-31 13:59:21 +02:00
Aria
7461b94efe Add posframe def-package! 2018-05-31 13:16:57 +10:00
Henrik Lissner
b94f9b269b
Add helm-flx to helm packages 2018-05-30 10:54:25 +02:00
Henrik Lissner
dcd29762e7
Gate fuzzy search config behind +fuzzy module flag
Fuzzy search, on its own, is inaccurate when individual candidates are long. Helm's non-fuzzy search backend doesn't have this problem. This adds `flx` sorting to fuzzy search to make up for this.
2018-05-30 10:52:44 +02:00
Aria
ded367eef5 Add posframes to helm in emacs 26+ 2018-05-30 13:56:38 +10:00
Aria
ce4327e3a9 completion/helm: cleanup and set some more sensible defaults 2018-05-30 13:46:09 +10:00
Henrik Lissner
e99d5c6624
completion/helm: refactor how helm packages are loaded; fix command remaps 2018-05-25 11:49:59 +02:00
Henrik Lissner
852193dfc5
completion/helm: update command remappings 2018-05-25 00:49:21 +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
Benjamin Reynolds
e38560252b Fix typo causing startup error in helm modules
It looks like an extra letter snuck into a `nil` in 67dab98. This is causing a
startup error on develop.
2018-05-15 09:40:44 -05:00
Henrik Lissner
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
Henrik Lissner
67dab98859
Improve idempotency of Doom config (in case of reloading) 2018-05-14 20:54:58 +02:00
Henrik Lissner
a631c10d05
Exploit new :defer input|buffer across various modules 2018-05-14 20:45:47 +02:00
Henrik Lissner
40bd1da5a5
completion/helm: avoid with-helm-buffer macro #503 #507 2018-05-14 13:05:03 +02:00
Henrik Lissner
9e89c06cf4
Revert "completion/helm: fix void-function with-helm-buffer error"
This reverts commit 0739e8cd0a.

Fixes #512
2018-04-07 08:04:35 -04:00
Henrik Lissner
0739e8cd0a
completion/helm: fix void-function with-helm-buffer error
Presumably caused by eager expansion trying to expand the macro before
helm is loaded.
2018-04-03 04:20:10 -04:00
Henrik Lissner
0cfe8e305e
Bring back aggressive loading of autoloads files #446
package-initialize, once again, isn't called on every startup, which
means package autoloads won't be loaded in most interactive sessions, so
must do it manually for certain packages.
2018-03-07 03:01:17 -05:00
Henrik Lissner
55fd9e2b17
completion/helm: fix and update 2018-03-02 23:26:58 -05:00