summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVito G. Graffagnino <vito@graffagnino.xyz>2022-06-03 18:03:14 +0100
committerVito G. Graffagnino <vito@graffagnino.xyz>2022-06-03 18:03:14 +0100
commit37c9a6f18abd074d9316cc2afe7d4f9dbd2428e8 (patch)
treea80f4b892c527b7bc97474d0ce3ddf2c884e2ee3
parente7536631ab8167f2a1ebe4e8e494f25242dc378b (diff)
parente76f0ee92723ec238521383e4b4d3af0281a462b (diff)
Merge branch '17-project' into vgg
-rw-r--r--init.lua1
-rw-r--r--lua/user/plugins.lua1
-rw-r--r--lua/user/project.lua48
3 files changed, 50 insertions, 0 deletions
diff --git a/init.lua b/init.lua
index 64d7fb3..a67c6f9 100644
--- a/init.lua
+++ b/init.lua
@@ -14,3 +14,4 @@ require "user.nvim-tree"
require "user.bufferline"
require "user.lualine"
require "user.toggleterm"
+require "user.project"
diff --git a/lua/user/plugins.lua b/lua/user/plugins.lua
index 9010e9a..8f7e88d 100644
--- a/lua/user/plugins.lua
+++ b/lua/user/plugins.lua
@@ -50,6 +50,7 @@ return packer.startup(function(use)
use "moll/vim-bbye"
use 'nvim-lualine/lualine.nvim'
use "akinsho/toggleterm.nvim"
+ use "ahmedkhalf/project.nvim"
use 'kyazdani42/nvim-web-devicons'
use 'kyazdani42/nvim-tree.lua'
diff --git a/lua/user/project.lua b/lua/user/project.lua
new file mode 100644
index 0000000..27a1329
--- /dev/null
+++ b/lua/user/project.lua
@@ -0,0 +1,48 @@
+local status_ok, project = pcall(require, "project_nvim")
+if not status_ok then
+ return
+end
+project.setup({
+ ---@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" }, -- NOTE: lsp detection will get annoying with multiple langs in one project
+ detection_methods = { "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 = vim.fn.stdpath("data"),
+})
+
+local tele_status_ok, telescope = pcall(require, "telescope")
+if not tele_status_ok then
+ return
+end
+
+telescope.load_extension('projects')