Commit graph

299 commits

Author SHA1 Message Date
Henrik Lissner
f5e120eefe
Fix #3219: icon repetition after doom/reload
Due to faulty member detection (`cl-pushnew` uses `eql` by default,
which can't compare compound data structures).
2020-05-26 20:32:55 -04:00
Henrik Lissner
ea18c83c0a
General refactors & reformatting across the board 2020-05-15 01:44:53 -04:00
Henrik Lissner
0e851ace9b
Backport bits of CLI rewrite
The rewrite for Doom's CLI is taking a while, so I've backported a few
important changes in order to ease the transition and fix a couple bugs
sooner.

Fixes #2802, #2737, #2386

The big highlights are:

- Fix #2802: We now update recipe repos *before* updating/installing any
  new packages. No more "Could not find package X in recipe repositories".

- Fix #2737: An edge case where straight couldn't reach a pinned
  commit (particularly with agda).

- Doom is now smarter about what option it recommends when straight
  prompts you to make a choice.

- Introduces a new init path for Doom. The old way:
  - Launch in "minimal" CLI mode in non-interactive sessions
  - Launch a "full" interactive mode otherwise.
  The new way
  - Launch in "minimal" CLI mode *only* for bin/doom
  - Launch is a simple mode for non-interactive sessions that still need
    access to your interactive config (like async org export/babel).
  - Launch a "full" interactive mode otherwise.

  This should fix compatibility issues with plugins that use the
  async.el library or spawn child Emacs processes to fake
  parallelization (like org's async export and babel functionality).

- Your private init.el is now loaded more reliably when running any
  bin/doom command. This gives you an opportunity to configure its
  settings.

- Added doom-first-{input,buffer,file}-hook hooks, which we use to queue
  deferred activation of a number of packages. Users can remove these
  modes from these hooks; altogether preventing them from loading,
  rather than waiting for them to load to then disable them,
  e.g. (after! smartparens (smartparens-global-mode -1)) -> (remove-hook
  'doom-first-buffer #'smartparens-global-mode)

  Hooks added to doom-first-*-hook variables will be removed once they
  run.

  This should also indirectly fix #2386, by preventing interactive modes
  from running in non-interactive session.

- Added `doom/bump-*` commands to make bumping modules and packages
  easier, and `doom/bumpify-*` commands for converting package!
  statements into user/repo@sha1hash format for bump commits.

- straight.el is now commit-pinned, like all other packages. We also
  more reliably install straight.el by cloning it ourselves, rather than
  relying on its bootstrap.el.

  This should prevent infinite "straight has diverged from master"
  prompts whenever we change branches (though, you might have to put up
  with it one more after this update -- see #2937 for workaround).

All the other minor changes:

- Moved core/autoload/cli.el to core/autoload/process.el
- The package manager will log attempts to check out pinned commits
- If package state is incomplete while rebuilding packages, emit a
  simpler error message instead of an obscure one!
- Added -u switch to 'doom sync' to make it run 'doom update' afterwards
- Added -p switch to 'doom sync' to make it run 'doom purge' afterwards
- Replace doom-modules function with doom-modules-list
- The `with-plist!` macro was removed, since `cl-destructuring-bind`
  already serves that purpose well enough.
- core/autoload/packages.el was moved into core-packages.el
- bin/doom will no longer die if DOOMDIR or DOOMLOCALDIR don't have a
  trailing slash
- Introduces doom-debug-variables; a list of variables to toggle on
  doom/toggle-debug-mode.
- The sandbox has been updated to reflect the above changes, also:
  1. Child instances will no longer inherit the process environment of
     the host instance,
  2. It will no longer produce an auto-save-list directory in ~/.emacs.d
2020-05-15 01:33:52 -04:00
chuxubank
8a70dd0379 Change path separator on Windows when using fd
Show slash instead of backslash
2020-05-14 16:07:04 +08:00
Henrik Lissner
29e1398977
Recenter after project search (with counsel) 2020-05-08 16:14:47 -04:00
Henrik Lissner
b51c4fc8b3
Fix projectile on Windows failing to index anything with ripgrep
Due to unescaped glob arguments.

Fixes #2897, and possibly #1803
2020-05-02 17:41:36 -04:00
Henrik Lissner
ea1a1805b3
Fix projectile failing to index symlinks
Fixes cases where, if the contents of your ~/.doom.d were symlinks, fd
and ripgrep wouldn't index them (or recurse into them), so it'd miss out
of many files.

Possibly fixes #1803
2020-05-02 16:28:48 -04:00
Henrik Lissner
e832ec5708
Fix projectile ignoring symlinks
Due to the underlying program (fd) ignoring them.
2020-05-02 13:17:10 -04:00
Rudi Grinberg
ee4b5c61de Improve ivy-rich with counsel-bookmark
This adds a column that displays the path where the bookmark exists.

Signed-off-by: Rudi Grinberg <me@rgrinberg.com>
2020-04-29 16:34:44 -07:00
Gennady Uraltsev
681851dd85 Make rg --path-separator argument work under Windows 2020-04-26 16:52:41 -04:00
Henrik Lissner
8532aa8dbe
Don't null-byte delimit ripgrep file list 2020-04-26 02:01:10 -04:00
Henrik Lissner
3202b68b01
Fix "Found argument '--glob ...' which wasn't expected" error
When using +ivy/projectile-find-file.
2020-04-26 01:52:09 -04:00
Henrik Lissner
632175d1e2
Fix #2322: delete open posframes on doom/reload 2020-04-25 17:02:47 -04:00
Henrik Lissner
2389332b90
Fix #2963: ripgrep backend error for counsel-file-jump 2020-04-24 05:02:19 -04:00
Henrik Lissner
b78fc4eb76
Minor refactor & reformatting across the board 2020-04-08 15:30:10 -04:00
Henrik Lissner
169f9a6121
General, minor refactor & reformatting 2020-03-27 01:25:30 -04:00
Henrik Lissner
f4aa2a8ca7
Bump :completion ivy
abo-abo/swiper@7084d60 -> abo-abo/swiper@5f1d9ce
Yevgnen/ivy-rich@af43aba -> Yevgnen/ivy-rich@0f22aff

Fixes ivy-dispatching-done on Emacs 27+
2020-03-11 22:17:00 -04:00
Henrik Lissner
ed2fb68362
Fix prescient breaking certain counsel commands due to post-sorting 2020-03-03 23:33:53 -05:00
Henrik Lissner
9393680909
Fix counsel-file-jump advice for windows users
Was using the wrong arguments for windows version of ripgrep.
2020-02-24 22:11:36 -05:00
Brice Waegeneire
3f50dad5ee completion/ivy: sort projectile files with prescient 2020-02-22 21:35:15 +01:00
yoavm448
2c312c4f23 Use doom-projectile-fd-binary for fd binary
Don't look for it again
2020-02-09 10:03:37 +02:00
yoavm448
4d393fe9c2 Also try to search for fdfind, not only fd 2020-02-08 19:40:28 +02:00
Henrik Lissner
a34cb1656a
Fix #2393: remap org-set-tags-command to counsel-org-tag 2020-01-23 02:05:46 -05:00
Henrik Lissner
bf60a2a7c6
Don't sort counsel-imenu 2020-01-12 18:12:01 -05:00
Henrik Lissner
25eb9176ad
Fix ivy-prescient disabling fuzzy search
It can set up itself.
2020-01-12 03:07:35 -05:00
Henrik Lissner
ae8dc2749f
Remove ivy-{standard,alternative}-search #2314
Turns out ivy and counsel have a number of hard-coded checks for flx
against ivy--regex-fuzzy:

- https://github.com/abo-abo/swiper/blob/master/ivy.el#L3531
- https://github.com/abo-abo/swiper/blob/master/ivy.el#L3637
- https://github.com/abo-abo/swiper/blob/master/ivy.el#L4643
- https://github.com/abo-abo/swiper/blob/master/counsel.el#L1359
- https://github.com/abo-abo/swiper/blob/master/counsel.el#L1561

This means, by assigning our own delegates around ivy regex functions
will break flx sorting (reported in #2314), and possibly other behavior.
2020-01-06 01:38:51 -05:00
Henrik Lissner
ab994627bc
Add counsel-find-file's actions to counsel-file-jump 2020-01-01 21:19:21 -05:00
Henrik Lissner
f0e05c1a44
Fix C-w in ivy not moving up directory
And ensure C-w doesn't affect kill-ring from minibuffer.
2020-01-01 19:58:52 -05:00
Henrik Lissner
d7d873e11b
Fix counsel-projectile-find-file from occur buffers #2268
counsel-projectile-find-file-action would open the candidate from wrong
buffer.

This is an experimental fix.
2019-12-31 00:04:07 -05:00
Henrik Lissner
fb261a9c65
Fix extra ivy actions for counsel-{rg,find-file} 2019-12-31 00:02:00 -05:00
Henrik Lissner
c57aff9b81
Change how +lookup/online populates initial input
If no selection is active, there is no initial input.
If selection is active, use the selection.

Also remove helm-google package, as the helm functionality is provided
by the core helm package already (and actually works).
2019-12-29 19:24:45 -05:00
Henrik Lissner
6c0d71eb65
completion/ivy: reduce min-chars for counsel-search to 2
From default of 3
2019-12-20 18:33:11 -05:00
Henrik Lissner
8a080e037c
completion/ivy: general refactor 2019-12-20 14:03:35 -05:00
Henrik Lissner
52bf238b2f
completion/ivy: make counsel-search use standard url 2019-12-20 13:53:54 -05:00
Henrik Lissner
e6de13b4c9
Treat +ivy/project-search & +default/project-search as counsel-rg
This gives the former commands access to any actions (on C-o) or counsel
configuration meant for counsel-rg.
2019-12-17 23:31:10 -05:00
Henrik Lissner
cdfef48b64
completion/ivy: fix +fuzzy 2019-12-16 17:49:11 -05:00
Henrik Lissner
eaa5621b36
Update comments 2019-12-15 23:51:59 -05:00
Henrik Lissner
7095bdb7ce
completion/ivy: remove redundant counsel-find-file actions
Many of these are already upstream, but some of them are on different
keys (e.g. j instead of f for other-window).

See https://github.com/abo-abo/swiper/blob/master/counsel.el#L1864-L1875
2019-12-15 18:49:42 -05:00
Henrik Lissner
87f6dab424
completion/ivy: remove unused var; update config
...to reflect our dropping ag/grep support.
2019-12-13 23:00:01 -05:00
Henrik Lissner
a24b750c6c
completion/ivy: fix ivy-re-builders-alist delegates 2019-12-13 22:49:26 -05:00
Henrik Lissner
996188250b
Minor refactors & comment revision 2019-12-06 17:16:34 -05:00
Henrik Lissner
c13b8df5df
Minor refactors & reformatting 2019-12-05 14:56:16 -05:00
Henrik Lissner
d41e4983ec
Bind '<help> t' to load-theme
And remap load-theme to counsel-load-theme.

This replaces the keybind for help-with-tutorial, but `load-theme` is
useful enough to warrant a keybind. `help-with-tutorial` is not.
2019-11-21 14:46:00 -05:00
Alois Janíček
c2d66ccdcf
ivy-posframe: ignore counsel-rg 2019-11-19 13:24:54 +01:00
Henrik Lissner
d2092ae44e
completion/ivy: load counsel earlier
Fixes an issue where counsel was being loaded later than ivy-prescient,
which requires that it be loaded earlier.
2019-11-17 17:56:25 -05:00
Henrik Lissner
b7044b5f32
Fix #2064: partially revert bd4755123
A change unintentionally snuck into bd4755123.
2019-11-15 23:56:08 -05:00
Henrik Lissner
bd4755123f
Replace */tasks commands w/ magit-todos-list
If we want ivy/helm interfaces to it, we should use magit-todos as a
backend.
2019-11-15 22:17:31 -05:00
Henrik Lissner
99cd52e70f
💥 Drop Emacs 25.x support
Emacs 26.1 is Doom's new minimum supported version

Closes #2026
2019-11-08 16:02:06 -05:00
Henrik Lissner
ecace01a36
completion/ivy: remove org-capture remapping
counsel-org-capture isn't very useful when there are so few options.
2019-10-31 23:57:18 -04:00
Henrik Lissner
fd5b92e3f5
completion/ivy: remap evil-show-marks -> counsel-mark-ring 2019-10-27 14:03:45 -04:00