Commit Graph

71 Commits

Author SHA1 Message Date
a26c613342 chore: update comment on siren-whitespace module 2022-05-12 01:30:22 +01:00
911bdb7182 feat(editor): add extra navigation keybindings for vundo
Simply add ctrl variants of the standard f/b/n/p/a/e keybindings enabled
in vundo-mode-map.
2022-04-28 12:08:11 +01:00
177f075853 feat(editor): replace undo-tree with undo-fu and vundo
Also replace undohist with undo-fu-session.

Overall this seems to yield a more reliable undo history, as undo-fu and
vundo supposedly operate with vanilla emacs undo history state, while
undo-tree supposedly does some custom tweaks to the undo state.
2022-04-26 23:39:48 +01:00
c84bf1dea6 feat(editor): improve whitespace-mode setup and cleanup on save
Move away from the whitespace-cleanup-mode package, and instead simply
define our own whitespace-cleanup-on-save-mode minor-mode that uses a
before-save-hook.
2022-04-26 23:33:57 +01:00
881250f6c4 chore(core): add siren-dir and siren-cache-dir helper functions 2022-04-26 20:00:03 +01:00
2b39d5b0d7 chore(use-package): use :preface in favor of :init when defining things 2022-04-22 23:25:56 +01:00
dad8f778b3 fix(editor): use new marginalia-field-width variable name
The old marginalia-truncate-width variable was deprecated a while ago,
and the deprecated var alias was recently removed from marginalia.
2022-04-19 01:12:42 +01:00
96f3dca1c9 chore(editor): minor tweak to vertico setup 2022-04-07 00:42:04 +01: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
ee91287b52 feat(completion): ignore case in minibuffer completion 2022-03-14 21:16:14 +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
1db4018497 feat(nativation/consult): custom groups for consult-buffer
Using consult-buffer to switch between buffers is now project aware,
meaning when current buffer is in a project, the list of buffers is
split into two groups; project buffers, and other non-project buffers.

The project buffers group is above the other buffers group, meaning it's
very easy to switch to other buffers within the same project, while
still being able to switch to non-project buffers too.

When current buffer is not part of a project, all buffers are shown
together in a single completion group.
2022-02-17 22:08:03 +00:00
4a552aa96d fix(editor/vertico): resolve race-condition issue with projectile-switch-project
Occasionally right after starting Emacs, it was possible to issue a
projectile-switch-project command which ran before my hacky
vertico-directory advice had been added. This should ensure the advice
gets added earlier.
2022-02-07 22:42:17 +00:00
fd1072ae8c chore(editor/marginalia): minor customization tweaks 2022-01-26 22:48:39 +00:00
c80b4e24fa fix(editor/vertico): cleanup if projectile command is canceled 2022-01-18 03:04:53 +00:00
309bc2a611 feat(editor/vertico): improve extension setup
Override default straight recipe for vertico to expose extensions as
packages.

Also create hacky vertico-directory-mode to easily toggle
vertico-directory features on and off.

vertico-directory-mode is then used by a projectile advice to
temporarily disable vertico-directory features while completing results
from projectile. This is required to avoid breaking the
projectile-switch-project and related commands, as the project list is
not a set of files, but vertico-directory-enter thinks it is.
2022-01-18 00:51:34 +00:00
04d83a23cd feat(editor/veritco): add vertico-directory extension 2022-01-16 03:35:49 +00:00
56a577ae91 feat(completion): switch from selectrum to vertico
I finally resolved the lsp-mode bug I had whenever I tried vertico in
the past. It was due to me setting resize-mini-windows instead of
vertico-resize.
2022-01-09 15:41:17 +00:00
f4e1c403b0 feat(editor): add project-buffer marginalia annotator
This is useful for annotating completion-read buffer results which all
belong to a single project, as it removes the project root from the
file path field, showing a relative path to each buffer's file from the
project root.
2021-10-06 01:39:55 +01: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
654eae72ff chore(editor): extract recentf, savehist and uniquify to seperate modules 2021-06-24 19:16:16 +01:00
2d98386d24 chore: fix whitespace 2021-06-20 02:47:59 +01:00
ee895054fd fix(editor): ensure selectrum current item always highlights full line 2021-06-20 01:27:15 +01:00
07b0013c75 feat(editor): add config for vertico + orderless as a alternative to selectrum
I still prefer selectrum for the time being, but I've written the
config, might as well commit it for potential future use or
experimentation.
2021-06-20 01:27:15 +01:00
689dc6a1e4 fix(editor): improve filtering performance of M-x when marginalia is active
The default 'marginalia-annotate-command annotation method for M-x
candidates has a small but perceivable performance impact as you
type. The 'marginalia-annotate-binding method does not have any
perceivable performance impact.

