From 851231982c99dae75d8ee3ecc7e48e3bfb7d8b22 Mon Sep 17 00:00:00 2001 From: Danil Tarasov Date: Fri, 4 Aug 2023 14:50:14 +0300 Subject: [PATCH] feat(plugin): installation update queries structure, add native nvim-treesitter.parsers instructions --- README.md | 54 +++++++++++++++++++++++++- package.json | 14 ++++++- queries/{ => rescript}/highlights.scm | 0 queries/{ => rescript}/injections.scm | 0 queries/{ => rescript}/locals.scm | 0 queries/{ => rescript}/textobjects.scm | 0 6 files changed, 66 insertions(+), 2 deletions(-) rename queries/{ => rescript}/highlights.scm (100%) rename queries/{ => rescript}/injections.scm (100%) rename queries/{ => rescript}/locals.scm (100%) rename queries/{ => rescript}/textobjects.scm (100%) diff --git a/README.md b/README.md index e387a4d..523f4e6 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,59 @@ Queries for text objects are also included which help you to navigate, select, a ## Installation -- If you want ReScript Tree-sitter in NeoVim, refer to [`nvim-treesitter-rescript`](https://github.com/nkrkv/nvim-tree-sitter-rescript/) installation notes; +### Neovim + +If you want ReScript Tree-sitter in NeoVim, you will first need to register a new parser for it like so: + +```lua +local parser_config = require("nvim-treesitter.parsers").get_parser_configs() +parser_config.rescript = { + install_info = { + url = "https://github.com/nkrkv/tree-sitter-rescript", + branch = "main", + files = { "src/scanner.c" }, + generate_requires_npm = false, + requires_generate_from_grammar = true, + use_makefile = true, -- macOS specific instruction + }, +} +``` + +This will make `TSInstall rescript` globally available. For more persistent approach you should add this parser to your Lua configuration. + +Default configuration detects `.res` and `.resi` files. You can confirm that it's correctly installed by using [`nvim-treesitter/playground`](https://github.com/nvim-treesitter/playground) and invoking `TSPlaygroundToggle` when you are in the ReScript file. + +- Notice that by default you will not see the highlighting! To enable highlighting, you will need to install this package either as a dependency or directly. + +If you are using `lazy.nvim` example configuration will look like so: + +```lua + { + "nvim-treesitter/nvim-treesitter", + dependencies = { + "nkrkv/tree-sitter-rescript" + }, + opts = function(_, opts) -- this is needed so you won't override your default nvim-treesitter configuration + vim.list_extend(opts.ensure_installed, { + "rescript", + }) + + local parser_config = require("nvim-treesitter.parsers").get_parser_configs() + parser_config.rescript = { + install_info = { + url = "https://github.com/nkrkv/tree-sitter-rescript", + branch = "main", + files = { "src/scanner.c" }, + generate_requires_npm = false, + requires_generate_from_grammar = true, + use_makefile = true, -- macOS specific instruction + }, + } + end, + } +``` + +- Legacy way of installing the parser is available via [`nvim-treesitter-rescript`](https://github.com/nkrkv/nvim-tree-sitter-rescript/) - If you want it for other purposes, you probably know what to do. ## Contributing diff --git a/package.json b/package.json index 6a9bbbf..8980c64 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,19 @@ "res", "resi" ], - "injection-regex": "rescript" + "injection-regex": "rescript", + "highlights": [ + "queries/rescript/highlights.scm" + ], + "locals": [ + "queries/rescript/locals.scm" + ], + "injections": [ + "queries/rescript/injections.scm" + ], + "textobjects": [ + "queries/rescript/textobjects.scm" + ] } ] } diff --git a/queries/highlights.scm b/queries/rescript/highlights.scm similarity index 100% rename from queries/highlights.scm rename to queries/rescript/highlights.scm diff --git a/queries/injections.scm b/queries/rescript/injections.scm similarity index 100% rename from queries/injections.scm rename to queries/rescript/injections.scm diff --git a/queries/locals.scm b/queries/rescript/locals.scm similarity index 100% rename from queries/locals.scm rename to queries/rescript/locals.scm diff --git a/queries/textobjects.scm b/queries/rescript/textobjects.scm similarity index 100% rename from queries/textobjects.scm rename to queries/rescript/textobjects.scm