diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index 8edd194..bced4a2 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -49,23 +49,12 @@ return require("packer").startup(function() config = [[ require('refactoring').setup({}) ]], }) - -- Tooling - use({ - "WhoIsSethDaniel/mason-tool-installer.nvim", - { - "williamboman/mason.nvim", - config = [[ require('plugins.tooling') ]], - }, - }) - -- LSP use({ "folke/lsp-colors.nvim", -- Color groups - { - -- Installer - "williamboman/mason-lspconfig.nvim", - require = "williamboman/mason.nvim", - }, + "WhoIsSethDaniel/mason-tool-installer.nvim", + "williamboman/mason.nvim", + "williamboman/mason-lspconfig.nvim", "folke/neodev.nvim", -- Lua "jose-elias-alvarez/typescript.nvim", -- Typsecript "jose-elias-alvarez/null-ls.nvim", -- Tooling diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index c75dc79..cc6fc03 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -1,16 +1,32 @@ local wk = require("which-key") +require("mason").setup() + +require("mason-tool-installer").setup({ + ensure_installed = { + "stylua", + "shellcheck", + "shfmt", + "editorconfig-checker", + "eslint_d", + "prettier", + "prettierd", + "flake8", + "black", + }, +}) + require("mason-lspconfig").setup({ - automatic_installation = true, + automatic_installation = true, }) vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { - border = "rounded", - close_events = { "CursorMoved", "BufHidden", "InsertCharPre" }, + border = "rounded", + close_events = { "CursorMoved", "BufHidden", "InsertCharPre" }, }) vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { - border = "rounded", + border = "rounded", }) require("aerial").setup({}) @@ -20,133 +36,133 @@ local capabilities = require("cmp_nvim_lsp").default_capabilities() local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) local lsp_rename_mapping = { - function() - vim.lsp.buf.rename() - end, - "Rename LSP symbol", + function() + vim.lsp.buf.rename() + end, + "Rename LSP symbol", } local lsp_references_mapping = { - "TroubleToggle lsp_references", - "LSP references", + "TroubleToggle lsp_references", + "LSP references", } local on_attach = function(client, bufnr) - vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") - - -- Normal mappings - wk.register({ - c = { - a = { "lua vim.lsp.buf.code_action()", "Code action" }, - r = lsp_rename_mapping, - f = { - "lua vim.lsp.buf.format()", - "Format file", - }, - o = { "AerialToggle!", "Toggle outline" }, - x = { "lua vim.diagnostic.open_float({source= true})", "Show line diagnostics" }, - R = lsp_references_mapping, - t = { - name = "Trouble", - t = { "TroubleToggle", "Trouble Toggle" }, - r = lsp_references_mapping, - w = { "TroubleToggle lsp_workspace_diagnostics", "Workspace diagnostics" }, - d = { "TroubleToggle lsp_document_diagnostics", "Document diagnostics" }, - q = { "TroubleToggle quickfix", "Quickfix" }, - l = { "TroubleToggle loclist", "Location list" }, - }, - g = { - name = "Go to", - D = { "lua vim.lsp.buf.declaration()", "Go to declaration" }, - d = { "lua vim.lsp.buf.definition()", "Go to definition" }, - i = { "lua vim.lsp.buf.implementation()", "Go to implementation" }, - t = { "lua vim.lsp.buf.type_definition()", "Go to type definition" }, - }, - }, - }, { - prefix = "", - buffer = bufnr, - }) - - -- Visual mappings - wk.register({ - c = { - a = { "lua vim.lsp.buf.code_action()", "Range code action" }, - f = { - "lua vim.lsp.buf.format()", - "Range formatting", - }, - }, - }, { - mode = "v", - prefix = "", - buffer = bufnr, - }) - - -- No leader mappings - wk.register({ - gd = { "lua vim.lsp.buf.definition()", "Go to definition" }, - K = { "lua vim.lsp.buf.hover()", "LSP Hover" }, - ["lua vim.lsp.buf.signature_help()", "LSP Signature" }, - [""] = lsp_rename_mapping, - ["[["] = { "AerialPrevUp", "Outline previous" }, - ["]]"] = { "AerialNext", "Outline next" }, - }, { - buffer = bufnr, - }) - - if client.supports_method("textDocument/formatting") then - vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) - vim.api.nvim_create_autocmd("BufWritePre", { - group = augroup, - buffer = bufnr, - callback = function() - if vim.g.format_on_save == 1 then - vim.lsp.buf.format({ bufnr = bufnr }) - end - end, - }) - end + vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") + + -- Normal mappings + wk.register({ + c = { + a = { "lua vim.lsp.buf.code_action()", "Code action" }, + r = lsp_rename_mapping, + f = { + "lua vim.lsp.buf.format()", + "Format file", + }, + o = { "AerialToggle!", "Toggle outline" }, + x = { "lua vim.diagnostic.open_float({source= true})", "Show line diagnostics" }, + R = lsp_references_mapping, + t = { + name = "Trouble", + t = { "TroubleToggle", "Trouble Toggle" }, + r = lsp_references_mapping, + w = { "TroubleToggle lsp_workspace_diagnostics", "Workspace diagnostics" }, + d = { "TroubleToggle lsp_document_diagnostics", "Document diagnostics" }, + q = { "TroubleToggle quickfix", "Quickfix" }, + l = { "TroubleToggle loclist", "Location list" }, + }, + g = { + name = "Go to", + D = { "lua vim.lsp.buf.declaration()", "Go to declaration" }, + d = { "lua vim.lsp.buf.definition()", "Go to definition" }, + i = { "lua vim.lsp.buf.implementation()", "Go to implementation" }, + t = { "lua vim.lsp.buf.type_definition()", "Go to type definition" }, + }, + }, + }, { + prefix = "", + buffer = bufnr, + }) + + -- Visual mappings + wk.register({ + c = { + a = { "lua vim.lsp.buf.code_action()", "Range code action" }, + f = { + "lua vim.lsp.buf.format()", + "Range formatting", + }, + }, + }, { + mode = "v", + prefix = "", + buffer = bufnr, + }) + + -- No leader mappings + wk.register({ + gd = { "lua vim.lsp.buf.definition()", "Go to definition" }, + K = { "lua vim.lsp.buf.hover()", "LSP Hover" }, + ["lua vim.lsp.buf.signature_help()", "LSP Signature" }, + [""] = lsp_rename_mapping, + ["[["] = { "AerialPrevUp", "Outline previous" }, + ["]]"] = { "AerialNext", "Outline next" }, + }, { + buffer = bufnr, + }) + + if client.supports_method("textDocument/formatting") then + vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup, + buffer = bufnr, + callback = function() + if vim.g.format_on_save == 1 then + vim.lsp.buf.format({ bufnr = bufnr }) + end + end, + }) + end end local settings = { - capabilities = capabilities, - on_attach = on_attach, + capabilities = capabilities, + on_attach = on_attach, } -- Neovim require("neodev").setup({}) local servers = { - "clangd", - "pyright", - "rust_analyzer", - "gopls", - "tailwindcss", - "jsonls", - "lua_ls", + "clangd", + "pyright", + "rust_analyzer", + "gopls", + "tailwindcss", + "jsonls", + "lua_ls", } for _, lsp in pairs(servers) do - require("lspconfig")[lsp].setup(settings) + require("lspconfig")[lsp].setup(settings) end -- JSON require("lspconfig").jsonls.setup(vim.tbl_deep_extend("force", settings, { - settings = { - json = { - schemas = require("schemastore").json.schemas(), - validate = { - enable = true, - }, - }, - }, + settings = { + json = { + schemas = require("schemastore").json.schemas(), + validate = { + enable = true, + }, + }, + }, })) -- Typescript require("typescript").setup({ - disable_commands = false, - debug = false, - server = settings, + disable_commands = false, + debug = false, + server = settings, }) -- null-ls @@ -155,90 +171,90 @@ local null_ls = require("null-ls") vim.g.format_on_save = 1 function _G.toggle_format_on_save() - if vim.g.format_on_save == 1 then - vim.g.format_on_save = 0 - print("Disabled format on save") - else - vim.g.format_on_save = 1 - print("Enabled format on save") - end + if vim.g.format_on_save == 1 then + vim.g.format_on_save = 0 + print("Disabled format on save") + else + vim.g.format_on_save = 1 + print("Enabled format on save") + end end require("null-ls").setup({ - timeout_ms = 5000, - sources = { - -- General - null_ls.builtins.code_actions.refactoring, - null_ls.builtins.completion.spell, - null_ls.builtins.diagnostics.trail_space, - null_ls.builtins.formatting.trim_newlines, - null_ls.builtins.formatting.trim_whitespace, - - -- Git - null_ls.builtins.code_actions.gitrebase, - null_ls.builtins.code_actions.gitsigns, - - -- GitHub - null_ls.builtins.diagnostics.actionlint, - - -- Shell - null_ls.builtins.code_actions.shellcheck, - null_ls.builtins.diagnostics.shellcheck, - null_ls.builtins.formatting.shfmt, - - -- C/C++ - null_ls.builtins.formatting.clang_format, - null_ls.builtins.formatting.cmake_format, - - -- Web - null_ls.builtins.formatting.prettier, - -- null_ls.builtins.code_actions.eslint_d, - null_ls.builtins.code_actions.eslint, - null_ls.builtins.diagnostics.eslint, - -- null_ls.builtins.formatting.eslint, - null_ls.builtins.diagnostics.stylelint, - null_ls.builtins.formatting.stylelint, - null_ls.builtins.formatting.rustywind, - - -- Markdown - null_ls.builtins.formatting.remark, - - -- Lua - -- null_ls.builtins.diagnostics.luacheck, - null_ls.builtins.formatting.stylua, - - -- Python - null_ls.builtins.diagnostics.flake8, - null_ls.builtins.formatting.black, - null_ls.builtins.formatting.isort, - - -- PHP - null_ls.builtins.diagnostics.phpstan, - - -- Go - null_ls.builtins.formatting.gofmt, - - -- Rust - null_ls.builtins.formatting.rustfmt, - }, + timeout_ms = 5000, + sources = { + -- General + null_ls.builtins.code_actions.refactoring, + null_ls.builtins.completion.spell, + null_ls.builtins.diagnostics.trail_space, + null_ls.builtins.formatting.trim_newlines, + null_ls.builtins.formatting.trim_whitespace, + + -- Git + null_ls.builtins.code_actions.gitrebase, + null_ls.builtins.code_actions.gitsigns, + + -- GitHub + null_ls.builtins.diagnostics.actionlint, + + -- Shell + null_ls.builtins.code_actions.shellcheck, + null_ls.builtins.diagnostics.shellcheck, + null_ls.builtins.formatting.shfmt, + + -- C/C++ + null_ls.builtins.formatting.clang_format, + null_ls.builtins.formatting.cmake_format, + + -- Web + null_ls.builtins.formatting.prettier, + -- null_ls.builtins.code_actions.eslint_d, + null_ls.builtins.code_actions.eslint, + null_ls.builtins.diagnostics.eslint, + -- null_ls.builtins.formatting.eslint, + null_ls.builtins.diagnostics.stylelint, + null_ls.builtins.formatting.stylelint, + null_ls.builtins.formatting.rustywind, + + -- Markdown + null_ls.builtins.formatting.remark, + + -- Lua + -- null_ls.builtins.diagnostics.luacheck, + null_ls.builtins.formatting.stylua, + + -- Python + null_ls.builtins.diagnostics.flake8, + null_ls.builtins.formatting.black, + null_ls.builtins.formatting.isort, + + -- PHP + null_ls.builtins.diagnostics.phpstan, + + -- Go + null_ls.builtins.formatting.gofmt, + + -- Rust + null_ls.builtins.formatting.rustfmt, + }, }) vim.api.nvim_create_autocmd("LspAttach", { - callback = function(args) - vim.bo[args.buf].formatexpr = nil - end, + callback = function(args) + vim.bo[args.buf].formatexpr = nil + end, }) require("nvim-lightbulb").setup({ - autocmd = { - enabled = false, - }, - sign = { - enabled = false, - }, - virtual_text = { - enabled = false, - }, + autocmd = { + enabled = false, + }, + sign = { + enabled = false, + }, + virtual_text = { + enabled = false, + }, }) require("fidget").setup({}) diff --git a/lua/plugins/nvim-tree.lua b/lua/plugins/nvim-tree.lua index 0245791..5920f23 100644 --- a/lua/plugins/nvim-tree.lua +++ b/lua/plugins/nvim-tree.lua @@ -1,89 +1,85 @@ local wk = require("which-key") wk.register({ - o = { - p = { "NvimTreeToggle", "Open project sidebar" }, - }, + o = { + p = { "NvimTreeToggle", "Open project sidebar" }, + }, }, { - prefix = "", + prefix = "", }) require("nvim-tree").setup({ - auto_reload_on_write = true, - create_in_closed_folder = false, - disable_netrw = false, - hijack_netrw = true, - hijack_unnamed_buffer_when_opening = false, - ignore_buffer_on_setup = false, - open_on_setup = false, - open_on_setup_file = false, - open_on_tab = false, - sort_by = "name", - update_cwd = true, - reload_on_bufenter = false, - respect_buf_cwd = true, - ignore_ft_on_setup = {}, - hijack_cursor = false, - update_focused_file = { - enable = true, - update_cwd = true, - ignore_list = {}, - }, - system_open = { - cmd = nil, - args = {}, - }, - view = { - width = 30, - side = "left", - signcolumn = "no", - mappings = { - custom_only = false, - list = {}, - }, - }, - git = { - ignore = false, - }, - renderer = { - special_files = {}, - group_empty = false, - highlight_git = true, - icons = { - git_placement = "before", - show = { - file = true, - folder = true, - folder_arrow = true, - git = true, - }, - glyphs = { - default = "", - symlink = "", - git = { - unstaged = "", - staged = "", - unmerged = "", - renamed = "", - untracked = "", - deleted = "", - ignored = "", - }, - }, - }, - }, - diagnostics = { - enable = false, - show_on_dirs = false, - icons = { - hint = "", - info = "", - warning = "", - error = "", - }, - }, - trash = { - cmd = "trash", - require_confirm = true, - }, + auto_reload_on_write = true, + create_in_closed_folder = false, + disable_netrw = false, + hijack_netrw = true, + hijack_unnamed_buffer_when_opening = false, + open_on_tab = false, + sort_by = "name", + update_cwd = true, + reload_on_bufenter = false, + respect_buf_cwd = true, + hijack_cursor = false, + update_focused_file = { + enable = true, + update_cwd = true, + ignore_list = {}, + }, + system_open = { + cmd = nil, + args = {}, + }, + view = { + width = 30, + side = "left", + signcolumn = "no", + mappings = { + custom_only = false, + list = {}, + }, + }, + git = { + ignore = false, + }, + renderer = { + special_files = {}, + group_empty = false, + highlight_git = true, + icons = { + git_placement = "before", + show = { + file = true, + folder = true, + folder_arrow = true, + git = true, + }, + glyphs = { + default = "", + symlink = "", + git = { + unstaged = "", + staged = "", + unmerged = "", + renamed = "", + untracked = "", + deleted = "", + ignored = "", + }, + }, + }, + }, + diagnostics = { + enable = false, + show_on_dirs = false, + icons = { + hint = "", + info = "", + warning = "", + error = "", + }, + }, + trash = { + cmd = "trash", + require_confirm = true, + }, }) diff --git a/lua/plugins/telescope-nvim.lua b/lua/plugins/telescope-nvim.lua index 05853bb..3e44429 100644 --- a/lua/plugins/telescope-nvim.lua +++ b/lua/plugins/telescope-nvim.lua @@ -74,7 +74,7 @@ wk.register({ f = { f = { "Telescope find_files", "Find file" }, p = { - [[lua require('telescope.builtin').find_files{ cwd = '~/.config/nvim/' }]], + [[lua require('telescope.builtin').git_files{ cwd = '~/.config/nvim/' }]], "Find config file", }, o = { "Telescope oldfiles", "Open recent file" }, diff --git a/lua/plugins/tooling.lua b/lua/plugins/tooling.lua deleted file mode 100644 index bb10693..0000000 --- a/lua/plugins/tooling.lua +++ /dev/null @@ -1,15 +0,0 @@ -require("mason").setup() - -require("mason-tool-installer").setup({ - ensure_installed = { - "stylua", - "shellcheck", - "shfmt", - "editorconfig-checker", - "eslint_d", - "prettier", - "prettierd", - "flake8", - "black", - }, -})