Commit Graph

45 Commits

Author SHA1 Message Date
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
57f670088d Use use-package's :custom and :custom-face options everywhere 2019-06-10 19:29:58 +01:00
7385a6e015 Remove commented out and no longer use go related packages 2019-03-26 01:32:59 +00:00
448f7fe268 Have go-test use verbose output 2019-03-26 01:32:59 +00:00
8f011c0c24 Initial go-mode updates for go modules
This also changes from using gocode and company for auto-completion, to
using lsp-mode with the bingo language server, and company as the
completion front-end.
2019-01-28 11:37:01 +00:00
5406bc8eb1 Configure golang and ruby to use lsp-mode 2018-12-10 23:59:32 +00:00
b3be2b8531 Configure language specific projectile ignore dirs in lang modules 2018-06-06 23:43:20 +01:00
e3325888f4 Add go-dlv package 2018-06-06 23:18:51 +01:00
87a86191db Majorly re-organize modules
- Split large modules into smaller parts (e.g. siren-text-manipulation)
- Organize modules into high level groups:
  - completion
  - core
  - editor
  - languages
  - linting
  - misc
  - navigation
  - projects
  - spelling
  - text-editing
  - version-control
  - windows
  - workspaces
2018-05-20 17:31:11 +01:00