codemod
goimports
codemod | goimports | |
---|---|---|
8 | 46 | |
3,895 | 7,215 | |
- | 0.4% | |
0.0 | 9.8 | |
over 3 years ago | 6 days ago | |
Python | Go | |
Apache License 2.0 | 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.
codemod
-
Ohm: A library and language for building parsers, interpreters, compilers, etc.
This is new to me, sounds interesting!
I once used Codemod [0] to migrate an old JS codebase. Would this be a use case for Ohm as well?
[0] https://github.com/facebookarchive/codemod
- Automating Dead Code Cleanup
-
Meta pledges Three-Year sponsorship for Python if GIL removal is accepted
That differs but is a reasonable understanding. I’m instead referring to automations that perform large scale refactoring as handled by Facebook, who would be contributing to this effort.
https://github.com/facebookarchive/codemod
It sounds like what you are describing is what’s known as poly fills which convert code into a variant that maximizes function across implementations which isn’t really applicable here.
-
Automatic Dependency Upgrade Tool (with auto-resolve breaking changes)
That's why I've been working on a tool that automatically upgrades major versions of libraries with breaking changes, the idea is to simplify the process and save developers time and effort by having a bank of transformers (using codemod & jscodeshift) and open source them:
- Python 2 Removed from Debian
-
How Our Engineering Team Used Python's AST to Patch 100,000s of Lines of Code
What they did appears similar to https://github.com/facebook/codemod.
-
Software Is Drowning the World
I think codemod is probably one such tool: https://github.com/facebook/codemod
goimports
- Gopls/v0.15.0
-
How to find all methods which return struct "Foo" (vscode or cli)
Just a guess, but it might be somewhere in gopls https://github.com/golang/tools/tree/master/gopls/doc On this page https://langserver.org/ it says it should support "finding references"
- Major rewrite of gopls released (2 weeks ago)
-
What LSP are y'all using?
Language server protocol. Here’s a good one: https://github.com/golang/tools/blob/master/gopls/README.md
-
Can Someone Explain To Me Like I'm 5
gopls was not able to find modules in your workspace.When outside of GOPATH, gopls needs to know which modules you are working on.You can fix this by opening your workspace to a folder inside a Go module, orby using a go.work file to specify multiple modules.See the documentation for more information on setting up your workspace:https://github.com/golang/tools/blob/master/gopls/doc/workspace.md.
- Latest gopls version still v0.11.0 from December 22?
- GitHub - orijtech/structslop: structslop is a static analyzer for Go that recommends struct field rearrangements to provide for maximum space/allocation efficiency.
-
betteralign - structs field alignment static analyzer for Go
For more gopls settings, you can see files in this folder: https://github.com/golang/tools/tree/master/gopls/doc
-
Linter for explicit hint to interface which gets implemented.
But finding which interface is satisfied by a type is trivial anyways through gopls which integrates conveniently into any LSP supporting IDE (such as VSCode and Goland).
-
Setting up helix for golang
You need to make sure you have Google's lsp server for golang installed.
What are some alternatives?
jscodeshift - A JavaScript codemod toolkit.
gofumpt - A stricter gofmt
comby - A code rewrite tool for structural search and replace that supports ~every language.
nvim-lspconfig - Quickstart configs for Nvim LSP
scala-steward - :robot: A bot that helps you keep your projects up-to-date
goreturns - A gofmt/goimports-like tool for Go programmers that fills in Go return statements with zero values to match the func return types
semgrep - Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
GoLint - [mirror] This is a linter for Go source code. (deprecated)
cinder - Cinder is Meta's internal performance-oriented production version of CPython.
staticcheck
Magnit.Tokenization - Tokenize strings into custom tokens using ordered regex operations.
golines - A golang formatter that fixes long lines