From bbaf39e2431d07b3a000a4be6810d5a2bd2b0e71 Mon Sep 17 00:00:00 2001 From: Ariel Date: Tue, 5 Mar 2024 11:44:37 +0800 Subject: [PATCH] Update init.lua --- init.lua | 137 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 124 insertions(+), 13 deletions(-) diff --git a/init.lua b/init.lua index 39eb5ee..acb475e 100644 --- a/init.lua +++ b/init.lua @@ -13,6 +13,7 @@ vim.cmd("set clipboard+=unnamedplus") vim.cmd("set updatetime=700") vim.cmd("set whichwrap+=<,>,[,]") vim.cmd("set relativenumber") +vim.cmd("set iskeyword-=_") vim.diagnostic.config({ update_in_insert = true, float = { border = "single" }, @@ -184,7 +185,71 @@ local plugins = { } }, { 'nvim-treesitter/nvim-treesitter-context' }, - { 'mg979/vim-visual-multi' } + { 'mg979/vim-visual-multi' }, + { 'sindrets/diffview.nvim' }, + { 'sitiom/nvim-numbertoggle' }, + { 'mawkler/modicator.nvim' }, + { + "ecthelionvi/NeoColumn.nvim", + opts = {} + }, + { + "utilyre/barbecue.nvim", + name = "barbecue", + version = "*", + dependencies = { + "SmiteshP/nvim-navic", + "nvim-tree/nvim-web-devicons", -- optional dependency + }, + opts = { + -- configurations go here + }, + }, + {'akinsho/git-conflict.nvim', version = "*", config = true }, + { + 'mrjones2014/legendary.nvim', + -- since legendary.nvim handles all your keymaps/commands, + -- its recommended to load legendary.nvim before other plugins + priority = 10000, + lazy = false, + -- sqlite is only needed if you want to use frecency sorting + -- dependencies = { 'kkharji/sqlite.lua' } + }, + { + 'stevearc/dressing.nvim', + opts = {}, + }, + { + "folke/twilight.nvim", + opts = { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + } + }, + { + "luukvbaal/statuscol.nvim", config = function() + -- local builtin = require("statuscol.builtin") + require("statuscol").setup({ + -- configuration goes here, for example: + -- relculright = true, + -- segments = { + -- { text = { builtin.foldfunc }, click = "v:lua.ScFa" }, + -- { + -- sign = { name = { "Diagnostic" }, maxwidth = 2, auto = true }, + -- click = "v:lua.ScSa" + -- }, + -- { text = { builtin.lnumfunc }, click = "v:lua.ScLa", }, + -- { + -- sign = { name = { ".*" }, maxwidth = 2, colwidth = 1, auto = true, wrap = true }, + -- click = "v:lua.ScSa" + -- }, + -- } + }) + end, + }, + { "lukas-reineke/indent-blankline.nvim", main = "ibl", opts = {} }, + { 'itchyny/vim-cursorword' } } local opts = { } @@ -239,7 +304,7 @@ require("monokai-pro").setup({ vim.cmd([[colorscheme monokai-pro]]) local builtin = require("telescope.builtin") -vim.keymap.set('n', '', builtin.find_files, {}) +vim.keymap.set('n', 'p', builtin.find_files, {}) vim.keymap.set('n', 'g', builtin.live_grep, {}) local config = require("nvim-treesitter.configs") @@ -360,27 +425,28 @@ vim.api.nvim_create_autocmd("LspAttach", { require("lsp_signature").setup({}) -vim.keymap.set('n', '', ':u') -vim.keymap.set('v', '', ':u') -vim.keymap.set('i', '', ':ui') +vim.keymap.set('n', '', 'u') +vim.keymap.set('v', '', 'u') +vim.keymap.set('i', '', 'ui') vim.keymap.set('i', '', 'yyi') vim.keymap.set('i', '', 'PA') vim.keymap.set('i', '', 'ddi') vim.keymap.set('i', '', '^i') vim.keymap.set('i', '', 'ggVG') vim.keymap.set('n', '', 'ggVG') -vim.keymap.set('n', '`', ':split:terminali') -vim.keymap.set('n', 'l', ':vsplit std.in') -vim.keymap.set('n', 'n', ':tabnew') +vim.keymap.set('n', '`', 'splitterminali') +vim.keymap.set('n', 'l', 'vsplit std.in') +vim.keymap.set('n', 'n', 'tabnew') vim.keymap.set('t', '', '', {noremap=true}) -vim.keymap.set('n', 's', ':SymbolsOutline') +vim.keymap.set('n', 's', 'SymbolsOutline') vim.keymap.set("v", "", ">gv") vim.keymap.set("v", "", "t', ':TodoTelescope') +vim.keymap.set('n', 't', 'TodoTelescope') vim.keymap.set('v', "", "dpV`]") vim.keymap.set('v', "", "dkPV`]") -vim.keymap.set('n', '5', ':+5') -vim.keymap.set('n', '4', ':-5') +vim.keymap.set('n', '5', '+5') +vim.keymap.set('n', '4', '-5') +vim.keymap.set('n', '', 'Legendary', {noremap=true}) require("nvim-treesitter.configs").setup { incremental_selection = { enable = true, @@ -398,7 +464,7 @@ require("overseer").setup({ vim.api.nvim_create_autocmd("FileType", { pattern = "cpp", callback = function() - vim.api.nvim_buf_set_keymap(0, 'n', "b", ":split:te g++ -std=c++17 -Wall -Ofast -g -fsanitize=address % && ./a.out < std.ini", { + vim.api.nvim_buf_set_keymap(0, 'n', "b", ":split:te g++ -std=c++17 -Wall -Ofast -g -fsanitize=address -fsanitize=undefined % && ./a.out < std.ini", { silent = true, noremap = true }) @@ -494,3 +560,48 @@ require("todo-comments").setup() lspconfig.volar.setup{ filetypes = {'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue', 'json'} } + +local map = vim.api.nvim_set_keymap +local opts = { noremap = true, silent = true } + +-- Move to previous/next +map('n', '', 'BufferPrevious', opts) +map('n', '', 'BufferNext', opts) +-- Re-order to previous/next +map('n', '', 'BufferMovePrevious', opts) +map('n', '>', 'BufferMoveNext', opts) +map('n', '', 'BufferPin', opts); +map('n', '', 'BufferClose', opts); + +require('diffview').setup() + +require('modicator').setup() + +require("barbecue.ui").toggle(true) + +local highlight = { + "RainbowRed", + "RainbowYellow", + "RainbowBlue", + "RainbowOrange", + "RainbowGreen", + "RainbowViolet", + "RainbowCyan", +} +local hooks = require "ibl.hooks" +-- create the highlight groups in the highlight setup hook, so they are reset +-- every time the colorscheme changes +hooks.register(hooks.type.HIGHLIGHT_SETUP, function() + vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" }) + vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" }) + vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" }) + vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" }) + vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" }) + vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" }) + vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" }) +end) + +require("ibl").setup { + indent = { highlight = highlight, char = "▏" }, + scope = { enabled = true }, +}