Also I only really care about seeing keybindings in the M-x list, I can
definitely live without command descriptions.
2021-06-19 19:42:22 +01:00
f2614ab89b chore(navigation): place ivy related keybinding within ivy module 2021-06-17 20:26:23 +01:00
49cef56c82 feat(editor): add embark
This is a basic setup, as I'm not very familiar with what is doable with
embark. It also takes over the goto-chg keybindings, cause that package
rarely worked correctly, so I almost never used it.
2021-06-17 20:25:26 +01:00
93c22e1bb9 feat(editor): replace ido and amx with selectrum, prescient and marginalia 2021-06-17 20:13:57 +01:00
263400c4c1 fix(editor): disable undo-tree in terminal buffers 2021-05-24 19:11:12 +01:00
831503060f chore(startup): stop using emacs-startup-hook to trigger package load
Packages that need to be loaded on emacs startup, should just be loaded
through use-package in a non-deferred manner.

It makes no real difference to startup, loading the packages either
slows down emacs before "startup" is complete, or right after it
completes. End result is that Emacs is unresponsive for basically the
same amount of time regardless.
2021-02-17 01:52:58 +00:00
03682066c7 feat(editor): update undo-tree to 0.8
Override the undo-tree package within straight.el to have it grab the
package directly from the official Git repo on GitLab.
2021-02-17 01:52:58 +00:00
7917f6ac56 feat(debugging): add dap-mode with basic config for Go and Ruby 2020-11-11 10:51:08 +00:00
811d14fda0 feat(editor): remove hideshowvis package
The folding indicators in the fringe haven't been working when clicked
for some time now. And they also take precedence over other things
displayed in the fringe like git status.
2020-11-11 10:38:28 +00:00
0e204bc3a7 feat(editor): add common language statements to highlight-symbol-ignore-list 2020-10-09 10:25:31 +01:00
ba22b101ad chore(editor): add missing interactive call to helper commands 2020-09-09 09:53:23 +01:00
c21df804ed chore(editor): fold siren-fci module into siren-display-fill-column module 2020-08-25 01:45:05 +01:00
04b252438b feat(workspaces): hide workspace name in modeline 2020-08-25 01:41:50 +01:00
bbc98decea fix(editor): Make undo-tree a bit more terminal friendly 2020-06-27 14:20:50 +01:00
cdacf31ca0 feat(editor): Replace browse-kill-ring with helm-show-kill-ring 2020-05-10 21:26:24 +01:00
121cbfd9ce chore(editor): Don't display persp name in modeline 2020-05-04 09:09:56 +01:00
f0e8bd2388 chore(editor): Use siren-display-indentation exclusively
Instead of directly using the my current favorite indentation
highlighting package in various places, only use the
siren-display-indentation function. This lets me control it from a
single central place.
2020-03-30 21:57:32 +01:00
9be6c72c18 chore(editor): Ensure ido is configured when amx is initialized 2020-03-21 22:54:54 +00: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
c8802b358b fix(editor): Disable ido-everywhere
Turns out ido-everywhere can yield some rather annoying results. So
let's not do that.
2020-03-20 14:44:58 +00:00
314923217c chore(editor): Load but do not enable which-key-mode 2020-03-19 21:24:32 +00:00
efecb5172c chore(startup): Make various modules more lazy-loaded
This should improve startup speed a little bit.
2020-03-15 02:44:46 +00:00
41ed781f2b chore(editor): Enable faces/styling in ido 2020-03-12 18:59:31 +00:00
bdeda97fb8 chore(editor): Switch amx from ivy to ido completion
Ivy is very nicer and fancy, but it doesn't sort exact matches highest
when using fuzzy matching, ido does.
2020-03-06 18:37:01 +00:00
045520a603 feat(editor): Use auto-highlight-symbol instead of highlight-symbol
It turns out that auto-highlight-symbol is a bit more advanced, with a
MUCH nicer edit symbol feature than highlight-symbol does.
2020-03-06 18:35:11 +00:00
ced8ae8c88 chore(editor): Tweak amx, helm, undo-tree and flyspell keybinds 2020-03-05 22:07:22 +00:00