diff --git a/lazy-lock.json b/lazy-lock.json index faaa810..627a204 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,33 +1,47 @@ { "LuaSnip": { "branch": "master", "commit": "e808bee352d1a6fcf902ca1a71cee76e60e24071" }, "NvChad": { "branch": "v2.5", "commit": "b83a949d9e883b6ab98070f224535f1018174a5d" }, - "base46": { "branch": "v2.5", "commit": "898a0ed96bf4a20e12fae0b11c9bb771334b066f" }, + "base46": { "branch": "v2.5", "commit": "85e10a6ecbb8a9a0ca2db0a2c22f656c739925a3" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "conform.nvim": { "branch": "master", "commit": "40d4e98fcc3e6f485f0e8924c63734bc7e305967" }, + "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, "friendly-snippets": { "branch": "main", "commit": "00ba9dd3df89509f95437b8d595553707c46d5ea" }, + "fzf-lua": { "branch": "main", "commit": "ace9968be267b034e450be4feaf6e9107bc34fbd" }, "gitsigns.nvim": { "branch": "main", "commit": "863903631e676b33e8be2acb17512fdc1b80b4fb" }, + "hardtime.nvim": { "branch": "main", "commit": "6513bf42cd9261669d1ee41ff8b4065dfdc53a09" }, + "hop.nvim": { "branch": "master", "commit": "8f51ef02700bb3cdcce94e92eff16170a6343c4f" }, "indent-blankline.nvim": { "branch": "master", "commit": "3af6493bf69e4a857a8b1fab36f333629d413a18" }, - "lazy.nvim": { "branch": "main", "commit": "1159bdccd8910a0fd0914b24d6c3d186689023d9" }, + "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" }, + "local-highlight.nvim": { "branch": "master", "commit": "ae3ada3a332128b1036c84c8587b9069891c63da" }, "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, - "menu": { "branch": "main", "commit": "205b3de60bbd1dfa73fd12b04530743cd0e70b22" }, + "menu": { "branch": "main", "commit": "e8a2ae036b71e4808a7c73cf12dbeaa3f7e4dd5c" }, + "mini.pick": { "branch": "main", "commit": "6d66ae9eb0b75261f1842788dda611285b6f065f" }, "minty": { "branch": "main", "commit": "8809b2c7c2edbeb3fa9c3b05bd2e89934d54f526" }, + "neogit": { "branch": "master", "commit": "d55bf6114c6cfba013e4c0e817e29e7752554ab7" }, + "nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" }, "nvim-autopairs": { "branch": "master", "commit": "ee297f215e95a60b01fde33275cc3c820eddeebe" }, "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" }, "nvim-lspconfig": { "branch": "master", "commit": "39f31e178466e4ed23c8ea6fddd5b7a4d9699398" }, + "nvim-spectre": { "branch": "master", "commit": "ba7fb777edff6c1fbbeffd343e113af64c04e90a" }, "nvim-tree.lua": { "branch": "master", "commit": "c9104a5d079db5a158c9562c54689df27d52dccc" }, "nvim-treesitter": { "branch": "master", "commit": "45386764cc9535200d2288cab929c5093d33660e" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "4a2d05ec24eaa6b655c7d19092a3b6c0219d46b9" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "44fd461b879d80a21d5041f312f070f22551c0bc" }, - "nvim-web-devicons": { "branch": "master", "commit": "6b53401918a9033a41159d012160c5fb5eb249ae" }, + "nvim-web-devicons": { "branch": "master", "commit": "56f17def81478e406e3a8ec4aa727558e79786f3" }, "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, "rustaceanvim": { "branch": "master", "commit": "29f42cc149f915d771c550b6dfe7c788d856cf04" }, + "statuscol.nvim": { "branch": "main", "commit": "ecc04176e364dd7f614edfc4325e3a8521905ad6" }, "telescope.nvim": { "branch": "master", "commit": "eae0d8fbde590b0eaa2f9481948cd6fd7dd21656" }, - "ui": { "branch": "v3.0", "commit": "902cace97a6d1bb6e71274fc867c3e6ff5835ee4" }, + "tint.nvim": { "branch": "master", "commit": "02bd0527a315a80e4e25bb2dd7b6994fb0daae01" }, + "todo-comments.nvim": { "branch": "main", "commit": "ae0a2afb47cf7395dc400e5dc4e05274bf4fb9e0" }, + "trouble.nvim": { "branch": "main", "commit": "254145ffd528b98eb20be894338e2d5c93fa02c2" }, + "typescript-tools.nvim": { "branch": "master", "commit": "f8c2e0b36b651c85f52ad5c5373ff8b07adc15a7" }, + "ui": { "branch": "v3.0", "commit": "0e768898ceabbcbedaae34b0d61b6239ec1362d3" }, "vim-kitty": { "branch": "main", "commit": "9cc594a634308aa3bfaf3da5b5e741da1c0144c1" }, - "volt": { "branch": "main", "commit": "ce1e55d52d86e33f340a20b45701b434cc684c15" }, + "volt": { "branch": "main", "commit": "43f72b49037c191eb3cfe26ba7a5574b4bfce226" }, "which-key.nvim": { "branch": "main", "commit": "8badb359f7ab8711e2575ef75dfe6fbbd87e4821" } } diff --git a/lua/configs/cmp.lua b/lua/configs/cmp.lua new file mode 100644 index 0000000..eb97294 --- /dev/null +++ b/lua/configs/cmp.lua @@ -0,0 +1,13 @@ +local options = { + sources = { + { name = "nvim_lsp" }, + -- { name = "cmp_ai" }, + { name = "luasnip" }, + { name = "copilot" }, + { name = "buffer" }, + { name = "nvim_lua" }, + { name = "path" }, + }, +} + +return options diff --git a/lua/configs/conform.lua b/lua/configs/conform.lua index 35ba6cf..1a72cc2 100644 --- a/lua/configs/conform.lua +++ b/lua/configs/conform.lua @@ -1,15 +1,25 @@ local options = { formatters_by_ft = { lua = { "stylua" }, - -- css = { "prettier" }, - -- html = { "prettier" }, + rust = { "rustfmt", lsp_format = "fallback" }, + javascript = { "biome" }, + typescript = { "biome" }, + yaml = { "biome" }, + solidity = { "forge_fmt" }, + nix = { "nixfmt" }, }, - -- format_on_save = { - -- -- These options will be passed to conform.format() - -- timeout_ms = 500, - -- lsp_fallback = true, - -- }, + format_on_save = function() + local buf_path = vim.api.nvim_buf_get_name(0) + if buf_path:find "/contrib/" then + return nil + end + + return { + timeout_ms = 500, + lsp_format = "fallback", + } + end, } return options diff --git a/lua/configs/telescope.lua b/lua/configs/telescope.lua new file mode 100644 index 0000000..dfef785 --- /dev/null +++ b/lua/configs/telescope.lua @@ -0,0 +1,22 @@ +local options = { + pickers = { + colorscheme = { enable_preview = true }, + find_files = { + find_command = { "rg", "--files", "--hidden", "--glob", "!**/.git/*" }, + }, + defaults = { + vimgrep_arguments = { + "rg", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + "--smart-case", + "--hidden", + }, + sort_mru = true, + }, + }, +} + +return options diff --git a/lua/configs/typescript-tools.lua b/lua/configs/typescript-tools.lua new file mode 100644 index 0000000..cdbf5ee --- /dev/null +++ b/lua/configs/typescript-tools.lua @@ -0,0 +1,2 @@ +require("typescript-tools").setup({ +}) diff --git a/lua/options.lua b/lua/options.lua index 04d4a06..23e1517 100644 --- a/lua/options.lua +++ b/lua/options.lua @@ -1,12 +1,10 @@ require "nvchad.options" --- add yours here! - - local o = vim.o -- o.cursorlineopt ='both' -- to enable cursorline! -o.cursorlineopt = 'both' +o.cursorlineopt = "both" +print "set number" -- line numbering o.number = true o.relativenumber = true diff --git a/lua/plugins/cmp.lua b/lua/plugins/cmp.lua new file mode 100644 index 0000000..8d0bda6 --- /dev/null +++ b/lua/plugins/cmp.lua @@ -0,0 +1,29 @@ +return { + { + "hrsh7th/nvim-cmp", + opts = function() + require "configs.cmp" + end, + }, + + -- { + -- "zbirenbaum/copilot.lua", + -- cmd = "Copilot", + -- event = "VeryLazy", + -- config = function() + -- require("copilot").setup({ + -- suggestion = { enabled = false }, + -- panel = { enabled = false }, + -- }) + -- end, + -- }, + -- + -- { + -- "zbirenbaum/copilot-cmp", + -- event = "VeryLazy", + -- dependencies = { "hrsh7th/cmp-nvim-lsp" }, + -- config = function() + -- require("copilot_cmp").setup() + -- end, + -- }, +} diff --git a/lua/plugins/editing.lua b/lua/plugins/editing.lua index 2436b47..9c05e4f 100644 --- a/lua/plugins/editing.lua +++ b/lua/plugins/editing.lua @@ -1,14 +1,54 @@ return { - { - "m4xshen/hardtime.nvim", - dependencies = { "MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim" }, - opts = { - restricted_keys = { - ["w"] = { "n", "x" }, - ["W"] = { "n", "x" }, - ["b"] = { "n", "x" }, - ["B"] = { "n", "x" }, - }, - }, - }, + { + "m4xshen/hardtime.nvim", + lazy = false, + dependencies = { "MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim" }, + opts = { + restricted_keys = { + ["w"] = { "n", "x" }, + ["W"] = { "n", "x" }, + ["b"] = { "n", "x" }, + ["B"] = { "n", "x" }, + }, + }, + }, + + { + "smoka7/hop.nvim", + event = "VeryLazy", + version = "*", + opts = { + keys = "etovxqpdygfblzhckisuran", + }, + keys = { + { + "ff", + function() + local dir = require("hop.hint").HintDirection + require("hop").hint_char1 { direction = dir.AFTER_CURSOR } + end, + desc = "go to char (forward)", + }, + { + "FF", + function() + local dir = require("hop.hint").HintDirection + require("hop").hint_char1 { direction = dir.BEFORE_CURSOR } + end, + desc = "go to char (backward)", + }, + { "2ff", "HopChar2", desc = "go to bigram" }, + { "fl", "HopLineStart" }, + { "fp", "HopPattern" }, + { "fw", "HopWord" }, + }, + }, + + { + "tzachar/local-highlight.nvim", + event = "VeryLazy", + config = function() + require("local-highlight").setup() + end, + }, } diff --git a/lua/plugins/find-replace.lua b/lua/plugins/find-replace.lua new file mode 100644 index 0000000..2fae998 --- /dev/null +++ b/lua/plugins/find-replace.lua @@ -0,0 +1,10 @@ +return { + { + "windwp/nvim-spectre", + dependencies = { "nvim-lua/plenary.nvim" }, + -- stylua: ignore + keys = { + { "S", function() require("spectre").open() end, desc = "Replace in files (Spectre)", }, + }, + }, +} diff --git a/lua/plugins/git.lua b/lua/plugins/git.lua new file mode 100644 index 0000000..5c9c40a --- /dev/null +++ b/lua/plugins/git.lua @@ -0,0 +1,19 @@ +return { + { + "NeogitOrg/neogit", + cmd = "Neogit", + dependencies = { + "nvim-lua/plenary.nvim", -- required + "sindrets/diffview.nvim", -- optional - Diff integration + + -- Only one of these is needed. + "nvim-telescope/telescope.nvim", -- optional + "ibhagwan/fzf-lua", -- optional + "echasnovski/mini.pick", -- optional + }, + config = true, + keys = { + { "g", "Neogit", desc = "Neogit" }, + }, + }, +} diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index bec766f..81cf733 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -1,7 +1,7 @@ return { { "stevearc/conform.nvim", - -- event = 'BufWritePre', -- uncomment for format on save + event = "BufWritePre", opts = require "configs.conform", }, } diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 789d0d1..27f34cc 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -11,4 +11,8 @@ return { version = "^5", -- Recommended lazy = false, -- This plugin is already lazy }, + + {"pmizio/typescript-tools.nvim",dependencies={"nvim-lua/plenary.nvim", "neovim/nvim-lspconfig"}, config=function() + require "configs.typescript-tools" + end} } diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua new file mode 100644 index 0000000..026db9e --- /dev/null +++ b/lua/plugins/telescope.lua @@ -0,0 +1,21 @@ +return { + { + "nvim-telescope/telescope.nvim", + opts = function() + require "configs.telescope" + end, + keys = { + { "", require("telescope.builtin").find_files, desc = "Find Files (root dir)" }, + { "", require("telescope.builtin").grep_string, desc = "Fast string grep" }, + { + "", + function() + local selection = vim.fn.getregion(vim.fn.getpos ".", vim.fn.getpos "v", { mode = vim.fn.mode() }) + require("telescope.builtin").live_grep { default_text = table.concat(selection) } + end, + desc = "fuzzy find selection", + mode = "v", + }, + }, + }, +} diff --git a/lua/plugins/trouble.lua b/lua/plugins/trouble.lua new file mode 100644 index 0000000..b5d938e --- /dev/null +++ b/lua/plugins/trouble.lua @@ -0,0 +1,62 @@ +return { + { + "folke/trouble.nvim", + cmd = { "Trouble" }, + dependencies = "kyazdani42/nvim-web-devicons", + opts = { use_diagnostic_signs = true }, + keys = { + { + "xx", + "Trouble diagnostics toggle", + desc = "Diagnostics (Trouble)", + }, + { + "xX", + "Trouble diagnostics toggle filter.buf=0", + desc = "Buffer Diagnostics (Trouble)", + }, + { + "xt", + "Trouble todo toggle", + desc = "Todos (Trouble)", + }, + { + "o", + "Trouble symbols toggle focus=false", + desc = "Symbols Outline (Trouble)", + }, + { + "cl", + "Trouble lsp toggle focus=false win.position=right", + desc = "LSP Definitions / references / ... (Trouble)", + }, + { + "xL", + "Trouble loclist toggle", + desc = "Location List (Trouble)", + }, + { + "xQ", + "Trouble qflist toggle", + desc = "Quickfix List (Trouble)", + }, + }, + }, + + { + "folke/todo-comments.nvim", + event = "VeryLazy", + opts = { + signs = true, + highlight = { + pattern = [[.*<(KEYWORDS)\s*:?]], + }, + search = { + pattern = [[\b(KEYWORDS)\b]], + }, + }, + config = function(_, opts) + require("todo-comments").setup(opts) + end, + }, +} diff --git a/lua/plugins/ui.lua b/lua/plugins/ui.lua new file mode 100644 index 0000000..b13ba3b --- /dev/null +++ b/lua/plugins/ui.lua @@ -0,0 +1,32 @@ +return { + { + "levouh/tint.nvim", + config = function() + require("tint").setup { + tint = -10, + tint_background_colors = true, + + window_ignore_function = function(winid) + local bufid = vim.api.nvim_win_get_buf(winid) + local buftype = vim.api.nvim_get_option_value("buftype", { buf = bufid }) + return buftype == "nofile" + end, + } + end, + }, + + { + "luukvbaal/statuscol.nvim", + config = function() + local builtin = require "statuscol.builtin" + require("statuscol").setup { + relculright = true, + segments = { + { text = { builtin.foldfunc }, click = "v:lua.ScFa" }, + { text = { builtin.lnumfunc, " " }, click = "v:lua.ScLa" }, + { sign = { name = { ".*" }, maxwidth = 1, colwidth = 1 }, click = "v:lua.ScSa" }, + }, + } + end, + }, +}