npm
/yarn
/pnpm
commands I don't want to type
Runs npm outdated --json
in the background and then compares the output with versions in package.json
and displays them as virtual text.
vim.api.nvim_set_keymap(
"n",
"<leader>ns",
"<cmd>lua require('package-info').show()<cr>",
{ silent = true, noremap = true }
)
force = true
like in the example below:vim.api.nvim_set_keymap(
"n",
"<leader>ns",
"<cmd>lua require('package-info').show({ force = true })<cr>",
{ silent = true, noremap = true }
)
Runs yarn remove
, npm uninstall
, or pnpm uninstall
in the background and reloads the buffer.
vim.api.nvim_set_keymap(
"n",
"<leader>nd",
"<cmd>lua require('package-info').delete()<cr>",
{ silent = true, noremap = true }
)
Runs npm install dependency@version
, yarn upgrade dependency@version
, or pnpm update dependency
in the background and reloads the buffer.
vim.api.nvim_set_keymap(
"n",
"<leader>np",
"<cmd>lua require('package-info').change_version()<cr>",
{ silent = true, noremap = true }
)
Runs npm install dependency
, yarn add dependency
, or pnpm add dependency
in the background and reloads the buffer.
vim.api.nvim_set_keymap(
"n",
"<leader>ni",
"<cmd>lua require('package-info').install()<cr>",
{ silent = true, noremap = true }
)
Function that can be placed anywhere to display the loading status from the plugin.
neovim
by invoking return require('package-info').get_status()
local package_info = require("package-info")
-- Galaxyline
section.left[10] = {
PackageInfoStatus = {
provider = function()
return package_info.get_status()
end,
},
}
-- Feline
components.right.active[5] = {
provider = function()
return package_info.get_status()
end,
hl = {
style = "bold",
},
left_sep = " ",
right_sep = " ",
}
use({
"vuki656/package-info.nvim",
requires = "MunifTanjim/nui.nvim",
})
require('package-info').setup()
{
-- Check `:help nvim_set_hl()` for more attributes.
highlights = {
up_to_date = { -- highlight for up to date dependency virtual text
fg = "#3C4048"
},
outdated = { -- highlight for outdated dependency virtual text
fg = "#d19a66"
},
invalid = { -- highlight for invalid dependency virtual text
fg = "#ee4b2b"
},
},
icons = {
enable = true, -- Whether to display icons
style = {
up_to_date = "| ", -- Icon for up to date dependencies
outdated = "| ", -- Icon for outdated dependencies
invalid = "| ", -- Icon for invalid dependencies
},
},
notifications = true, -- Whether to display notifications when running commands
autostart = true, -- Whether to autostart when `package.json` is opened
hide_up_to_date = false, -- It hides up to date versions when displaying virtual text
hide_unstable_versions = false, -- It hides unstable versions from version list e.g next-11.1.3-canary3
-- Can be `npm`, `yarn`, or `pnpm`. Used for `delete`, `install` etc...
-- The plugin will try to auto-detect the package manager based on
-- `yarn.lock` or `package-lock.json`. If none are found it will use the
-- provided one, if nothing is provided it will use `yarn`
package_manager = 'yarn'
}
termguicolors
is false, package-info switches to 256 color mode.ctermfg
ctermbg
) are used
instead of truecolor hex codes (fg
bg
) and the color defaults are:highlights = {
up_to_date = {
ctermfg = 237
},
outdated = {
ctermfg = 173
},
invalid = {
ctermfg = 196
fg = "#ee4b2b" -- Set both cterm and fg
}
}
Check :help nvim_set_hl() for more attributes.
Old config (deprecated):
require("package-info").setup({
colors = {
up_to_date = "#3C4048",
outdated = "#d19a66",
invalid = "#ee4b2b",
},
})
New config:
require("package-info").setup({
highlights = {
up_to_date = { fg = "#3C4048" },
outdated = { fg = "#d19a66" },
invalid = { fg = "#ee4b2b" },
},
})
Plugin has no default Keybindings.
You can copy the ones below:
-- Show dependency versions
vim.keymap.set({ "n" }, "<LEADER>ns", require("package-info").show, { silent = true, noremap = true })
-- Hide dependency versions
vim.keymap.set({ "n" }, "<LEADER>nc", require("package-info").hide, { silent = true, noremap = true })
-- Toggle dependency versions
vim.keymap.set({ "n" }, "<LEADER>nt", require("package-info").toggle, { silent = true, noremap = true })
-- Update dependency on the line
vim.keymap.set({ "n" }, "<LEADER>nu", require("package-info").update, { silent = true, noremap = true })
-- Delete dependency on the line
vim.keymap.set({ "n" }, "<LEADER>nd", require("package-info").delete, { silent = true, noremap = true })
-- Install a new dependency
vim.keymap.set({ "n" }, "<LEADER>ni", require("package-info").install, { silent = true, noremap = true })
-- Install a different dependency version
vim.keymap.set({ "n" }, "<LEADER>np", require("package-info").change_version, { silent = true, noremap = true })
Highly inspired by telescope-lazy.nvim
require("telescope").setup({
extensions = {
package_info = {
-- Optional theme (the extension doesn't set a default theme)
theme = "ivy",
},
},
})
require("telescope").load_extension("package_info")
:Telescope package_info
Highlight Group | Default value | Description |
---|---|---|
PackageInfoOutdatedVersion | fg = #3C4048 ctermfg = 237 | Highlight out of date dependencies virtual text |
PackageInfoUpToDateVersion | fg = #d19a66 ctermfg = 173 | Highlight up of date dependencies virtual text |
PackageInfoInErrorVersion | fg = #ee4b2b ctermfg = 196 | Highlight invalid dependencies virtual text |
npm outdated --json
command taking a long time. Nothing can be done about that