Commit graph

193 commits

Author SHA1 Message Date
Henrik Lissner
627aae436d
completion/helm: add helm-ff-fuzzy-matching
Also resorts the fuzzy-match variable list.
2018-08-24 01:07:55 +02:00
Henrik Lissner
ee73d6c9af
Minor reformatting & comment tweaks 2018-08-21 03:34:39 +02:00
Henrik Lissner
154b3c331b
helm: remap find-library -> helm-locate-library
Is superior to find-library
2018-08-21 02:56:54 +02:00
Henrik Lissner
1a6519aa45
Display search command & directory in helm header
Displays the full command (minus formatting options) and target
directory rather than the unhelpful "The Silver Searcher", even if we're
using ripgrep or pt.
2018-08-17 03:56:45 +02:00
Henrik Lissner
c27ab26fd9
Refactor +helm-file-search & show prompt 2018-08-15 23:34:22 +02:00
Henrik Lissner
c69543fecc
Fix helm not cooperating with other popups
Like the compilation window
2018-08-15 23:32:53 +02:00
Henrik Lissner
11b8ee55a1
Use helm-do-ag instead of helm-ag #805
Fixes project search matching against the leading file name.

And ensures modeline remains disabled.
2018-08-15 21:19:59 +02:00
Henrik Lissner
9d7f8c359e
Add docstrings to helm project search commands 2018-08-13 21:47:56 +02:00
Henrik Lissner
90fa4a8c37
Add helm-ag-fuzzy-match support 2018-08-13 21:47:55 +02:00
Henrik Lissner
5714ff423a
Fix evil jumplist after jumping to ag match
helm-ag would formerly add multiple entries to the jump list. It now
only adds one, and recenters the window when jumping to an ag match.
2018-08-13 21:47:55 +02:00
Henrik Lissner
7d617f1541
Refactor helm project search API
+ Heavily refactored +helm-file-search
+ Removed -z flag from all engines by default
+ Changed the behavior of the universal argument for from-cwd
  interactive commands (e.g. +helm/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 +helm/X and +helm/X-from-cwd commands dynamically.
+ Split +helm/project-search into +helm/project-search-from-cwd.
  Universal arguments are passed from these commands to their delegated
  engine command.
2018-08-13 03:47:33 +02:00
Henrik Lissner
b0c71c2492
Add +helm/workspace-mini command & bind to SPC b b
+ Rename +helm/persp-buffer-list to +helm/workspace-buffer-list
+ Silence compiler warnings when feature/workspaces is disabled
+ Throw error if feature/workspaces is disabled and these commands are
  called.
2018-08-13 03:47:30 +02:00
Henrik Lissner
3b4fd56cac
Force helm posframe to respect min-(width|height)
And enable solaire-mode if available, and unused in origin buffer (to
make it easier to see posframe over non-solaire-mode buffers).
2018-08-11 01:59:37 +02:00
Henrik Lissner
7a216692e8
Don't modify helm-echo-input-in-header-line
This variable isn't reliable; some sources change it, making it
difficult to see our input.
2018-08-10 19:31:22 +02:00
Henrik Lissner
01dcc248cf
Improve posframe/modeline focus fix
switch-to-buffer is more reliable than select-window
2018-08-09 12:57:46 +02:00
Henrik Lissner
3d363d4cb1
completion/helm: refactor posframe support (again) 2018-08-07 14:42:58 +02:00
Henrik Lissner
85e837e06a
Fix wrong-type-arg: integerp by posframe
Due to destructive advice.

Fixes #787
2018-08-07 12:57:21 +02:00
Douglas Wilson
fd13df48a5 Fix helm-execute-persistent-action
With (helm +childframe) in doom! section, without this patch
execute-persistent-action opens an extra non-child frame. This
doesn't play nicely with my tiling window manager.

This patch is taken from helm-posframe, and seems to fix it.
2018-08-07 08:31:50 +12:00
Henrik Lissner
d5363a5a2e
Fix recursive helm error in helm-buffers-list 2018-08-06 11:56:50 +02:00
Henrik Lissner
2aaea3a0d5
Use helpful for helm-apropos 2018-08-06 00:31:24 +02:00
Henrik Lissner
b56404f0ce
Correct docstring for +helm-project-search-engines
Re:git-grep/grep fallback
2018-08-06 00:31:24 +02:00
Henrik Lissner
bd0b7d2341
Remove wgrep from completion/helm (unused package) 2018-08-06 00:31:24 +02:00
Henrik Lissner
d04efc9774
helm-imenu: don't autojump to symbol at point 2018-08-06 00:31:23 +02:00
Henrik Lissner
9c11ee9eef
Fix workspace-restricted helm-buffers-list
Now SPC b b and SPC b B can both enjoy the power of helm-buffers-list,
while the former is restricted to the buffers in the current workspace.
2018-08-06 00:31:23 +02:00
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