Itβs a project manager without the complexity β so we dropped the βcβ.
Projet is a minimalist tool for managing your Neovim projects, with just enough French to feel fancy.
Your project manager is simply a list stored in a buffer. Each line contains a project tag (a short name) followed by the path to the project directory, separated by a space:
super-secret ~/dev/super-secret
coolbeans ~/dev/coolbeans
dotfiles ~/.dotfiles
blog ~/projects/my-tech-blog
projet.nvim ~/.config/nvim/lua/projet
telescope-fork /home/user/opensource/telescope.nvim
cv /home/user/Documents/resume-latex
data-crunch /home/user/work/data-cruncher
school-backend /home/user/repos/school-api
That's it!
:Telescope projetUsing lazy.nvim:
{
"tiagovla/projet.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
config = function()
require("projet").setup()
end,
}
Here are the default configuration options:
require("projet").setup({
database_path = vim.fs.joinpath(vim.fn.stdpath("data"), "project.json"),
mappings = {
{ "n", "q", require("projet.editor").close },
{ "n", "<ESC><ESC>", require("projet.editor").close },
{
"n",
"<CR>",
function()
require("projet.editor").select(function(project)
vim.cmd("bcd " .. vim.fn.fnameescape(vim.fn.expand(project.path))) -- you might want to use a picker
end)
end,
},
},
})
You can override this by passing a custom config to setup().
require("projet").toggle_editor()
Or bind it to a key in your config:
vim.keymap.set("n", "<leader>p", require("projet").toggle_editor)
Launch the Telescope picker with:
:Telescope projet
(Ensure you have Telescope installed and configured.)
Projects are saved as a simple JSON array at the configured database_path.
Example:
[
{ "name": "MyApp", "path": "/home/user/dev/myapp" },
{ "name": "Dotfiles", "path": "/home/user/.dotfiles" }
]
MIT β feel free to use, modify, and share.