Implement the TextMate grammar catalog used by ECLI syntax highlighting.
Scope:
- map file extension to language id
- map language id to TextMate grammar
- read grammar scopeName and grammar path
- support fallback for unknown files
- do not execute extension code
Done when:
- .py, .js, .ts, .json, .md, .rs, .c, .cpp are mapped deterministically
- malformed or missing grammar data is non-fatal
- tests cover representative grammars from src/ecli/extensions
Implement the TextMate grammar catalog used by ECLI syntax highlighting.
Scope:
Done when: