This commit is contained in:
2025-06-05 23:51:04 -05:00
parent 5d3ed8b12a
commit 2c8a6eb948
3 changed files with 283 additions and 260 deletions

View File

@@ -4,11 +4,11 @@ return {
name = "catppuccin", name = "catppuccin",
priority = 1000, priority = 1000,
config = function() config = function()
require('catppuccin').setup ({ require("catppuccin").setup({
flavour = "mocha", -- latte, frappe, macchiato, mocha flavour = "mocha", -- latte, frappe, macchiato, mocha
custom_highlights = function(colors) custom_highlights = function(colors)
return { return {
LineNr = { fg = '#838DA0', bg = '#495060' } LineNr = { fg = "#838DA0", bg = "#495060" },
} }
end, end,
}) })

View File

@@ -1,136 +1,162 @@
return { return {
"neovim/nvim-lspconfig", "neovim/nvim-lspconfig",
event = { "BufReadPre", "BufNewFile" },
dependencies = { dependencies = {
"hrsh7th/cmp-nvim-lsp", { "williamboman/mason.nvim" },
{ "antosha417/nvim-lsp-file-operations", config = true }, { "williamboman/mason-lspconfig.nvim" },
{ "folke/neodev.nvim", opts = {} },
}, },
lazy = false,
config = function() config = function()
-- import lspconfig plugin require("mason").setup()
local lspconfig = require("lspconfig") require("mason-lspconfig").setup({
automatic_enable = true,
-- import mason_lspconfig plugin
local mason_lspconfig = require("mason-lspconfig")
-- import cmp-nvim-lsp plugin
local cmp_nvim_lsp = require("cmp_nvim_lsp")
local keymap = vim.keymap -- for conciseness
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
callback = function(ev)
-- Buffer local mappings.
-- See `:help vim.lsp.*` for documentation on any of the below functions
local opts = { buffer = ev.buf, silent = true }
-- set keybinds
opts.desc = "Show LSP references"
keymap.set("n", "gR", "<cmd>Telescope lsp_references<CR>", opts) -- show definition, references
opts.desc = "Go to declaration"
keymap.set("n", "gD", vim.lsp.buf.declaration, opts) -- go to declaration
opts.desc = "Show LSP definitions"
keymap.set("n", "gd", "<cmd>Telescope lsp_definitions<CR>", opts) -- show lsp definitions
opts.desc = "Show LSP implementations"
keymap.set("n", "gi", "<cmd>Telescope lsp_implementations<CR>", opts) -- show lsp implementations
opts.desc = "Show LSP type definitions"
keymap.set("n", "gt", "<cmd>Telescope lsp_type_definitions<CR>", opts) -- show lsp type definitions
opts.desc = "See available code actions"
keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, opts) -- see available code actions, in visual mode will apply to selection
opts.desc = "Smart rename"
keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts) -- smart rename
opts.desc = "Show buffer diagnostics"
keymap.set("n", "<leader>D", "<cmd>Telescope diagnostics bufnr=0<CR>", opts) -- show diagnostics for file
opts.desc = "Show line diagnostics"
keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts) -- show diagnostics for line
opts.desc = "Go to previous diagnostic"
keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) -- jump to previous diagnostic in buffer
opts.desc = "Go to next diagnostic"
keymap.set("n", "]d", vim.diagnostic.goto_next, opts) -- jump to next diagnostic in buffer
opts.desc = "Show documentation for what is under cursor"
keymap.set("n", "K", vim.lsp.buf.hover, opts) -- show documentation for what is under cursor
opts.desc = "Restart LSP"
keymap.set("n", "<leader>rs", ":LspRestart<CR>", opts) -- mapping to restart lsp if necessary
end,
})
-- used to enable autocompletion (assign to every lsp server config)
local capabilities = cmp_nvim_lsp.default_capabilities()
-- Change the Diagnostic symbols in the sign column (gutter)
-- (not in youtube nvim video)
local signs = { Error = "", Warn = "", Hint = "󰠠 ", Info = "" }
for type, icon in pairs(signs) do
local hl = "DiagnosticSign" .. type
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
end
mason_lspconfig.setup_handlers({
-- default handler for installed servers
function(server_name)
lspconfig[server_name].setup({
capabilities = capabilities,
})
end,
["svelte"] = function()
-- configure svelte server
lspconfig["svelte"].setup({
capabilities = capabilities,
on_attach = function(client, bufnr)
vim.api.nvim_create_autocmd("BufWritePost", {
pattern = { "*.js", "*.ts" },
callback = function(ctx)
-- Here use ctx.match instead of ctx.file
client.notify("$/onDidChangeTsOrJsFile", { uri = ctx.match })
end,
})
end,
})
end,
["graphql"] = function()
-- configure graphql language server
lspconfig["graphql"].setup({
capabilities = capabilities,
filetypes = { "graphql", "gql", "svelte", "typescriptreact", "javascriptreact" },
})
end,
["emmet_ls"] = function()
-- configure emmet language server
lspconfig["emmet_ls"].setup({
capabilities = capabilities,
filetypes = { "html", "htmldjango", "typescriptreact", "javascriptreact", "css", "sass", "scss", "less", "svelte", "php" },
})
end,
["lua_ls"] = function()
-- configure lua server (with special settings)
lspconfig["lua_ls"].setup({
capabilities = capabilities,
settings = {
Lua = {
-- make the language server recognize "vim" global
diagnostics = {
globals = { "vim" },
},
completion = {
callSnippet = "Replace",
},
},
},
})
end,
}) })
end, end,
} }
-- return {
-- "neovim/nvim-lspconfig",
-- event = { "BufReadPre", "BufNewFile" },
-- dependencies = {
-- "hrsh7th/cmp-nvim-lsp",
-- { "antosha417/nvim-lsp-file-operations", config = true },
-- { "folke/neodev.nvim", opts = {} },
-- "williamboman/mason.nvim",
-- },
-- config = function()
-- -- import lspconfig plugin
-- local lspconfig = require("lspconfig")
--
-- -- import mason_lspconfig plugin
-- local mason_lspconfig = require("mason-lspconfig")
--
-- -- import cmp-nvim-lsp plugin
-- local cmp_nvim_lsp = require("cmp_nvim_lsp")
--
-- local keymap = vim.keymap -- for conciseness
--
-- vim.api.nvim_create_autocmd("LspAttach", {
-- group = vim.api.nvim_create_augroup("UserLspConfig", {}),
-- callback = function(ev)
-- -- Buffer local mappings.
-- -- See `:help vim.lsp.*` for documentation on any of the below functions
-- local opts = { buffer = ev.buf, silent = true }
--
-- -- set keybinds
-- opts.desc = "Show LSP references"
-- keymap.set("n", "gR", "<cmd>Telescope lsp_references<CR>", opts) -- show definition, references
--
-- opts.desc = "Go to declaration"
-- keymap.set("n", "gD", vim.lsp.buf.declaration, opts) -- go to declaration
--
-- opts.desc = "Show LSP definitions"
-- keymap.set("n", "gd", "<cmd>Telescope lsp_definitions<CR>", opts) -- show lsp definitions
--
-- opts.desc = "Show LSP implementations"
-- keymap.set("n", "gi", "<cmd>Telescope lsp_implementations<CR>", opts) -- show lsp implementations
--
-- opts.desc = "Show LSP type definitions"
-- keymap.set("n", "gt", "<cmd>Telescope lsp_type_definitions<CR>", opts) -- show lsp type definitions
--
-- opts.desc = "See available code actions"
-- keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, opts) -- see available code actions, in visual mode will apply to selection
--
-- opts.desc = "Smart rename"
-- keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts) -- smart rename
--
-- opts.desc = "Show buffer diagnostics"
-- keymap.set("n", "<leader>D", "<cmd>Telescope diagnostics bufnr=0<CR>", opts) -- show diagnostics for file
--
-- opts.desc = "Show line diagnostics"
-- keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts) -- show diagnostics for line
--
-- opts.desc = "Go to previous diagnostic"
-- keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) -- jump to previous diagnostic in buffer
--
-- opts.desc = "Go to next diagnostic"
-- keymap.set("n", "]d", vim.diagnostic.goto_next, opts) -- jump to next diagnostic in buffer
--
-- opts.desc = "Show documentation for what is under cursor"
-- keymap.set("n", "K", vim.lsp.buf.hover, opts) -- show documentation for what is under cursor
--
-- opts.desc = "Restart LSP"
-- keymap.set("n", "<leader>rs", ":LspRestart<CR>", opts) -- mapping to restart lsp if necessary
-- end,
-- })
--
-- -- used to enable autocompletion (assign to every lsp server config)
-- local capabilities = cmp_nvim_lsp.default_capabilities()
--
-- -- Change the Diagnostic symbols in the sign column (gutter)
-- -- (not in youtube nvim video)
-- local signs = { Error = " ", Warn = " ", Hint = "󰠠 ", Info = " " }
-- for type, icon in pairs(signs) do
-- local hl = "DiagnosticSign" .. type
-- vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
-- end
--
-- mason_lspconfig.setup_handlers({
-- -- default handler for installed servers
-- function(server_name)
-- lspconfig[server_name].setup({
-- capabilities = capabilities,
-- })
-- end,
-- ["svelte"] = function()
-- -- configure svelte server
-- lspconfig["svelte"].setup({
-- capabilities = capabilities,
-- on_attach = function(client, bufnr)
-- vim.api.nvim_create_autocmd("BufWritePost", {
-- pattern = { "*.js", "*.ts" },
-- callback = function(ctx)
-- -- Here use ctx.match instead of ctx.file
-- client.notify("$/onDidChangeTsOrJsFile", { uri = ctx.match })
-- end,
-- })
-- end,
-- })
-- end,
-- ["graphql"] = function()
-- -- configure graphql language server
-- lspconfig["graphql"].setup({
-- capabilities = capabilities,
-- filetypes = { "graphql", "gql", "svelte", "typescriptreact", "javascriptreact" },
-- })
-- end,
-- ["emmet_ls"] = function()
-- -- configure emmet language server
-- lspconfig["emmet_ls"].setup({
-- capabilities = capabilities,
-- filetypes = {
-- "html",
-- "htmldjango",
-- "typescriptreact",
-- "javascriptreact",
-- "css",
-- "sass",
-- "scss",
-- "less",
-- "svelte",
-- "php",
-- },
-- })
-- end,
-- ["lua_ls"] = function()
-- -- configure lua server (with special settings)
-- lspconfig["lua_ls"].setup({
-- capabilities = capabilities,
-- settings = {
-- Lua = {
-- -- make the language server recognize "vim" global
-- diagnostics = {
-- globals = { "vim" },
-- },
-- completion = {
-- callSnippet = "Replace",
-- },
-- },
-- },
-- })
-- end,
-- })
-- end,
-- }

View File

@@ -4,7 +4,6 @@ return {
"williamboman/mason-lspconfig.nvim", "williamboman/mason-lspconfig.nvim",
"WhoIsSethDaniel/mason-tool-installer.nvim", "WhoIsSethDaniel/mason-tool-installer.nvim",
}, },
cmd = { "Mason", "MasonInstall", "MasonInstallAll", "MasonUpdate" },
config = function() config = function()
-- import mason -- import mason
local mason = require("mason") local mason = require("mason")
@@ -28,7 +27,7 @@ return {
mason_lspconfig.setup({ mason_lspconfig.setup({
-- list of servers for mason to install -- list of servers for mason to install
ensure_installed = { ensure_installed = {
"tsserver", -- "tsserver",
"html", "html",
"cssls", "cssls",
"tailwindcss", "tailwindcss",
@@ -38,7 +37,6 @@ return {
"emmet_ls", "emmet_ls",
"prismals", "prismals",
"pyright", "pyright",
"django-template-lsp",
}, },
}) })
@@ -52,6 +50,5 @@ return {
"eslint_d", -- js linter "eslint_d", -- js linter
}, },
}) })
end, end,
} }