Commit graph

566 commits

Author SHA1 Message Date
Henrik Lissner
76cacb5bfe
💥 Rename def-package! -> use-package!
Calling this pivotal macro "def-package!" has frequently been a source
of confusion. It is a thin wrapper around use-package, and it should be
obvious that it is so. For this reason, and to match the naming
convention used with other convenience macros/wrappers, it is now
use-package!.

Also changes def-package-hook! -> use-package-hook!

The old macros are now marked obsolete and will be removed when straight
integration is merged.
2019-07-23 12:50:45 +02:00
Henrik Lissner
c795a988e6
Conform many modules to new conventions 2019-07-23 12:30:47 +02:00
Henrik Lissner
d7ed52f3c7
Add ui/hydra module
And conforms all existing hydras to the naming convention for
interactive commands, e.g.

  +vc-gutter-hydra -> +vc/gutter-hydra
2019-07-22 23:51:12 +02:00
Henrik Lissner
060ede0e2e
General, minor reformatting across the board
And an offering of blood to our great lord Byte Compiler-sama.
2019-07-22 02:37:45 +02:00
Henrik Lissner
b90dede1ab
💥 Replace package.el/quelpa with straight #374
There are a few kinks to iron out, but for the most part it's done. Doom
Emacs, powered by straight. Goodbye gnutls and elpa/quelpa issues.

This update doesn't come with rollback or lockfile support yet, but I
will eventually include one with Doom, and packages will be (by default,
anyway) updated in sync with Doom.

Relevant threads: #1577 #1566 #1473
2019-07-22 02:30:40 +02:00
Henrik Lissner
149b2617b0
💥 revise hook/var fns naming convention (2/2)
This is second of three big naming convention changes. In this commit,
we change the naming conventions for hook functions and variable
functions:

1. Replace the bar | to indicate a hook function with a -h suffix, e.g.

     doom|init-ui -> doom-init-ui-h
     doom|run-local-var-hooks -> doom-run-local-var-hooks-h

2. And add a -fn suffix for functions meant to be set on variables,
   e.g.

     (setq magit-display-buffer-function #'+magit-display-buffer-fn)

See ccf327f8 for the reasoning behind these changes.
2019-07-22 02:30:38 +02:00
Henrik Lissner
51d3b1b424
💥 revise advice naming convention (1/2)
This is first of three big naming convention updates that have been a
long time coming. With 2.1 on the horizon, all the breaking updates will
batched together in preparation for the long haul.

In this commit, we do away with the asterix to communicate that a
function is an advice function, and we replace it with the '-a' suffix.
e.g.

  doom*shut-up -> doom-shut-up-a
  doom*recenter -> doom-recenter-a
  +evil*static-reindent -> +evil--static-reindent-a

The rationale behind this change is:

1. Elisp's own formatting/indenting tools would occasionally struggle
   with | and * (particularly pp and cl-prettyprint). They have no
   problem with / and :, fortunately.
2. External syntax highlighters (like pygmentize, discord markdown or
   github markdown) struggle with it, sometimes refusing to highlight
   code beyond these symbols.
3. * and | are less expressive than - and -- in communicating the
   intended visibility, versatility and stability of a function.
4. It complicated the regexps we must use to search for them.
5. They were arbitrary and over-complicated to begin with, decided
   on haphazardly way back when Doom was simply "my private config".

Anyhow, like how predicate functions have the -p suffix, we'll adopt the
-a suffix for advice functions, -h for hook functions and -fn for
variable functions.

Other noteable changes:
- Replaces advice-{add,remove}! macro with new def-advice!
  macro. The old pair weren't as useful. The new def-advice! saves on a
  lot of space.
- Removed "stage" assertions to make sure you were using the right
  macros in the right place. Turned out to not be necessary, we'll
  employ better checks later.
2019-07-22 02:27:45 +02:00
Henrik Lissner
854d8ce00a
Fix (null uniquify-buffer-name-style) errors from ivy
Errors out in Emacs 25.x
2019-07-17 16:14:38 +02:00
Henrik Lissner
fb16afb4f2
ivy-prescient-retain-classic-highlighting = t
Because prescient's highlighting turns any assumptions themes make
about ivy's faces on their head, making them look odd.
2019-07-11 17:23:20 +02:00
Henrik Lissner
a201409fdd
Minor refactors across the board 2019-07-10 21:27:12 +02:00
Henrik Lissner
683683736d
Cancel previous company popup when invoking another
Enables uses to switch between backends, e.g. C-x C-s followed by C-x
C-n in insert mode.
2019-07-09 16:12:44 +02:00
Henrik Lissner
563629cbd3
Remove unneeded autoloads 2019-07-06 23:22:27 +02:00
Henrik Lissner
750f45328a
Mark helm/ivy search engine autoloads interactive
Otherwise they don't show up in M-x
2019-07-02 23:17:19 +02:00
Henrik Lissner
9a8faf1df3
completion/ivy: don't ignore order in file search 2019-07-02 13:12:21 +02:00
Henrik Lissner
281ea56643
completion/company: refactor backend resolution
Makes it easier to change company-backends retrospectively (with a hook
or setq-hook!). Also simplifies how backend defaults are stored (no more
of this :derived and :exact business).

Also updates unit tests.
2019-06-29 01:39:23 +02:00
Henrik Lissner
9a02bd8ac8
Minor refactors across the board
- when-let* -> when-let
- Fix projectile-locate-dominating-file for connected remote files
2019-06-26 14:31:06 +02:00
Henrik Lissner
b5c5b7f10d
Move posframe+persp-mode fix to ui/workspaces 2019-06-26 14:31:06 +02:00
Henrik Lissner
86ebe08593
Show dirname in ivy-switch-buffer #1506
Makes buffer names more readable in case uniquify-buffer-name-style is
nil (which is necessary to work around a limitation of persp-mode).
2019-06-26 14:28:40 +02:00
Henrik Lissner
0a7221798b
Start file searchs from basic sh/dash shell
Uses the most basic, uncustomized shell to a) prevent interference
caused by slow shell configs and b) speed up project text searches. This
comes at the cost of isolating these programs from envvars that the user
may have set in their shell configs in order to change
ag/rg/pt/git-grep/grep's behavior.

