Commit Graph

56 Commits

Author SHA1 Message Date
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
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
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
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
ce86fa0557 helm-swoop: always split below current window 2018-06-17 17:19:33 +02:00
f8625a62ac Lazy-load helm-projectile 2018-06-16 15:05:08 +02:00
4122ff4314 Reformat helm package configs 2018-06-16 15:04:27 +02:00
44363cae40 General, minor refactor & revision
Across the board. All the boards.
2018-06-16 12:26:58 +02:00
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
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
641425ab77 Fix "failed" error from +helm/ag{,-from-cwd} #644
Only affected Ag backend.
2018-06-05 19:49:34 +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
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
8aa21517a2 Remap swiper => helm-swoop for helm users #644
Plus remove redundant remappings
2018-06-02 14:01:31 +02:00
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
8f673f52fc Conform helm posframe code to Doom conventions 2018-06-01 13:03:25 +02:00
a3915dfc91 Merge branch 'develop' into helm-posframe 2018-06-01 13:00:23 +02:00
6536637cec Add +helm--set-prompt-display 2018-05-31 16:16:24 +02:00
9b3decaaa1 Merge evil-collection-helm into completion/helm 2018-05-31 13:59:21 +02:00
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
7461b94efe Add posframe def-package! 2018-05-31 13:16:57 +10:00
b94f9b269b Add helm-flx to helm packages 2018-05-30 10:54:25 +02:00
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
ded367eef5 Add posframes to helm in emacs 26+ 2018-05-30 13:56:38 +10:00
ce4327e3a9 completion/helm: cleanup and set some more sensible defaults 2018-05-30 13:46:09 +10:00
e99d5c6624 completion/helm: refactor how helm packages are loaded; fix command remaps 2018-05-25 11:49:59 +02:00
852193dfc5 completion/helm: update command remappings 2018-05-25 00:49:21 +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
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
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
40bd1da5a5 completion/helm: avoid with-helm-buffer macro #503 #507 2018-05-14 13:05:03 +02:00
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
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
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
55fd9e2b17 completion/helm: fix and update 2018-03-02 23:26:58 -05:00
138ec2bf07 Remove manual loading of pkg-autoloads files
No longer necessary as of 0c80bb42
2018-02-28 17:57:30 -05:00
5ee50c6b53 Move wgrep config from core-editor to completion/{ivy,helm} 2018-01-14 02:04:34 -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
8e875bfa0e Phase out doom-kill-buffer 2018-01-04 03:01:35 -05:00
9d81bc5a8b Major refactor: use-package-always-defer = nil & use :hook
Possibly breaking change: packages are no longer deferred by default.

Addresses #286
2017-12-08 23:14:11 -05:00
ea80992433 Implement :ag, :agcwd, :rg, & :rgcwd commands for helm 2017-12-07 21:43:31 -05:00
bac286e8e2 Remove blank autoload files 2017-11-05 01:16:35 +01:00
6b9849fd57 Add conditional autoload/compile cookies #229 2017-11-05 01:16:35 +01:00
13cf6b3fb6 completion/helm: fix recentf remapping 2017-10-23 19:59:48 +02:00
4984a548d1 Refactor DOOM init & add new init hooks
+ Add doom-init-hook and doom-post-init-hook to simplify Emacs init
  hooks into less ambiguous ones.
+ Attach former after-init-hook and emacs-startup-hook hooks to new doom
  init hooks.
+ Vastly improves daemon and tty support: preventing incorrect colors
  from bleeding across face class barriers, and into GUI Emacs and vice
  versa, when spawned with emacsclient.
+ Fix persp-mode breaking Emacs daemon, and ensuring that initialization
  is done properly in terminal Emacs (and emacsclient frames).
2017-06-12 00:37:14 +02:00
bab738c56c Move helm popup settings to core-popups 2017-06-10 01:53:51 +02:00
0bc182ef1a Refactor helm config; fix remaps; move personal binds 2017-06-09 19:44:02 +02:00
a0a7f3ec42 Fix helm-swoop 2017-06-09 15:40:32 +02:00