Tiny plugin to quickly switch python virtual environments from within neovim without restarting.
For example using packer
:
use 'AckslD/swenv.nvim'
Call
require('swenv.api').pick_venv()
to pick an environment. Uses vim.ui.select
so a tip is to use eg dressing.nvim.
To show the current venv in for example a status-line you can call
require('swenv.api').get_current_venv()
Pass a dictionary into require("swenv").setup()
with callback functions.
These are the defaults:
require('swenv').setup({
-- Should return a list of tables with a `name` and a `path` entry each.
-- Gets the argument `venvs_path` set below.
-- By default just lists the entries in `venvs_path`.
get_venvs = function(venvs_path)
return require('swenv.api').get_venvs(venvs_path)
end,
-- Path passed to `get_venvs`.
venvs_path = vim.fn.expand('~/venvs'),
-- Something to do after setting an environment, for example call vim.cmd.LspRestart
post_set_venv = nil,
})
For lualine
there is already a configured component called swenv
.
It displays an icon and the name of the activated environment.
Add this to your lualine
sections to use the component
sections = {
...
lualine_a = 'swenv' -- uses default options
lualine_x = { 'swenv', icon = '<icon>' } -- passing lualine component options
...
}
These are the defaults options:
{
icon = "",
color = { fg = "#8fb55e" },
}