diff --git a/nvim/lua/juancwu/config/clipboard.lua b/nvim/lua/juancwu/config/clipboard.lua index c0bb3ae..8aade05 100644 --- a/nvim/lua/juancwu/config/clipboard.lua +++ b/nvim/lua/juancwu/config/clipboard.lua @@ -1,58 +1,58 @@ local Utils = require("juancwu.utils") if Utils.os.is_linux() then - local wayland_display = os.getenv("WAYLAND_DISPLAY") - if Utils.os.is_wsl() then - vim.g.clipboard = { - name = "win32yank", - copy = { - ["+"] = "win32yank.exe -i --crlf", - ["*"] = "win32yank.exe -i --crlf", - }, - paste = { - ["+"] = "win32yank.exe -o --lf", - ["*"] = "win32yank.exe -o --lf", - }, - cache_enabled = 0, - } - elseif wayland_display then - vim.g.clipboard = { - name = "wl-clipboard", - copy = { - ["+"] = "wl-copy", - ["*"] = "wl-copy", - }, - paste = { - ["+"] = "wl-paste", - ["*"] = "wl-paste", - }, - cache_enabled = 1, - } - else - vim.g.clipboard = { - name = "xclip", - copy = { - ["+"] = "xclip -sel clip -i -quiet", - ["*"] = "xclip -sel primary -i -quiet", - }, - paste = { - ["+"] = "xclip -sel clip -o -quiet", - ["*"] = "xclip -sel primary -o -quiet", - }, - cache_enabled = 1, - } - end + local wayland_display = os.getenv("WAYLAND_DISPLAY") + if Utils.os.is_wsl() then + vim.g.clipboard = { + name = "win32yank", + copy = { + ["+"] = "win32yank.exe -i --crlf", + ["*"] = "win32yank.exe -i --crlf", + }, + paste = { + ["+"] = "win32yank.exe -o --lf", + ["*"] = "win32yank.exe -o --lf", + }, + cache_enabled = 0, + } + elseif wayland_display then + vim.g.clipboard = { + name = "wl-clipboard", + copy = { + ["+"] = "wl-copy", + ["*"] = "wl-copy", + }, + paste = { + ["+"] = "wl-paste", + ["*"] = "wl-paste", + }, + cache_enabled = 1, + } + else + vim.g.clipboard = { + name = "xclip", + copy = { + ["+"] = "xclip -sel clip -i -quiet", + ["*"] = "xclip -sel primary -i -quiet", + }, + paste = { + ["+"] = "xclip -sel clip -o -quiet", + ["*"] = "xclip -sel primary -o -quiet", + }, + cache_enabled = 1, + } + end elseif Utils.os.is_mac() then - vim.g.clipboard = { - name = "mac-clipboard", - copy = { - ["+"] = "pbcopy", - ["*"] = "pbcopy", - }, - paste = { - ["+"] = "pbpaste", - ["*"] = "pbpaste", - }, - cache_enabled = 1, - } + vim.g.clipboard = { + name = "mac-clipboard", + copy = { + ["+"] = "pbcopy", + ["*"] = "pbcopy", + }, + paste = { + ["+"] = "pbpaste", + ["*"] = "pbpaste", + }, + cache_enabled = 1, + } end diff --git a/nvim/lua/juancwu/config/init.lua b/nvim/lua/juancwu/config/init.lua index 203664d..b2525b0 100644 --- a/nvim/lua/juancwu/config/init.lua +++ b/nvim/lua/juancwu/config/init.lua @@ -3,22 +3,22 @@ local M = {} ---@class ConfigOptions local defaultOpts = { - ---@type string | fun() - colorscheme = "rose-pine", + ---@type string | fun() + colorscheme = "rose-pine", } vim.g.disable_autoformat = false ---@param name "options" | "keymaps" | "clipboard" function M.load(name) - local mod = "juancwu.config." .. name - local error_handler = function(err) - local msg = "Failed loading " .. mod .. "\n\n" .. err - print(msg) - end - xpcall(function() - require(mod) - end, error_handler) + local mod = "juancwu.config." .. name + local error_handler = function(err) + local msg = "Failed loading " .. mod .. "\n\n" .. err + print(msg) + end + xpcall(function() + require(mod) + end, error_handler) end ---@type ConfigOptions @@ -26,55 +26,55 @@ local options ---@param opts? ConfigOptions function M.setup(opts) - options = vim.tbl_deep_extend("force", defaultOpts, opts or {}) or {} + options = vim.tbl_deep_extend("force", defaultOpts, opts or {}) or {} - M.load("options") - M.load("keymaps") - M.load("clipboard") + M.load("options") + M.load("keymaps") + M.load("clipboard") - require("lazy").setup("juancwu.plugins") + require("lazy").setup("juancwu.plugins") - -- try to load colorscheme - xpcall(function() - if type(M.colorscheme) == "function" then - M.colorscheme() - else - vim.cmd.colorscheme(M.colorscheme) - end - end, function(err) - if type(M.colorscheme) == "string" then - local msg = "Failed to load colorscheme " .. M.colorscheme .. "\n\n" .. err - print(msg) - else - print("Failed to load colorscheme\n\n" .. err) - end - vim.cmd.colorscheme("rose-pine") - end) + -- try to load colorscheme + xpcall(function() + if type(M.colorscheme) == "function" then + M.colorscheme() + else + vim.cmd.colorscheme(M.colorscheme) + end + end, function(err) + if type(M.colorscheme) == "string" then + local msg = "Failed to load colorscheme " .. M.colorscheme .. "\n\n" .. err + print(msg) + else + print("Failed to load colorscheme\n\n" .. err) + end + vim.cmd.colorscheme("rose-pine") + end) - -- create command to disable autoformat - vim.api.nvim_create_user_command("FormatDisable", function(args) - vim.g.disable_autoformat = true - end, { desc = "Disable Autoformat" }) - vim.api.nvim_create_user_command("FormatEnable", function(args) - vim.g.disable_autoformat = false - end, { desc = "Enable Autoformat" }) + -- create command to disable autoformat + vim.api.nvim_create_user_command("FormatDisable", function(args) + vim.g.disable_autoformat = true + end, { desc = "Disable Autoformat" }) + vim.api.nvim_create_user_command("FormatEnable", function(args) + vim.g.disable_autoformat = false + end, { desc = "Enable Autoformat" }) - -- create command to toggle colorscheme - vim.api.nvim_create_user_command( - "ToggleColors", - require("juancwu.utils.colors").toggle_colors, - { desc = "Toggle colorscheme" } - ) + -- create command to toggle colorscheme + vim.api.nvim_create_user_command( + "ToggleColors", + require("juancwu.utils.colors").toggle_colors, + { desc = "Toggle colorscheme" } + ) end setmetatable(M, { - __index = function(_, k) - if options == nil then - return vim.deepcopy(defaultOpts)[k] - end + __index = function(_, k) + if options == nil then + return vim.deepcopy(defaultOpts)[k] + end - return options[k] - end, + return options[k] + end, }) return M diff --git a/nvim/lua/juancwu/config/options.lua b/nvim/lua/juancwu/config/options.lua index 4bf2b6d..ae77103 100644 --- a/nvim/lua/juancwu/config/options.lua +++ b/nvim/lua/juancwu/config/options.lua @@ -1,7 +1,7 @@ vim.g.mapleader = " " vim.g.maplocalleader = " " -vim.opt.number = true -- show line number +vim.opt.number = true -- show line number vim.opt.relativenumber = true -- juicy relativity vim.opt.autoindent = true @@ -18,7 +18,7 @@ vim.opt.wrap = false -- bad, stay away from me! vim.opt.hlsearch = false vim.opt.incsearch = true -- highlight search pattern as you type -vim.opt.scrolloff = 12 -- give me some personal space +vim.opt.scrolloff = 12 -- give me some personal space vim.opt.updatetime = 50 @@ -45,11 +45,11 @@ vim.opt.undofile = true -- highlight on yank local highligh_group = vim.api.nvim_create_augroup("YankHighlight", { clear = true }) vim.api.nvim_create_autocmd("TextYankPost", { - callback = function() - vim.highlight.on_yank() - end, - group = highligh_group, - pattern = "*", + callback = function() + vim.highlight.on_yank() + end, + group = highligh_group, + pattern = "*", }) vim.opt.completeopt = "menu,menuone,noselect" diff --git a/nvim/lua/juancwu/init.lua b/nvim/lua/juancwu/init.lua index 69f7b3f..83343d5 100644 --- a/nvim/lua/juancwu/init.lua +++ b/nvim/lua/juancwu/init.lua @@ -2,7 +2,7 @@ local M = {} ---@param opts? ConfigOptions function M.setup(opts) - require("juancwu.config").setup(opts) + require("juancwu.config").setup(opts) end return M diff --git a/nvim/lua/juancwu/plugins/autocomplete.lua b/nvim/lua/juancwu/plugins/autocomplete.lua index e416535..281fda7 100644 --- a/nvim/lua/juancwu/plugins/autocomplete.lua +++ b/nvim/lua/juancwu/plugins/autocomplete.lua @@ -1,93 +1,93 @@ return { -- Autocompletion - "hrsh7th/nvim-cmp", - event = "InsertEnter", - dependencies = { - -- Snippet Engine & its associated nvim-cmp source - { - "L3MON4D3/LuaSnip", - build = (function() - -- Build Step is needed for regex support in snippets. - -- This step is not supported in many windows environments. - -- Remove the below condition to re-enable on windows. - if vim.fn.has("win32") == 1 or vim.fn.executable("make") == 0 then - return - end - return "make install_jsregexp" - end)(), - dependencies = { - { - "rafamadriz/friendly-snippets", - config = function() - require("luasnip.loaders.from_vscode").lazy_load() - end, - }, - }, - }, - "saadparwaiz1/cmp_luasnip", - "hrsh7th/cmp-nvim-lsp", - "hrsh7th/cmp-path", - }, - config = function() - -- See `:help cmp` - local cmp = require("cmp") - local luasnip = require("luasnip") - luasnip.config.setup({}) + "hrsh7th/nvim-cmp", + event = "InsertEnter", + dependencies = { + -- Snippet Engine & its associated nvim-cmp source + { + "L3MON4D3/LuaSnip", + build = (function() + -- Build Step is needed for regex support in snippets. + -- This step is not supported in many windows environments. + -- Remove the below condition to re-enable on windows. + if vim.fn.has("win32") == 1 or vim.fn.executable("make") == 0 then + return + end + return "make install_jsregexp" + end)(), + dependencies = { + { + "rafamadriz/friendly-snippets", + config = function() + require("luasnip.loaders.from_vscode").lazy_load() + end, + }, + }, + }, + "saadparwaiz1/cmp_luasnip", + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-path", + }, + config = function() + -- See `:help cmp` + local cmp = require("cmp") + local luasnip = require("luasnip") + luasnip.config.setup({}) - cmp.setup({ - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - completion = { completeopt = "menu,menuone,noinsert" }, + cmp.setup({ + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + completion = { completeopt = "menu,menuone,noinsert" }, - -- For an understanding of why these mappings were - -- chosen, you will need to read `:help ins-completion` - -- - -- No, but seriously. Please read `:help ins-completion`, it is really good! - mapping = cmp.mapping.preset.insert({ - -- Select the [n]ext item - [""] = cmp.mapping.select_next_item(), - -- Select the [p]revious item - [""] = cmp.mapping.select_prev_item(), + -- For an understanding of why these mappings were + -- chosen, you will need to read `:help ins-completion` + -- + -- No, but seriously. Please read `:help ins-completion`, it is really good! + mapping = cmp.mapping.preset.insert({ + -- Select the [n]ext item + [""] = cmp.mapping.select_next_item(), + -- Select the [p]revious item + [""] = cmp.mapping.select_prev_item(), - -- Scroll the documentation window [b]ack / [f]orward - [""] = cmp.mapping.scroll_docs(-4), - [""] = cmp.mapping.scroll_docs(4), + -- Scroll the documentation window [b]ack / [f]orward + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), - -- Accept ([y]es) the completion. - -- This will auto-import if your LSP supports it. - -- This will expand snippets if the LSP sent a snippet. - [""] = cmp.mapping.confirm({ select = true }), + -- Accept ([y]es) the completion. + -- This will auto-import if your LSP supports it. + -- This will expand snippets if the LSP sent a snippet. + [""] = cmp.mapping.confirm({ select = true }), - -- Manually trigger a completion from nvim-cmp. - -- Generally you don't need this, because nvim-cmp will display - -- completions whenever it has completion options available. - [""] = cmp.mapping.complete({}), + -- Manually trigger a completion from nvim-cmp. + -- Generally you don't need this, because nvim-cmp will display + -- completions whenever it has completion options available. + [""] = cmp.mapping.complete({}), - -- will move you to the right of each of the expansion locations. - -- is similar, except moving you backwards. - [""] = cmp.mapping(function() - if luasnip.expand_or_locally_jumpable() then - luasnip.expand_or_jump() - end - end, { "i", "s" }), - [""] = cmp.mapping(function() - if luasnip.locally_jumpable(-1) then - luasnip.jump(-1) - end - end, { "i", "s" }), - }), - sources = { - { - name = "lazydev", - -- set group index to 0 to skip loading LuaLS completions as lazydev recommends it - group_index = 0, - }, - { name = "nvim_lsp" }, - { name = "luasnip" }, - { name = "path" }, - }, - }) - end, + -- will move you to the right of each of the expansion locations. + -- is similar, except moving you backwards. + [""] = cmp.mapping(function() + if luasnip.expand_or_locally_jumpable() then + luasnip.expand_or_jump() + end + end, { "i", "s" }), + [""] = cmp.mapping(function() + if luasnip.locally_jumpable(-1) then + luasnip.jump(-1) + end + end, { "i", "s" }), + }), + sources = { + { + name = "lazydev", + -- set group index to 0 to skip loading LuaLS completions as lazydev recommends it + group_index = 0, + }, + { name = "nvim_lsp" }, + { name = "luasnip" }, + { name = "path" }, + }, + }) + end, } diff --git a/nvim/lua/juancwu/plugins/autopairs.lua b/nvim/lua/juancwu/plugins/autopairs.lua index 44c4230..9a43685 100644 --- a/nvim/lua/juancwu/plugins/autopairs.lua +++ b/nvim/lua/juancwu/plugins/autopairs.lua @@ -1,11 +1,11 @@ return { - "windwp/nvim-autopairs", - event = "InsertEnter", - dependencies = { "hrsh7th/nvim-cmp" }, - config = function() - require("nvim-autopairs").setup({}) - local cmp_autopairs = require("nvim-autopairs.completion.cmp") - local cmp = require("cmp") - cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done()) - end, + "windwp/nvim-autopairs", + event = "InsertEnter", + dependencies = { "hrsh7th/nvim-cmp" }, + config = function() + require("nvim-autopairs").setup({}) + local cmp_autopairs = require("nvim-autopairs.completion.cmp") + local cmp = require("cmp") + cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done()) + end, } diff --git a/nvim/lua/juancwu/plugins/autotag.lua b/nvim/lua/juancwu/plugins/autotag.lua index 92e4961..60b15ae 100644 --- a/nvim/lua/juancwu/plugins/autotag.lua +++ b/nvim/lua/juancwu/plugins/autotag.lua @@ -1,30 +1,30 @@ return { - "windwp/nvim-ts-autotag", - dependencies = { "nvim-treesitter/nvim-treesitter", build = ':TSUpdate' }, - ft = { - 'html', - 'javascript', - 'typescript', - 'javascriptreact', - 'typescriptreact', - 'svelte', - 'vue', - 'tsx', - 'jsx', - 'xml', - 'php', - 'markdown', - 'astro', - 'glimmer', - 'handlebars', - 'hbs', - 'templ', - }, - config = function() - local autotag = require('nvim-ts-autotag') - autotag.setup({ - enable = true, - enable_close_on_slash = false, - }) - end + "windwp/nvim-ts-autotag", + dependencies = { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" }, + ft = { + "html", + "javascript", + "typescript", + "javascriptreact", + "typescriptreact", + "svelte", + "vue", + "tsx", + "jsx", + "xml", + "php", + "markdown", + "astro", + "glimmer", + "handlebars", + "hbs", + "templ", + }, + config = function() + local autotag = require("nvim-ts-autotag") + autotag.setup({ + enable = true, + enable_close_on_slash = false, + }) + end, } diff --git a/nvim/lua/juancwu/plugins/colorscheme.lua b/nvim/lua/juancwu/plugins/colorscheme.lua index 6fb328d..754d371 100644 --- a/nvim/lua/juancwu/plugins/colorscheme.lua +++ b/nvim/lua/juancwu/plugins/colorscheme.lua @@ -1,47 +1,47 @@ return { - -- rose-pine - { - "rose-pine/nvim", - name = "rose-pine", - priority = 1000, - }, + -- rose-pine + { + "rose-pine/nvim", + name = "rose-pine", + priority = 1000, + }, - -- onedark - { - "navarasu/onedark.nvim", - priority = 1000, - }, + -- onedark + { + "navarasu/onedark.nvim", + priority = 1000, + }, - -- solarized-osaka - { - "craftzdog/solarized-osaka.nvim", - priority = 1000, - opts = { - transparent = false, - }, - }, + -- solarized-osaka + { + "craftzdog/solarized-osaka.nvim", + priority = 1000, + opts = { + transparent = false, + }, + }, - -- tokyonight - { - "folke/tokyonight.nvim", - lazy = true, - opts = { style = "moon" }, - }, + -- tokyonight + { + "folke/tokyonight.nvim", + lazy = true, + opts = { style = "moon" }, + }, - -- catppuccin - { - "catppuccin/nvim", - lazy = true, - name = "catppuccin", - priority = 1000, - opts = { - flavour = "mocha", - }, - }, + -- catppuccin + { + "catppuccin/nvim", + lazy = true, + name = "catppuccin", + priority = 1000, + opts = { + flavour = "mocha", + }, + }, - -- great kanagawa - { - "rebelot/kanagawa.nvim", - opts = {}, - }, + -- great kanagawa + { + "rebelot/kanagawa.nvim", + opts = {}, + }, } diff --git a/nvim/lua/juancwu/plugins/comment.lua b/nvim/lua/juancwu/plugins/comment.lua index 89425bd..cf08df1 100644 --- a/nvim/lua/juancwu/plugins/comment.lua +++ b/nvim/lua/juancwu/plugins/comment.lua @@ -1,34 +1,33 @@ return { - "numToStr/Comment.nvim", - dependencies = { - "JoosepAlviste/nvim-ts-context-commentstring", - }, - config = function() - local comment = require('Comment') - comment.setup({ - pre_hook = function(ctx) - -- only for tsx/jsx filetypes - if vim.bo.filetype == "typescriptreact" or vim.bo.filetype == "javascriptreact" then - local U = require('Comment.utils') + "numToStr/Comment.nvim", + dependencies = { + "JoosepAlviste/nvim-ts-context-commentstring", + }, + config = function() + local comment = require("Comment") + comment.setup({ + pre_hook = function(ctx) + -- only for tsx/jsx filetypes + if vim.bo.filetype == "typescriptreact" or vim.bo.filetype == "javascriptreact" then + local U = require("Comment.utils") - -- determine wheter to use linwise or blockwise commentstring - local type = ctx.ctype == U.ctype.linewise and '__default' or '__multiline' + -- determine wheter to use linwise or blockwise commentstring + local type = ctx.ctype == U.ctype.linewise and "__default" or "__multiline" + -- determine the location where to calcualte commentstring from + local location = nil + if ctx.ctype == U.ctype.blockwise then + location = require("ts_context_commentstring.utils").get_cursor_location() + elseif ctx.cmotion == U.cmotion.v or ctx.cmotion == U.cmotion.V then + location = require("ts_context_commentstring.utils").get_visual_start_location() + end - -- determine the location where to calcualte commentstring from - local location = nil - if ctx.ctype == U.ctype.blockwise then - location = require('ts_context_commentstring.utils').get_cursor_location() - elseif ctx.cmotion == U.cmotion.v or ctx.cmotion == U.cmotion.V then - location = require('ts_context_commentstring.utils').get_visual_start_location() - end - - return require('ts_context_commentstring.internal').calculate_commentstring({ - key = type, - location = location, - }) - end - end, - }) - end + return require("ts_context_commentstring.internal").calculate_commentstring({ + key = type, + location = location, + }) + end + end, + }) + end, } diff --git a/nvim/lua/juancwu/plugins/conform.lua b/nvim/lua/juancwu/plugins/conform.lua index a98e0e8..c082d55 100644 --- a/nvim/lua/juancwu/plugins/conform.lua +++ b/nvim/lua/juancwu/plugins/conform.lua @@ -1,61 +1,60 @@ local formatters_by_ft = { - lua = { "stylua" }, - javascript = { "biome" }, - typescript = { "biome" }, - javascriptreact = { "biome" }, - typescriptreact = { "biome" }, - css = { "biome" }, - markdown = { "biome" }, - jsonc = { "biome" }, - json = { "biome" }, - go = { "gofmt", "goimports" }, - python = { "autopep8" }, - yaml = { "yamlfmt" }, - yml = { "yamlfmt" }, - zig = { "zigfmt" }, - rust = { "rustfmt" }, + lua = { "stylua" }, + javascript = { "biome" }, + typescript = { "biome" }, + javascriptreact = { "biome" }, + typescriptreact = { "biome" }, + css = { "biome" }, + markdown = { "biome" }, + jsonc = { "biome" }, + json = { "biome" }, + go = { "gofmt", "goimports" }, + python = { "autopep8" }, + yaml = { "yamlfmt" }, + yml = { "yamlfmt" }, + zig = { "zigfmt" }, + rust = { "rustfmt" }, } return { - "stevearc/conform.nvim", - event = { "BufWritePre", "BufEnter" }, - cmd = { "ConformInfo" }, - keys = { - { - "ff", - function() - require("conform").format({ async = true, lsp_format = "fallback" }) - end, - mode = "", - desc = "[F]ormat buffer", - }, - }, - config = function() - require("conform").setup({ - notify_on_error = false, - formatters_by_ft = formatters_by_ft, - format_on_save = function(bufnr) - if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then - return - end - return { - timeout_ms = 500, - lsp_format = "fallback", - } - end, - }) + "stevearc/conform.nvim", + event = { "BufWritePre", "BufEnter" }, + cmd = { "ConformInfo" }, + keys = { + { + "ff", + function() + require("conform").format({ async = true, lsp_format = "fallback" }) + end, + mode = "", + desc = "[F]ormat buffer", + }, + }, + config = function() + require("conform").setup({ + notify_on_error = false, + formatters_by_ft = formatters_by_ft, + format_on_save = function(bufnr) + if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then + return + end + return { + timeout_ms = 500, + lsp_format = "fallback", + } + end, + }) - vim.api.nvim_create_user_command("FormatDisable", function() - vim.g.disable_autoformat = true - end, { - desc = "Disable autoformat on save", - }) + vim.api.nvim_create_user_command("FormatDisable", function() + vim.g.disable_autoformat = true + end, { + desc = "Disable autoformat on save", + }) - vim.api.nvim_create_user_command("FormatEnable", function() - vim.g.disable_autoformat = false - end, { - desc = "Enable autoformat on save", - }) - end, + vim.api.nvim_create_user_command("FormatEnable", function() + vim.g.disable_autoformat = false + end, { + desc = "Enable autoformat on save", + }) + end, } - diff --git a/nvim/lua/juancwu/plugins/fugitive.lua b/nvim/lua/juancwu/plugins/fugitive.lua index bb976df..9142e2a 100644 --- a/nvim/lua/juancwu/plugins/fugitive.lua +++ b/nvim/lua/juancwu/plugins/fugitive.lua @@ -1,23 +1,23 @@ return { - "tpope/vim-fugitive", - cmd = { - "Git", - "G", - "Gdiffsplit", - "Gread", - "Gwrite", - "Ggrep", - "GMove", - "GDelete", - "GBrowse", - "GRemove", - "GRename", - "Glgrep", - "Gedit" - }, - keys = { - { "gs", "Git", desc = "Git status" }, - { "gbl", "Git blame", desc = "Open [G]it [Bl]ame" }, - { "gd", "Gdiffsplit", desc = "Open [G]it [D]iff" }, - }, -} \ No newline at end of file + "tpope/vim-fugitive", + cmd = { + "Git", + "G", + "Gdiffsplit", + "Gread", + "Gwrite", + "Ggrep", + "GMove", + "GDelete", + "GBrowse", + "GRemove", + "GRename", + "Glgrep", + "Gedit", + }, + keys = { + { "gs", "Git", desc = "Git status" }, + { "gbl", "Git blame", desc = "Open [G]it [Bl]ame" }, + { "gd", "Gdiffsplit", desc = "Open [G]it [D]iff" }, + }, +} diff --git a/nvim/lua/juancwu/plugins/gitsigns.lua b/nvim/lua/juancwu/plugins/gitsigns.lua index d93e667..412175a 100644 --- a/nvim/lua/juancwu/plugins/gitsigns.lua +++ b/nvim/lua/juancwu/plugins/gitsigns.lua @@ -1,19 +1,19 @@ return { - "lewis6991/gitsigns.nvim", - opts = { - current_line_blame = true, - current_line_blame_opts = { - virt_text = true, - virt_text_pos = 'eol', - delay = 1000, - ignore_whitespace = false - }, - signs = { - add = { text = '+' }, - change = { text = '~' }, - delete = { text = '_' }, - topdelete = { text = '-' }, - changedelete = { text = '~' }, - }, + "lewis6991/gitsigns.nvim", + opts = { + current_line_blame = true, + current_line_blame_opts = { + virt_text = true, + virt_text_pos = "eol", + delay = 1000, + ignore_whitespace = false, }, + signs = { + add = { text = "+" }, + change = { text = "~" }, + delete = { text = "_" }, + topdelete = { text = "-" }, + changedelete = { text = "~" }, + }, + }, } diff --git a/nvim/lua/juancwu/plugins/godoc.lua b/nvim/lua/juancwu/plugins/godoc.lua index 6179c1e..43ec765 100644 --- a/nvim/lua/juancwu/plugins/godoc.lua +++ b/nvim/lua/juancwu/plugins/godoc.lua @@ -1,20 +1,20 @@ return { - "fredrikaverpil/godoc.nvim", - version = "*", - dependencies = { - { "nvim-telescope/telescope.nvim" }, - { - "nvim-treesitter/nvim-treesitter", - opts = { - ensure_installed = { "go" }, - }, - }, - }, - build = "go install github.com/lotusirous/gostdsym/stdsym@latest", -- optional - cmd = { "GoDoc" }, -- optional - opts = { - picker = { - type = "telescope", - }, - }, + "fredrikaverpil/godoc.nvim", + version = "*", + dependencies = { + { "nvim-telescope/telescope.nvim" }, + { + "nvim-treesitter/nvim-treesitter", + opts = { + ensure_installed = { "go" }, + }, + }, + }, + build = "go install github.com/lotusirous/gostdsym/stdsym@latest", -- optional + cmd = { "GoDoc" }, -- optional + opts = { + picker = { + type = "telescope", + }, + }, } diff --git a/nvim/lua/juancwu/plugins/harpoon.lua b/nvim/lua/juancwu/plugins/harpoon.lua index 0169db7..6885ea2 100644 --- a/nvim/lua/juancwu/plugins/harpoon.lua +++ b/nvim/lua/juancwu/plugins/harpoon.lua @@ -1,18 +1,26 @@ return { - "ThePrimeagen/harpoon", - dependencies = { "nvim-lua/plenary.nvim" }, - config = function() - local mark = require("harpoon.mark") - local ui = require("harpoon.ui") + "ThePrimeagen/harpoon", + dependencies = { "nvim-lua/plenary.nvim" }, + config = function() + local mark = require("harpoon.mark") + local ui = require("harpoon.ui") - vim.keymap.set("n", "a", mark.add_file) - vim.keymap.set("n", "", ui.toggle_quick_menu) + vim.keymap.set("n", "a", mark.add_file) + vim.keymap.set("n", "", ui.toggle_quick_menu) - vim.keymap.set("n", "q", function() ui.nav_file(1) end) - vim.keymap.set("n", "w", function() ui.nav_file(2) end) - vim.keymap.set("n", "e", function() ui.nav_file(3) end) - vim.keymap.set("n", "r", function() ui.nav_file(4) end) - vim.keymap.set("n", ",", ui.nav_prev) - vim.keymap.set("n", ".", ui.nav_next) - end + vim.keymap.set("n", "q", function() + ui.nav_file(1) + end) + vim.keymap.set("n", "w", function() + ui.nav_file(2) + end) + vim.keymap.set("n", "e", function() + ui.nav_file(3) + end) + vim.keymap.set("n", "r", function() + ui.nav_file(4) + end) + vim.keymap.set("n", ",", ui.nav_prev) + vim.keymap.set("n", ".", ui.nav_next) + end, } diff --git a/nvim/lua/juancwu/plugins/indent-blankline.lua b/nvim/lua/juancwu/plugins/indent-blankline.lua index 793ee26..4e373e9 100644 --- a/nvim/lua/juancwu/plugins/indent-blankline.lua +++ b/nvim/lua/juancwu/plugins/indent-blankline.lua @@ -1,12 +1,12 @@ return { - "lukas-reineke/indent-blankline.nvim", - opts = { - indent = { - smart_indent_cap = true, - }, - scope = { - show_end = true, - }, + "lukas-reineke/indent-blankline.nvim", + opts = { + indent = { + smart_indent_cap = true, }, - main = "ibl" + scope = { + show_end = true, + }, + }, + main = "ibl", } diff --git a/nvim/lua/juancwu/plugins/lazydev.lua b/nvim/lua/juancwu/plugins/lazydev.lua index 35963b3..193d759 100644 --- a/nvim/lua/juancwu/plugins/lazydev.lua +++ b/nvim/lua/juancwu/plugins/lazydev.lua @@ -1,9 +1,9 @@ return { - 'folke/lazydev.nvim', - ft = 'lua', - opts = { - library = { - { path = 'luvit-meta/library', words = { 'vim%.uv' } }, - }, + "folke/lazydev.nvim", + ft = "lua", + opts = { + library = { + { path = "luvit-meta/library", words = { "vim%.uv" } }, }, + }, } diff --git a/nvim/lua/juancwu/plugins/lsp.lua b/nvim/lua/juancwu/plugins/lsp.lua index c12134c..01fca90 100644 --- a/nvim/lua/juancwu/plugins/lsp.lua +++ b/nvim/lua/juancwu/plugins/lsp.lua @@ -1,154 +1,154 @@ return { - -- lspconfig - "neovim/nvim-lspconfig", - dependencies = { + -- lspconfig + "neovim/nvim-lspconfig", + dependencies = { - { "williamboman/mason.nvim", opts = {} }, - "williamboman/mason-lspconfig.nvim", - "WhoIsSethDaniel/mason-tool-installer.nvim", + { "williamboman/mason.nvim", opts = {} }, + "williamboman/mason-lspconfig.nvim", + "WhoIsSethDaniel/mason-tool-installer.nvim", - -- status updates for LSP - { "j-hui/fidget.nvim", opts = {} }, + -- status updates for LSP + { "j-hui/fidget.nvim", opts = {} }, - { "hrsh7th/cmp-nvim-lsp" }, -- Required - }, - config = function() - -- stole this from kickstart, great config - vim.api.nvim_create_autocmd("LspAttach", { - group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }), - callback = function(event) - local map = function(keys, func, desc, mode) - mode = mode or "n" - vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc }) - end + { "hrsh7th/cmp-nvim-lsp" }, -- Required + }, + config = function() + -- stole this from kickstart, great config + vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }), + callback = function(event) + local map = function(keys, func, desc, mode) + mode = mode or "n" + vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc }) + end - -- Jump to the definition of the word under your cursor. - -- This is where a variable was first declared, or where a function is defined, etc. - -- To jump back, press . - map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition") + -- Jump to the definition of the word under your cursor. + -- This is where a variable was first declared, or where a function is defined, etc. + -- To jump back, press . + map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition") - -- Find references for the word under your cursor. - map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences") + -- Find references for the word under your cursor. + map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences") - -- Jump to the implementation of the word under your cursor. - -- Useful when your language has ways of declaring types without an actual implementation. - map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation") + -- Jump to the implementation of the word under your cursor. + -- Useful when your language has ways of declaring types without an actual implementation. + map("gI", require("telescope.builtin").lsp_implementations, "[G]oto [I]mplementation") - -- Jump to the type of the word under your cursor. - -- Useful when you're not sure what type a variable is and you want to see - -- the definition of its *type*, not where it was *defined*. - map("D", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition") + -- Jump to the type of the word under your cursor. + -- Useful when you're not sure what type a variable is and you want to see + -- the definition of its *type*, not where it was *defined*. + map("D", require("telescope.builtin").lsp_type_definitions, "Type [D]efinition") - -- Fuzzy find all the symbols in your current document. - -- Symbols are things like variables, functions, types, etc. - map("ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols") + -- Fuzzy find all the symbols in your current document. + -- Symbols are things like variables, functions, types, etc. + map("ds", require("telescope.builtin").lsp_document_symbols, "[D]ocument [S]ymbols") - -- Fuzzy find all the symbols in your current workspace. - -- Similar to document symbols, except searches over your entire project. - map("ws", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[W]orkspace [S]ymbols") + -- Fuzzy find all the symbols in your current workspace. + -- Similar to document symbols, except searches over your entire project. + map("ws", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[W]orkspace [S]ymbols") - -- Rename the variable under your cursor. - -- Most Language Servers support renaming across files, etc. - map("rn", vim.lsp.buf.rename, "[R]e[n]ame") + -- Rename the variable under your cursor. + -- Most Language Servers support renaming across files, etc. + map("rn", vim.lsp.buf.rename, "[R]e[n]ame") - -- Execute a code action, usually your cursor needs to be on top of an error - -- or a suggestion from your LSP for this to activate. - map("ca", vim.lsp.buf.code_action, "[C]ode [A]ction", { "n", "x" }) + -- Execute a code action, usually your cursor needs to be on top of an error + -- or a suggestion from your LSP for this to activate. + map("ca", vim.lsp.buf.code_action, "[C]ode [A]ction", { "n", "x" }) - -- WARN: This is not Goto Definition, this is Goto Declaration. - -- For example, in C this would take you to the header. - map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration") + -- WARN: This is not Goto Definition, this is Goto Declaration. + -- For example, in C this would take you to the header. + map("gD", vim.lsp.buf.declaration, "[G]oto [D]eclaration") - map("[d", vim.diagnostic.goto_prev, "Go to previous diagnostic") - map("]d", vim.diagnostic.goto_next, "Go to next diagnostic") + map("[d", vim.diagnostic.goto_prev, "Go to previous diagnostic") + map("]d", vim.diagnostic.goto_next, "Go to next diagnostic") - -- The following two autocommands are used to highlight references of the - -- word under your cursor when your cursor rests there for a little while. - -- See `:help CursorHold` for information about when this is executed - -- - -- When you move your cursor, the highlights will be cleared (the second autocommand). - local client = vim.lsp.get_client_by_id(event.data.client_id) - if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then - local highlight_augroup = vim.api.nvim_create_augroup("kickstart-lsp-highlight", { clear = false }) - vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, { - buffer = event.buf, - group = highlight_augroup, - callback = vim.lsp.buf.document_highlight, - }) + -- The following two autocommands are used to highlight references of the + -- word under your cursor when your cursor rests there for a little while. + -- See `:help CursorHold` for information about when this is executed + -- + -- When you move your cursor, the highlights will be cleared (the second autocommand). + local client = vim.lsp.get_client_by_id(event.data.client_id) + if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then + local highlight_augroup = vim.api.nvim_create_augroup("kickstart-lsp-highlight", { clear = false }) + vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, { + buffer = event.buf, + group = highlight_augroup, + callback = vim.lsp.buf.document_highlight, + }) - vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, { - buffer = event.buf, - group = highlight_augroup, - callback = vim.lsp.buf.clear_references, - }) + vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, { + buffer = event.buf, + group = highlight_augroup, + callback = vim.lsp.buf.clear_references, + }) - vim.api.nvim_create_autocmd("LspDetach", { - group = vim.api.nvim_create_augroup("kickstart-lsp-detach", { clear = true }), - callback = function(event2) - vim.lsp.buf.clear_references() - vim.api.nvim_clear_autocmds({ group = "kickstart-lsp-highlight", buffer = event2.buf }) - end, - }) - end - end, - }) + vim.api.nvim_create_autocmd("LspDetach", { + group = vim.api.nvim_create_augroup("kickstart-lsp-detach", { clear = true }), + callback = function(event2) + vim.lsp.buf.clear_references() + vim.api.nvim_clear_autocmds({ group = "kickstart-lsp-highlight", buffer = event2.buf }) + end, + }) + end + end, + }) - local capabilities = vim.lsp.protocol.make_client_capabilities() - capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities()) + local capabilities = vim.lsp.protocol.make_client_capabilities() + capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities()) - vim.filetype.add({ - extension = { - templ = "templ", - }, - }) + vim.filetype.add({ + extension = { + templ = "templ", + }, + }) - local servers = { - ts_ls = {}, - gopls = {}, - zls = {}, - rust_analyzer = {}, - templ = { - filetypes = { "templ" }, - }, - intelephense = {}, - lua_ls = { - settings = { - Lua = { - completion = { - callSnippet = "Replace", - }, - }, - }, - }, - tailwindcss = { - filetypes = { - "templ", - "html", - "javascript", - "typescript", - "javascriptreact", - "typescriptreact", - }, - init_options = { - userLanguages = { - templ = "html", - }, - }, - }, - } + local servers = { + ts_ls = {}, + gopls = {}, + zls = {}, + rust_analyzer = {}, + templ = { + filetypes = { "templ" }, + }, + intelephense = {}, + lua_ls = { + settings = { + Lua = { + completion = { + callSnippet = "Replace", + }, + }, + }, + }, + tailwindcss = { + filetypes = { + "templ", + "html", + "javascript", + "typescript", + "javascriptreact", + "typescriptreact", + }, + init_options = { + userLanguages = { + templ = "html", + }, + }, + }, + } - local ensure_installed = vim.tbl_keys(servers or {}) - vim.list_extend(ensure_installed, { "stylua", "yamlfmt", "autopep8", "biome", "goimports" }) - require("mason-tool-installer").setup({ ensure_installed = ensure_installed }) + local ensure_installed = vim.tbl_keys(servers or {}) + vim.list_extend(ensure_installed, { "stylua", "yamlfmt", "autopep8", "biome", "goimports" }) + require("mason-tool-installer").setup({ ensure_installed = ensure_installed }) - require("mason-lspconfig").setup({ - handlers = { - function(server_name) - local server = servers[server_name] or {} - server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {}) - require("lspconfig")[server_name].setup(server) - end, - }, - }) - end, + require("mason-lspconfig").setup({ + handlers = { + function(server_name) + local server = servers[server_name] or {} + server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {}) + require("lspconfig")[server_name].setup(server) + end, + }, + }) + end, } diff --git a/nvim/lua/juancwu/plugins/lualine.lua b/nvim/lua/juancwu/plugins/lualine.lua index e496763..63ecac4 100644 --- a/nvim/lua/juancwu/plugins/lualine.lua +++ b/nvim/lua/juancwu/plugins/lualine.lua @@ -1,13 +1,13 @@ return { - "nvim-lualine/lualine.nvim", - dependencies = { "nvim-tree/nvim-web-devicons", lazy = true }, - config = function() - local lualine = require('lualine') + "nvim-lualine/lualine.nvim", + dependencies = { "nvim-tree/nvim-web-devicons", lazy = true }, + config = function() + local lualine = require("lualine") - lualine.setup { - options = { - icons_enabled = false, - --[[ section_separators = { + lualine.setup({ + options = { + icons_enabled = false, + --[[ section_separators = { left = '', right = '' }, @@ -15,44 +15,48 @@ return { left = '', right = '' }, ]] - section_separators = '', - component_separators = '|', - disabled_filetypes = {} - }, - sections = { - lualine_a = { }, - lualine_b = { }, - lualine_c = { { - 'filename', - file_status = true, -- display file status - path = 1 -- no file path - } }, - lualine_x = { - { - 'diagnostics', - sources = { 'nvim_diagnostic' }, - symbols = { error = ' ', warn = ' ', info = ' ', hint = '' } - }, - 'enconding', - 'filetype' - }, - lualine_y = { 'progress' }, - lualine_z = { 'location' } - }, - inactive_sections = { - lualine_a = {}, - lualine_b = {}, - lualine_c = { { - 'filename', - file_status = true, - path = 1 - } }, - lualine_x = { 'location' }, - lualine_y = {}, - lualine_z = {} - }, - tabline = {}, - extensions = { 'fugitive' } - } - end + section_separators = "", + component_separators = "|", + disabled_filetypes = {}, + }, + sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = { + { + "filename", + file_status = true, -- display file status + path = 1, -- no file path + }, + }, + lualine_x = { + { + "diagnostics", + sources = { "nvim_diagnostic" }, + symbols = { error = " ", warn = " ", info = " ", hint = "" }, + }, + "enconding", + "filetype", + }, + lualine_y = { "progress" }, + lualine_z = { "location" }, + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = { + { + "filename", + file_status = true, + path = 1, + }, + }, + lualine_x = { "location" }, + lualine_y = {}, + lualine_z = {}, + }, + tabline = {}, + extensions = { "fugitive" }, + }) + end, } diff --git a/nvim/lua/juancwu/plugins/luvit-meta.lua b/nvim/lua/juancwu/plugins/luvit-meta.lua index 3abf672..7fcb36c 100644 --- a/nvim/lua/juancwu/plugins/luvit-meta.lua +++ b/nvim/lua/juancwu/plugins/luvit-meta.lua @@ -1,4 +1,4 @@ return { - 'Bilal2453/luvit-meta', - lazy = true, + "Bilal2453/luvit-meta", + lazy = true, } diff --git a/nvim/lua/juancwu/plugins/neo-tree.lua b/nvim/lua/juancwu/plugins/neo-tree.lua index fbf88f7..88f27c3 100644 --- a/nvim/lua/juancwu/plugins/neo-tree.lua +++ b/nvim/lua/juancwu/plugins/neo-tree.lua @@ -1,71 +1,71 @@ return { - "nvim-neo-tree/neo-tree.nvim", - enabled = false, - branch = "v2.x", - cmd = { "Neotree" }, - keys = { - { "fs", "NeoTreeFloatToggle", desc = "Toggle [F]ile [S]ystem Floating Menu" }, - { "", "NeoTreeFocusToggle", desc = "Open Side File System" } + "nvim-neo-tree/neo-tree.nvim", + enabled = false, + branch = "v2.x", + cmd = { "Neotree" }, + keys = { + { "fs", "NeoTreeFloatToggle", desc = "Toggle [F]ile [S]ystem Floating Menu" }, + { "", "NeoTreeFocusToggle", desc = "Open Side File System" }, + }, + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-tree/nvim-web-devicons", + "MunifTanjim/nui.nvim", + }, + opts = { + use_default_mappings = true, + mappings = { + [""] = { + "toggle_node", + nowait = true, -- disable `nowait` if you have existing combos starting with this char that you want to use + }, + ["<2-LeftMouse>"] = "open", + [""] = "open", + [""] = "cancel", -- close preview or floating neo-tree window + ["P"] = { "toggle_preview", config = { use_float = true } }, + ["l"] = "focus_preview", + ["O"] = "open_split", + ["o"] = "open_vsplit", + ["S"] = "none", + ["s"] = "none", + -- ["S"] = "split_with_window_picker", + -- ["s"] = "vsplit_with_window_picker", + ["t"] = "open_tabnew", + -- [""] = "open_drop", + -- ["t"] = "open_tab_drop", + ["w"] = "open_with_window_picker", + --["P"] = "toggle_preview", -- enter preview mode, which shows the current node without focusing + ["C"] = "close_node", + -- ['C'] = 'close_all_subnodes', + ["z"] = "close_all_nodes", + --["Z"] = "expand_all_nodes", + ["a"] = { + "add", + -- this command supports BASH style brace expansion ("x{a,b,c}" -> xa,xb,xc). see `:h neo-tree-file-actions` for details + -- some commands may take optional config options, see `:h neo-tree-mappings` for details + config = { + show_path = "none", -- "none", "relative", "absolute" + }, + }, + ["A"] = "add_directory", -- also accepts the optional config.show_path option like "add". this also supports BASH style brace expansion. + ["d"] = "delete", + ["r"] = "rename", + ["y"] = "copy_to_clipboard", + ["x"] = "cut_to_clipboard", + ["p"] = "paste_from_clipboard", + ["c"] = "copy", -- takes text input for destination, also accepts the optional config.show_path option like "add": + -- ["c"] = { + -- "copy", + -- config = { + -- show_path = "none" -- "none", "relative", "absolute" + -- } + --} + ["m"] = "move", -- takes text input for destination, also accepts the optional config.show_path option like "add". + ["q"] = "close_window", + ["R"] = "refresh", + ["?"] = "show_help", + ["<"] = "prev_source", + [">"] = "next_source", }, - dependencies = { - "nvim-lua/plenary.nvim", - "nvim-tree/nvim-web-devicons", - "MunifTanjim/nui.nvim", - }, - opts = { - use_default_mappings = true, - mappings = { - [""] = { - "toggle_node", - nowait = true, -- disable `nowait` if you have existing combos starting with this char that you want to use - }, - ["<2-LeftMouse>"] = "open", - [""] = "open", - [""] = "cancel", -- close preview or floating neo-tree window - ["P"] = { "toggle_preview", config = { use_float = true } }, - ["l"] = "focus_preview", - ["O"] = "open_split", - ["o"] = "open_vsplit", - ["S"] = "none", - ["s"] = "none", - -- ["S"] = "split_with_window_picker", - -- ["s"] = "vsplit_with_window_picker", - ["t"] = "open_tabnew", - -- [""] = "open_drop", - -- ["t"] = "open_tab_drop", - ["w"] = "open_with_window_picker", - --["P"] = "toggle_preview", -- enter preview mode, which shows the current node without focusing - ["C"] = "close_node", - -- ['C'] = 'close_all_subnodes', - ["z"] = "close_all_nodes", - --["Z"] = "expand_all_nodes", - ["a"] = { - "add", - -- this command supports BASH style brace expansion ("x{a,b,c}" -> xa,xb,xc). see `:h neo-tree-file-actions` for details - -- some commands may take optional config options, see `:h neo-tree-mappings` for details - config = { - show_path = "none" -- "none", "relative", "absolute" - } - }, - ["A"] = "add_directory", -- also accepts the optional config.show_path option like "add". this also supports BASH style brace expansion. - ["d"] = "delete", - ["r"] = "rename", - ["y"] = "copy_to_clipboard", - ["x"] = "cut_to_clipboard", - ["p"] = "paste_from_clipboard", - ["c"] = "copy", -- takes text input for destination, also accepts the optional config.show_path option like "add": - -- ["c"] = { - -- "copy", - -- config = { - -- show_path = "none" -- "none", "relative", "absolute" - -- } - --} - ["m"] = "move", -- takes text input for destination, also accepts the optional config.show_path option like "add". - ["q"] = "close_window", - ["R"] = "refresh", - ["?"] = "show_help", - ["<"] = "prev_source", - [">"] = "next_source", - } - } + }, } diff --git a/nvim/lua/juancwu/plugins/nvim-lint.lua b/nvim/lua/juancwu/plugins/nvim-lint.lua index c9388de..c4a23fe 100644 --- a/nvim/lua/juancwu/plugins/nvim-lint.lua +++ b/nvim/lua/juancwu/plugins/nvim-lint.lua @@ -1,84 +1,84 @@ local linters_by_ft = { - javascript = { "biomejs", "eslint" }, - typescript = { "biomejs", "eslint" }, - javascriptreact = { "biomejs", "eslint" }, - typescriptreact = { "biomejs", "eslint" }, - jsonc = { "biomejs" }, - json = { "biomejs" }, - css = { "biomejs" }, + javascript = { "biomejs", "eslint" }, + typescript = { "biomejs", "eslint" }, + javascriptreact = { "biomejs", "eslint" }, + typescriptreact = { "biomejs", "eslint" }, + jsonc = { "biomejs" }, + json = { "biomejs" }, + css = { "biomejs" }, } -- Function to find the first config file by walking up the directory tree local function find_first_config() - local current_dir = vim.fn.expand("%:p:h") - local home_dir = vim.fn.expand("$HOME") + local current_dir = vim.fn.expand("%:p:h") + local home_dir = vim.fn.expand("$HOME") - local config_files = { - biomejs = { "biome.json" }, - eslint = { ".eslintrc", ".eslintrc.js", ".eslintrc.json", ".eslintrc.yml" }, - } + local config_files = { + biomejs = { "biome.json" }, + eslint = { ".eslintrc", ".eslintrc.js", ".eslintrc.json", ".eslintrc.yml" }, + } - while current_dir ~= home_dir and current_dir ~= "/" do - for linter, patterns in pairs(config_files) do - for _, pattern in ipairs(patterns) do - local config_file = current_dir .. "/" .. pattern - if vim.fn.filereadable(config_file) == 1 then - return linter - end - end - end - current_dir = vim.fn.fnamemodify(current_dir, ":h") - end - return nil + while current_dir ~= home_dir and current_dir ~= "/" do + for linter, patterns in pairs(config_files) do + for _, pattern in ipairs(patterns) do + local config_file = current_dir .. "/" .. pattern + if vim.fn.filereadable(config_file) == 1 then + return linter + end + end + end + current_dir = vim.fn.fnamemodify(current_dir, ":h") + end + return nil end -- Function to determine the linter based on config files and file type local function get_linter() - local filetype = vim.bo.filetype - local available_linters = linters_by_ft[filetype] or {} - local linter = find_first_config() + local filetype = vim.bo.filetype + local available_linters = linters_by_ft[filetype] or {} + local linter = find_first_config() - if linter then - if vim.tbl_contains(available_linters, linter) then - vim.g.current_linter = linter - return linter - end - end + if linter then + if vim.tbl_contains(available_linters, linter) then + vim.g.current_linter = linter + return linter + end + end - return nil + return nil end local function lint() - local nvimlint = require("lint") - local linter = get_linter() - if linter ~= nil then - nvimlint.try_lint(linter) - else - print("No linter found for filetype: " .. vim.bo.filetype) - end + local nvimlint = require("lint") + local linter = get_linter() + if linter ~= nil then + nvimlint.try_lint(linter) + else + print("No linter found for filetype: " .. vim.bo.filetype) + end end return { - "mfussenegger/nvim-lint", - keys = { - { - "lf", - function() - lint() - end, - mode = "n", - desc = "[L]int [F]ile", - }, - }, - config = function() - vim.api.nvim_create_user_command("Lint", function() - lint() - end, { desc = "Lint file" }) + "mfussenegger/nvim-lint", + keys = { + { + "lf", + function() + lint() + end, + mode = "n", + desc = "[L]int [F]ile", + }, + }, + config = function() + vim.api.nvim_create_user_command("Lint", function() + lint() + end, { desc = "Lint file" }) - vim.api.nvim_create_user_command("LintInfo", function() - print("Current linter: " .. (vim.g.current_linter or "none")) - end, { - desc = "Show current linter being used", - }) - end, + vim.api.nvim_create_user_command("LintInfo", function() + print("Current linter: " .. (vim.g.current_linter or "none")) + end, { + desc = "Show current linter being used", + }) + end, } diff --git a/nvim/lua/juancwu/plugins/oil.lua b/nvim/lua/juancwu/plugins/oil.lua index fd9a9e2..1252aeb 100644 --- a/nvim/lua/juancwu/plugins/oil.lua +++ b/nvim/lua/juancwu/plugins/oil.lua @@ -1,28 +1,28 @@ return { - "stevearc/oil.nvim", - ---@module 'oil' - ---@type oil.SetupOpts - -- Optional dependencies - dependencies = { { "echasnovski/mini.icons", opts = {} } }, - -- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations. - lazy = false, - config = function() - local oil = require("oil") + "stevearc/oil.nvim", + ---@module 'oil' + ---@type oil.SetupOpts + -- Optional dependencies + dependencies = { { "echasnovski/mini.icons", opts = {} } }, + -- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations. + lazy = false, + config = function() + local oil = require("oil") - oil.setup({ - view_options = { - show_hidden = true, - }, - }) - end, - keys = { - { - "oo", - function() - require("oil").open() - end, - mode = "n", - desc = "[O]pen [O]il", - }, - }, + oil.setup({ + view_options = { + show_hidden = true, + }, + }) + end, + keys = { + { + "oo", + function() + require("oil").open() + end, + mode = "n", + desc = "[O]pen [O]il", + }, + }, } diff --git a/nvim/lua/juancwu/plugins/render-markdown.lua b/nvim/lua/juancwu/plugins/render-markdown.lua index 4bbd31e..533b6a4 100644 --- a/nvim/lua/juancwu/plugins/render-markdown.lua +++ b/nvim/lua/juancwu/plugins/render-markdown.lua @@ -1,9 +1,9 @@ return { - "MeanderingProgrammer/render-markdown.nvim", - dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.nvim" }, -- if you use the mini.nvim suite - -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.icons' }, -- if you use standalone mini plugins - -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons - ---@module 'render-markdown' - ---@type render.md.UserConfig - opts = {}, + "MeanderingProgrammer/render-markdown.nvim", + dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.nvim" }, -- if you use the mini.nvim suite + -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'echasnovski/mini.icons' }, -- if you use standalone mini plugins + -- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons + ---@module 'render-markdown' + ---@type render.md.UserConfig + opts = {}, } diff --git a/nvim/lua/juancwu/plugins/telescope.lua b/nvim/lua/juancwu/plugins/telescope.lua index a95bd0f..2df54e7 100644 --- a/nvim/lua/juancwu/plugins/telescope.lua +++ b/nvim/lua/juancwu/plugins/telescope.lua @@ -1,181 +1,181 @@ local function get_fd_command() - if vim.fn.executable("fd") == 1 then - return "fd" - elseif vim.fn.executable("fdfind") == 1 then - return "fdfind" - end - return nil + if vim.fn.executable("fd") == 1 then + return "fd" + elseif vim.fn.executable("fdfind") == 1 then + return "fdfind" + end + return nil end return { - "nvim-telescope/telescope.nvim", - version = "0.1.8", - dependencies = { - "nvim-lua/plenary.nvim", - { - "nvim-telescope/telescope-fzf-native.nvim", - build = "make", - enabled = true, - cond = function() - return vim.fn.executable("make") == 1 - end, - }, - { - "nvim-telescope/telescope-file-browser.nvim", - dependencies = { - "nvim-telescope/telescope.nvim", - "nvim-lua/plenary.nvim", - }, - enabled = true, - }, - { "nvim-telescope/telescope-ui-select.nvim" }, - { "nvim-tree/nvim-web-devicons", enabled = vim.g.have_nerd_font }, - }, - config = function() - local telescope = require("telescope") - local actions = require("telescope.actions") - local builtin = require("telescope.builtin") - local fb_actions = require("telescope").extensions.file_browser.actions + "nvim-telescope/telescope.nvim", + version = "0.1.8", + dependencies = { + "nvim-lua/plenary.nvim", + { + "nvim-telescope/telescope-fzf-native.nvim", + build = "make", + enabled = true, + cond = function() + return vim.fn.executable("make") == 1 + end, + }, + { + "nvim-telescope/telescope-file-browser.nvim", + dependencies = { + "nvim-telescope/telescope.nvim", + "nvim-lua/plenary.nvim", + }, + enabled = true, + }, + { "nvim-telescope/telescope-ui-select.nvim" }, + { "nvim-tree/nvim-web-devicons", enabled = vim.g.have_nerd_font }, + }, + config = function() + local telescope = require("telescope") + local actions = require("telescope.actions") + local builtin = require("telescope.builtin") + local fb_actions = require("telescope").extensions.file_browser.actions - local function telescope_buffer_dir() - return vim.fn.expand("%:p:h") - end + local function telescope_buffer_dir() + return vim.fn.expand("%:p:h") + end - telescope.setup({ - defaults = { - mappings = { - n = { - ["q"] = actions.close, - }, - }, - }, - extensions = { - ["ui-select"] = { - require("telescope.themes").get_dropdown(), - }, - file_browser = { - theme = "dropdown", - hijack_netrw = false, - hidden = true, - mappings = { - ["i"] = { - [""] = function() - vim.cmd("normal vbd") - end, - [""] = function(bufnr) - actions.move_selection_next(bufnr) - end, - [""] = function(bufnr) - actions.move_selection_previous(bufnr) - end, - [""] = function(bufnr) - actions.select_vertical(bufnr) - end, - }, - ["n"] = { - ["a"] = fb_actions.create, - ["h"] = fb_actions.goto_parent_dir, - ["/"] = function() - vim.cmd("startinsert") - end, - ["d"] = fb_actions.remove, - ["e"] = fb_actions.change_cwd, - [""] = function(bufnr) - actions.select_vertical(bufnr) - end, - [""] = function(bufnr) - actions.toggle_all(bufnr) - end, - [""] = function(bufnr) - actions.move_selection_next(bufnr) - end, - [""] = function(bufnr) - actions.move_selection_previous(bufnr) - end, - }, - }, - }, - }, - }) + telescope.setup({ + defaults = { + mappings = { + n = { + ["q"] = actions.close, + }, + }, + }, + extensions = { + ["ui-select"] = { + require("telescope.themes").get_dropdown(), + }, + file_browser = { + theme = "dropdown", + hijack_netrw = false, + hidden = true, + mappings = { + ["i"] = { + [""] = function() + vim.cmd("normal vbd") + end, + [""] = function(bufnr) + actions.move_selection_next(bufnr) + end, + [""] = function(bufnr) + actions.move_selection_previous(bufnr) + end, + [""] = function(bufnr) + actions.select_vertical(bufnr) + end, + }, + ["n"] = { + ["a"] = fb_actions.create, + ["h"] = fb_actions.goto_parent_dir, + ["/"] = function() + vim.cmd("startinsert") + end, + ["d"] = fb_actions.remove, + ["e"] = fb_actions.change_cwd, + [""] = function(bufnr) + actions.select_vertical(bufnr) + end, + [""] = function(bufnr) + actions.toggle_all(bufnr) + end, + [""] = function(bufnr) + actions.move_selection_next(bufnr) + end, + [""] = function(bufnr) + actions.move_selection_previous(bufnr) + end, + }, + }, + }, + }, + }) - pcall(telescope.load_extension, "file_browser") - pcall(telescope.load_extension, "fzf") - pcall(telescope.load_extension, "ui-select") + pcall(telescope.load_extension, "file_browser") + pcall(telescope.load_extension, "fzf") + pcall(telescope.load_extension, "ui-select") - -- Builtin pickers - vim.keymap.set("n", "sf", function() - local fd_cmd = get_fd_command() - local config = { - hidden = true, - file_ignore_patterns = { - "node%_modules/.*", - "%.git/.*", - }, - } + -- Builtin pickers + vim.keymap.set("n", "sf", function() + local fd_cmd = get_fd_command() + local config = { + hidden = true, + file_ignore_patterns = { + "node%_modules/.*", + "%.git/.*", + }, + } - if fd_cmd then - config.find_command = { - fd_cmd, - "--type", - "f", - "--color", - "never", - "--hidden", - "--no-ignore", - } - end + if fd_cmd then + config.find_command = { + fd_cmd, + "--type", + "f", + "--color", + "never", + "--hidden", + "--no-ignore", + } + end - builtin.find_files(config) - end, { desc = "[S]earch [F]iles" }) - vim.keymap.set("n", "sh", builtin.help_tags, { desc = "[S]earch [H]elp Tags" }) - vim.keymap.set("n", "sb", builtin.buffers, { desc = "[S]earch [B]uffers" }) - vim.keymap.set("n", "sw", builtin.grep_string, { desc = "[S]earch current [W]ord" }) - vim.keymap.set("n", "sg", builtin.live_grep, { desc = "[S]earch by [G]rep" }) - vim.keymap.set("n", "sd", builtin.diagnostics, { desc = "[S]earch [D]iagnostics" }) - vim.keymap.set("n", "gr", builtin.lsp_references, { desc = "[G]o to [R]eferences", noremap = true }) - vim.keymap.set("n", "gd", builtin.lsp_definitions, { desc = "[G]o to [D]efinitions" }) - vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { desc = "[G]o to [D]eclaration" }) - vim.keymap.set("n", "rn", vim.lsp.buf.rename, { desc = "[R]e[N]ame" }) + builtin.find_files(config) + end, { desc = "[S]earch [F]iles" }) + vim.keymap.set("n", "sh", builtin.help_tags, { desc = "[S]earch [H]elp Tags" }) + vim.keymap.set("n", "sb", builtin.buffers, { desc = "[S]earch [B]uffers" }) + vim.keymap.set("n", "sw", builtin.grep_string, { desc = "[S]earch current [W]ord" }) + vim.keymap.set("n", "sg", builtin.live_grep, { desc = "[S]earch by [G]rep" }) + vim.keymap.set("n", "sd", builtin.diagnostics, { desc = "[S]earch [D]iagnostics" }) + vim.keymap.set("n", "gr", builtin.lsp_references, { desc = "[G]o to [R]eferences", noremap = true }) + vim.keymap.set("n", "gd", builtin.lsp_definitions, { desc = "[G]o to [D]efinitions" }) + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { desc = "[G]o to [D]eclaration" }) + vim.keymap.set("n", "rn", vim.lsp.buf.rename, { desc = "[R]e[N]ame" }) - -- Git pickers - vim.keymap.set("n", "gf", builtin.git_files, { desc = "Search [G]it [F]iles" }) - vim.keymap.set("n", "gs", builtin.git_status, { desc = "List [G]it [S]tatus" }) - vim.keymap.set("n", "gh", builtin.git_stash, { desc = "List [G]it [S]tash" }) - vim.keymap.set("n", "gbb", builtin.git_branches, { desc = "List [G]it [B]ranches" }) - vim.keymap.set("n", "gc", builtin.git_bcommits, { desc = "List Buffer [G]it [C]ommits" }) + -- Git pickers + vim.keymap.set("n", "gf", builtin.git_files, { desc = "Search [G]it [F]iles" }) + vim.keymap.set("n", "gs", builtin.git_status, { desc = "List [G]it [S]tatus" }) + vim.keymap.set("n", "gh", builtin.git_stash, { desc = "List [G]it [S]tash" }) + vim.keymap.set("n", "gbb", builtin.git_branches, { desc = "List [G]it [B]ranches" }) + vim.keymap.set("n", "gc", builtin.git_bcommits, { desc = "List Buffer [G]it [C]ommits" }) - -- File Browser Ext - vim.keymap.set("n", "fs", function() - telescope.extensions.file_browser.file_browser({ - path = "%:p:h", - cwd = telescope_buffer_dir(), - respect_gitignore = false, - hidden = true, - grouped = true, - previewer = false, - initial_mode = "normal", - layout_config = { height = 40 }, - }) - end, { desc = "Open [F]ile [S]ystem Menu" }) + -- File Browser Ext + vim.keymap.set("n", "fs", function() + telescope.extensions.file_browser.file_browser({ + path = "%:p:h", + cwd = telescope_buffer_dir(), + respect_gitignore = false, + hidden = true, + grouped = true, + previewer = false, + initial_mode = "normal", + layout_config = { height = 40 }, + }) + end, { desc = "Open [F]ile [S]ystem Menu" }) - vim.keymap.set("n", "/", function() - builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown({ - winblend = 10, - previewer = false, - })) - end, { desc = "[/] Fuzzily serach in current buffer" }) + vim.keymap.set("n", "/", function() + builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown({ + winblend = 10, + previewer = false, + })) + end, { desc = "[/] Fuzzily serach in current buffer" }) - -- live grep in open files only - vim.keymap.set("n", "s/", function() - builtin.live_grep({ - grep_open_files = true, - prompt_title = "Live Grep in Open Files", - }) - end, { desc = "[S]search [/] in Open Files" }) + -- live grep in open files only + vim.keymap.set("n", "s/", function() + builtin.live_grep({ + grep_open_files = true, + prompt_title = "Live Grep in Open Files", + }) + end, { desc = "[S]search [/] in Open Files" }) - -- shortcut for searching neovim config files - vim.keymap.set("n", "sn", function() - builtin.find_files({ cwd = vim.fn.stdpath("config") }) - end, { desc = "[S]earch [N]eovim files" }) - end, + -- shortcut for searching neovim config files + vim.keymap.set("n", "sn", function() + builtin.find_files({ cwd = vim.fn.stdpath("config") }) + end, { desc = "[S]earch [N]eovim files" }) + end, } diff --git a/nvim/lua/juancwu/plugins/todo-comments.lua b/nvim/lua/juancwu/plugins/todo-comments.lua index 2ca05d6..c88cb75 100644 --- a/nvim/lua/juancwu/plugins/todo-comments.lua +++ b/nvim/lua/juancwu/plugins/todo-comments.lua @@ -1,5 +1,5 @@ return { - "folke/todo-comments.nvim", - dependencies = { "nvim-lua/plenary.nvim" }, - opts = {}, + "folke/todo-comments.nvim", + dependencies = { "nvim-lua/plenary.nvim" }, + opts = {}, } diff --git a/nvim/lua/juancwu/plugins/toggleterm.lua b/nvim/lua/juancwu/plugins/toggleterm.lua index 8d81164..e163b22 100644 --- a/nvim/lua/juancwu/plugins/toggleterm.lua +++ b/nvim/lua/juancwu/plugins/toggleterm.lua @@ -1,47 +1,51 @@ return { - "akinsho/toggleterm.nvim", - version = "*", - keys = { - { "lg", function() - local Terminal = require('toggleterm.terminal').Terminal - local lazygit = Terminal:new({ - cmd = "lazygit", - direction = "float", - float_opts = { - border = "double", - }, - on_open = function(term) - vim.cmd("startinsert!") - end, - on_close = function(term) - vim.cmd("startinsert!") - end, - }) - lazygit:toggle() - end, desc = "Open lazygit in a floating window" }, + "akinsho/toggleterm.nvim", + version = "*", + keys = { + { + "lg", + function() + local Terminal = require("toggleterm.terminal").Terminal + local lazygit = Terminal:new({ + cmd = "lazygit", + direction = "float", + float_opts = { + border = "double", + }, + on_open = function(term) + vim.cmd("startinsert!") + end, + on_close = function(term) + vim.cmd("startinsert!") + end, + }) + lazygit:toggle() + end, + desc = "Open lazygit in a floating window", }, - opts = { - size = 20, - open_mapping = [[]], - hide_numbers = true, - shade_filetypes = {}, - shade_terminals = true, - shading_factor = 2, - start_in_insert = true, - insert_mappings = true, - terminal_mappings = true, - persist_size = true, - persist_mode = true, - direction = "float", - close_on_exit = true, - shell = vim.o.shell, - float_opts = { - border = "curved", - winblend = 0, - highlights = { - border = "Normal", - background = "Normal", - }, - }, + }, + opts = { + size = 20, + open_mapping = [[]], + hide_numbers = true, + shade_filetypes = {}, + shade_terminals = true, + shading_factor = 2, + start_in_insert = true, + insert_mappings = true, + terminal_mappings = true, + persist_size = true, + persist_mode = true, + direction = "float", + close_on_exit = true, + shell = vim.o.shell, + float_opts = { + border = "curved", + winblend = 0, + highlights = { + border = "Normal", + background = "Normal", + }, }, -} \ No newline at end of file + }, +} diff --git a/nvim/lua/juancwu/plugins/treesitter.lua b/nvim/lua/juancwu/plugins/treesitter.lua index e23d915..516c653 100644 --- a/nvim/lua/juancwu/plugins/treesitter.lua +++ b/nvim/lua/juancwu/plugins/treesitter.lua @@ -1,100 +1,100 @@ return { - "nvim-treesitter/nvim-treesitter", - build = ":TSUpdate", - event = { - "BufReadPost", - "BufNewFile", - }, - branch = "master", - dependencies = { - "nvim-treesitter/nvim-treesitter-textobjects", - }, - config = function() - local treesitter = require("nvim-treesitter.configs") + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + event = { + "BufReadPost", + "BufNewFile", + }, + branch = "master", + dependencies = { + "nvim-treesitter/nvim-treesitter-textobjects", + }, + config = function() + local treesitter = require("nvim-treesitter.configs") - treesitter.setup({ - -- A list of parser names, or "all" - ensure_installed = { - "vimdoc", - "javascript", - "typescript", - "c", - "lua", - "rust", - "go", - "gosum", - "gomod", - "php", - "blade", - }, - -- Install parsers synchronously (only applied to `ensure_installed`) - sync_install = false, - -- Automatically install missing parsers when entering buffer - auto_install = true, - indent = { - enable = true, - }, - highlight = { - enable = true, - additional_vim_regex_highlighting = true, - }, - incremental_selection = { - enable = true, - keymaps = { - init_selection = "c", - node_incremental = "", - scope_incremental = "", - node_decremental = "", - }, - }, - textobjects = { - select = { - enable = true, - lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim - keymaps = { - -- You can use the capture groups defined in textobjects.scm - ["aa"] = "@parameter.outer", - ["ia"] = "@parameter.inner", - ["af"] = "@function.outer", - ["if"] = "@function.inner", - ["ac"] = "@class.outer", - ["ic"] = "@class.inner", - }, - }, - move = { - enable = true, - set_jumps = true, -- whether to set jumps in the jumplist - goto_next_start = { - ["]m"] = "@function.outer", - ["]]"] = "@class.outer", - }, - goto_next_end = { - ["]M"] = "@function.outer", - ["]["] = "@class.outer", - }, - goto_previous_start = { - ["[m"] = "@function.outer", - ["[["] = "@class.outer", - }, - goto_previous_end = { - ["[M"] = "@function.outer", - ["[]"] = "@class.outer", - }, - }, - swap = { - enable = true, - swap_next = { - ["]"] = "@parameter.inner", - }, - swap_previous = { - ["["] = "@parameter.inner", - }, - }, - }, - autotag = { - enable = false, - enable_close_on_slash = false, - }, - }) - end, + treesitter.setup({ + -- A list of parser names, or "all" + ensure_installed = { + "vimdoc", + "javascript", + "typescript", + "c", + "lua", + "rust", + "go", + "gosum", + "gomod", + "php", + "blade", + }, + -- Install parsers synchronously (only applied to `ensure_installed`) + sync_install = false, + -- Automatically install missing parsers when entering buffer + auto_install = true, + indent = { + enable = true, + }, + highlight = { + enable = true, + additional_vim_regex_highlighting = true, + }, + incremental_selection = { + enable = true, + keymaps = { + init_selection = "c", + node_incremental = "", + scope_incremental = "", + node_decremental = "", + }, + }, + textobjects = { + select = { + enable = true, + lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim + keymaps = { + -- You can use the capture groups defined in textobjects.scm + ["aa"] = "@parameter.outer", + ["ia"] = "@parameter.inner", + ["af"] = "@function.outer", + ["if"] = "@function.inner", + ["ac"] = "@class.outer", + ["ic"] = "@class.inner", + }, + }, + move = { + enable = true, + set_jumps = true, -- whether to set jumps in the jumplist + goto_next_start = { + ["]m"] = "@function.outer", + ["]]"] = "@class.outer", + }, + goto_next_end = { + ["]M"] = "@function.outer", + ["]["] = "@class.outer", + }, + goto_previous_start = { + ["[m"] = "@function.outer", + ["[["] = "@class.outer", + }, + goto_previous_end = { + ["[M"] = "@function.outer", + ["[]"] = "@class.outer", + }, + }, + swap = { + enable = true, + swap_next = { + ["]"] = "@parameter.inner", + }, + swap_previous = { + ["["] = "@parameter.inner", + }, + }, + }, + autotag = { + enable = false, + enable_close_on_slash = false, + }, + }) + end, } diff --git a/nvim/lua/juancwu/plugins/undotree.lua b/nvim/lua/juancwu/plugins/undotree.lua index fe1b251..31a2fe6 100644 --- a/nvim/lua/juancwu/plugins/undotree.lua +++ b/nvim/lua/juancwu/plugins/undotree.lua @@ -1,22 +1,22 @@ return { - "mbbill/undotree", - keys = { - { "u", "UndotreeToggle", desc = "Toggle Undotree" }, - }, - config = function() - local has_persistent_undo = vim.api.nvim_call_function("has", { "persistent_undo" }) + "mbbill/undotree", + keys = { + { "u", "UndotreeToggle", desc = "Toggle Undotree" }, + }, + config = function() + local has_persistent_undo = vim.api.nvim_call_function("has", { "persistent_undo" }) - if has_persistent_undo then - local target_path = vim.api.nvim_call_function("expand", { "~/.undodir" }) + if has_persistent_undo then + local target_path = vim.api.nvim_call_function("expand", { "~/.undodir" }) - local is_directory = vim.api.nvim_call_function("isdirectory", { target_path }) + local is_directory = vim.api.nvim_call_function("isdirectory", { target_path }) - if not is_directory then - vim.api.nvim_call_function("mkdir", { target_path, "p", 0700 }) - end + if not is_directory then + vim.api.nvim_call_function("mkdir", { target_path, "p", 0700 }) + end - vim.opt.undodir = target_path - vim.opt.undofile = true - end + vim.opt.undodir = target_path + vim.opt.undofile = true end + end, } diff --git a/nvim/lua/juancwu/plugins/which-key.lua b/nvim/lua/juancwu/plugins/which-key.lua index eaee4da..ed7fb7a 100644 --- a/nvim/lua/juancwu/plugins/which-key.lua +++ b/nvim/lua/juancwu/plugins/which-key.lua @@ -1,49 +1,49 @@ return { - { - "folke/which-key.nvim", - event = "VeryLazy", - config = function() - vim.opt.timeout = true - vim.opt.timeoutlen = 300 + { + "folke/which-key.nvim", + event = "VeryLazy", + config = function() + vim.opt.timeout = true + vim.opt.timeoutlen = 300 - local wk = require("which-key") + local wk = require("which-key") - wk.setup({ - delay = 0, - icons = { - mappings = vim.g.have_nerd_font, - keys = vim.g.have_nerd_font and {} or { - Up = ' ', - Down = ' ', - Left = ' ', - Right = ' ', - C = ' ', - M = ' ', - D = ' ', - S = ' ', - CR = ' ', - Esc = ' ', - ScrollWheelDown = ' ', - ScrollWheelUp = ' ', - NL = ' ', - BS = ' ', - Space = ' ', - Tab = ' ', - F1 = '', - F2 = '', - F3 = '', - F4 = '', - F5 = '', - F6 = '', - F7 = '', - F8 = '', - F9 = '', - F10 = '', - F11 = '', - F12 = '', - } - } - }) - end, - } + wk.setup({ + delay = 0, + icons = { + mappings = vim.g.have_nerd_font, + keys = vim.g.have_nerd_font and {} or { + Up = " ", + Down = " ", + Left = " ", + Right = " ", + C = " ", + M = " ", + D = " ", + S = " ", + CR = " ", + Esc = " ", + ScrollWheelDown = " ", + ScrollWheelUp = " ", + NL = " ", + BS = " ", + Space = " ", + Tab = " ", + F1 = "", + F2 = "", + F3 = "", + F4 = "", + F5 = "", + F6 = "", + F7 = "", + F8 = "", + F9 = "", + F10 = "", + F11 = "", + F12 = "", + }, + }, + }) + end, + }, } diff --git a/nvim/lua/juancwu/utils/colors.lua b/nvim/lua/juancwu/utils/colors.lua index b4cbe91..de0d5d4 100644 --- a/nvim/lua/juancwu/utils/colors.lua +++ b/nvim/lua/juancwu/utils/colors.lua @@ -5,33 +5,33 @@ local dark = "catppuccin-mocha" ---@return boolean function M.is_daytime() - return false + return false end ---@return boolean function M.legacy_is_daytime() - return false + return false end ---@return string function M.get_timebased_colorscheme() - if M.is_daytime() then - vim.g.is_light_colors = true - return light - else - vim.g.is_light_colors = false - return dark - end + if M.is_daytime() then + vim.g.is_light_colors = true + return light + else + vim.g.is_light_colors = false + return dark + end end function M.toggle_colors() - if vim.g.is_light_colors then - vim.g.is_light_colors = false - vim.cmd.colorscheme(dark) - else - vim.g.is_light_colors = true - vim.cmd.colorscheme(light) - end + if vim.g.is_light_colors then + vim.g.is_light_colors = false + vim.cmd.colorscheme(dark) + else + vim.g.is_light_colors = true + vim.cmd.colorscheme(light) + end end return M diff --git a/nvim/lua/juancwu/utils/init.lua b/nvim/lua/juancwu/utils/init.lua index 8b5d893..d89c668 100644 --- a/nvim/lua/juancwu/utils/init.lua +++ b/nvim/lua/juancwu/utils/init.lua @@ -2,10 +2,10 @@ ---@field os juancwu.utils.os ---@field colors juancwu.utils.colors local M = setmetatable({}, { - __index = function(t, k) - t[k] = require("juancwu.utils." .. k) - return t[k] - end, + __index = function(t, k) + t[k] = require("juancwu.utils." .. k) + return t[k] + end, }) return M diff --git a/nvim/lua/juancwu/utils/os.lua b/nvim/lua/juancwu/utils/os.lua index f1cbbc9..48306d5 100644 --- a/nvim/lua/juancwu/utils/os.lua +++ b/nvim/lua/juancwu/utils/os.lua @@ -3,35 +3,35 @@ local M = {} ---@return boolean function M.is_linux() - return vim.loop.os_uname().sysname:find("Linux") ~= nil + return vim.loop.os_uname().sysname:find("Linux") ~= nil end ---@return boolean function M.is_mac() - return vim.loop.os_uname().sysname:find("Darwin") ~= nil + return vim.loop.os_uname().sysname:find("Darwin") ~= nil end ---@return boolean function M.is_win() - return vim.loop.os_uname().sysname:find("Windows") ~= nil + return vim.loop.os_uname().sysname:find("Windows") ~= nil end ---@return boolean function M.is_wsl() - return vim.fn.has("wsl") == 1 + return vim.fn.has("wsl") == 1 end ---@param cmd string ---@return boolean function M.cmd_exists(cmd) - local handle = io.popen("command -v " .. cmd) - if handle ~= nil then - local result = handle:read("*a") - handle:close() - return #result > 0 - else - return false - end + local handle = io.popen("command -v " .. cmd) + if handle ~= nil then + local result = handle:read("*a") + handle:close() + return #result > 0 + else + return false + end end return M