aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/update-readme.yml25
-rw-r--r--README.md71
-rw-r--r--lua/nvim-treesitter/parsers.lua75
-rwxr-xr-xscripts/update-readme.lua38
4 files changed, 151 insertions, 58 deletions
diff --git a/.github/workflows/update-readme.yml b/.github/workflows/update-readme.yml
new file mode 100644
index 000000000..5bbb3729e
--- /dev/null
+++ b/.github/workflows/update-readme.yml
@@ -0,0 +1,25 @@
+name: Check README parser info
+
+on: [push, pull_request]
+
+jobs:
+ luacheck:
+ name: Check README parser info
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+
+ - name: Prepare
+ run: |
+ sudo apt-get update
+ sudo add-apt-repository universe
+ wget https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage
+ chmod u+x nvim.appimage
+ mkdir -p ~/.local/share/nvim/site/pack/nvim-treesitter/start
+ ln -s $(pwd) ~/.local/share/nvim/site/pack/nvim-treesitter/start
+
+ - name: Compile parsers
+ run: ./nvim.appimage --headless -c "TSInstallSync all" -c "q"
+
+ - name: Check README
+ run: ./nvim.appimage --headless -c "luafile ./scripts/update-readme.lua" -c "q"
diff --git a/README.md b/README.md
index f5689d98f..423ab8c3d 100644
--- a/README.md
+++ b/README.md
@@ -330,40 +330,43 @@ We are looking for maintainers to write query files for their languages.
List of currently supported languages:
-- [x] bash (maintained by @TravonteD)
-- [x] c (maintained by @vigoux)
-- [x] cpp (maintained by @theHamsta, extends C queries)
-- [x] csharp (maintained by @svermeulen)
-- [x] css (maintained by @TravonteD)
-- [x] dart (maintained by @Akin909)
-- [ ] elm
-- [x] fennel (maintained by @TravonteD)
-- [x] go (maintained by @theHamsta, @WinWisely268)
-- [ ] haskell
-- [x] html (maintained by @TravonteD)
-- [x] java
-- [x] javascript (maintained by @steelsojka)
-- [ ] jsdoc
-- [x] json (maintained by @steelsojka)
-- [ ] julia
-- [x] lua (maintained by @vigoux)
-- [ ] markdown
-- [ ] nix
-- [ ] ocaml
-- [x] php (maintained by @tk-shirasaka)
-- [x] python (maintained by @theHamsta)
-- [x] regex (maintained by @theHamsta)
-- [x] rst (maintained by @stsewd)
-- [x] ruby (maintained by @TravonteD)
-- [x] rust (partial support, maintained by @vigoux)
-- [ ] scala
-- [ ] swift
-- [x] toml (maintained by @tk-shirasaka)
-- [x] tree-sitter query language (maintained by @steelsojka)
-- [ ] tsx
-- [x] typescript (maintained by @steelsojka)
-- [ ] vue
-- [ ] yaml
+<!--Update this section by running `nvim --headless -c "luafile ./scripts/update-readme.lua"`-->
+<!--parserinfo-->
+- [x] [bash](https://github.com/tree-sitter/tree-sitter-bash) (maintained by @TravonteD)
+- [x] [c](https://github.com/tree-sitter/tree-sitter-c) (maintained by @vigoux)
+- [x] [c_sharp](https://github.com/tree-sitter/tree-sitter-c-sharp) (maintained by @svermeulen)
+- [x] [cpp](https://github.com/tree-sitter/tree-sitter-cpp) (maintained by @theHamsta)
+- [x] [css](https://github.com/tree-sitter/tree-sitter-css) (maintained by @TravonteD)
+- [x] [dart](https://github.com/UserNobody14/tree-sitter-dart) (maintained by @Akin909)
+- [ ] [elm](https://github.com/razzeee/tree-sitter-elm)
+- [x] [fennel](https://github.com/travonted/tree-sitter-fennel) (maintained by @TravonteD)
+- [x] [go](https://github.com/tree-sitter/tree-sitter-go) (maintained by @theHamsta, @WinWisely268)
+- [ ] [haskell](https://github.com/tree-sitter/tree-sitter-haskell)
+- [x] [html](https://github.com/tree-sitter/tree-sitter-html) (maintained by @TravonteD)
+- [x] [java](https://github.com/tree-sitter/tree-sitter-java) (maintained by @p00f)
+- [x] [javascript](https://github.com/tree-sitter/tree-sitter-javascript) (maintained by @steelsojka)
+- [x] [jsdoc](https://github.com/tree-sitter/tree-sitter-jsdoc) (maintained by @steelsojka)
+- [x] [json](https://github.com/tree-sitter/tree-sitter-json) (maintained by @steelsojka)
+- [ ] [julia](https://github.com/tree-sitter/tree-sitter-julia)
+- [x] [lua](https://github.com/nvim-treesitter/tree-sitter-lua) (maintained by @vigoux)
+- [ ] [markdown](https://github.com/ikatyang/tree-sitter-markdown)
+- [ ] [nix](https://github.com/cstrahan/tree-sitter-nix)
+- [x] [ocaml](https://github.com/tree-sitter/tree-sitter-ocaml) (maintained by @undu)
+- [x] [php](https://github.com/tree-sitter/tree-sitter-php) (maintained by @tk-shirasaka)
+- [x] [python](https://github.com/tree-sitter/tree-sitter-python) (maintained by @stsewd, @theHamsta)
+- [x] [Tree-sitter query language](https://github.com/nvim-treesitter/tree-sitter-query) (maintained by @steelsojka)
+- [x] [regex](https://github.com/tree-sitter/tree-sitter-regex) (maintained by @theHamsta)
+- [x] [rst](https://github.com/stsewd/tree-sitter-rst) (maintained by @stsewd)
+- [x] [ruby](https://github.com/tree-sitter/tree-sitter-ruby) (maintained by @TravonteD)
+- [x] [rust](https://github.com/tree-sitter/tree-sitter-rust) (maintained by @vigoux)
+- [ ] [scala](https://github.com/tree-sitter/tree-sitter-scala)
+- [ ] [swift](https://github.com/tree-sitter/tree-sitter-swift)
+- [x] [toml](https://github.com/ikatyang/tree-sitter-toml) (maintained by @tk-shirasaka)
+- [ ] [tsx](https://github.com/tree-sitter/tree-sitter-typescript)
+- [x] [typescript](https://github.com/tree-sitter/tree-sitter-typescript) (maintained by @steelsojka)
+- [ ] [vue](https://github.com/ikatyang/tree-sitter-vue)
+- [ ] [yaml](https://github.com/ikatyang/tree-sitter-yaml)
+<!--parserinfo-->
# Roadmap
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index d7a87d629..c63161ad4 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -8,14 +8,16 @@ list.javascript = {
url = "https://github.com/tree-sitter/tree-sitter-javascript",
files = { "src/parser.c", "src/scanner.c" },
},
- used_by = { 'javascriptreact' }
+ used_by = { 'javascriptreact' },
+ maintainers = {"@steelsojka"},
}
list.c = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-c",
files = { "src/parser.c" }
- }
+ },
+ maintainers = {"@vigoux"},
}
list.cpp = {
@@ -24,41 +26,47 @@ list.cpp = {
files = { "src/parser.c", "src/scanner.cc" }
},
used_by = { "cuda" },
+ maintainers = {"@theHamsta"},
}
list.rust = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-rust",
files = { "src/parser.c", "src/scanner.c" },
- }
+ },
+ maintainers = {"@vigoux"},
}
list.lua = {
install_info = {
url = "https://github.com/nvim-treesitter/tree-sitter-lua",
files = { "src/parser.c", "src/scanner.cc" }
- }
+ },
+ maintainers = {"@vigoux"},
}
list.python = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-python",
files = { "src/parser.c", "src/scanner.cc" },
- }
+ },
+ maintainers = {'@stsewd', "@theHamsta"},
}
list.go = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-go",
files = { "src/parser.c" },
- }
+ },
+ maintainers = {"@theHamsta", "@WinWisely268"},
}
list.ruby = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-ruby",
files = { "src/parser.c", "src/scanner.cc" },
- }
+ },
+ maintainers = {'@TravonteD'},
}
list.bash = {
@@ -67,28 +75,32 @@ list.bash = {
files = { "src/parser.c", "src/scanner.cc" },
},
used_by = { "zsh" },
- filetype = 'sh'
+ filetype = 'sh',
+ maintainers = {"@TravonteD"},
}
list.php = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-php",
files = { "src/parser.c", "src/scanner.cc" },
- }
+ },
+ maintainers = {"@tk-shirasaka"},
}
list.java = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-java",
files = { "src/parser.c" },
- }
+ },
+ maintainers = {"@p00f"},
}
list.html = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-html",
files = { "src/parser.c", "src/scanner.cc" },
- }
+ },
+ maintainers = {"@TravonteD"},
}
list.julia = {
@@ -102,21 +114,24 @@ list.json = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-json",
files = { "src/parser.c" },
- }
+ },
+ maintainers = {"@steelsojka"},
}
list.css = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-css",
files = { "src/parser.c", "src/scanner.c" },
- }
+ },
+ maintainers = {"@TravonteD"},
}
list.ocaml = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-ocaml",
files = { "src/parser.c", "src/scanner.cc" },
- }
+ },
+ maintainers = {'@undu'},
}
list.swift = {
@@ -131,7 +146,8 @@ list.c_sharp = {
url = "https://github.com/tree-sitter/tree-sitter-c-sharp",
files = { "src/parser.c", "src/scanner.c" },
},
- filetype = 'cs'
+ filetype = 'cs',
+ maintainers = {'@svermeulen'},
}
list.typescript = {
@@ -139,7 +155,8 @@ list.typescript = {
url = "https://github.com/tree-sitter/tree-sitter-typescript",
files = { "src/parser.c", "src/scanner.c" },
location = "tree-sitter-typescript/typescript"
- }
+ },
+ maintainers = {"@steelsojka"},
}
list.tsx = {
@@ -177,7 +194,8 @@ list.toml = {
install_info = {
url = "https://github.com/ikatyang/tree-sitter-toml",
files = { "src/parser.c", "src/scanner.c" },
- }
+ },
+ maintainers = {"@tk-shirasaka"},
}
list.vue = {
@@ -189,7 +207,7 @@ list.vue = {
list.elm = {
install_info = {
- url = "https://github.com//razzeee/tree-sitter-elm",
+ url = "https://github.com/razzeee/tree-sitter-elm",
files = { "src/parser.c", "src/scanner.cc" },
}
}
@@ -212,21 +230,24 @@ list.dart = {
install_info = {
url = "https://github.com/UserNobody14/tree-sitter-dart",
files = { "src/parser.c", "src/scanner.c" },
- }
+ },
+ maintainers = {"@Akin909"},
}
list.rst = {
install_info = {
url = "https://github.com/stsewd/tree-sitter-rst",
files = { "src/parser.c", "src/scanner.c" },
- }
+ },
+ maintainers = {"@stsewd"},
}
list.fennel = {
install_info = {
url = "https://github.com/travonted/tree-sitter-fennel",
files = { "src/parser.c" },
- }
+ },
+ maintainers = {'@TravonteD'},
}
-- Parsers for injections
@@ -234,21 +255,25 @@ list.regex = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-regex",
files = { "src/parser.c" }
- }
+ },
+ maintainers = {"@theHamsta"},
}
list.jsdoc = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-jsdoc",
files = { "src/parser.c" }
- }
+ },
+ maintainers = {"@steelsojka"},
}
list.query = {
install_info = {
url = "https://github.com/nvim-treesitter/tree-sitter-query",
files = { "src/parser.c" }
- }
+ },
+ readme_name = "Tree-sitter query language",
+ maintainers = {"@steelsojka"},
}
local M = {
@@ -343,3 +368,5 @@ function M.get_buf_lang(bufnr)
end
return M
+
+
diff --git a/scripts/update-readme.lua b/scripts/update-readme.lua
new file mode 100755
index 000000000..8cc91f86d
--- /dev/null
+++ b/scripts/update-readme.lua
@@ -0,0 +1,38 @@
+-- Execute as `nvim --headless -c "luafile ./scripts/update-readme.lua"`
+local parsers = require 'nvim-treesitter.parsers'.get_parser_configs()
+local sorted_parsers = {}
+
+for k, v in pairs(parsers) do
+ table.insert(sorted_parsers, {name = k, parser = v})
+end
+
+table.sort(sorted_parsers, function(a, b) return a.name < b.name end)
+
+local generated_text = ''
+
+for _, v in ipairs(sorted_parsers) do
+ local link = '['..(v.parser.readme_name or v.name)..']('..v.parser.install_info.url..')'
+
+ if v.parser.maintainers then
+ generated_text = generated_text..
+ '- [x] '..link..' (maintained by '..table.concat(v.parser.maintainers, ', ')..')\n'
+ else
+ generated_text = generated_text..
+ '- [ ] '..link..'\n'
+ end
+end
+
+print(generated_text)
+print("\n")
+
+local readme_text = table.concat(vim.fn.readfile('README.md'), '\n')
+
+local new_readme_text = string.gsub(readme_text, "<!%-%-parserinfo%-%->.*<!%-%-parserinfo%-%->",
+ "<!--parserinfo-->\n"..generated_text.."<!--parserinfo-->")
+vim.fn.writefile(vim.fn.split(new_readme_text, '\n'), "README.md")
+
+if string.find(readme_text, generated_text, 1, 'plain') then
+ vim.cmd('q')
+else
+ vim.cmd('cq')
+end