notes/config/nvim/lua/tools/project.lua

67 lines
2.5 KiB
Lua

local status_ok, project = pcall(require, "project_nvim")
if not status_ok then
print('project load error')
return
end
-- The problem of load telescope fails is duplicate name
-- put your config into a sub dir solves this problem
local tele_ok, telescope = pcall(require, "telescope")
if not tele_ok then
print('telescope load error')
return
end
vim.api.nvim_set_keymap('n', '<leader>ff', ':Telescope find_files<CR>', {noremap = true, silent = true})
vim.api.nvim_set_keymap('n', '<leader>fb', ':Telescope buffers<CR>', {noremap = true, silent = true})
vim.api.nvim_set_keymap('n', '<leader>rg', ':Telescope live_grep<CR>', {noremap = true, silent = true})
vim.api.nvim_set_keymap('n', '<leader>fh', ':Telescope help_tags<CR>', {noremap = true, silent = true})
project.setup({
sync_root_with_cwd = true,
respect_buf_cwd = true,
update_focused_file = {
enable = true,
update_root = true
},
-- @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", "README", "src", "pkg" },
-- @ 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"),
})
telescope.load_extension('projects')