~rockorager/tree-sitter-hare

ecb348a130a5a308ea1eb68172ca37a685d3892a — Tim Culverhouse 1 year, 6 months ago 5b59f07
chore: update readme

Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
1 files changed, 33 insertions(+), 10 deletions(-)

M README.md
M README.md => README.md +33 -10
@@ 1,14 1,37 @@
# tree-sitter-hare
[Hare](https://harelang.org/) grammar for the popular incremental parser generator [tree-sitter](https://tree-sitter.github.io/tree-sitter/).

**status**: the majority of sources in `examples` (Hare stdlib) is recognized fine - sources containing 
`\\` in strings fail, due to them getting parsed as comments 
as a consequence to tree-sitter precedence rules. 
(Fork of [~ecmma/tree-sitter-hare](https://git.sr.ht/~ecmma/tree-sitter-hare))

For a list of features offered by tree-sitter refer to their site. Summarily, 
one of the main features is context-aware highlight (e.g. local variables are highlighted 
differently than function parameters).
[Hare](https://harelang.org/) grammar for the popular incremental parser
generator [tree-sitter](https://tree-sitter.github.io/tree-sitter/).

This grammar can be used in a number of editors and different situations (github 
uses it, for example) - at this stage it must be inserted manually into your editor. 
See, for example, [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter#advanced-setup).
## Status

_tree-sitter-hare_ is still in development. This fork is based on the work of
~ecmma. The grammar has been updated to the current specification and the tree
significantly flattened in order to make queries easier and parsing faster. The
tree is based on [tree-sitter-c](https://github.com/tree-sitter/tree-sitter-c),
with some help from
[tree-sitter-go](https://github.com/tree-sitter/tree-sitter-go) and
[tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust).

## Usage

### neovim

1. Manually add the parser to your nvim config:

```lua
require("nvim-treesitter.parsers").get_parser_configs().hare = {
	install_info = {
		url = "https://git.sr.ht/~rockorager/tree-sitter-hare",
		files = {"src/parser.c"},
	},
	filetype = "hare",
	requires_generate_from_grammar = true,
}
```

2. Link or copy `queries/highlights.scm` to
   `$XDG_CONFIG_HOME/nvim/queries/hare/highlights.scm`
3. Open nvim, and run :TSInstall hare