This uses the gitsigns
_on_attach_pre
function to check if the currently attached buffer is file tracked by yadm
, highlighting the buffer properly if it is.
Install the plugin with your plugin manager, and then add a _on_attach_pre
function to your gitsigns
configuration, passing the callback
to the yadm_signs
function:
require('gitsigns').setup({
_on_attach_pre = function(bufnr, callback)
require("gitsigns-yadm").yadm_signs(callback, { bufnr = bufnr })
end,
-- other gitsigns configuration...
on_attach = function(bufnr)
})
See below for examples using lazy
.
If using a standard yadm
setup, you likely won't need to configure anything.
The default computed values are:
{
homedir = os.getenv("HOME"),
yadm_repo_git = vim.fn.expand("~/.local/share/yadm/repo.git"),
shell_timeout_ms = 2000, -- how many milliseconds to wait for yadm to finish
disable_inside_gitdir = true -- disable if currently in a git repository
}
Call setup
to override the defaults:
require("gitsigns-yadm").setup({
yadm_repo_git = "~/.config/yadm/repo.git",
shell_timeout_ms = 1000,
})
If you want to disable this when yadm
is not installed (or optionally disable the check for any other reason), you can do so like this:
_on_attach_pre = function(bufnr, callback)
if vim.fn.executable("yadm") == 1 then
require("gitsigns-yadm").yadm_signs(callback, { bufnr = bufnr })
else
-- if optionally disabling the plugin, make sure to call
-- 'callback' with no arguments
callback()
end
end,
With lazy
:
{
"lewis6991/gitsigns.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
{
"purarue/gitsigns-yadm.nvim",
opts = {
shell_timeout_ms = 1000,
},
},
},
opts = {
_on_attach_pre = function(bufnr, callback)
require("gitsigns-yadm").yadm_signs(callback, { bufnr = bufnr })
end,
-- other configuration for gitsigns...
},
}
Since this doesn't require calling setup
(unless you want to configure the defaults), in accordance with lazy
s best practices you could also do the following:
{
{
"purarue/gitsigns-yadm.nvim",
lazy = true,
},
{
"nvim-lua/plenary.nvim",
lazy = true,
},
{
"lewis6991/gitsigns.nvim",
opts = {
...
_on_attach_pre = function(bufnr, callback)
require("gitsigns-yadm").yadm_signs(callback, { bufnr = bufnr })
end,
...
}
}
}