aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/update-readme.lua
diff options
context:
space:
mode:
authorStephan Seitz <stephan.seitz@fau.de>2020-08-15 18:12:37 +0200
committerThomas Vigouroux <39092278+vigoux@users.noreply.github.com>2020-08-25 14:58:28 +0200
commit7c9ffe9e190cd954dc56fac74d5bf80448cb4b8c (patch)
tree623cf66b0138176bda22cfa97a9ff92353cd6053 /scripts/update-readme.lua
parentfix(locals): add nil guard for definition id creation (diff)
downloadnvim-treesitter-7c9ffe9e190cd954dc56fac74d5bf80448cb4b8c.tar
nvim-treesitter-7c9ffe9e190cd954dc56fac74d5bf80448cb4b8c.tar.gz
nvim-treesitter-7c9ffe9e190cd954dc56fac74d5bf80448cb4b8c.tar.bz2
nvim-treesitter-7c9ffe9e190cd954dc56fac74d5bf80448cb4b8c.tar.lz
nvim-treesitter-7c9ffe9e190cd954dc56fac74d5bf80448cb4b8c.tar.xz
nvim-treesitter-7c9ffe9e190cd954dc56fac74d5bf80448cb4b8c.tar.zst
nvim-treesitter-7c9ffe9e190cd954dc56fac74d5bf80448cb4b8c.zip
Fix #292: Add parser links to README.md
Diffstat (limited to 'scripts/update-readme.lua')
-rwxr-xr-xscripts/update-readme.lua38
1 files changed, 38 insertions, 0 deletions
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