Commit Graph

759 Commits

Author SHA1 Message Date
3319a5ce36 fix: add missing siren-clang-format module 2022-07-27 21:01:06 +01:00
ca9ec4f7a2 feat(editor/consult): massively simplify consult setup
Remove nearly all custom behavior with consult.

The separate groups for project and non-project buffers within
consult-buffer weren't as useful after switching away from orderless to
fussy for completion scoring, as non-project buffers were often sorted
higher than project buffers.

And there's no need for the custom siren-consult-projectile-buffer
function, as consult-project-buffer does the same thing when configured
to use projectile's root path function.
2022-07-20 22:02:13 +01:00
41742663de chore(editor/fussy): tidy up commented out stuff 2022-07-20 22:02:13 +01:00
b92bd7b19e feat(language/protobuf): format non-buf protobuf files with clang-format 2022-07-20 22:02:12 +01:00
0de0c4ca23 feat(text-editing): replace toggle-quotes with cycle-quotes package
It seems cycle-quotes does a better job than toggle-quotes. For example
it supports literal backtick strings in Go, which toggle-quotes does
not.
2022-07-20 22:02:12 +01:00
86464e80b1 feat(text-editing): add shift-number package 2022-07-20 22:02:12 +01:00
ab7d541148 feat(text-editing): add beginend package which improves M-< and M-> keybindings 2022-07-20 22:02:12 +01:00
92a6db71e6 fix(editor): correctly filter buffer results from consult-buffer
It seems the string candidates produced by consult-buffer have some
extra non-printable bytes appended at the end. These bytes makes flx-rs
not match against the candidate properly.

Consult does add a text property to the candidate string called 'buffer,
which contains the original buffer name.

So for now, we advice the flx-rs-score function and attempt to the
extract the buffer text property from the input candidate and use that
instead. If the candidate has no such text property, we use it as is.
2022-07-20 22:02:12 +01:00
5784db0ff6 chore(language/protobuf): change name of buf-based formatting mode 2022-07-20 22:02:12 +01:00
7c253d986c feat(editor): improve code folding with origami
Add and configure origami, and enable it for majro modes where it seems
to do a good job, and keep using hideshow for other major modes.
2022-07-20 22:02:12 +01:00
33552444ab feat(theme): add alias commands to quickly activate light/dark theme 2022-07-19 00:39:53 +01:00
29db7b63ac feat(editor/fussy): improve completion performance
It seems the fzf-native scoring method can get slow and laggy over
time. It seems the flx-rs method does not, and is overall a bit faster.

However, flx-rs doesn't give exact matches as high of a score as
fzf-native, so scoring might be a bit different than I'm used to. Time
will tell if I'll find it annoying enough to switch back to fzf-native.

Also switch from orderless to fussy's all-completions backed filtering
method. This yields a noticeable improvement in speed, but it does not
support multiple search terms separated by space like orderless does.
Another potential habit I will need to adjust.
2022-07-19 00:39:53 +01:00
66cf3de9dc chore(languages): tidy up buffer-local setq statements 2022-07-18 22:20:08 +01:00
a3c384027d fix(language/protobuf): enforce buf flycheck linter in buf projects 2022-07-18 22:11:45 +01:00
9d72997be0 feat(ui): add solaire-mode 2022-07-16 00:07:45 +01:00
32a704a9e4 chore: minor tidying 2022-07-15 23:40:01 +01:00
05ad42d77e feat(workspaces/tab-bar): add keybindings for tab-duplicate 2022-07-15 23:38:37 +01:00
558e6a97d1 feat(workspaces/tab-bar): easier use of tab groups
Expose tab-group via a keybindings, and also tweak tab-bar group face to
make it less annoying than the default.
2022-07-15 23:36:41 +01:00
3d40d3b0ef feat(editor): add marginalia tab annotator with tab group support 2022-07-15 23:34:03 +01:00
f8ed1029da fix(language/terraform): disable lsp-mode in terraform files
The terraform language server is not very good, very rarely provides any
completions, and when it doesn't it overall is just slow and laggy.

