Commit Graph

720 Commits

Author SHA1 Message Date
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
1a2682da2a chore(languages): move .zsh association to siren-sh module 2022-04-27 02:27:45 +01:00
d7b13eafdf chore(ui): fix docstring for siren-pixel-scroll-mode 2022-04-26 23:42:25 +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
16ad0402a2 fix(ui/pixel-scroll): fix typo with siren-pixel-scroll-mode init 2022-04-22 23:34:57 +01:00
2b39d5b0d7 chore(use-package): use :preface in favor of :init when defining things 2022-04-22 23:25:56 +01:00
be595062e6 feat(ui): define custom siren-pixel-scroll-mode
This makes it easy to toggle all per-pixel scrolling related settings on
and off.
2022-04-22 22:44:22 +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
d86f6c4490 feat(language): enable tree-sitter for most languages that are supported 2022-04-19 01:12:42 +01:00
846c13881e fix(navigation): resolve load order between consult and projectile 2022-04-19 01:12:42 +01:00
d85671a44c fix(text-editing): use wildcard in tempel-path
After an update to tempel, it seems tempel-path must point to a file, or
a wildcard matching one or more files.
2022-04-16 23:54:29 +01:00
3630c66930 chore(workspaces): minor improvement to custom tab format 2022-04-16 23:17:44 +01:00
f0f7c53cb3 feat(ui): enable pixel-scroll-precision-mode in GUI if available 2022-04-07 01:42:18 +01:00
96f3dca1c9 chore(editor): minor tweak to vertico setup 2022-04-07 00:42:04 +01:00
aa7e2fe428 style: remove needless line breaks 2022-03-16 20:42:31 +00:00
27acd5edca chore(core): replace final :bind with :general which was previously missed 2022-03-16 20:42:08 +00:00
6bada58d49 feat(snippets): add wip config for tempel to try it out 2022-03-14 21:16:15 +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
ee91287b52 feat(completion): ignore case in minibuffer completion 2022-03-14 21:16:14 +00:00
0b7ecb91a2 feat(language/markdown): add vmd-mode to preview markdown via vmd 2022-03-14 21:16:14 +00:00
e8978f7b44 feat(projects): enable all-the-icons 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
b742c9026f feat(snippets): disable prog-mode snippets from yasnippet-snippets
The prog-mode snippets are very basic, a bit a annoying, as they
contain a couple of single-character snippets which conflict with common
variable names in Go.
2022-03-14 11:58:47 +00:00
7da944b04d feat(language/go): add -race flag to gotest invocations 2022-03-14 11:58:47 +00:00
4ea4f6dc95 chore(completion): remove needless company-mode references
Since we enable global-company-mode, explicitly enabling it in the setup
for various major modes does nothing. But it does tie the code to
company mode, making it harder to try alternatives like corfu.
2022-03-14 11:58:47 +00:00
246a459622 fix(navigation): remove ctrlf package in favor of isearch
Visually ctrlf is very nice, but it seems one of it's features is to
stay active in the mini-buffer until explicitly cancelled. This can
easily lead to annoyance if you mess up a C-x C-s keybind and then move
on to other buffers and such, as ctrlf will still be active.

Regular isearch however will dismiss itself as soon as you do anything
other than typing in a search query. Hence causing a lot less annoyance
for me.
2022-03-10 21:11:52 +00:00
92c16d4dcb feat(language/go): use tree-sitter-mode and tree-sitter-hl-mode 2022-03-10 21:11:26 +00:00
6f422773a5 feat(language/markdown): enable polymode in markdown buffers 2022-02-23 12:11:52 +00:00
75543de052 feat(language/ssh-config): add custom file path to mode list 2022-02-23 12:11:18 +00:00
ae6877668f chore(projects): remove left-over "C-c b" keybinding from projectile
"C-c b" is now handled by consult via a custom
siren-consult-projectile-buffer function.
2022-02-23 12:11:17 +00:00
96d5bab074 fix(navigation): disable direx as it is broken on recent Emacs 29.x builds 2022-02-23 12:11:17 +00:00
2554669fea feat(language/go): improve and fix usage of gotest package
- Fix issue where gotest could not be used from non-test files in Emacs
  28.x or later.
- Bind "C-c , t" to ff-find-other-file to mimic behavior in Ruby via
  rspec-mode.
- Configure gotest to always run tests with "-count=1" to avoid cached
  results, so it's easier to notice and handle flickering tests.
2022-02-23 12:11:17 +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
1a41eea77e fix(nativation/helm): resolve helm loading issue after update 2022-02-09 00:35:39 +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
d6d7b3a450 fix(docs/helpful): add workarounds for recent Emacs 29.x issues
There's been a couple of recent changes in Emacs' master branch which
has affected the helpful package. These changes work around both issues,
and seems to let helpful keep working as before.
2022-02-07 22:40:26 +00:00
27fae46664 fix(ui): prevent tab-bar being visible in lsp-ui-doc child frame 2022-02-07 10:45:42 +00:00
f79cb11fa2 chore(language/go): update lsp-mode setup for gopls 2022-02-07 10:44:17 +00:00