From c4d82f9683976b5445ceee3c4db37b42948a1cb7 Mon Sep 17 00:00:00 2001
From: Gustaf Rydholm <gustaf.rydholm@gmail.com>
Date: Wed, 12 Jan 2022 22:55:59 +0100
Subject: Add project

---
 lua/config/init.lua    |  1 +
 lua/config/project.lua | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++
 lua/plugins.lua        |  1 +
 3 files changed, 53 insertions(+)
 create mode 100644 lua/config/project.lua

(limited to 'lua')

diff --git a/lua/config/init.lua b/lua/config/init.lua
index 3b14706..c4fe617 100644
--- a/lua/config/init.lua
+++ b/lua/config/init.lua
@@ -11,3 +11,4 @@ require("config.gitsigns")
 require("config.nvim-tree")
 require("config.bufferline")
 require("config.lualine")
+require("config.project")
diff --git a/lua/config/project.lua b/lua/config/project.lua
new file mode 100644
index 0000000..30a0557
--- /dev/null
+++ b/lua/config/project.lua
@@ -0,0 +1,51 @@
+-- Provides project management.
+
+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")
diff --git a/lua/plugins.lua b/lua/plugins.lua
index b576b11..ca668ab 100644
--- a/lua/plugins.lua
+++ b/lua/plugins.lua
@@ -32,4 +32,5 @@ return {
 		"nvim-lualine/lualine.nvim",
 		requires = { "kyazdani42/nvim-web-devicons", opt = true },
 	},
+	{ "ahmedkhalf/project.nvim" },
 }
-- 
cgit v1.2.3-70-g09d2