Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/diegovsky/projection.nvim
Project management for neovim
https://github.com/diegovsky/projection.nvim
Last synced: 23 days ago
JSON representation
Project management for neovim
- Host: GitHub
- URL: https://github.com/diegovsky/projection.nvim
- Owner: Diegovsky
- License: mit
- Created: 2021-08-28T22:44:19.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-09-10T16:55:08.000Z (about 2 years ago)
- Last Synced: 2023-08-07T08:21:08.800Z (about 1 year ago)
- Language: Lua
- Size: 16.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# projection.nvim
Project management for neovim.[![Quick guide](https://asciinema.org/a/441435.svg)](https://asciinema.org/a/441435)
## Install
```vim
" With Plug
Plug 'Diegovsky/projection.nvim'
```## Features
- Basic project management
- Add a new project
- Remove a project
- Go to project
- Recently opened projects (`should_sort=true`)Note: If you want vscode-like workspace local settings, consider also using [direnv](https://github.com/direnv/direnv.vim).
## Setup
Add this to your neovim config file (init.lua):
```lua
-- To use the default settings
require'projection'.init()
```init.vim:
```vim
" To use the default settings
lua require'projection'.init()
```### Possible settings
The function `projection.init` takes an optional table with the following keys:
| Name | Default Value | Description |
| ---- | ------------- | ----------- |
| store_file | `$XDG_STATE_HOME/projects.json` | Where Projection.nvim will save your projects |
| should_sort | `false` | Whether Projection.nvim should sort the projects by most recent access |
| should_title | `true` | Whether Projection.nvim should change the terminal title to reflect currently opened project |## How-to
```lua
local projection = require'projection'-- Add a new project
projection.add_project()-- Remove a project
projection.remove_project()-- Go to a project
projection.goto_project()-- Save the current project list to disk
-- You don't need to call this manually because it's called on vim exit.
projection.save_projects()
```