aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md96
1 files changed, 89 insertions, 7 deletions
diff --git a/README.md b/README.md
index 7a677f2bc..afedbc400 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ Treesitter configurations and abstraction layer for Neovim.
## Installation
-You can install `nvim-treesitter` with your favorite package manager, or using the default `pack` feature of neovim !
+You can install `nvim-treesitter` with your favorite package manager, or using the default `pack` feature of Neovim!
### Using a package manager
@@ -79,19 +79,101 @@ bash [✗] not installed
tsx [✗] not installed
```
-And now you should be able to use every functionnality `nvim-treesitter` provides !
+And now you should be able to use every functionality `nvim-treesitter` provides!
+
+## Setup
+
+in your `init.vim`:
+
+```lua
+lua <<EOF
+require'nvim-treesitter.configs'.setup {
+ highlight = {
+ enable = true, -- false will disable the whole extension
+ disable = { 'c', 'rust' }, -- list of language that will be disabled
+ },
+ incremental_selection = { -- this enables incremental selection
+ enable = true,
+ disable = { 'cpp', 'lua' },
+ keymaps = { -- mappings for incremental selection (visual mappings)
+ node_incremental = "<leader>e", -- "grn" by default,
+ scope_incremental = "<leader>f" -- "grc" by default
+ }
+ },
+ node_movement = { -- this enables cursor movement in node hierarchy
+ enable = true,
+ disable = { 'cpp', 'rust' },
+ keymaps = { -- mappings for node movement (normal mappings)
+ move_up = "<a-k>", -- default is to move with alt key hold
+ move_down = "<a-j>",
+ move_left = "<a-h>",
+ move_right = "<a-l>",
+ }
+ },
+ ensure_installed = 'all' -- one of 'all', 'language', or a list of languages
+}
+EOF
+```
+
+## Commands
+
+Each feature can be enabled or disabled by different means:
+```vim
+:TSBufEnable {module} " enable module on current buffer
+:TSBufDisable {module} " disable module on current buffer
+:TSEnableAll {module} [{ft}] " enable module on every buffer. If filetype is specified, enable only for this filetype.
+:TSDisableAll {module} [{ft}] " disable module on every buffer. If filetype is specified, disable only for this filetype.
+:TSModuleInfo [{module}] " list information about modules state for each filetype
+```
## Features and Roadmap
-The goal of `nvim-treesitter` is both to provide a simple and easy way to use the interface for treesitter in neovim,
-but also to add some functionnalities to it:
+The goal of `nvim-treesitter` is both to provide a simple and easy way to use the interface for Treesitter in Neovim,
+but also to add some functionalities to it:
Some of these features are :
- - [ ] Incremental selection
+ - [x] Incremental selection
- [ ] Syntax based code folding
- - [ ] Consistent syntax highlighting
+ - [x] Consistent syntax highlighting (the api is not quite stable yet)
+ - [x] Cursor movement in node hierachy
+ - [x] Statusline indicator (`require'nvim-treesitter'.statusline(size)`)
You can find the roadmap [here](https://github.com/nvim-treesitter/nvim-treesitter/projects/1).
-The roadmap and all features of this plugin are open to change, and any suggestion will be highly apreciated !
+The roadmap and all features of this plugin are open to change, and any suggestion will be highly appreciated!
+
+## Supported Languages
+
+For treesitter to work, we need to use query files such as those you can find in `queries/{lang}/{locals,highlights}.scm`
+
+We are looking for maintainers to write query files for their languages.
+
+List of currently supported languages:
+- [x] lua (maintained by @vigoux)
+- [x] ruby (maintained by @TravonteD)
+- [ ] c
+- [ ] go
+- [ ] cpp
+- [ ] rust
+- [ ] python
+- [ ] javascript
+- [ ] typescript
+- [ ] tsx
+- [ ] json
+- [ ] html
+- [ ] csharp
+- [ ] swift
+- [ ] java
+- [ ] ocaml
+- [ ] css
+- [ ] julia
+- [ ] php
+- [ ] bash
+- [ ] scala
+- [ ] haskell
+- [ ] toml
+- [ ] vue
+- [ ] elm
+- [ ] yaml
+- [ ] nix
## Troubleshooting
Before doing anything run `:checkhealth nvim_treesitter`. This will help you find where the bug might come from.