statix
combine
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.
statix
-
Editor support for the nix language?
As others have mentioned, there are a couple of LSP implementations. There's also statix for basic static analysis, as well as a few formatters, including nixpkgs-fmt and alejandra.
-
Chumsky, a parser combinator crate that makes writing error-tolerant parsers with recovery easy and fun!
I use the author's pretty error rendering crate: ariadne, in statix, and it is a delight. Comfy API, loads of customization opts, and very pretty.
- Statix — Lints and Suggestions for the Nix programming language
combine
-
Domain Specific Language embedded in Rust
Combine is also nice to use and actively developed.
-
Hey Rustaceans! Got an easy question? Ask here (9/2022)!
https://crates.io/crates/combine is a decent alternative to Nom. I found it much easier to pick up. I was using it to implement our generalized placeholder syntax in SQLx (which I hope to actually finish at some point): https://github.com/launchbadge/sqlx/blob/a2eda2de2462876a160982e57d73103795e34aa2/sqlx-core/src/placeholders.rs
-
Chumsky, a parser combinator crate that makes writing error-tolerant parsers with recovery easy and fun!
Nice to see support for error recovery with parser combinators! I never got to the point of adding it in combine as I swapped out my language parser(s) to use LALRPOP instead (implementing error recovery for it instead).
-
Hey Rustaceans! Got an easy question? Ask here (42/2021)!
You may want to also look at some of the popular parser combinators like nom and combine. I don't think they do what you are suggesting, though.
What are some alternatives?
git-hooks.nix - Seamless integration of https://pre-commit.com git hooks with Nix.
nom - Rust parser combinator framework
tao - A statically-typed functional language with generics, typeclasses, sum types, pattern-matching, first-class functions, currying, algebraic effects, associated types, good diagnostics, etc.
pest - The Elegant Parser
rnix-lsp - WIP Language Server for Nix! [maintainer=@aaronjanse]
lalrpop - LR(1) parser generator for Rust
pom - PEG parser combinators using operator overloading without macros.
ariadne - A fancy diagnostics & error reporting crate
chomp - A fast monadic-style parser combinator designed to work on stable Rust.
chumsky - Write expressive, high-performance parsers with ease.
git-journal - The Git Commit Message and Changelog Generation Framework :book: