feat(neovim): major lsp refactor and some more lazy loading
This commit is contained in:
@@ -1,2 +1 @@
|
||||
{
|
||||
}
|
||||
{}
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
"lualine.nvim": { "branch": "master", "commit": "544dd1583f9bb27b393f598475c89809c4d5e86b" },
|
||||
"lush.nvim": { "branch": "main", "commit": "1b66ab197b177aabc2270a2c9cb8019fa5a367df" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "58bc9119ca273c0ce5a66fad1927ef0f617bd81b" },
|
||||
"mason-tool-installer.nvim": { "branch": "main", "commit": "c5e07b8ff54187716334d585db34282e46fa2932" },
|
||||
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
||||
"material.nvim": { "branch": "main", "commit": "b5d0ff3ad37ba00cea3dc3dce0b0f555b481c6f4" },
|
||||
"min-theme.nvim": { "branch": "main", "commit": "23ea3e1dd9e281973b4732cea0968f6d2ab72c47" },
|
||||
@@ -44,6 +45,7 @@
|
||||
"nvim": { "branch": "main", "commit": "0b5df9c9e641b1212b21a0762ccad4434fd41322" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "78a4507bb9ffc9b00f11ae0ac48243d00cb9194d" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "d818fd0624205b34e14888358037fb6f5dc51234" },
|
||||
"nvim-lsp-file-operations": { "branch": "master", "commit": "92a673de7ecaa157dd230d0128def10beb56d103" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "e26da408cf955afa8e9ddbadd510e84ea8976cd7" },
|
||||
"nvim-spectre": { "branch": "master", "commit": "9a28f926d3371b7ef02243cbbb653a0478d06e31" },
|
||||
"nvim-surround": { "branch": "main", "commit": "ec2dc7671067e0086cdf29c2f5df2dd909d5f71f" },
|
||||
|
||||
16
.config/nvim/lua/custom/configs/language-servers.lua
Normal file
16
.config/nvim/lua/custom/configs/language-servers.lua
Normal file
@@ -0,0 +1,16 @@
|
||||
-- NOTE: A list of language servers (and potentially their config)
|
||||
-- Accepts either true to enable, false to disable or a table with settings
|
||||
return {
|
||||
lua_ls = true, -- lua
|
||||
clangd = true, -- C/C++
|
||||
gradle_ls = true, -- java package manager
|
||||
jdtls = true, -- java eclipse lsp
|
||||
kotlin_language_server = true, -- kotlin
|
||||
pyright = true, -- python
|
||||
rust_analyzer = true, -- rust
|
||||
bashls = true, -- bash
|
||||
taplo = true, -- toml
|
||||
lemminx = true, -- xml
|
||||
yamlls = true, -- yaml
|
||||
jsonls = true, -- json
|
||||
}
|
||||
58
.config/nvim/lua/custom/configs/lsp-keymaps.lua
Normal file
58
.config/nvim/lua/custom/configs/lsp-keymaps.lua
Normal file
@@ -0,0 +1,58 @@
|
||||
local severity = vim.diagnostic.severity
|
||||
local function next_diagnostic(diagnostic_severity)
|
||||
return function()
|
||||
require('lspsaga.diagnostic'):goto_next({ severity = diagnostic_severity })
|
||||
end
|
||||
end
|
||||
local function prev_diagnostic(diagnostic_severity)
|
||||
return function()
|
||||
require('lspsaga.diagnostic'):goto_prev({ severity = diagnostic_severity })
|
||||
end
|
||||
end
|
||||
local function cursor_diagnostics()
|
||||
vim.diagnostic.open_float({
|
||||
scope = 'cursor',
|
||||
border = 'single',
|
||||
})
|
||||
end
|
||||
|
||||
local keymaps = {
|
||||
{ 'n', 'gd', '<cmd>Telescope lsp_definitions<cr>', { desc = '[G]oto [D]efinition' } },
|
||||
{ 'n', 'gu', '<cmd>Telescope lsp_references<cr>', { desc = '[G]oto [U]sages' } },
|
||||
{ 'n', 'gi', '<cmd>Telescope lsp_implementations<cr>', { desc = '[G]oto [I]mplementations' } },
|
||||
{ 'n', 'gt', '<cmd>Telescope lsp_type_definitions<cr>', { desc = '[G]oto [T]ype Definitions' } },
|
||||
{ 'n', '<leader>ds', '<cmd>Telescope lsp_document_symbols<cr>', { desc = '[D]ocument [S]symbols' } },
|
||||
{ 'n', '<leader>ps', '<cmd>Telescope lsp_workspace_symbols<cr>', { desc = '[P]roject [S]ymbols' } },
|
||||
{ { 'n', 'i' }, '<C-p>', vim.lsp.buf.signature_help, { desc = 'Show [P]arameters' } },
|
||||
{ 'n', 'K', '<cmd>Lspsaga hover_doc<cr>', { desc = 'Documentation' } },
|
||||
{ 'n', 'R', '<cmd>Lspsaga rename<cr>', { desc = '[R]ename' } },
|
||||
{ { 'n', 'i' }, '<M-Enter>', '<cmd>Lspsaga code_action<cr>', { desc = 'Code Actions' } },
|
||||
{ 'n', '<leader>ca', '<cmd>Lspsaga code_action<cr><Esc>', { desc = '[C]ode [A]ctions' } },
|
||||
{ 'n', 'ge', next_diagnostic(severity.ERROR), { desc = '[G]oto [E]rror' } },
|
||||
{ 'n', 'gE', prev_diagnostic(severity.ERROR), { desc = '[G]oto [E]rror (prev)' } },
|
||||
{ 'n', 'gw', next_diagnostic(severity.ERROR), { desc = '[G]oto [W]arning' } },
|
||||
{ 'n', 'gW', prev_diagnostic(severity.ERROR), { desc = '[G]oto [W]arning (prev)' } },
|
||||
{ 'n', '<leader>D', cursor_diagnostics, { desc = '[D]iagnostics under cursor' } },
|
||||
}
|
||||
|
||||
local M = {}
|
||||
|
||||
--- Registers LSP keymaps for the given buffer
|
||||
---@param bufnr number: the id of the buffer
|
||||
M.setup = function(bufnr)
|
||||
for _, keymap in ipairs(keymaps) do
|
||||
local mode = keymap[1]
|
||||
local lhs = keymap[2]
|
||||
local rhs = keymap[3]
|
||||
local opts = keymap[4]
|
||||
|
||||
if not opts then
|
||||
opts = {}
|
||||
end
|
||||
|
||||
opts.buffer = bufnr
|
||||
vim.keymap.set(mode, lhs, rhs, opts)
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
63
.config/nvim/lua/custom/configs/lsp.lua
Normal file
63
.config/nvim/lua/custom/configs/lsp.lua
Normal file
@@ -0,0 +1,63 @@
|
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
local servers = require('custom.configs.language-servers')
|
||||
|
||||
local lspconfig = require('lspconfig')
|
||||
for name, config in pairs(servers) do
|
||||
if config == true then
|
||||
---@diagnostic disable-next-line: cast-local-type
|
||||
config = {}
|
||||
end
|
||||
---@diagnostic disable-next-line: cast-local-type
|
||||
config = vim.tbl_deep_extend('force', {}, {
|
||||
capabilities = capabilities,
|
||||
}, config)
|
||||
|
||||
lspconfig[name].setup(config)
|
||||
end
|
||||
|
||||
vim.api.nvim_create_autocmd('LspAttach', {
|
||||
callback = function(args)
|
||||
local bufnr = args.buf
|
||||
local client = assert(vim.lsp.get_client_by_id(args.data.client_id), 'must have valid client')
|
||||
|
||||
local settings = servers[client.name]
|
||||
if type(settings) ~= 'table' then
|
||||
---@diagnostic disable-next-line: cast-local-type
|
||||
settings = {}
|
||||
end
|
||||
|
||||
-- Override server capabilities
|
||||
if settings.server_capabilities then
|
||||
for k, v in pairs(settings.server_capabilities) do
|
||||
if v == vim.NIL then
|
||||
v = nil
|
||||
end
|
||||
client.server_capabilities[k] = v
|
||||
end
|
||||
end
|
||||
|
||||
-- Register LSP keymaps local to buffer
|
||||
require('custom.configs.lsp-keymaps').setup(bufnr)
|
||||
end,
|
||||
})
|
||||
|
||||
-- TODO: Decide if you want to use conform or not
|
||||
--
|
||||
-- -- Autoformatting Setup
|
||||
-- require('conform').setup({
|
||||
-- formatters_by_ft = {
|
||||
-- lua = { 'stylua' },
|
||||
-- },
|
||||
-- })
|
||||
--
|
||||
-- vim.api.nvim_create_autocmd('BufWritePre', {
|
||||
-- callback = function(args)
|
||||
-- require('conform').format({
|
||||
-- bufnr = args.buf,
|
||||
-- lsp_fallback = true,
|
||||
-- quiet = true,
|
||||
-- })
|
||||
-- end,
|
||||
-- })
|
||||
|
||||
vim.diagnostic.config({ virtual_text = false })
|
||||
33
.config/nvim/lua/custom/configs/mason.lua
Normal file
33
.config/nvim/lua/custom/configs/mason.lua
Normal file
@@ -0,0 +1,33 @@
|
||||
-- NOTE: Not language servers but still make sure mason installs them
|
||||
local ensure_installed = {
|
||||
stylua = true, -- lua formatting
|
||||
}
|
||||
local servers = require('custom.configs.language-servers')
|
||||
|
||||
require('mason').setup({
|
||||
ui = {
|
||||
icons = {
|
||||
package_installed = '✓',
|
||||
package_pending = '➜',
|
||||
package_uninstalled = '✗',
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
local servers_to_install = vim.tbl_filter(function(key)
|
||||
local server = servers[key]
|
||||
if type(server) == 'table' then
|
||||
return true
|
||||
else
|
||||
return server
|
||||
end
|
||||
end, vim.tbl_keys(servers))
|
||||
|
||||
vim.list_extend(ensure_installed, servers_to_install)
|
||||
require('mason-lspconfig').setup({ ensure_installed = servers_to_install })
|
||||
|
||||
require('mason-tool-installer').setup({
|
||||
ensure_installed = {
|
||||
'stylua', -- lua formatter
|
||||
},
|
||||
})
|
||||
@@ -1,183 +0,0 @@
|
||||
-- Setup null-ls
|
||||
local null_ls = require('null-ls')
|
||||
null_ls.setup({
|
||||
sources = {
|
||||
null_ls.builtins.formatting.stylua,
|
||||
},
|
||||
})
|
||||
|
||||
-- Setup lsp signature
|
||||
-- FIXME: fork the repo and fix the following issues
|
||||
-- Remove documentation, show just the signature (in insert AND normal)
|
||||
-- Make both insert and normal be toggelable rather than insert always showing and normal toggleable
|
||||
require('lsp_signature').setup({
|
||||
bind = true, -- This is mandatory, otherwise border config won't get registered.
|
||||
handler_opts = { border = 'single' },
|
||||
doc_lines = 0,
|
||||
hint_enable = false,
|
||||
})
|
||||
|
||||
require('lspsaga').setup({
|
||||
lightbulb = {
|
||||
enable = false,
|
||||
sign = false,
|
||||
virtual_text = true,
|
||||
},
|
||||
implement = {
|
||||
sign = false,
|
||||
virtual_text = true,
|
||||
},
|
||||
floaterm = {
|
||||
height = 0.7,
|
||||
width = 0.7,
|
||||
},
|
||||
outline = {
|
||||
layout = 'float',
|
||||
},
|
||||
-- TODO: Change <C-k> in rename to smthing else
|
||||
-- bcz I am using <C-k> for moving between windows
|
||||
-- Maybe <C-c> for abort, <cr> for confirm
|
||||
})
|
||||
|
||||
-- NOTE: A list of language servers (and potentially their config)
|
||||
-- Accepts either true to enable, false to disable or a table with settings
|
||||
local servers = {
|
||||
lua_ls = true, -- lua
|
||||
clangd = true, -- C/C++
|
||||
gradle_ls = true, -- java package manager
|
||||
jdtls = true, -- java eclipse lsp
|
||||
kotlin_language_server = true, -- kotlin
|
||||
pyright = true, -- python
|
||||
rust_analyzer = true, -- rust
|
||||
bashls = true, -- bash
|
||||
taplo = true, -- toml
|
||||
lemminx = true, -- xml
|
||||
yamlls = true, -- yaml
|
||||
jsonls = true, -- json
|
||||
}
|
||||
|
||||
-- NOTE: Not language servers but still make sure mason installs them
|
||||
local ensure_installed = {
|
||||
stylua = true, -- lua formatting
|
||||
}
|
||||
|
||||
local capabilities = nil
|
||||
if pcall(require, 'cmp_nvim_lsp') then
|
||||
capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
end
|
||||
|
||||
local servers_to_install = vim.tbl_filter(function(key)
|
||||
local server = servers[key]
|
||||
if type(server) == 'table' then
|
||||
return true
|
||||
else
|
||||
return server
|
||||
end
|
||||
end, vim.tbl_keys(servers))
|
||||
|
||||
require('mason').setup()
|
||||
vim.list_extend(ensure_installed, servers_to_install)
|
||||
require('mason-lspconfig').setup({ ensure_installed = servers_to_install })
|
||||
|
||||
local lspconfig = require('lspconfig')
|
||||
for name, config in pairs(servers) do
|
||||
if config == true then
|
||||
---@diagnostic disable-next-line: cast-local-type
|
||||
config = {}
|
||||
end
|
||||
config = vim.tbl_deep_extend('force', {}, {
|
||||
capabilities = capabilities,
|
||||
}, config)
|
||||
|
||||
lspconfig[name].setup(config)
|
||||
end
|
||||
|
||||
vim.api.nvim_create_autocmd('LspAttach', {
|
||||
callback = function(args)
|
||||
local bufnr = args.buf
|
||||
local client = assert(vim.lsp.get_client_by_id(args.data.client_id), 'must have valid client')
|
||||
|
||||
local settings = servers[client.name]
|
||||
if type(settings) ~= 'table' then
|
||||
---@diagnostic disable-next-line: cast-local-type
|
||||
settings = {}
|
||||
end
|
||||
|
||||
-- Override server capabilities
|
||||
if settings.server_capabilities then
|
||||
for k, v in pairs(settings.server_capabilities) do
|
||||
if v == vim.NIL then
|
||||
v = nil
|
||||
end
|
||||
client.server_capabilities[k] = v
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- TODO: Decide if you want to use conform or not
|
||||
--
|
||||
-- -- Autoformatting Setup
|
||||
-- require('conform').setup({
|
||||
-- formatters_by_ft = {
|
||||
-- lua = { 'stylua' },
|
||||
-- },
|
||||
-- })
|
||||
--
|
||||
-- vim.api.nvim_create_autocmd('BufWritePre', {
|
||||
-- callback = function(args)
|
||||
-- require('conform').format({
|
||||
-- bufnr = args.buf,
|
||||
-- lsp_fallback = true,
|
||||
-- quiet = true,
|
||||
-- })
|
||||
-- end,
|
||||
-- })
|
||||
|
||||
require('lsp_lines').setup()
|
||||
vim.diagnostic.config({ virtual_text = false })
|
||||
vim.keymap.set('', '<Leader>dt', require('lsp_lines').toggle, { desc = '[D]iagnostics [T]oggle inline' })
|
||||
|
||||
local lspsaga_diagnostic = require('lspsaga.diagnostic')
|
||||
local builtin = require('telescope.builtin')
|
||||
local severity = vim.diagnostic.severity
|
||||
local show_workspace_diagnostics = '<cmd>Lspsaga show_workspace_diagnostics ++normal<cr>'
|
||||
local function next_diagnostic(diagnostic_severity)
|
||||
return function()
|
||||
lspsaga_diagnostic:goto_next({ severity = diagnostic_severity })
|
||||
end
|
||||
end
|
||||
local function prev_diagnostic(diagnostic_severity)
|
||||
return function()
|
||||
lspsaga_diagnostic:goto_prev({ severity = diagnostic_severity })
|
||||
end
|
||||
end
|
||||
local function cursor_diagnostics()
|
||||
vim.diagnostic.open_float({
|
||||
scope = 'cursor',
|
||||
border = 'single',
|
||||
})
|
||||
end
|
||||
|
||||
-- LSP Keybindings
|
||||
vim.keymap.set('n', 'gd', builtin.lsp_definitions, { desc = '[G]oto [D]efinition' })
|
||||
vim.keymap.set('n', 'gu', builtin.lsp_references, { desc = '[G]oto [U]sages' })
|
||||
vim.keymap.set('n', 'gi', builtin.lsp_implementations, { desc = '[G]oto [I]mplementations' })
|
||||
-- vim.keymap.set('n', 'gt', builtin.lsp_type_definitions, { desc = '[G]oto [T]ype Definitions' })
|
||||
-- vim.keymap.set('n', 'gw', builtin.diagnostics, { desc = '[G]oto [W]arnings' })
|
||||
vim.keymap.set('n', '<leader>ds', builtin.lsp_document_symbols, { desc = '[D]ocument [S]symbols' })
|
||||
vim.keymap.set('n', '<leader>ps', builtin.lsp_workspace_symbols, { desc = '[P]roject [S]ymbols' })
|
||||
vim.keymap.set({ 'n', 'i' }, '<C-p>', vim.lsp.buf.signature_help, { desc = 'List [P]arameters' })
|
||||
vim.keymap.set('n', 'K', '<cmd>Lspsaga hover_doc<cr>', { desc = 'Documentation' })
|
||||
vim.keymap.set('n', 'R', '<cmd>Lspsaga rename<cr>', { desc = '[R]ename' })
|
||||
-- vim.keymap.set('n', '<leader>os', '<cmd>Lspsaga outline<cr>', { desc = '[T]erminal' })
|
||||
vim.keymap.set({ 'n', 'i' }, '<M-Enter>', '<cmd>Lspsaga code_action<cr>', { desc = 'Code Actions' })
|
||||
vim.keymap.set('n', '<leader>ca', '<cmd>Lspsaga code_action<cr><Esc>', { desc = '[C]ode [A]ctions' })
|
||||
vim.keymap.set('n', 'ge', next_diagnostic(severity.ERROR), { desc = '[G]oto [E]rror' })
|
||||
vim.keymap.set('n', 'gE', prev_diagnostic(severity.ERROR), { desc = '[G]oto [E]rror (prev)' })
|
||||
vim.keymap.set('n', 'gw', next_diagnostic(severity.ERROR), { desc = '[G]oto [W]arning' })
|
||||
vim.keymap.set('n', 'gW', prev_diagnostic(severity.ERROR), { desc = '[G]oto [W]arning (prev)' })
|
||||
vim.keymap.set('n', '<leader>dw', show_workspace_diagnostics, { desc = '[D]iagnostics for [W]orkspace' })
|
||||
vim.keymap.set('n', '<leader>D', cursor_diagnostics, { desc = '[D]iagnostics under cursor' })
|
||||
|
||||
vim.keymap.set({ 'n', 't' }, '<A-t>', '<cmd>Lspsaga term_toggle<cr>', { desc = '[T]erminal' })
|
||||
72
.config/nvim/lua/custom/plugins/lsp-plugins.lua
Normal file
72
.config/nvim/lua/custom/plugins/lsp-plugins.lua
Normal file
@@ -0,0 +1,72 @@
|
||||
return {
|
||||
{
|
||||
'nvimtools/none-ls.nvim',
|
||||
config = function()
|
||||
local null_ls = require('null-ls')
|
||||
null_ls.setup({
|
||||
sources = {
|
||||
null_ls.builtins.formatting.stylua,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
-- NOTE: [Good alternative](https://github.com/rachartier/tiny-inline-diagnostic.nvim)
|
||||
-- although, this plugin is amazing, so I wouldn't switch it most likely
|
||||
{
|
||||
'https://git.sr.ht/~whynothugo/lsp_lines.nvim',
|
||||
event = 'BufEnter',
|
||||
config = function()
|
||||
require('lsp_lines').setup()
|
||||
vim.keymap.set('n', '<Leader>dt', require('lsp_lines').toggle, { desc = '[D]iagnostics [T]oggle inline' })
|
||||
end,
|
||||
},
|
||||
{
|
||||
-- FIXME: fork the repo and fix the following issues
|
||||
-- Make both insert and normal be toggelable rather than insert always showing and normal toggleable
|
||||
'ray-x/lsp_signature.nvim',
|
||||
event = 'VeryLazy',
|
||||
opts = {
|
||||
bind = true, -- This is mandatory, otherwise border config won't get registered.
|
||||
handler_opts = { border = 'single' },
|
||||
doc_lines = 0,
|
||||
hint_enable = false,
|
||||
},
|
||||
},
|
||||
{
|
||||
'folke/lazydev.nvim',
|
||||
ft = 'lua',
|
||||
opts = { library = { { path = 'luvit-meta/library', words = { 'vim%.uv' } } } },
|
||||
},
|
||||
{
|
||||
'nvimdev/lspsaga.nvim',
|
||||
dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' },
|
||||
event = 'LspAttach',
|
||||
opts = {
|
||||
lightbulb = {
|
||||
enable = false,
|
||||
sign = false,
|
||||
virtual_text = true,
|
||||
},
|
||||
implement = {
|
||||
sign = false,
|
||||
virtual_text = true,
|
||||
},
|
||||
floaterm = {
|
||||
height = 0.7,
|
||||
width = 0.7,
|
||||
},
|
||||
outline = {
|
||||
layout = 'float',
|
||||
},
|
||||
-- TODO: Change <C-k> in rename to smthing else
|
||||
-- bcz I am using <C-k> for moving between windows
|
||||
-- Maybe <C-c> for abort, <cr> for confirm
|
||||
},
|
||||
},
|
||||
|
||||
-- AUtoformatting
|
||||
-- 'stevear/conform.nvim',
|
||||
|
||||
-- Schema info
|
||||
-- 'b0o/SchemaStore.nvim',
|
||||
}
|
||||
@@ -1,36 +1,24 @@
|
||||
return {
|
||||
{
|
||||
'neovim/nvim-lspconfig',
|
||||
lazy = false,
|
||||
dependencies = {
|
||||
'williamboman/mason.nvim',
|
||||
-- NOTE: Make sure the order is as follows:
|
||||
-- Mason loads -> Mason lspconfig loads -> Lspconfig loads
|
||||
'neovim/nvim-lspconfig',
|
||||
event = { 'BufReadPre', 'BufNewFile' },
|
||||
dependencies = {
|
||||
'hrsh7th/cmp-nvim-lsp',
|
||||
{ 'antosha417/nvim-lsp-file-operations', conifg = true },
|
||||
{
|
||||
'williamboman/mason-lspconfig.nvim',
|
||||
|
||||
'nvimtools/none-ls.nvim',
|
||||
|
||||
-- NOTE: [Good alternative](https://github.com/rachartier/tiny-inline-diagnostic.nvim)
|
||||
-- although, this plugin is amazing, so I wouldn't switch it most likely
|
||||
{ 'https://git.sr.ht/~whynothugo/lsp_lines.nvim' },
|
||||
|
||||
{
|
||||
'nvimdev/lspsaga.nvim',
|
||||
dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' },
|
||||
dependencies = {
|
||||
{ 'williamboman/mason.nvim', cmd = 'Mason' },
|
||||
'WhoIsSethDaniel/mason-tool-installer.nvim',
|
||||
},
|
||||
{
|
||||
'folke/lazydev.nvim',
|
||||
ft = 'lua',
|
||||
opts = { library = { { path = 'luvit-meta/library', words = { 'vim%.uv' } } } },
|
||||
},
|
||||
{ 'ray-x/lsp_signature.nvim', event = 'VeryLazy' },
|
||||
|
||||
-- AUtoformatting
|
||||
-- 'stevear/conform.nvim',
|
||||
|
||||
-- Schema info
|
||||
-- 'b0o/SchemaStore.nvim',
|
||||
build = ':MasonUpdate',
|
||||
config = function()
|
||||
require('custom.configs.mason')
|
||||
end,
|
||||
},
|
||||
config = function()
|
||||
require('custom.lsp')
|
||||
end,
|
||||
},
|
||||
config = function()
|
||||
require('custom.configs.lsp')
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ return {
|
||||
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' },
|
||||
'nvim-telescope/telescope-ui-select.nvim',
|
||||
},
|
||||
cmd = 'Telescope',
|
||||
config = function()
|
||||
require('custom.telescope')
|
||||
end,
|
||||
|
||||
Reference in New Issue
Block a user