Plugin that improves support for Github Actions files in Neovim.
tree-sitter-gh-actions-expressions. Compatible
with ^0.3.0Neovim >= 0.9.0nvim-treesittergitignore parser (optional): for hashFiles() functionjson parser (optional): for fromJSON() functionyaml parser: injection to its block_mapping_pair nodelazy.nvim{
"nvim-treesitter/nvim-treesitter",
branch = 'main',
dependencies = { "Hdoc1509/gh-actions.nvim" },
config = function()
-- NOTE: register parser before installation
require("gh-actions.tree-sitter").setup()
require("nvim-treesitter").install({
"gh_actions_expressions", -- required
"gitignore", -- optional
"json", -- optional
"yaml", -- required
})
end,
}
packer.nvimuse({
"nvim-treesitter/nvim-treesitter",
branch = 'main',
requires = { "Hdoc1509/gh-actions.nvim" },
config = function()
-- NOTE: register parser before installation
require("gh-actions.tree-sitter").setup()
require("nvim-treesitter").install({
"gh_actions_expressions", -- required
"gitignore", -- optional
"json", -- optional
"yaml", -- required
})
end,
})
nvim-treesitter versionsensure_install of main branchrequire("nvim-treesitter").setup({
ensure_install = {
"gh_actions_expressions", -- required
"gitignore", -- optional
"json", -- optional
"yaml", -- required
}
})
configs module of old master branchrequire("nvim-treesitter.configs").setup({
ensure_installed = {
"gh_actions_expressions", -- required
"gitignore", -- optional
"json", -- optional
"yaml", -- required
}
})
is-gh-actions-file? predicateCheck if the buffer matches the pattern .github/workflows/*.ya?ml.
The gh-actions.ts-query-ls module exports a configuration for
ts_query_ls server in order to register the custom
is-gh-actions-file? predicate used by this plugin.
[!NOTE] This is only needed if you will use the
is-gh-actions-file?predicate in your queries.
[!IMPORTANT] Be sure to set
gh-actions.nvimas a dependency
local lspconfig = require('lspconfig')
local gh_actions = require('gh-actions.ts-query-ls')
lspconfig.ts_query_ls.setup(vim.tbl_deep_extend('force', {
-- your settings
}, gh_actions.expressions))
local gh_actions = require('gh-actions.ts-query-ls')
vim.lsp.config('ts_query_ls', vim.tbl_deep_extend('force', {
-- your settings
}, gh_actions.expressions))
vim.lsp.enable('ts_query_ls')
<rtp>/lsp/ts_query_ls.lua + neovim >= 0.11[!IMPORTANT]
<rtp>is yourruntimepath
local gh_actions = require('gh-actions.ts-query-ls')
return vim.tbl_deep_extend('force', {
-- your settings
}, gh_actions.expressions)
Then, in your init.lua:
vim.lsp.enable('ts_query_ls')
[!IMPORTANT] Be sure to run
:checkhealth vim.treesitterbefore checking the following errors.
If you found the following error:
- ERROR Parser "gh_actions_expressions" failed to load
(path: .../gh_actions_expressions.so): ...: ABI version mismatch for
.../gh_actions_expressions.so: supported between X and Y, found Z
[!NOTE]
XandYare the interval of ABI versions supported by neovim.Zis the ABI version that was used to develop the parser.
Install the following tools:
Add the from_grammar option to the setup function of the
gh-actions.tree-sitter module:
require("gh-actions.tree-sitter").setup({ from_grammar = true })
Reload your neovim config.
Run :TSInstall gh_actions_expressions to re-install the parser with the
correct ABI version.
Check the Troubleshooting section of
tree-sitter-gh-actions-expressions.
This plugin will follow changes of tree-sitter-gh-actions-expressions: