Commit Graph

58 Commits

Author SHA1 Message Date
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
b411cc7856 chore(editor): improve setup of indentation highlight guides 2022-07-15 22:44:24 +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
2b39d5b0d7 chore(use-package): use :preface in favor of :init when defining things 2022-04-22 23:25:56 +01:00
d86f6c4490 feat(language): enable tree-sitter for most languages that are supported 2022-04-19 01:12:42 +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
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
92c16d4dcb feat(language/go): use tree-sitter-mode and tree-sitter-hl-mode 2022-03-10 21:11:26 +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
f79cb11fa2 chore(language/go): update lsp-mode setup for gopls 2022-02-07 10:44:17 +00:00
0ac1c86102 feat(lang/go): add custom lsp-client for golangci-lint-langserver 2021-11-26 21:20:01 +00:00
5849a7b522 feat(lang): enable a few gopls analyzers which are disabled by default 2021-10-06 04:37:19 +01:00
32f23ea33b fix(lang): tweak golines arguments to not use deprecated gofumports 2021-09-15 12:28:41 +01:00
14f394c7ca feat(lsp): allow C-c C-f to perform extra formatting not done by on-save hook 2021-06-29 00:36:36 +01:00
4b228ae317 chore(lang): tweak company-mode idle-delay for Go 2021-06-17 20:49:26 +01:00
b772a6a61d chore(formatting): expand reformatter macro on first use rather than init 2021-05-22 14:34:18 +01:00
dc24cd4f7f feat(lsp): create and use on-save minor modes for lsp-format-buffer and lsp-organize-imports commands 2021-04-07 22:45:59 +01:00
06f0db1035 feat(lang): use reformatter to enable golines formatting
This is much cleaner than hacking go-mode's gofmt function to run
golines. Instead there's a `golines` command, and `golines-on-save-mode`
available.
2021-03-22 11:06:06 +00:00
da5ecfffcd feat(lang): enable manual formatting of go-mode buffers with golines 2021-03-15 23:12:10 +00:00
bc4328c6d5 fix(lang): disable duplicate before-save hooks for go-mode
Those hooks are already defined in the setup for lsp-go.
2021-03-15 23:12:10 +00:00
e74800b5cb fix(lang): ensure Go related env vars are correctly loaded 2021-02-27 23:33:00 +00:00
f41a9daff1 fix(lang): debug current go test now works in non-root module packages 2021-02-14 22:24:47 +00:00
c1865ad309 fix(lang): correctly load dap-mode for go-mode 2021-01-15 02:11:19 +00:00
672d6d819c feat(lang): enable debugging current test in go-mode via dap-mode
Adds a function and keybinding to lookup name of current test via
a gotest.el helper function, and runs dap-mode with relevant config to
debug the specific test name found.
2021-01-04 00:20:09 +00:00
b31b35edee feat(lang): allow gopls language server to modify go.mod
This ensures that the language server can download and use new
packages. Instead of blowing up with errors.
2020-12-25 13:27:18 +00:00
aaf5eddecf chore(lsp): improve lsp setup for golang 2020-12-01 11:06:30 +00:00
9a51b31c9e feat(lang): expand golang-related env vars which are imported 2020-11-15 17:13:19 +00:00
7917f6ac56 feat(debugging): add dap-mode with basic config for Go and Ruby 2020-11-11 10:51:08 +00:00
b784fccb40 chore(lang): set golang lsp config to include placeholders 2020-11-09 10:47:40 +00:00
7ca255db9c feat(lang): format go-mode buffers on save with gofumpt via lsp-mode
Also tweak a couple of other gopls settings, and set a others to their
defaults for the purpose of ensuring they stay that way, and also to
make it more obvious within emacs what options are available.
2020-10-29 13:12:01 +00:00
9d45b1a908 fix(lang): ensure golang setup works with goenv 2020-10-09 10:23:27 +01:00
1c81570ef7 fix(packages): update package definitions to be compatible with latest straight.el
A recent change (https://github.com/raxod502/straight.el/pull/558) to
straight.el's use-package integration led to some of my :straight
definitions throwing errors.

When overriding the package name, do not wrap the real name in parens,
for example:

    ;; bad (no longer works)
    (use-package helm-global-bindings
      :straight (helm))

    ;; good (worked before, still works)
    (use-package helm-global-bindings
      :straight helm)
2020-08-27 23:37:28 +01:00
d1e1f3f81c chore(lang): Cleaner lsp-mode setup for golang 2020-08-11 13:47:21 +01:00
48ad5c8993 chore(lang): Remove flycheck-golangci-lint package, lsp handles linting 2020-04-26 22:26:43 +01:00
38e20c7d62 feat(lang): Add go-gen-test package for generating tabular tests
It uses gotests under the hood.
2020-03-30 22:08:05 +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
3e31bf0f2f chore(lang): Tweak company and whitespace options for golang
Setting company-echo-delay to 0.5 instead of 0 will help reduce unneeded
and intrusive code-completion popups while in the middle of typing. It
seemed like a good idea when I first set it, but after some use, no
thanks.

The whitespace-style tweak, effectively removes "indentation" from the
list of items whitespace-cleanup deals with on save. Indentation is
already being fixed by lsp-mode's before-save hooks, and
whitespace-cleanup was not very intelligent about it. It specifically
replaced all instances of four consecutive spaces in raw string
literals with a tab, which caused issues with multi-line raw strings
containing JSON.
2020-03-30 21:24:34 +01:00
5443b3dbc7 chore(lang): Tweaks projectile setup releated to dart and go 2020-03-30 21:24:01 +01:00
c7e507f5ba chore(editor): Switch back to highlight-symbol package
The auto-highlight-symbol package has a nicer interactive editing mode,
but it messes with the visual presentation for selected region and other
things. So let's go back to the less fancy but more reliable
highlight-symbol package.

Also let's properly disable both symbol highlighting packages in golang
and dart, where lsp-mode provides a better and more intelligent symbol
highlighting feature.
2020-03-30 21:21:10 +01:00
25152e1318 chore(lang): Improve go-mode setup and embrace lsp-mode
Use lsp-mode to format buffer on save, instead of gofmt or goimports.
2020-03-19 21:24:31 +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
2c2e3dcb88 chore: Fix various missing require statements 2020-01-26 21:46:17 +00:00
abff344eb2 refactor(folding): Improve siren-folding module
- Add a siren-folding function which enables all folding-related modes,
  and change other modules to use this new function.
2020-01-26 21:39:46 +00:00
8ed4a4e6f5 refactor: Visual indentation guides
- Switch from highlight-indentation package to highlight-indent-guides.
- Activate visual indentation in a prog-mode hook, rather than doing
  within each individual major mode. It was already done within all
  major modes based on prog-mode anyway.
- Add new siren-display-indetation module and function as a central way
  to enable visual indetation guides. This makes switching the
  underlying package at some point in the future much easier.
2020-01-26 18:53:44 +00:00
f683ce205b Don't use use-package to setup before-save hooks
It causes the package to be lazy-loaded whenever the before-save hook
runs, even if you've not used the package in question yet.
2019-08-17 17:34:16 +01:00
e7d55655d7 Improve lsp-mode keybindings 2019-08-14 12:57:35 +01:00
8687543af3 Wrap up stuff within use-package for the siren-golang module 2019-06-10 20:10:27 +01:00