GNU/Emacs go-mode
gofumpt
Our great sponsors
GNU/Emacs go-mode | gofumpt | |
---|---|---|
4 | 15 | |
1,364 | 3,038 | |
- | - | |
4.6 | 6.1 | |
3 months ago | 23 days ago | |
Emacs Lisp | Go | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
GNU/Emacs go-mode
- go-mode.el: Emacs mode for the Go programming language
-
setting up emacs for go programming language
It seems that most Go utilities have been submerged into gopls, the LSP server. So a lot of older websites that suggest how to configure go-mode might be outdated, because of the cultural shift away from the unix-ish little, collaborative utilities approach. This means you will need a LSP client -- the Go project has some documentation on that. I'd strongly recommend Eglot, if you are uncertain what to use(0). This page explains how to install gopls with your Go toolchain.
-
Is there an emacs equivalent of "Dash.app" ?
I haven't used Dash, so I don't know the specifics of what it works, but if it works like running pydoc or godoc or whatever Java has inside your text editor, here is a plugin for pydoc inside emacs and here's another for godoc (as part of a larger mode for go). I just tested godoc and it seems to work fine, if a little too basic.
-
How can I use the Go language on emacs?
This question makes very little sense to be honest. Try using spacemacs. It has a go language server runner. Otherwise try this https://github.com/dominikh/go-mode.el
gofumpt
- Defining your variables in your return?
- Gofumpt: A stricter gofmt
- gofumpt: A stricter gofmt
-
Gofumpt: It's like gofmt except more strict
In the roadmap section[1] the author says it's more of an experiment with a possibility that some of the rules might end up in the original 'gofmt' tool. While I agree that Go having a de facto formatter built in is wonderful, there are some absolutely fantastic additions in 'gofumpt' that I do hope wind up in 'gofmt'
---
[1]: https://github.com/mvdan/gofumpt#roadmap
-
Is there any reason not to use go fmt?
No. If you want more strict formatting, you can use https://github.com/mvdan/gofumpt. Apart from using that, there is literally no reason not to use it.
-
go-global-update - the missing command for updating globally installed go executables
I am the author of go-global-update, the missing command to update globally installed go executables (like gofumpt, gopls, gotop, and other CLI tools you may have installed globally in your system - in your GOBIN directory).
-
setting up emacs for go programming language
I think that the one tool that might still be useful outside of gopls is goimports. It can be used as a gofmt replacement, that also automatically manages and removes imports. Gopls can integrate staticcheck and gofumpt, but my understanding is that they have to be installed manually. See the settings section for more on that(1).
-
Is there a better alternative to `gofmt`?
I use gofumpt but I'm pretty sure it doesn't wrap either (and I don't want it to so we're good)
What are some alternatives?
vim-go - Go development plugin for Vim
goimports - [mirror] Go Tools
lsp-mode - Emacs client/library for the Language Server Protocol
goimports-reviser - Right imports sorting & code formatting tool (goimports alternative)
Go for Visual Studio Code
golangci-lint - Fast linters Runner for Go
Watch - Watches for changes in a directory tree and reruns a command in an acme win or just on the terminal.
revive - 🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint
vscode-go - Go extension for Visual Studio Code
go-tools - Staticcheck - The advanced Go linter
vscode-go-doc - An Microsoft Visual Code extension for Golang to print symbol definition to output
pre-commit-golang - Pre-commit hooks for Golang with support for monorepos, the ability to pass arguments and environment variables to all hooks, and the ability to invoke custom go tools.