Especially so as lsp-mode is set to syntax highlight with the language
server, causing syntax highlighting to often be about 5 seconds behind
of whatever you're typing.
2022-07-15 22:46:11 +01:00
b411cc7856 chore(editor): improve setup of indentation highlight guides 2022-07-15 22:44:24 +01:00
a1a3c3d9f5 feat(language/protobuf): enable format-on-save with buf format 2022-07-15 22:22:44 +01:00
2a60c0d42f fix(navigation/dired): fix unbinding of M-b 2022-07-15 19:09:19 +01:00
978667fc34 feat(vc/git-commit-mode): enable smartparens-mode and whitespace-mode 2022-07-13 18:54:38 +01:00
2fa38381ee fix(editor): change highlight indentation guides back to 'column mode
It turns out that using the 'character mode causes very noticeable
performance degradation and straight up lag when typing in a lot of
programming languages. Setting it back to 'column seems to resolved this
for me.
2022-07-13 18:49:42 +01:00
2b55cf7bd9 feat(completion/copilot): add new and improve existing keybindings 2022-07-13 18:48:55 +01:00
caf8791363 feat(navigation/dired): improve keybindings and listing switches setup 2022-07-13 18:48:09 +01:00
efde4eaaf2 feat(editor): don't highlight current indent level
Simply render indent guides identical for all levels. Specifically
highlighting the current indent line makes things feel a bit "noisy",
and also doesn't always respond to changes that fast, making things feel
slow too.
2022-06-20 20:22:58 +01:00
f319097821 feat(whitespace): re-enable whitespace mode without newline-mark
Turns out the conflicts with both copilot and highlight-indent-guide was
due to the newline-mark. Hence disable newline-mark and re-enable
whitespace mode.
2022-06-20 20:22:35 +01:00
daefce3143 style(language): replace tab indentation with spaces 2022-06-18 00:48:01 +01:00
7ecfb8fd86 feat(editor): switch indent guide style to a thin line
As I'm no longer using whitespace-mode in prog-mode derived modes, the
cursor movement bug affecting highlight-indent-guides when
whitespace-mode is enabled is no longer an issue for me.

Further details about the highlight-indent-guides conflict with
whitespace-mode is available in this issue:
https://github.com/DarthFennec/highlight-indent-guides/issues/107
2022-06-18 00:48:00 +01:00
25b6493530 fix(completion/copilot): disable whitespace-mode to fix cursor placement issue
When whitespace-mode is enabled, single-line copilot completions makes
the cursor look like it's at the end of the completion rather than in
it's real position.

Issue with gifs showing the behavior is here:
https://github.com/zerolfx/copilot.el/issues/28

For the most part I should be able to live without whitespace-mode in
day to day use, and improvements to the highlight-indent-guides setup
should help.

And worst case, whitespace-mode can always be toggled easily enough.
2022-06-18 00:48:00 +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
5b054bdd07 fix(editor/undo): increase undo limits when using undo-fu
Turns out undo-tree massively increases undo limits, and the defaults
seem to cut off history for me much sooner than I'd like. So I set the
limits to the same high values are undo-tree does.
2022-06-18 00:25:18 +01:00
c5010120da feat(editor): improve styling of highlight-indent-guides package
Use regular face definitions in override theme instead of the percentage
custom vars.
2022-06-18 00:23:16 +01:00
f6ecda7bf4 feat(completion): replace orderless with fussy
Use fussy instead of orderless for filtering and scoring/ordering
completion candidates. This seems to overall order results in a much
better way than just orderless.

Technically orderless is still used to filter the candidate list, but
fzf-native is used to score/order the results.
2022-06-09 00:58:38 +01:00
2b711bc453 chore(lsp): override lsp-face-semhl-label
It seems to have recently been changed to default to the same face as
comments, which I really do not like. Inheriting from
font-lock-keyword-face seems fine though.
2022-06-02 00:01:56 +01:00
c5b149497b fix(navigation/consult): fix custom project directory lookup function 2022-06-01 23:52:41 +01:00
a26c613342 chore: update comment on siren-whitespace module 2022-05-12 01:30:22 +01:00
c8a1170641 chore(navigation/consult): update consult and custom query functions 2022-05-12 00:34:01 +01:00
8e686b7826 chore(language/web-mode); set attr indent offset 2022-05-11 22:06:42 +01:00
682896a67f feat(language/terraform): enable tree-sitter in terraform-mode 2022-05-11 22:04:23 +01:00
1fda5dc0cc fix(language/markdown): disable polymode in markdown-mode
Syntax highlighting within code blocks is nice, but it doesn't always
play that nice, and messes up the syntax highlighting of the rest of the
file quite often.
2022-05-11 22:04:23 +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
ad2e2d2bab feat(text-editing): add siren-insert module
Defines two functions for inserting en-dash and em-dash characters which
are typically difficult to type directly into Emacs.
2022-05-02 10:27:26 +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
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
cb719af306 feat(languages): enable shellcheck linting when using bash language server
Due to how lsp integrates with flycheck, it needs to take over all
linting responsibilities.

Hence we need to use efm-langserver to execute shellcheck for us. It's a
bit messy, but end result works pretty well.
2022-04-27 02:28:24 +01:00