From c4d82f9683976b5445ceee3c4db37b42948a1cb7 Mon Sep 17 00:00:00 2001 From: Gustaf Rydholm 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 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