A work-in-progress language server for SQLite.
Some preliminary info:
- Contains an incremental, error-resilient, recursive descent parser for SQLite
- Contains three different CST implementations (to find the most performant one)
- Uses Ungrammar to generate AST and provide autocomplete suggestions
- The
sqlite.ungramfile is ensured to be in sync with the handwritten parser via tests - Enables context sensitive keyword completions (like in JetBrains DataGrip)
- The
- Can run in the browser with WASM
This project is made possible by studying other projects and resources, especially:
- matklad's:
- Resilient LL Parsing Tutorial article
- Simple but Powerful Pratt Parsing article
- Explaining rust-analyzer video series
- SQLite's:
- Rust lemon-rs:
- Projects that contain SQL code extracted from the official test suite:
- https://github.com/bkiers/sqlite-parser/tree/master/src/test/resources
- https://github.com/codeschool/sqlite-parser/tree/master/test/sql/official-suite
- This project has a script that extracts SQL from the official test suite