summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/core/project.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/core/project.lua')
-rw-r--r--.config/nvim/lua/core/project.lua51
1 files changed, 51 insertions, 0 deletions
diff --git a/.config/nvim/lua/core/project.lua b/.config/nvim/lua/core/project.lua
new file mode 100644
index 0000000..c7eacde
--- /dev/null
+++ b/.config/nvim/lua/core/project.lua
@@ -0,0 +1,51 @@
+local M = {}
+
+function M.config()
+ options.builtin.project = {
+ ---@usage set to false to disable project.nvim.
+ --- This is on by default since it's currently the expected behavior.
+ active = true,
+
+ on_config_done = nil,
+
+ ---@usage set to true to disable setting the current-woriking directory
+ --- Manual mode doesn't automatically change your root directory, so you have
+ --- the option to manually do so using `:ProjectRoot` command.
+ manual_mode = false,
+
+ ---@usage Methods of detecting the root directory
+ --- Allowed values: **"lsp"** uses the native neovim lsp
+ --- **"pattern"** uses vim-rooter like glob pattern matching. Here
+ --- order matters: if one is not detected, the other is used as fallback. You
+ --- can also delete or rearangne the detection methods.
+ detection_methods = { "lsp", "pattern" },
+
+ ---@usage patterns used to detect root dir, when **"pattern"** is in detection_methods
+ patterns = { ".git", "_darcs", ".hg", ".bzr", ".svn", "Makefile", "package.json" },
+
+ ---@ Show hidden files in telescope when searching for files in a project
+ show_hidden = false,
+
+ ---@usage When set to false, you will get a message when project.nvim changes your directory.
+ -- When set to false, you will get a message when project.nvim changes your directory.
+ silent_chdir = true,
+
+ ---@usage list of lsp client names to ignore when using **lsp** detection. eg: { "efm", ... }
+ ignore_lsp = {},
+
+ ---@type string
+ ---@usage path to store the project history for use in telescope
+ datapath = CACHE_PATH,
+ }
+end
+
+function M.setup()
+ local project = require "project_nvim"
+
+ project.setup(options.builtin.project)
+ if options.builtin.project.on_config_done then
+ options.builtin.project.on_config_done(project)
+ end
+end
+
+return M