Commit Graph

25 Commits

Author SHA1 Message Date
7f32de8c49 fix(completion): ensure correct order of completion-at-point-functions
When lsp-mode is active, it tries to ensure it's own
lsp-completion-at-point function is listed before any other functions in
completion-at-point-functions.

This however prevents completions for yasnippet snippets and
files/folders from working, as completion never moved on beyond
lsp-completion-at-point. Previously I had managed to fix this by using
the DEPTH option of add-hook to get siren-yasnippet-capf and cape-file
to run before lsp-completion-at-point.

But it seems lsp-mode has changed from using add-hook to a more custom
method of always ensuring lsp-completion-at-point is always first on the
list. Hence we need to the same using the new siren-prepend macro I
recently added.
2022-07-30 21:48:53 +01:00
2b55cf7bd9 feat(completion/copilot): add new and improve existing keybindings 2022-07-13 18:48:55 +01:00
262a661557 feat(language): stop using visual-line-mode in prog-mode derived modes
It makes more sense for text-mode derived modes.
2022-06-18 00:48:00 +01:00
ce4fd06ccc feat(completion/company): use company-box front-end in GUI mode 2022-05-11 22:04:23 +01:00
7c2beb4cdf fix(completion/copilot): work around freezing issue caused by visual-line-mode 2022-05-11 22:04:22 +01:00
e14bfa37d8 fix(completion/copilot): improve copilot's interaction with company-mode
Previously we only hide company-mode's in-line preview when there was
only a single result. This meant that it didn't show the one result
anywhere.

This allows company-mode to still show it's regular popup even when
there's only one result.
2022-04-28 20:02:06 +01:00
44c4cc93c1 feat(completion): add support for GitHub Copilot via copilot.el
I opted for accepting copilot completions using C-<tab> /
<backtab> (shift+tab) instead of regular tab, as it was often getting in
the way of yasnippet and lsp completion suggestions. This allows a more
explicit acceptance of Copilot suggestions.
2022-04-28 12:08:11 +01:00
aa7e2fe428 style: remove needless line breaks 2022-03-16 20:42:31 +00:00
a8618938bf feat(core): use general.el for keybind definitions nearly everywhere
Primarily this replaces :bind with :general in all use-package calls.
2022-03-14 21:16:15 +00:00
106245af8b feat(completion): improve completion-at-point/company candidates
This applies especially in lsp-mode. Yasnippet snippets now show as
completion candidates if the word at point exactly matches a snippet
keyword, otherwise it'll fallback to normal lsp backed completion.

And it also supports completing file/directory names now too while
lsp-mode is active.

All this is done by modifying completion-at-point-functions after
lsp-mode has done it's trickery with it. Along with a dirty hack to
company-yasnippet to make it only activate on exact matches. Without
this hack, lsp backed completion rarely activates as snippets would have
higher priority if there's any partial matches.
2022-03-14 21:16:13 +00:00
0e6a7b6290 feat(editor): switch to vertico+orderless from selectrum+prescient
Personally I find orderless is giving me better results than prescient
when fuzzy/flex matching is enabled. Hence the switch to orderless.

I also split the modules apart to ensure, that selectrum, vertico,
prescient and orderless can be mixed and matched however and work
correctly.

And the switch from to vertico from selectrum is mostly cause I like
it's wraparound/cycle feature, where end/beginning of the candidate list
will wrap around.
2021-06-24 22:39:17 +01:00
cb1296ed9c feat(completion): insert current company-mode selection with tab
THis is in addition to the RET keybinding.
2021-06-24 22:15:38 +01:00
4b228ae317 chore(lang): tweak company-mode idle-delay for Go 2021-06-17 20:49:26 +01:00
93c22e1bb9 feat(editor): replace ido and amx with selectrum, prescient and marginalia 2021-06-17 20:13:57 +01:00
3d662739ee chore(completion): only load company/fci-mode fix when fci is loaded 2020-08-31 10:05:16 +01:00
07657bbb73 feat(completion): Add configuration for prescient and selectrum
I'm not fully convinced with swapping out ido with selectrum, so I'll
add the configuration for both, without actually loading them, and
instead manually try them out from time to time.

Also, make ivy use prescient for filtering and sorting, as it does a
much better job than ivy itself does by default. But nothing currently
uses ivy either, so it's more for future if I start using ivy somewhere.
2020-03-21 22:52:01 +00:00
6e79446a77 chore(completion): Make company-mode slightly less responsive 2020-01-27 17:48:42 +00:00
a7201c1bd8 chore(completion): Make company-mode more responsive 2020-01-27 01:14:11 +00:00
290ba13b1c chore: Improve loading of prog-mode features into non-prog-mode modes
There are a few major modes which are not based on prog-mode, that I
want to behave like prog-mode. Previously each did nearly all the same
setup that's done via the prog-mode hooks. Now instead let's actually
run runs the hooks for prog-mode.
2020-01-26 20:25:49 +00:00
57f670088d Use use-package's :custom and :custom-face options everywhere 2019-06-10 19:29:58 +01:00
a4d5c15995 Break apart LSP setup into separate modules 2019-04-29 13:22:05 +01:00
220341a083 Fix company-mode / fci-mode incompatibility bug
The original code to fix the incompatibility didn't see to work anymore,
so refactored it a bit to so it goes about things a bit more carefully,
and that seemed to fix it.
2018-12-20 15:52:33 +00:00
61c14f615f Enable lsp-mode for CSS, JS, and TypeScript 2018-12-20 01:11:27 +00:00
b79891ec7a Add lsp-mode package 2018-12-10 22:48:29 +00:00
87a86191db Majorly re-organize modules
- Split large modules into smaller parts (e.g. siren-text-manipulation)
- Organize modules into high level groups:
  - completion
  - core
  - editor
  - languages
  - linting
  - misc
  - navigation
  - projects
  - spelling
  - text-editing
  - version-control
  - windows
  - workspaces
2018-05-20 17:31:11 +01:00