OCaml TypeScript Projects
Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.Project mention: AST-grep(sg) is a CLI tool for code structural search, lint, and rewriting | news.ycombinator.com | 2023-12-10
Well, when I seach for "semgrep", I get a very nice corporate landing page with a "Book Demo" button. Which is a level of hassle that just isn't worth it for smaller teams, because "Book Demo" usually means "We're going to try to do a dance to see how much money we can extract from you." Which smaller teams may only want to do for a handful of key tools.
(4 years ago, I was more willing to put up with enterprise licensing. But in the last two years, I've seen way too many enterprise vendors try to squeeze every penny they can get from existing clients. An enterprise sales process now often means "Expect 30% annual price hikes once you're in too deep to back out.")
There's also an open source "semgrep" project here: https://github.com/semgrep/semgrep. But this seems to be basically a vulernability scanner, going by the README.
Whereas AST-grep seems to focus heavily on things like:
1. One-off searching: "Search my tree for this pattern."
2. Refactoring: "Replace this pattern with this other pattern."
AST-grep also includes a vulnerability scanning mode like semgrep.
It's possible that semgrep also has nice support for (1) and (2), but it isn't clearly visible on their corporate landing page or the first open source README I found.
A code rewrite tool for structural search and replace that supports ~every language.Project mention: Meet ast-grep: a Rust-based tool for code searching, linting, rewriting using AST | /r/rust | 2023-05-11
How does it compare to https://github.com/comby-tools/comby, which can work on languages it doesnt even have grammars for (to a degree)
Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.
OCaml TypeScript related posts
How should I handle arrays of Result monads? Should I unwrap values?
2 projects | /r/functionalprogramming | 15 Feb 2023
Boxed: Functional utility types and functions for TypeScript
From TypeScript to ReScript
12 projects | news.ycombinator.com | 12 Jan 2022