refactor: add setup function to autoroot and lsp

This commit is contained in:
Youwen Wu 2024-10-11 21:08:07 -07:00
parent 7346c8991b
commit f4f7326044
Signed by: youwen5
GPG key ID: 865658ED1FE61EC3
4 changed files with 37 additions and 23 deletions

View file

@ -1,7 +1,7 @@
require("keymaps") require("keymaps")
require("plugins") require("plugins")
require("scripts.autoroot") require("scripts.autoroot").setup()
vim.opt.relativenumber = true vim.opt.relativenumber = true
vim.opt.number = true vim.opt.number = true

View file

@ -1,4 +1,6 @@
return function() local M = {}
M.setup = function()
local symbols = { Error = "󰅙", Info = "󰋼", Hint = "󰌵", Warn = "" } local symbols = { Error = "󰅙", Info = "󰋼", Hint = "󰌵", Warn = "" }
for name, icon in pairs(symbols) do for name, icon in pairs(symbols) do
@ -35,3 +37,5 @@ return function()
lspconfig.marksman.setup({}) lspconfig.marksman.setup({})
lspconfig.tinymist.setup({}) lspconfig.tinymist.setup({})
end end
return M

View file

@ -17,7 +17,7 @@ return {
{ {
"nvim-lspconfig", "nvim-lspconfig",
event = "BufEnter", event = "BufEnter",
after = require("lsp"), after = require("lsp").setup,
}, },
{ {
"which-key.nvim", "which-key.nvim",

View file

@ -1,5 +1,8 @@
local M = {}
M.setup = function()
-- Array of file names indicating root directory. Modify to your liking. -- Array of file names indicating root directory. Modify to your liking.
local root_names = { '.git', 'Makefile', '.svn', '.hg' } local root_names = { ".git", "Makefile", ".svn", ".hg" }
-- Cache to use for speed up (at cost of possibly outdated results) -- Cache to use for speed up (at cost of possibly outdated results)
local root_cache = {} local root_cache = {}
@ -7,14 +10,18 @@ local root_cache = {}
local set_root = function() local set_root = function()
-- Get directory path to start search from -- Get directory path to start search from
local path = vim.api.nvim_buf_get_name(0) local path = vim.api.nvim_buf_get_name(0)
if path == "" then return end if path == "" then
return
end
path = vim.fs.dirname(path) path = vim.fs.dirname(path)
-- Try cache and resort to searching upward for root directory -- Try cache and resort to searching upward for root directory
local root = root_cache[path] local root = root_cache[path]
if root == nil then if root == nil then
local root_file = vim.fs.find(root_names, { path = path, upward = true })[1] local root_file = vim.fs.find(root_names, { path = path, upward = true })[1]
if root_file == nil then return end if root_file == nil then
return
end
root = vim.fs.dirname(root_file) root = vim.fs.dirname(root_file)
root_cache[path] = root root_cache[path] = root
end end
@ -23,5 +30,8 @@ local set_root = function()
vim.fn.chdir(root) vim.fn.chdir(root)
end end
local root_augroup = vim.api.nvim_create_augroup('MyAutoRoot', {}) local root_augroup = vim.api.nvim_create_augroup("MyAutoRoot", {})
vim.api.nvim_create_autocmd('BufEnter', { group = root_augroup, callback = set_root }) vim.api.nvim_create_autocmd("BufEnter", { group = root_augroup, callback = set_root })
end
return M