From cda2cae5e51c414c18479a472461ceb5ee95f862 Mon Sep 17 00:00:00 2001 From: jaredgoldman Date: Sun, 5 May 2024 08:55:15 -0400 Subject: [PATCH] feat: add ShowFilePath command --- lazy-lock.json | 18 ++--- lua/commands.lua | 6 ++ lua/config/autotags.lua | 34 ++++---- lua/config/conform.lua | 1 + lua/config/mason.lua | 7 -- lua/lsp.lua | 104 ++++++++++++------------ lua/options.lua | 4 + lua/plugins.lua | 174 ++++++++++++++++++++-------------------- 8 files changed, 176 insertions(+), 172 deletions(-) create mode 100644 lua/commands.lua diff --git a/lazy-lock.json b/lazy-lock.json index 8205bba..31b492b 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -6,15 +6,15 @@ "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, - "conform.nvim": { "branch": "master", "commit": "4660e534bf7678ee0f85879aa75fdcb6855612c2" }, + "conform.nvim": { "branch": "master", "commit": "12b3995537f52ba2810a9857e8ca256881febbda" }, "copilot.vim": { "branch": "release", "commit": "1e135c5303bc60598f6314a2276f31dc91aa34dd" }, - "dashboard-nvim": { "branch": "master", "commit": "6d06924b562de6f0bb136edf1bf549afbf6b7d00" }, + "dashboard-nvim": { "branch": "master", "commit": "1c8b82c5b02bb890862538be2061e37ef801a99b" }, "git-blame.nvim": { "branch": "master", "commit": "ad1d1365c9189d89797fe8d559677d5f55dc2830" }, "harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" }, "lazy.nvim": { "branch": "main", "commit": "3f13f080434ac942b150679223d54f5ca91e0d52" }, "lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "1a14770dc8c7cb29643870ac79788eec6f7ce1f8" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "273fdde8ac5e51f3a223ba70980e52bbc09d9f6f" }, "mason-nvim-dap.nvim": { "branch": "main", "commit": "67210c0e775adec55de9826b038e8b62de554afc" }, "mason.nvim": { "branch": "main", "commit": "751b1fcbf3d3b783fcf8d48865264a9bcd8f9b10" }, "monokai.nvim": { "branch": "master", "commit": "b8bd44d5796503173627d7a1fc51f77ec3a08a63" }, @@ -23,14 +23,14 @@ "nvim-comment": { "branch": "main", "commit": "e9ac16ab056695cad6461173693069ec070d2b23" }, "nvim-dap": { "branch": "master", "commit": "6ae8a14828b0f3bff1721a35a1dfd604b6a933bb" }, "nvim-grey": { "branch": "main", "commit": "d822f82a990198e354845fe4d191f5f527302444" }, - "nvim-lspconfig": { "branch": "master", "commit": "cfa386fc4027e847156ee16141ea1f4c0bc2f0a4" }, - "nvim-tree.lua": { "branch": "master", "commit": "62008e5cf2e8745c9d23bb599ef642963131057e" }, - "nvim-treesitter": { "branch": "master", "commit": "b04ccbd0e041bb05f3eef271124da02497d9d10c" }, + "nvim-lspconfig": { "branch": "master", "commit": "aa5f4f4ee10b2688fb37fa46215672441d5cd5d9" }, + "nvim-tree.lua": { "branch": "master", "commit": "347e1eb35264677f66a79466bb5e3d111968e12c" }, + "nvim-treesitter": { "branch": "master", "commit": "bbc67f736e22c37c23f2c11a05bfa23b715af30c" }, "nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" }, - "nvim-web-devicons": { "branch": "master", "commit": "beb6367ab8496c9e43f22e0252735fdadae1872d" }, - "plenary.nvim": { "branch": "master", "commit": "5129a3693c482fcbc5ab99a7706ffc4360b995a0" }, + "nvim-web-devicons": { "branch": "master", "commit": "794bba734ec95eaff9bb82fbd112473be2087283" }, + "plenary.nvim": { "branch": "master", "commit": "08e301982b9a057110ede7a735dd1b5285eb341f" }, "telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" }, "themery.nvim": { "branch": "main", "commit": "1005a58801276d29c4b1e11244cf7631250f9143" }, "vim-maximizer": { "branch": "master", "commit": "2e54952fe91e140a2e69f35f22131219fcd9c5f1" }, - "vscode-js-debug": { "branch": "main", "commit": "774a6fb444c75724914f23c2d07e8b0a9fcb080d" } + "vscode-js-debug": { "branch": "main", "commit": "0b40365364f2867691701bff5aedf68d7fa0fe9d" } } \ No newline at end of file diff --git a/lua/commands.lua b/lua/commands.lua new file mode 100644 index 0000000..31e6944 --- /dev/null +++ b/lua/commands.lua @@ -0,0 +1,6 @@ +local api = vim.api + +-- Show file path in command bar +api.nvim_create_user_command("ShowFilePath", function() + print(vim.fn.expand("%:p")) +end, { bang = true }) diff --git a/lua/config/autotags.lua b/lua/config/autotags.lua index 2119b60..9f9fa37 100644 --- a/lua/config/autotags.lua +++ b/lua/config/autotags.lua @@ -1,18 +1,20 @@ -require'nvim-treesitter.configs'.setup { - autotag = { - enable = true, - } -} +require("nvim-treesitter.configs").setup({ + autotag = { + enable = true, + }, + opts = function(_, opts) + if type(opts.ensure_installed) == "table" then + vim.list_extend(opts.ensure_installed, { "typescript", "tsx" }) + end + end, +}) -- Enable update on insert -vim.lsp.handlers['textDocument/publishDiagnostics'] = vim.lsp.with( - vim.lsp.diagnostic.on_publish_diagnostics, - { - underline = true, - virtual_text = { - spacing = 5, - severity_limit = 'Warning', - }, - update_in_insert = true, - } -) +vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, { + underline = true, + virtual_text = { + spacing = 5, + severity_limit = "Warning", + }, + update_in_insert = true, +}) diff --git a/lua/config/conform.lua b/lua/config/conform.lua index a39b562..1de3bc9 100644 --- a/lua/config/conform.lua +++ b/lua/config/conform.lua @@ -6,6 +6,7 @@ require("conform").setup({ javascriptreact = { "prettierd", "prettier" }, typescriptreact = { "prettierd", "prettier" }, json = { { "prettierd", "prettier" } }, + jsonc = { { "prettierd", "prettier" } }, markdown = { { "marksman", "prettier", "prettierd" } }, }, }) diff --git a/lua/config/mason.lua b/lua/config/mason.lua index 704c894..1e669f3 100644 --- a/lua/config/mason.lua +++ b/lua/config/mason.lua @@ -11,15 +11,8 @@ require("mason").setup({ -- A list of servers to automatically install if they're not already installed require("mason-lspconfig").setup({ ensure_installed = { - "cssls", - "cssmodules_ls", - "graphql", - "html", - "intelephense", - "tailwindcss", "tsserver", "jsonls", "lua_ls", - "marksman", }, }) diff --git a/lua/lsp.lua b/lua/lsp.lua index ad9ae93..715b527 100644 --- a/lua/lsp.lua +++ b/lua/lsp.lua @@ -1,71 +1,69 @@ local lspconfig = require("lspconfig") local mappings = { - ["k"] = vim.diagnostic.open_float, - ["[d"] = vim.diagnostic.goto_prev, - ["]d"] = vim.diagnostic.goto_next, - ["q"] = vim.diagnostic.setloclist, - ["gD"] = vim.lsp.buf.declaration, - ["gd"] = vim.lsp.buf.definition, - ["K"] = vim.lsp.buf.hover, - ["gi"] = vim.lsp.buf.implementation, - ["wa"] = vim.lsp.buf.add_workspace_folder, - ["wr"] = vim.lsp.buf.remove_workspace_folder, - ["wl"] = function() - print(vim.inspect(vim.lsp.buf.list_workleader_folders())) - end, - ["D"] = vim.lsp.buf.type_definition, - ["rn"] = vim.lsp.buf.rename, - ["ca"] = vim.lsp.buf.code_action, - ["gr"] = vim.lsp.buf.references, + ["k"] = vim.diagnostic.open_float, + ["[d"] = vim.diagnostic.goto_prev, + ["]d"] = vim.diagnostic.goto_next, + ["q"] = vim.diagnostic.setloclist, + ["gD"] = vim.lsp.buf.declaration, + ["gd"] = vim.lsp.buf.definition, + ["K"] = vim.lsp.buf.hover, + ["gi"] = vim.lsp.buf.implementation, + ["wa"] = vim.lsp.buf.add_workspace_folder, + ["wr"] = vim.lsp.buf.remove_workspace_folder, + ["wl"] = function() + print(vim.inspect(vim.lsp.buf.list_workleader_folders())) + end, + ["D"] = vim.lsp.buf.type_definition, + ["rn"] = vim.lsp.buf.rename, + ["ca"] = vim.lsp.buf.code_action, + ["gr"] = vim.lsp.buf.references, } local on_attach = function(client, bufnr) - -- Enable completion triggered by - vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") - local bufopts = { noremap = true, silent = true, buffer = bufnr } - for key, mapping in pairs(mappings) do - vim.keymap.set("n", key, mapping, bufopts) - end + -- Enable completion triggered by + vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") + local bufopts = { noremap = true, silent = true, buffer = bufnr } + for key, mapping in pairs(mappings) do + vim.keymap.set("n", key, mapping, bufopts) + end end local servers = { - "tsserver", - "intelephense", - "tailwindcss", - "lua_ls", - "marksman", + "tsserver", + "lua_ls", } local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities.textDocument.completion.completionItem = { - documentationFormat = { "markdown", "plaintext" }, - snippetSupport = true, - preselectSupport = true, - insertReplaceSupport = true, - labelDetailsSupport = true, - deprecatedSupport = true, - commitCharactersSupport = true, - tagSupport = { valueSet = { 1 } }, - resolveSupport = { - properties = { - "documentation", - "detail", - "additionalTextEdits", - }, - }, + documentationFormat = { "markdown", "plaintext" }, + snippetSupport = true, + preselectSupport = true, + insertReplaceSupport = true, + labelDetailsSupport = true, + deprecatedSupport = true, + commitCharactersSupport = true, + tagSupport = { valueSet = { 1 } }, + resolveSupport = { + properties = { + "documentation", + "detail", + "additionalTextEdits", + }, + }, } for _, lsp in ipairs(servers) do - lspconfig[lsp].setup({ - on_attach = on_attach, - capabilities = capabilities, - -- For suppressing vim error messages in config - settings = { - Lua = { - diagnostics = { globals = { "vim" } }, - }, - }, - }) + lspconfig[lsp].setup({ + on_attach = on_attach, + capabilities = capabilities, + -- For suppressing vim error messages in config + settings = { + Lua = { + diagnostics = { globals = { "vim" } }, + }, + }, + }) end + diff --git a/lua/options.lua b/lua/options.lua index 093f44f..f372b21 100644 --- a/lua/options.lua +++ b/lua/options.lua @@ -57,3 +57,7 @@ vim.api.nvim_create_autocmd("BufWritePre", { formatter.format(nil) end, }) + +-- Logging -- +-- opt.verbosefile = '~/.config/nvim/nvim_log' -- Set the location for the log file +-- opt.verbose = 15 -- Set the verbosity level diff --git a/lua/plugins.lua b/lua/plugins.lua index 78a1a23..05cc4d1 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -2,96 +2,96 @@ local dashboard = require("config.dashboard") local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then - vim.fn.system({ - "git", - "clone", - "--filter=blob:none", - "https://github.com/folke/lazy.nvim.git", - "--branch=stable", -- latest stable release - lazypath, - }) + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", -- latest stable release + lazypath, + }) end vim.opt.rtp:prepend(lazypath) require("lazy").setup({ - -- Dashboard - { - "nvimdev/dashboard-nvim", - event = "VimEnter", - opts = dashboard.dashboard_config, - }, - -- Theming - "tanvirtin/monokai.nvim", - "yorickpeterse/nvim-grey", - { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, - { - "onsails/lspkind.nvim", - event = { "VimEnter" }, - }, - -- Auto-completion engine - { - "hrsh7th/nvim-cmp", - dependencies = { "lspkind.nvim" }, - config = function() - require("config.nvim-cmp") - end, - }, - { "hrsh7th/cmp-nvim-lsp", dependencies = { "nvim-cmp" } }, - { "hrsh7th/cmp-buffer", dependencies = { "nvim-cmp" } }, -- buffer auto-completion - { "hrsh7th/cmp-path", dependencies = { "nvim-cmp" } }, -- path auto-completion - { "hrsh7th/cmp-cmdline", dependencies = { "nvim-cmp" } }, -- cmdline auto-completion - -- Code snippet engine - { - "L3MON4D3/LuaSnip", - version = "v2.*", - }, - "williamboman/mason.nvim", - "williamboman/mason-lspconfig.nvim", - "neovim/nvim-lspconfig", - "nvim-tree/nvim-tree.lua", - version = "*", - lazy = false, - dependencies = { - "nvim-tree/nvim-web-devicons", - }, - { - "nvim-telescope/telescope.nvim", - tag = "0.1.6", - dependencies = { "nvim-lua/plenary.nvim" }, - }, - "zaldih/themery.nvim", - "terrortylor/nvim-comment", - "szw/vim-maximizer", - { - "nvim-lualine/lualine.nvim", - dependencies = { "nvim-tree/nvim-web-devicons" }, - }, - "numToStr/FTerm.nvim", - "github/copilot.vim", - "nvim-lua/plenary.nvim", - { - "ThePrimeagen/harpoon", - branch = "harpoon2", - requires = { { "nvim-lua/plenary.nvim" } }, - }, - { - "windwp/nvim-autopairs", - event = "InsertEnter", - config = true, - }, - "windwp/nvim-ts-autotag", - "nvim-treesitter/nvim-treesitter", - { - "mfussenegger/nvim-dap", - opt = true, - run = "npm install --legacy-peer-deps && npx gulp vsDebugServerBundle && mv dist out" - }, - "jay-babu/mason-nvim-dap.nvim", - "microsoft/vscode-js-debug", - { - "stevearc/conform.nvim", - opts = {}, - }, - "f-person/git-blame.nvim", + -- Dashboard + { + "nvimdev/dashboard-nvim", + event = "VimEnter", + opts = dashboard.dashboard_config, + }, + -- Theming + "tanvirtin/monokai.nvim", + "yorickpeterse/nvim-grey", + { "catppuccin/nvim", name = "catppuccin", priority = 1000 }, + { + "onsails/lspkind.nvim", + event = { "VimEnter" }, + }, + -- Auto-completion engine + { + "hrsh7th/nvim-cmp", + dependencies = { "lspkind.nvim" }, + config = function() + require("config.nvim-cmp") + end, + }, + { "hrsh7th/cmp-nvim-lsp", dependencies = { "nvim-cmp" } }, + { "hrsh7th/cmp-buffer", dependencies = { "nvim-cmp" } }, -- buffer auto-completion + { "hrsh7th/cmp-path", dependencies = { "nvim-cmp" } }, -- path auto-completion + { "hrsh7th/cmp-cmdline", dependencies = { "nvim-cmp" } }, -- cmdline auto-completion + -- Code snippet engine + { + "L3MON4D3/LuaSnip", + version = "v2.*", + }, + "williamboman/mason.nvim", + "williamboman/mason-lspconfig.nvim", + "neovim/nvim-lspconfig", + "nvim-tree/nvim-tree.lua", + version = "*", + lazy = false, + dependencies = { + "nvim-tree/nvim-web-devicons", + }, + { + "nvim-telescope/telescope.nvim", + tag = "0.1.6", + dependencies = { "nvim-lua/plenary.nvim" }, + }, + "zaldih/themery.nvim", + "terrortylor/nvim-comment", + "szw/vim-maximizer", + { + "nvim-lualine/lualine.nvim", + dependencies = { "nvim-tree/nvim-web-devicons" }, + }, + "numToStr/FTerm.nvim", + "github/copilot.vim", + "nvim-lua/plenary.nvim", + { + "ThePrimeagen/harpoon", + branch = "harpoon2", + requires = { { "nvim-lua/plenary.nvim" } }, + }, + { + "windwp/nvim-autopairs", + event = "InsertEnter", + config = true, + }, + "windwp/nvim-ts-autotag", + "nvim-treesitter/nvim-treesitter", + { + "mfussenegger/nvim-dap", + opt = true, + run = "npm install --legacy-peer-deps && npx gulp vsDebugServerBundle && mv dist out", + }, + "jay-babu/mason-nvim-dap.nvim", + "microsoft/vscode-js-debug", + { + "stevearc/conform.nvim", + opts = {}, + }, + "f-person/git-blame.nvim", })