Commit Graph

797 Commits

Author SHA1 Message Date
5d442da04e fix(dired+): dired operations with multiple selected files work again
There was recently a great tidy-up commit in the Emacs master
branch (commit 1f29ee2d21b57e81a28550a1b31bc8a39406d17b), which removed
a lot legacy stuff. Dired's dired-pop-to-buffer function was among them.

However dired+ plus seems to heavily depend on it, so for now, I've
simply copied the source of the function from the legacy cleanup commit.
2022-10-29 19:57:54 +01:00
5322ca88eb chore(editor/all-the-icons): remove custom project-file category alias
It is now part of the MintSoup's fork of all-the-icons-completion.
2022-10-24 10:40:39 +01:00
eea90adfa6 feat(language/rust): improve lsp-mode setup 2022-10-24 09:50:03 +01:00
082aebbdd5 feat(navigation/consult): improve global and project buffer completion 2022-10-20 00:54:07 +01:00
4d9fdb8414 feat(formatting/prettier-js): enforce use of ~/.prettierrc.js config if it exists 2022-10-19 23:22:03 +01:00
6e9262da2c fix(navigation/helm-ag): correctly set ignore patterns for ripgrep 2022-10-19 23:22:02 +01:00
977f343111 chore(version-control): set tab-width in status and diff magit modes 2022-10-19 23:22:02 +01:00
e015c7f619 chore(editor): move marginalia related code to siren-marginalia module 2022-10-19 23:22:02 +01:00
2e1a66580c chore(language/go): add extra flag for golangci-lint langserver 2022-10-19 23:22:02 +01:00
dfe7250218 feat(editor): switch to fork of all-the-icons-completion 2022-10-19 23:22:02 +01:00
d498f20336 fix(editor): move siren-all-the-icons module from projects to editor directory 2022-10-19 23:21:55 +01:00
938f138ba8 feat(ui): do not enable pixel-scroll-precision-mode on startup
It sometimes causes a long lock-up of Emacs. I believe this is due to a
known issue where the mode can cause excessive garbage collection while
scrolling, combined with my use of gcmh which prevents GC while actively
using Emacs.

Hence my theory is that pixel scrolling is causing tons of memory to be
consumed, but gcmh prevents the GC from running, until it hits a tipping
point where it GCs hundreds of megabytes of memory.

Or, that's my theory at least :P
2022-10-05 00:21:43 +01:00
8d232d4b2b chore: use symbol instead of string for with-eval-after-load 2022-10-05 00:18:59 +01:00
6bf20de60e fix(language/go): attach go-playground setup function correct hook 2022-10-05 00:16:15 +01:00
6d4665f3dd fix(language/go): add tree-sitter query for highlighting struct properties
The field_identifier type was recently removed from tree-sitter-go here:
https://github.com/tree-sitter/tree-sitter-go/pull/71

This means that struct keys are no longer syntax highlighted as
properties, which I dislike. Hence this new query targets the first
element of a key/value pair, and marks the first element as a @property
if it contains an identifier.

I'm not sure if this undoes the goal of removing the field_identifier,
but for now, it resolves my personal annoyance of struct keys not be
highlighted as properties when creating a new instance of the struct.
2022-10-05 00:11:46 +01:00
3b280e2d4c chore(language/go): move custom tree-sitter query to golang module
Instead of keeping the custom Go specific tree-sitter query in the
tree-sitter module, move it the golang module.
2022-10-05 00:11:33 +01:00
276e798100 chore(tools/docker): suppress docker-tramp warning in recent 29.x builds 2022-09-28 01:47:24 +01:00
fd1c57a96c fix(completion/copilot): custom accept fun ignoring trailing "{" chars
In languages that uses "{" for blocks, accepting a Copilot completion
that ends with "{", causing a structural imbalance, which
structural-based packages like smartparens does not like and causes
headaches.

With the custom accept function, trailing "{" chars along with any
whitespace before it, are ignored from Copilot completion. An exception
is made for if the removal of trailing "{" and whitespace yields an
empty completion, in which case the completion is accepted as is.
2022-09-26 14:33:35 +01:00
8bd1889926 chore(completion/copilot): update package straight definition
Just adds setup changes from latest readme of copilot.el.
2022-09-26 14:30:11 +01:00
4d3de5def2 feat(theme): change default light theme to doom-solarized-light 2022-09-22 14:27:14 +01:00
5de69dcc60 chore(theme): improve quick change theme command aliases 2022-09-22 14:27:14 +01:00
ae4da2c248 feat(language/markdown): improve prettier setup
Only wrap lines to fill-column when formatting with prettier if
auto-fill-mode is enabled.
2022-09-22 14:14:17 +01:00
06bf89af61 feat(misc): add new siren-reopen helper function 2022-08-25 22:59:09 +01:00
efccea6cbd feat(language/go): improve setup of go-playground 2022-08-25 22:52:21 +01:00
4e1250f259 chore(editor): minor tweak to how file name is rendered in modeline 2022-08-20 01:13:26 +01:00
1e5761afc7 feat(editor): don't enable vertico-mouse-mode
I basically never use it, but the mouse-over highlighting can be
annoying if the mouse happens to be towards the bottom of the frame.
2022-08-20 01:12:11 +01:00
43d9d309da feat(language/go): configure modes for go.mod and go.work files 2022-08-20 00:36:06 +01:00
c7d1f1d749 feat(editor): replace highlight-symbol with symbol-overlay
symbol-overlay claims to be much faster at highlighting symbols across
large files, and also has better interactive symbol manipulation
features.
2022-08-15 23:56:17 +01:00
f1c0030aff feat(languages/x509): add x509-mode
This allows using M-x x509-dwim to decode any PEM encoded OpenSSL
certs/keys and display all details via OpenSSL.
2022-08-13 16:22:23 +01:00
de722509f5 feat(navigation): setup better-jumper to jump back after goto def style operations 2022-08-13 16:21:17 +01:00
99bbb27f79 feat(navigation): add consult-dir package
Allows handy shortcut to populate minibuffer with directories from
various sources.
2022-08-11 02:44:05 +01:00
19713d30e3 fix(editor): resolve flx-rs+consult issues
This is a more generic and robust fix for flx-rs not behaving correctly
when given consults extra metadata bytes as part of the input candidate.

This should now work with any candidate provided by consult, not just
those that come from the consult-buffer command.
2022-08-11 02:27:29 +01:00
e1fe7ef4e9 fix(themes/doom): correctly load theme when running in terminal
On macOS when running Emacs in a terminal, the ns-system-appearance
variable is defined, but set to nil. We now cater for that, and simply
default to loading the dark theme.
2022-08-10 21:25:47 +01:00
9db27243f7 feat(themes/doom): add support for ns-system-appearance
Emacs will now change theme automatically on macOS when system
appearance is changed between light/dark. And also sets the appropriate
theme on startup too.
2022-07-31 00:29:00 +01:00
e662ee6552 feat(ui/display-time): add config for display-time-mode 2022-07-30 22:20:55 +01:00
1883ba6972 chore: minor cleanup of reformatter lighter strings 2022-07-30 22:01:26 +01:00
646876f1cd feat(language/caddyfile): format on save, use tab indentation
Caddy can now format Caddyfiles with the "caddy fmt" command, so we use
reformatter to create a format-on-save mode for Caddyfiles.

Also there's no need for the weird whitespace-mode workaround, as we now
use tab indentation in Caddyfiles, since that's what "caddy fmt"
produces.
2022-07-30 21:56:24 +01:00
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
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