From 7a906314d8ec99ca6c577c6f15be5be928947ee5 Mon Sep 17 00:00:00 2001 From: devaine Date: Wed, 3 Sep 2025 12:50:00 -0500 Subject: [PATCH] refactor + feat: replaced nvim-cmp w/ coq_nvim and refactored everything --- lazy-lock.json | 46 +++--- lua/core/config/custom.lua | 61 ++++--- lua/core/plugins/autocomplete.lua | 48 ------ lua/core/plugins/autotag.lua | 6 - lua/core/plugins/colorscheme.lua | 6 + lua/core/plugins/comments.lua | 8 - lua/core/plugins/dev-tools.lua | 78 +++++++++ lua/core/plugins/discord.lua | 5 + lua/core/plugins/file-explorer.lua | 30 ++++ lua/core/plugins/formatter.lua | 37 +++-- lua/core/plugins/fuzzyfinder.lua | 20 +++ lua/core/plugins/highlight.lua | 8 - lua/core/plugins/indent.lua | 7 - lua/core/plugins/lsp.lua | 245 +++++++++++++++++------------ lua/core/plugins/nvim-tree.lua | 14 -- lua/core/plugins/parser.lua | 50 ++++++ lua/core/plugins/rest.lua | 16 +- lua/core/plugins/telescope.lua | 14 -- lua/core/plugins/tree-sitter.lua | 47 ------ 19 files changed, 435 insertions(+), 311 deletions(-) delete mode 100644 lua/core/plugins/autocomplete.lua delete mode 100644 lua/core/plugins/autotag.lua delete mode 100644 lua/core/plugins/comments.lua create mode 100644 lua/core/plugins/dev-tools.lua create mode 100644 lua/core/plugins/file-explorer.lua create mode 100644 lua/core/plugins/fuzzyfinder.lua delete mode 100644 lua/core/plugins/highlight.lua delete mode 100644 lua/core/plugins/indent.lua delete mode 100644 lua/core/plugins/nvim-tree.lua create mode 100644 lua/core/plugins/parser.lua delete mode 100644 lua/core/plugins/telescope.lua delete mode 100644 lua/core/plugins/tree-sitter.lua diff --git a/lazy-lock.json b/lazy-lock.json index a46dddc..e5a95dd 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,34 +1,26 @@ { - "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" }, - "cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" }, - "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, - "conform.nvim": { "branch": "master", "commit": "eebc724d12c5579d733d1f801386e0ceb909d001" }, - "cord.nvim": { "branch": "master", "commit": "caf33cd8e933a07b30dd4828c7409b173d1af272" }, + "conform.nvim": { "branch": "master", "commit": "b4aab989db276993ea5dcb78872be494ce546521" }, + "coq.artifacts": { "branch": "artifacts", "commit": "ef5f21d638ccc456cfa5b8d0ab37093cefe48c8b" }, + "coq.thirdparty": { "branch": "3p", "commit": "6ee3c221c308dca7071387267ac76c9272b184a9" }, + "coq_nvim": { "branch": "coq", "commit": "2732cfa52fffd32d535c782f418da6fb8bf331ea" }, + "cord.nvim": { "branch": "master", "commit": "a66b3608603b6986b90575846e522f79609d8e1c" }, + "hererocks": { "branch": "master", "commit": "d2e2b7ab1ce5b6d4e517619746a810159f0e18db" }, + "image.nvim": { "branch": "master", "commit": "a8d6829ce8472a79df140bc494e75f1847f8861e" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, - "kanagawa.nvim": { "branch": "master", "commit": "cc3b68b08e6a0cb6e6bf9944932940091e49bb83" }, - "kulala.nvim": { "branch": "main", "commit": "48e4995dccb6ab647ddc7ceeb0017cd25c2a8b98" }, + "kanagawa.nvim": { "branch": "master", "commit": "debe91547d7fb1eef34ce26a5106f277fbfdd109" }, + "kulala.nvim": { "branch": "main", "commit": "3e81123652a72a2717f9916d6f2b52c2ae6f7e96" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lua-async-await": { "branch": "main", "commit": "652d94df34e97abe2d4a689edbc4270e7ead1a98" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, - "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, - "nui.nvim": { "branch": "main", "commit": "8d3bce9764e627b62b07424e0df77f680d47ffdb" }, - "nvim-autopairs": { "branch": "master", "commit": "2a406cdd8c373ae7fe378a9e062a5424472bd8d8" }, - "nvim-cmp": { "branch": "main", "commit": "059e89495b3ec09395262f16b1ad441a38081d04" }, - "nvim-dap": { "branch": "master", "commit": "7aade9e99bef5f0735cf966e715b3ce45515d786" }, - "nvim-highlight-colors": { "branch": "main", "commit": "982543ec460199de5bdc491745dc9faa6bcc19b6" }, - "nvim-java": { "branch": "main", "commit": "e552f06d86752edd77aedf50b9b49e59f6de1b65" }, - "nvim-java-core": { "branch": "main", "commit": "401bf7683012a25929a359deec418f36beb876e2" }, - "nvim-java-dap": { "branch": "main", "commit": "55f239532f7a3789d21ea68d1e795abc77484974" }, - "nvim-java-refactor": { "branch": "main", "commit": "b51a57d862338999059e1d1717df3bc80a3a15c0" }, - "nvim-java-test": { "branch": "main", "commit": "7f0f40e9c5b7eab5096d8bec6ac04251c6e81468" }, - "nvim-lspconfig": { "branch": "master", "commit": "4ea9083b6d3dff4ddc6da17c51334c3255b7eba5" }, - "nvim-tree.lua": { "branch": "master", "commit": "6709463b2d18e77f7a946027917aa00d4aaed6f4" }, - "nvim-treesitter": { "branch": "master", "commit": "0e21ee8df6235511c02bab4a5b391d18e165a58d" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "5e085efe67fccb13372d54331d849219662a7e93" }, + "mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" }, + "neo-tree.nvim": { "branch": "v3.x", "commit": "f1deac7ecec88c28a250d890ba7bb35843e69cbd" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, + "nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" }, + "nvim-highlight-colors": { "branch": "main", "commit": "1ce0a09bfc28c7274e649d20927cea51e440b65c" }, + "nvim-lspconfig": { "branch": "master", "commit": "8b597f8fd1cf33e925f783a812ddcb81c5611a34" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, - "nvim-web-devicons": { "branch": "master", "commit": "c90dee4e930ab9f49fa6d77f289bff335b49e972" }, - "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, - "spring-boot.nvim": { "branch": "main", "commit": "218c0c26c14d99feca778e4d13f5ec3e8b1b60f0" }, + "nvim-web-devicons": { "branch": "master", "commit": "f66cdfef5e84112045b9ebc3119fee9bddb3c687" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, "todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" } } diff --git a/lua/core/config/custom.lua b/lua/core/config/custom.lua index ca010cf..ef69e7f 100644 --- a/lua/core/config/custom.lua +++ b/lua/core/config/custom.lua @@ -1,28 +1,49 @@ --- neovim/vim options +-- neovim/vim variables local opt = vim.opt +local keybind = vim.keymap.set -opt.guicursor = "" -- For indentation +-- transperency +vim.api.nvim_set_hl(0, "Normal", { bg = "none" }) +vim.api.nvim_set_hl(0, "NormalNC", { bg = "none" }) +vim.api.nvim_set_hl(0, "EndOfBuffer", { bg = "none" }) +-- basic opt.relativenumber = true opt.number = true - -opt.tabstop = 2 -opt.softtabstop = 2 -opt.shiftwidth = 2 -opt.smartindent = true - -opt.hlsearch = false -opt.incsearch = true - opt.termguicolors = true -vim.g.rust_recommended_style = 0 +-- indentation +opt.tabstop = 2 +opt.softtabstop = 0 +opt.shiftwidth = 2 +opt.smarttab = true +opt.smartindent = true --- Keybinds -local keybind = vim.keymap.set -keybind('n', "hh", 'lua vim.diagnostic.setqflist()') -keybind('v', "ii", '\"+y') -keybind('n', "bb", 'bprevious') -keybind('n', "nn", 'bnext') -keybind('n', ",,", 'bdel') -keybind('i', "jk", '') -- For justin +-- searches +opt.incsearch = true + +-- mapleader +vim.g.mapleader = " " + +-- keybinds +keybind("n", "hh", "lua vim.diagnostic.setqflist()") +-- for buffers +keybind("n", "bb", "bprevious") +keybind("n", "nn", "bnext") +keybind("n", ",,", "bdel") +-- for visual mode +keybind("v", "ii", '"+y', { desc = "Copy to clipboard ( + yank)" }) +keybind("v", "<", "", ">gv", { desc = "Indent right and reselect" }) +keybind("v", "", ":m '<-2gv", { desc = "Move selection up" }) +keybind("v", "", ":m '>+1gv", { desc = "Move selection down" }) +-- friend keybinds +keybind("i", "jk", "", { desc = "Keybind set for Justin" }) + +-- file handling +opt.backup = false +opt.writebackup = false +opt.swapfile = false +opt.undofile = true +opt.undodir = vim.fn.expand("~/.nvim/undodir") +opt.autoread = true diff --git a/lua/core/plugins/autocomplete.lua b/lua/core/plugins/autocomplete.lua deleted file mode 100644 index 420c16b..0000000 --- a/lua/core/plugins/autocomplete.lua +++ /dev/null @@ -1,48 +0,0 @@ --- https://github.com/hrsh7th/nvim-cmp --- Basically a completion plugin for neovim -return { - { - "hrsh7th/nvim-cmp", - dependencies = { - "hrsh7th/cmp-nvim-lsp", - { - "L3MON4D3/LuaSnip", - build = "make install_jsregexp" - }, - "saadparwaiz1/cmp_luasnip", -- luasnip autocompletion - "hrsh7th/cmp-path" -- Path finder - }, - config = function() - local cmp = require("cmp") - local luasnip = require("luasnip") - - cmp.setup({ - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end - }, - mapping = cmp.mapping.preset.insert({ - [''] = cmp.mapping.confirm({ select = true }), - [''] = cmp.mapping.select_next_item(), - [''] = cmp.mapping.select_prev_item(), - - }), - sources = cmp.config.sources({ - { name = 'nvim_lsp' }, - { name = 'luasnip' }, - { name= 'path' } - }), - formatting = { - format = require("nvim-highlight-colors").format - } - }) - end - }, - - { - "windwp/nvim-autopairs", - event = "InsertEnter", - config = true - } -} diff --git a/lua/core/plugins/autotag.lua b/lua/core/plugins/autotag.lua deleted file mode 100644 index 7b20c8f..0000000 --- a/lua/core/plugins/autotag.lua +++ /dev/null @@ -1,6 +0,0 @@ -return { - "windwp/nvim-ts-autotag", - config = function () - require("nvim-ts-autotag").setup({}) - end -} diff --git a/lua/core/plugins/colorscheme.lua b/lua/core/plugins/colorscheme.lua index f2d6cf1..387e1c7 100644 --- a/lua/core/plugins/colorscheme.lua +++ b/lua/core/plugins/colorscheme.lua @@ -1,3 +1,9 @@ +-- Homepage: https://github.com/rebelot/kanagawa.nvim + +-- What is it? +-- Basically makes neovim look nicer, +-- a.k.a colorscheme for neovim's UI. + return { "rebelot/kanagawa.nvim", lazy = false, diff --git a/lua/core/plugins/comments.lua b/lua/core/plugins/comments.lua deleted file mode 100644 index 3757771..0000000 --- a/lua/core/plugins/comments.lua +++ /dev/null @@ -1,8 +0,0 @@ -return { - "folke/todo-comments.nvim", - dependencies = { "nvim-lua/plenary.nvim" }, - config = function () - -- Initializes todo setup - require("todo-comments").setup() - end -} diff --git a/lua/core/plugins/dev-tools.lua b/lua/core/plugins/dev-tools.lua new file mode 100644 index 0000000..b710132 --- /dev/null +++ b/lua/core/plugins/dev-tools.lua @@ -0,0 +1,78 @@ +return { + -- Autopairs + -- Homepage: https://github.com/windwp/nvim-autopairs + + -- What is it? + -- Basically just create another pair of ' " ( or more so it makes programming slightly easier. + + { + "windwp/nvim-autopairs", + event = "InsertEnter", + config = true, + }, + + -- Autotag + -- Homepage: https://github.com/windwp/nvim-ts-autotag + + -- What is it? + -- Helps with automatically adding a ending tag + + -- NOTE: Test it out using HTML or JSON. (E.g
something
) + + { + "windwp/nvim-ts-autotag", + config = function() + require("nvim-ts-autotag").setup({}) + end, + }, + + -- todo-comments.nvim + -- Homepage: https://github.com/folke/todo-comments.nvim + + -- What is it? + -- Basically helps indicate developer notes. + + -- Test: + -- NOTE: This is a notes + -- WARN: This is warning note. + -- TODO: This is a to-do note. + -- FIX: This is a fix note. + -- PERF: This is a performance note. + + { + "folke/todo-comments.nvim", + dependencies = { "nvim-lua/plenary.nvim" }, + config = function() + -- Initializes todo setup + require("todo-comments").setup() + end, + }, + + -- nvim-highlight-colors + -- Homepage: https://github.com/brenoprata10/nvim-highlight-colors + + -- What is it? + -- Makes it easier to see RGB colors via their hexadecimal number. + + -- Test: #FFFFFF + + { + "brenoprata10/nvim-highlight-colors", + config = function() + require("nvim-highlight-colors").setup({}) + end, + }, + + -- indent-blankline + -- Homepage: https://github.com/lukas-reineke/indent-blankline.nvim + + -- What is it? + -- Shows the line of indentation so you know how much indentation you are using. + + { + "lukas-reineke/indent-blankline.nvim", + main = "ibl", + ---@module "ibl" + ---@type ibl.config opts = {}, + }, +} diff --git a/lua/core/plugins/discord.lua b/lua/core/plugins/discord.lua index 115998a..6a55134 100644 --- a/lua/core/plugins/discord.lua +++ b/lua/core/plugins/discord.lua @@ -1,3 +1,7 @@ +-- Homepage: https://github.com/vyfor/cord.nvim + +-- What is it? +-- Just Rich Presence for Neovim, neat huh? return { 'vyfor/cord.nvim', build = ':Cord update', @@ -7,6 +11,7 @@ return { flavor = "dark" }, text = { + default = 'programming most likely', workspace = '' } } diff --git a/lua/core/plugins/file-explorer.lua b/lua/core/plugins/file-explorer.lua new file mode 100644 index 0000000..f39f002 --- /dev/null +++ b/lua/core/plugins/file-explorer.lua @@ -0,0 +1,30 @@ +-- Homepage: https://github.com/nvim-neo-tree/neo-tree.nvim + +-- What is it? +-- A File Explorer + +-- For more information on this plugin: https://github.com/nvim-neo-tree/neo-tree.nvim?tab=readme-ov-file#quickstart + +return { + "nvim-neo-tree/neo-tree.nvim", + branch = "v3.x", + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-tree/nvim-web-devicons", + "MunifTanjim/nui.nvim", + { "3rd/image.nvim", opts = {} }, + }, + lazy = false, + ---@module "neo-tree" + ---@type neotree.Config? + opts = { + window = { + mappings = { + ["P"] = "toggle_preview", + } + } + }, + + vim.keymap.set("n", "mm", "Neotree toggle"), + vim.keymap.set("n", "jj", "Neotree action=focus") +} diff --git a/lua/core/plugins/formatter.lua b/lua/core/plugins/formatter.lua index f1c7367..e4eade2 100644 --- a/lua/core/plugins/formatter.lua +++ b/lua/core/plugins/formatter.lua @@ -1,26 +1,41 @@ --- Using formatter.nvim: https://github.com/mhartington/formatter.nvim +-- Homepage: https://github.com/mhartington/formatter.nvim + +-- What is it? +-- Formatter plugin, helps with formatting code on saving the file. + return { "stevearc/conform.nvim", event = { "BufWritePre" }, cmd = { "ConformInfo" }, -- This will provide type hinting with LuaLS - ---@module "conform" - ---@type conform.setupOpts + ---@module "conform" + ---@type conform.setupOpts opts = { formatters_by_ft = { lua = { "stylua" }, python = { "black" }, - javascript = { "prettier" } -- add stop_after_first if you want more than 1 + javascript = { "prettier" }, -- add stop_after_first for n > 1 + typescript = { "prettier" }, + sh = { "shfmt", "shellcheck" }, + bash = { "shfmt", "shellcheck" }, + }, + formatters = { + prettier = { + prepend_args = function() + return { "" } + end, + }, }, - -- Set default options default_format_opts = { - lsp_format = "fallback" + lsp_format = "fallback", + }, + format_on_save = { + timeout_ms = 500, }, - format_on_save = { timeout_ms = 500 }, }, - init = function () - vim.o.formatexpr = "v:lua.require'conform'.formatexpr()" - end -} + init = function() + vim.o.formatexpr = "v:lua.require'conform'.formatexpr()" + end, +} diff --git a/lua/core/plugins/fuzzyfinder.lua b/lua/core/plugins/fuzzyfinder.lua new file mode 100644 index 0000000..2a55006 --- /dev/null +++ b/lua/core/plugins/fuzzyfinder.lua @@ -0,0 +1,20 @@ +-- Homepage: https://github.com/nvim-telescope/telescope.nvim + +-- What is this? +-- A `fuzzy finder` over lists. + +-- Purpose? +-- Makes it easier to find files, variables, & code by using keywords. + +return { + 'nvim-telescope/telescope.nvim', + tag = '0.1.8', + dependencies = { 'nvim-lua/plenary.nvim' }, + cmd = "Telescope", + keys = { + { "pp", "Telescope find_files", desc = "File Picker" }, + { ";;", "Telescope buffers", desc = "Buffer Picker" }, + { "..", "Telescope treesitter", desc = "Find Symbols" }, + { "[[", "Telescope live_grep", desc = "Live Grep" }, + } +} diff --git a/lua/core/plugins/highlight.lua b/lua/core/plugins/highlight.lua deleted file mode 100644 index b47b33e..0000000 --- a/lua/core/plugins/highlight.lua +++ /dev/null @@ -1,8 +0,0 @@ --- For more information: https://github.com/brenoprata10/nvim-highlight-colors - -return { - "brenoprata10/nvim-highlight-colors", - config = function () - require("nvim-highlight-colors").setup({}) - end -} diff --git a/lua/core/plugins/indent.lua b/lua/core/plugins/indent.lua deleted file mode 100644 index a5695dd..0000000 --- a/lua/core/plugins/indent.lua +++ /dev/null @@ -1,7 +0,0 @@ -return { - "lukas-reineke/indent-blankline.nvim", - main = "ibl", - ---@module "ibl" - ---@type ibl.config - opts = {}, -} diff --git a/lua/core/plugins/lsp.lua b/lua/core/plugins/lsp.lua index 3561d53..6d0b0a1 100644 --- a/lua/core/plugins/lsp.lua +++ b/lua/core/plugins/lsp.lua @@ -1,39 +1,156 @@ -return { - -- Java - -- For checksums: https://github.com/mfussenegger/nvim-jdtls/discussions/249#discussioncomment-3159367 - -- It's here first because it needs to have load before lspconfig apparently - { - "nvim-java/nvim-java", - dependencies = { - "neovim/nvim-lspconfig", - }, - config = function() - require("java").setup() - require("lspconfig").jdtls.setup({}) - end - }, - -- +-- What is this? +-- Homepage: https://github.com/ms-jpq/coq_nvim - -- https://github.com/williamboman/mason.nvim?tab=readme-ov-file#configuration for more information - -- https://github.com/williamboman/mason-lspconfig.nvim?tab=readme-ov-file#setup for more info +-- Basically a completion plugin for neovim. +-- More specifically it just helps with autocorrecting variables, by using +-- text you have typed down or just by using libraries. LSP relies on this. + +-- What is this? +-- LSP = Language Server Protocol => A protocol that provides code-completion, +-- syntax highlighting, marking of errors and more. + +-- Homepages: +-- mason = https://github.com/mason-org/mason.nvim +-- mason-lspconfig = https://github.com/mason-org/mason-lspconfig.nvim +-- nvim-lspconfig = https://github.com/neovim/nvim-lspconfig + +-- Recommended MasonInstall list (mostly formatters): +-- CMD: MasonInstall stylua prettier shfmt shellcheck + +-- Homepage: https://github.com/windwp/nvim-ts-autotag +-- What is it? +-- Helps with automatically adding a ending tag +-- NOTE: Test it out using HTML or JSON. (E.g
something
) + +return { { - "williamboman/mason.nvim", + "neovim/nvim-lspconfig", + lazy = false, dependencies = { - "williamboman/mason-lspconfig.nvim", - "neovim/nvim-lspconfig", -- https://github.com/neovim/nvim-lspconfig for more information - }, - opts = function() - require("mason").setup({ - registries = { - "github:nvim-java/mason-registry", - "github:mason-org/mason-registry" - } + { "ms-jpq/coq_nvim", branch = "coq" }, + { "ms-jpq/coq.artifacts", branch = "artifacts" }, + { "ms-jpq/coq.thirdparty", branch = "3p" }, + }, + + init = function() + local remap = vim.api.nvim_set_keymap + local npairs = require("nvim-autopairs") + + -- Prevents going to newline after an autocomplete. + npairs.setup({ map_bs = false }) + + vim.g.coq_settings = { + auto_start = "shut-up", + keymap = { + recommended = false, + }, + completion = { + skip_after = { "\t", "{" }, + }, + } + + require("coq_3p")({ + { src = "nvimlua", short_name = "nLUA" }, + { src = "bc", short_name = "MATH", precision = 6 }, + { src = "builtin/css" }, + { src = "builtin/js" }, + { src = "builtin/c" }, + { src = "builtin/html" }, + { src = "builtin/xml" }, + { src = "repl", sh = "bash", unsafe = { "rm", "poweroff", "reboot", "mv" } }, }) + + remap("i", "", [[pumvisible() ? "" : ""]], { expr = true, noremap = true }) + remap("i", "", [[pumvisible() ? "" : ""]], { expr = true, noremap = true }) + remap("i", "", [[pumvisible() ? "" : ""]], { expr = true, noremap = true }) + remap("i", "", [[pumvisible() ? "" : ""]], { expr = true, noremap = true }) + + -- Prevents completion for everytime you press Enter + remap( + "i", + "", + [[pumvisible() ? (complete_info(['selected']).selected == -1 ? '' : '') : '']], + { expr = true, noremap = false } + ) + end, + + config = function() + local config = require("lspconfig") + local coq = require("coq") + + config.lua_ls.setup(coq.lsp_ensure_capabilities({ + settings = { + Lua = { + format = { + enable = false, + }, + diagnostics = { + globals = { "vim" }, + }, + }, + }, + })) + + config.pylsp.setup(coq.lsp_ensure_capabilities({})) + + config.bashls.setup(coq.lsp_ensure_capabilities({})) + + config.ts_ls.setup(coq.lsp_ensure_capabilities({ + init_options = { preferences = { disableSuggestions = false } }, + })) + + config.eslint.setup(coq.lsp_ensure_capabilities({ + settings = { autoFixOnSave = true }, + })) + + config.html.setup(coq.lsp_ensure_capabilities({})) + + config.cssls.setup(coq.lsp_ensure_capabilities({ + settings = { + css = { + lint = { + unknownAtRules = "ignore", + }, + }, + scss = { + lint = { + unknownAtRules = "ignore", + }, + }, + }, + })) + + config.tailwindcss.setup(coq.lsp_ensure_capabilities({})) + + config.clangd.setup(coq.lsp_ensure_capabilities({ + cmd = { + "clangd", + "--background-index", + "--clang-tidy", + "--log=verbose", + "--query-driver=/usr/bin/c++", + "--suggest-missing-includes", + "--all-scopes-completion", + "--completion-style=detailed", + }, + init_options = { + fallback_flags = { "-std=c++17" }, + }, + })) + end, + }, + + { + "mason-org/mason.nvim", + dependencies = { + "mason-org/mason-lspconfig.nvim", + }, + opts = function() + require("mason").setup() require("mason-lspconfig").setup({ ensure_installed = { -- Language Servers "lua_ls", - "pylsp", "clangd", "bashls", "ts_ls", @@ -41,75 +158,9 @@ return { "cssls", "html", "tailwindcss", - -- Formatters - "prettier", - "stylua", - "black" - } - }) - - local capabilities = require('cmp_nvim_lsp').default_capabilities() - local config = require("lspconfig") - - -- LSP Servers - - config.lua_ls.setup { - capabilities = capabilities - } - - -- FOR bashls - -- Make sure to install 'shellcheck', :MasonInstall shellcheck - -- Make sure to install 'shfmt', :MasonInstall shfmt - - config.bashls.setup { - capabilities = capabilities - } - - config.pylsp.setup { - capabilities = capabilities - } - - config.clangd.setup { - cmd = { "clangd", "--background-index", "--clang-tidy", "--log=verbose", "--query-driver=/usr/bin/c++", "--suggest-missing-includes", "--all-scopes-completion", "--completion-style=detailed" }, - init_options = { - fallback_flags = { "-std=c++17" }, + "pylsp", }, - capabilities = capabilities - } - - config.ts_ls.setup { - capabilities = capabilities, - init_options = { preferences = { disableSuggestions = false } }, - } - - config.eslint.setup { - capabilities = capabilities, - settings = { autoFixOnSave = true } - } - - config.html.setup { - capabilities = capabilities, - } - - config.cssls.setup { - capabilities = capabilities, - settings = { - css = { - lint = { - unknownAtRules = "ignore" - } - }, - scss = { - lint = { - unknownAtRules = "ignore" - } - } - } - } - - config.tailwindcss.setup { } - - end + }) + end, }, - } diff --git a/lua/core/plugins/nvim-tree.lua b/lua/core/plugins/nvim-tree.lua deleted file mode 100644 index a555fc7..0000000 --- a/lua/core/plugins/nvim-tree.lua +++ /dev/null @@ -1,14 +0,0 @@ --- https://github.com/nvim-tree/nvim-tree.lua?tab=readme-ov-file For more information --- File Explorer -return { - "nvim-tree/nvim-tree.lua", - version = "*", - lazy = false, - dependencies = { - "nvim-tree/nvim-web-devicons", - }, - config = function() - require("nvim-tree").setup {} - end, - keys = { { "mm", "NvimTreeToggle", desc = "Toggle Tree"} } -} diff --git a/lua/core/plugins/parser.lua b/lua/core/plugins/parser.lua new file mode 100644 index 0000000..68ce5f1 --- /dev/null +++ b/lua/core/plugins/parser.lua @@ -0,0 +1,50 @@ +-- Homepage: https://github.com/nvim-treesitter/nvim-treesitter + +-- What is this? +-- Basically helps making use of `tree-sitter` (parser-generating tool) and +-- provides highlighting +-- Based on language parsers, queries, and modules to work. + +return { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + event = "BufRead", + config = function() + local configs = require("nvim-treesitter.configs") + configs.setup({ + ensure_installed = { + "lua", + "cpp", + "java", + "javascript", + "bash", + "python", + "typescript", + "css", + "html", + "jsdoc", + "http", + "sql", + "ssh_config", + "json", + "tsx", + "xml", + "yaml", + "nginx", + "gitcommit", + "gitignore", + "cmake" + }, + sync_install = true, + auto_intsall = true, + highlight = { + enable = true, + additional_vim_regex_highlighting = false + }, + ident = { enable = true }, + autopairs = { + enable = true + } + }) + end +} diff --git a/lua/core/plugins/rest.lua b/lua/core/plugins/rest.lua index b05db3c..f940112 100644 --- a/lua/core/plugins/rest.lua +++ b/lua/core/plugins/rest.lua @@ -1,8 +1,16 @@ +-- Homepage: https://github.com/mistweaverco/kulala.nvim + +-- What is this? +-- A fully-featured REST client interface for neovim. + +-- Purpose? +-- Usually for backend testing on HTTP requests. + return { 'mistweaverco/kulala.nvim', - opts = {}, - keys = { - { "uu", "lua require('kulala').run()", desc = "run current" }, - { "yy", "lua require('kulala').toggle_view()", desc = "run current" }, + opts = {}, + keys = { + { "uu", "lua require('kulala').run()", desc = "run current" }, + { "yy", "lua require('kulala').toggle_view()", desc = "run current" }, } } diff --git a/lua/core/plugins/telescope.lua b/lua/core/plugins/telescope.lua deleted file mode 100644 index 3b655aa..0000000 --- a/lua/core/plugins/telescope.lua +++ /dev/null @@ -1,14 +0,0 @@ --- For more information on the arguements, visit: https://www.lazyvim.org/extras/editor/telescope#telescopenvim OR for more information on telescope, visit: https://github.com/nvim-telescope/telescope.nvim -return { - 'nvim-telescope/telescope.nvim', tag = '0.1.8', - dependencies = { 'nvim-lua/plenary.nvim' }, - cmd = "Telescope", - keys = { - { "//", "Telescope", desc = "Start" }, - - { "pp", "Telescope find_files", desc = "File Picker" }, - { ";;", "Telescope buffers", desc = "Buffer Picker" }, - { "..", "Telescope treesitter", desc = "Treesitter" }, - { "[[", "Telescope live_grep", desc = "Grep" }, - } -} diff --git a/lua/core/plugins/tree-sitter.lua b/lua/core/plugins/tree-sitter.lua deleted file mode 100644 index fa1c930..0000000 --- a/lua/core/plugins/tree-sitter.lua +++ /dev/null @@ -1,47 +0,0 @@ --- https://github.com/nvim-treesitter/nvim-treesitter?tab=readme-ov-file#language-parsers for language parsers - -return { - "nvim-treesitter/nvim-treesitter", - build = ":TSUpdate", - event = "BufRead", - config = function() - local configs = require("nvim-treesitter.configs") - configs.setup({ - ensure_installed = { - "lua", - "cpp", - "java", - "javascript", - "bash", - "python", - "typescript", - "css", - "html", - "jsdoc", - "http", - "sql", - "ssh_config", - "json", - "tsx", - "xml", - "yaml", - "nginx", - "gitcommit", - "gitignore", - "cmake" - }, - sync_install = true, - auto_intsall = true, - highlight = { - enable = true, - additional_vim_regex_highlighting = false - }, - ident = { enable = true }, - autopairs = { - enable = true - } - }) - end -} - -