helloyi / goastch Goto Github PK
View Code? Open in Web Editor NEWgolang AST matcher
golang AST matcher
I love this idea for improving the AST node matching capabilities of golang, and I'd like to contribute. The go/ast package is bare bones with only slight improvements in go/astutil. This is really a shame, since golang is so often used with build tools and has utilities like go generate
for build tooling.
This repo contains powerful node matching capabilities like what's possible in popular parsers (ESLint, Babel). Unfortunately it's not very discoverable - see this post from the SeatGeek software dev blog lamenting the lack of a Golang AST node matcher - or well-documented, so I'd like to help out on both those fronts if I can. To that end, my ideas are:
goastch
and sort the APIs into these capabilities.if err != nil
matcher in the blog post aboveAny('if err != nil', 'if nil != err')
for files not suppressing errors, else no matchgo func() {}()
literal contains a reference to a loop variable in its closure (this is being fixed in Go 1.22, may need to think of a better example)go/analysis
or provide an example of how to do soI also have ideas for features and extending functionality, but I'd love to see this project gain wider visibility. This seems like the lowest-hanging fruit to improve usability & visibility. Please let me know if you're interested and how I can help if so.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.