$ account coffebar
The Neovim project manager plugin is a Lua-based Neovim plugin designed to streamline project workflow by maintaining a history of visited projects and enabling quick restoration of Neovim sessions (including UI state like neo-tree expanded directories) upon switching projects. It integrates with popular fuzzy finders (telescope, fzf-lua, snacks) for project selection and supports optional per-branch session management for Git repositories. The architecture is modular, separating concerns into distinct modules: configuration handling, project lifecycle management, history persistence, path and glob pattern resolution, Git integration, and session-specific payload storage (for neo-tree state). The plugin leverages Neovim's autocommands to synchronize session saving/loading with project switches and Git branch changes, ensuring a seamless user experience. Key strengths include robust glob pattern handling (with correct support for **, *, ?, and character classes), a self-healing history mechanism that automatically reloads when the history file is modified externally, and thoughtful integration with Neo-tree to restore UI state. The plugin demonstrates attention to detail in edge cases, such as handling symlinks in project paths and detecting Git worktrees.