Initial public release of Warp.
Repo-Sync-Origin: warpdotdev/warp-internal@12af1d983b
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# Language Grammars
|
||||
Example of how to add a new language grammar: https://github.com/warpdotdev/warp-internal/pull/11501/files
|
||||
|
||||
## TSLanguage
|
||||
We need a [TSLanguage(https://tree-sitter.github.io/tree-sitter/using-parsers#the-basic-objects) object to parse a source code file. We use open-source libraries that provide functions that create these objects. These functions are usually written in C but we can use them in Rust crates.
|
||||
|
||||
## config.yaml
|
||||
You can find this information on language specific documentation and style guides.
|
||||
|
||||
Another place to look is at Zed's config.toml files, e.g.: https://github.com/zed-industries/zed/blob/85bdd9329b550475aae34340e50abd4e79f2dd82/crates/languages/src/python/config.toml
|
||||
|
||||
**Note:** We don't use custom highlights.scm files - we use arborium's bundled highlighting queries instead.
|
||||
|
||||
## indents.scm
|
||||
This controls how we know when a cursor should be indented relative to the previous line.
|
||||
|
||||
Other code editors need this information so we can base ours on other open-source code editors. We primarily need to support indent and outdent captures. More full-featured code editors will support more advanced features.
|
||||
|
||||
Some example sources to check include:
|
||||
1. https://github.com/helix-editor/helix/blob/101a74bf6edbbfdf9b0628a0bdbbc307ebe10ff2/runtime/queries/python/indents.scm
|
||||
1. https://github.com/zed-industries/zed/blob/85bdd9329b550475aae34340e50abd4e79f2dd82/crates/languages/src/python/indents.scm
|
||||
Reference in New Issue
Block a user