diff options
| author | Steven Sojka <steelsojka@gmail.com> | 2020-08-15 06:35:05 -0500 |
|---|---|---|
| committer | Steven Sojka <steelsojka@gmail.com> | 2020-08-16 09:10:09 -0500 |
| commit | 7f7219b379a4e38ff6ad2c4e80c45b63a7c078dc (patch) | |
| tree | 42a03cdb3a487f632b9807f0ae16b185540c0106 /CONTRIBUTING.md | |
| parent | docs: document the new runtime query system (diff) | |
| download | nvim-treesitter-7f7219b379a4e38ff6ad2c4e80c45b63a7c078dc.tar nvim-treesitter-7f7219b379a4e38ff6ad2c4e80c45b63a7c078dc.tar.gz nvim-treesitter-7f7219b379a4e38ff6ad2c4e80c45b63a7c078dc.tar.bz2 nvim-treesitter-7f7219b379a4e38ff6ad2c4e80c45b63a7c078dc.tar.lz nvim-treesitter-7f7219b379a4e38ff6ad2c4e80c45b63a7c078dc.tar.xz nvim-treesitter-7f7219b379a4e38ff6ad2c4e80c45b63a7c078dc.tar.zst nvim-treesitter-7f7219b379a4e38ff6ad2c4e80c45b63a7c078dc.zip | |
feat(definitions): allow setting of scope
Diffstat (limited to 'CONTRIBUTING.md')
| -rw-r--r-- | CONTRIBUTING.md | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 62a38b71c..0e72dcb66 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -177,3 +177,30 @@ Mainly for markup languages. @scope @reference ``` + +#### Definition Scope + +You can set the scope of a definition by setting the `scope` property on the definition. + +For example, a javascript function declaration creates a scope. The function name is captured as the definition. +This means that the function definition would only be available WITHIN the scope of the function, which is not the case. +The definition can be used in the scope the function was defined in. + +```javascript +function doSomething() {} + +doSomething(); // Should point to the declaration as the definition +``` + +```scheme +(function_declaration + ((identifier) @definition.var) + (set! "definition.var.scope" "parent")) +``` + +Possible scope values are: + +- `parent`: The definition is valid in the containing scope and one more scope above that scope +- `global`: The definition is valid in the root scope +- `local`: The definition is valid in the containing scope. This is the default behavior + |
