Plugin that improves support for Github Actions files in Neovim.
- Syntax highlighting for Github Actions expressions thanks to
tree-sitter-gh-actions-expressions
. Compatible with^0.3.0
- New predicate with its LSP configuration
Neovim >= 0.9.0
nvim-treesitter
gitignore
parser (optional): forhashFiles()
functionjson
parser (optional): forfromJSON()
functionyaml
parser: injection to itsblock_mapping_pair
node
{
"nvim-treesitter/nvim-treesitter",
dependencies = { "Hdoc1509/gh-actions.nvim" },
config = function()
-- NOTE: call this before calling `nvim-treesitter.configs.setup()`
require("gh-actions.tree-sitter").setup()
require("nvim-treesitter.configs").setup({
ensure_installed = {
"gh_actions_expressions", -- required
"gitignore", -- optional
"json", -- optional
"yaml", -- required
}
})
end,
}
use({
"nvim-treesitter/nvim-treesitter",
requires = { "Hdoc1509/gh-actions.nvim" },
config = function()
-- NOTE: call this before calling `nvim-treesitter.configs.setup()`
require("gh-actions.tree-sitter").setup()
require("nvim-treesitter.configs").setup({
ensure_installed = {
"gh_actions_expressions", -- required
"gitignore", -- optional
"json", -- optional
"yaml", -- required
}
})
end,
})
Check 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.nvim
as 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))
vim.lsp.config + neovim >= 0.11
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')
Important
<rtp>
is your runtimepath
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.treesitter
before 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
X
and Y
are the interval of ABI versions supported by neovim. Z
is the
ABI version that was used to develop the parser.
-
Install the following tools:
-
Add the
from_grammar
option to thesetup
function of thegh-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
: