{"id":13411308,"url":"https://github.com/pluffie/neoproj","last_synced_at":"2025-03-14T17:30:32.527Z","repository":{"id":160416354,"uuid":"583407857","full_name":"pluffie/neoproj","owner":"pluffie","description":"🔥 Small yet powerful project manager for Neovim","archived":false,"fork":false,"pushed_at":"2023-05-02T12:45:11.000Z","size":14,"stargazers_count":62,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-07-31T20:45:31.293Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pluffie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-12-29T17:29:50.000Z","updated_at":"2024-06-20T13:30:19.000Z","dependencies_parsed_at":"2024-01-03T03:29:28.568Z","dependency_job_id":"dcb11631-a907-445b-99c0-7d2f73b67bd9","html_url":"https://github.com/pluffie/neoproj","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluffie%2Fneoproj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluffie%2Fneoproj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluffie%2Fneoproj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluffie%2Fneoproj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pluffie","download_url":"https://codeload.github.com/pluffie/neoproj/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243618579,"owners_count":20320261,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T20:01:12.813Z","updated_at":"2025-03-14T17:30:32.206Z","avatar_url":"https://github.com/pluffie.png","language":"Lua","funding_links":[],"categories":["Project","Lua"],"sub_categories":["Markdown and LaTeX","PHP"],"readme":"# Neoproj\n\nSmall yet powerful project manager for Neovim written in fennel.\n\n## Features\n\n- Open projects\n- Manage sessions (see [Sessions](#sessions))\n- Create projects from templates\n- Add custom templates\n\n## Installation\n\n- Packer\n  ```lua\n  use \"pluffie/neoproj\"\n  ```\n- [lazy.nvim](https://github.com/folke/lazy.nvim)\n  ```lua\n  {\n    \"pluffie/neoproj\",\n    cmd = { \"ProjectOpen\", \"ProjectNew\" },\n  }\n  ```\n\n## Configuration\n\nNOTE: calling `setup` is not necessary at all, plugin will work even without it\n\n```lua\nrequire \"neoproj\".setup {\n  -- Directory which contains all of your projects\n  project_path = \"~/projects\",\n}\n```\n\n### Adding templates\n\nYou can add your own templates using `register_template` function:\n\n```lua\nrequire \"neoproj\".register_template {\n  name = \"Empty project (Git)\",\n  expand = \"git init\",\n}\n```\n\nMore information can be found in the help-file (`:h neoproj-templates`).\n\n### Sessions\n\nNeoproj does some session management out-of-box:\n\n- automatically loads file `project_root/.nvim/session.vim` (if exists)\n- has command for saving sessions (`:ProjectSaveSession`)\n\nBut Neoproj doesn't save sessions automatically, so you need to write\n`:ProjectSaveSession` all time. Let's fix it using autocmd!\n\n- Lua\n  ```lua\n  vim.api.nvim_create_autocmd({\"VimLeavePre\"}, {\n    callback = function()\n      if vim.g.project_root ~= nil then\n        require \"neoproj\".save_session()\n      end\n    end,\n  })\n  ```\n- Fennel\n  ```fennel\n  (let [{:save_session save-session} (require :neoproj)\n        callback #(when (not= nil vim.g.project_root)\n                    (save-session))]\n    (vim.api.nvim_create_autocmd [:VimLeavePre] {: callback}))\n  ```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpluffie%2Fneoproj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpluffie%2Fneoproj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpluffie%2Fneoproj/lists"}