If this bothers you, change +ivy-file-search-shell to your shell (or
to the value of `shell-file-name`).

Possibly relevant to an issue mentioned in #1260
2019-06-17 15:10:55 +02:00
Henrik Lissner
76143d5a51
Escape pipes in selection for rg project searches
Pipes need to be double-escaped, because they're meaningful to both ivy
and ripgrep, and searches conducted on a selection need to be literal.
2019-06-16 23:04:39 +02:00
Henrik Lissner
e4c8beec68
completion/ivy: update keybinds in README #1491 2019-06-14 12:42:29 +02:00
Henrik Lissner
33ae889e39
Enable evil-collection-ivy 2019-06-14 11:05:54 +02:00
Henrik Lissner
6f3c1c6d00
Fix how project search escapes spaces #1487
When invoking project search (via SPC / p) with an active selection.
2019-06-13 09:37:01 +02:00
Henrik Lissner
4ef345fe50
Fix how project search escapes regexps #1486
When invoking project search (via SPC / p) with an active selection, the
selection is captured and escaped, but was escaped incorrectly.
2019-06-12 20:17:47 +02:00
Henrik Lissner
b1ecd68381
completion/ivy: fix +fuzzy & +prescient
Causd by ivy-re-builders-alist overwriting their modifications.
2019-06-11 18:11:51 +02:00
Henrik Lissner
750d7629e1
Fix {git-,}grep backends for project search #1479 2019-06-10 16:04:48 +02:00
Henrik Lissner
766fc3e4a9
completion/ivy: inhibit ivy completion in evil-ex
`ivy-completion-in-region' struggles with completing certain
+evil-ex-specific constructs, like globs (:e prefix*.el) or vim filename
modifiers (:e %:p:h).
2019-06-10 09:38:56 +02:00
Henrik Lissner
1de21f57eb
completion/ivy: use ivy--regex-ignore-order 2019-06-10 09:38:55 +02:00
Brice Waegeneire
761bc570aa completion/ivy: ivy-posframe upstream update 2019-06-04 00:01:28 +02:00
Andrew Whatson
9f4352006f Increase ivy-flx-limit for improved fuzzy behavior
The default setting of 200 is too low for common use-cases like
`describe-function`, `describe-variable` or `counsel-projectile`.

This has a performance impact, but it's barely noticeable on a fast
machine. If performance is not acceptable, set `ivy-flx-limit` lower or
consider disabling the `+fuzzy` feature entirely.
2019-05-29 00:46:57 +10:00
Andrew Whatson
2a511a6576 Add +prescient option for :completion ivy
This provides an alternative backend for filtering and sorting ivy
searches. Uses prescient instead of flx for fuzzy completion when both
+prescient and +fuzzy are selected.
2019-05-29 00:46:57 +10:00
Henrik Lissner
2f569eda51
Silence malformed function warnings from ivy-hydra 2019-05-21 00:30:42 -04:00
Henrik Lissner
fe36bbca1f
Standardize C-c C-e for ivy wgrep
Removes backtab in favor of standardizing C-c C-e. Already used by helm,
wgrep and dired.
2019-05-21 00:30:42 -04:00
Henrik Lissner
9d5e8fdda4
completion/helm: use ;;;###package cookies 2019-05-20 21:09:11 -04:00
Henrik Lissner
a7069b93f2
Remove vestigial imenu-anywhere remappings 2019-05-20 21:09:10 -04:00
Henrik Lissner
d3cb394ce4
Refactor +ivy/tasks
Just realized ivy passes the candidate in its original data structure to
its handlers.
2019-05-19 02:18:26 -04:00
Henrik Lissner
39d4fa2256
Improve better-jumper integration into ivy
And remove unnecessary set-jump on imenu-after-jump-hook (it should
happen before the jump, not after).
2019-05-19 02:18:26 -04:00
Henrik Lissner
c4a5a1b007
Remove redundant +ivy--switch-buffer transformer
Mentioned in #1408
2019-05-14 10:12:37 -04:00
Henrik Lissner
2fa2639d64
Add value column to {describe,helpful}-variable 2019-05-14 10:06:36 -04:00
Andrew Whatson
876e2a250f Fix ivy-switch-buffer virtual buffer support 2019-05-13 23:45:21 +10:00
Henrik Lissner
04acb8fa98
completion/company: +auto by default
Questions regarding "completion not working" are very common, so the
+auto flag has been removed and idle completion enabled by default.
2019-05-04 19:13:25 -04:00
Henrik Lissner
952a86c2e5
completion/company: revise idle completion in docs 2019-05-01 21:02:29 -04:00
Andrew Whatson
9cdd5b2f99 Fixes for ivy-switch-buffer icons
Corrects the ivy-switch-buffer transformer to use buffer icons (not file
icons), and fixes alignment issues in the icon display.
2019-04-27 00:14:53 +10:00
Henrik Lissner
1911f44e66
completion/ivy: add +icons flag
This replaces +ivy-buffer-icons.

Renders #1362 unnecessary.
2019-04-25 22:20:31 -04:00
Henrik Lissner
a4c5396558
Add better-jumper
Replaces evil's jumplist; makes its functionality available for non evil
users.
2019-04-24 18:16:04 -04:00
Henrik Lissner
77e4cc4d58
💥 Remove :feature category
:feature was a "catch-all" category. Many of its modules fit better in
other categories, so they've been moved:

- feature/debugger -> tools/debugger
- feature/evil -> editor/evil
- feature/eval -> tools/eval
- feature/lookup -> tools/lookup
- feature/snippets -> editor/snippets
- feature/file-templates -> editor/file-templates
- feature/workspaces -> ui/workspaces

More potential changes in the future:

- A new :term category for terminal emulation modules (eshell, term and
  vterm).
- A new :os category for modules dedicated to os-specific functionality.
  The :tools macos module would fit here, but so would modules for nixos
  and arch.
- A new :services category for web-service integration, like wakatime,
  twitter, elfeed, gist and pastebin services.
2019-04-24 18:16:04 -04:00
Henrik Lissner
b0d8a4f548
Merge pull request #1336 from thiagokokada/document-company-tng
Document company +tng flag
2019-04-20 19:20:31 -04:00
Henrik Lissner
7e7d6ae5a2
Fix hydra-ivy keybind on M-o #1342 2019-04-20 02:18:49 -04:00
Thiago Kenji Okada
0beb194e23 Document company +tng flag 2019-04-18 00:23:07 -03:00
Henrik Lissner
0f8baf3f3e
Minor comment tweaks 2019-04-17 11:19:37 -04:00