From 35a812239682f67f9afbe6b959c313516c3a6fec Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Mon, 26 Aug 2024 10:11:28 +0545 Subject: [PATCH] wip --- README.md | 16 ++- dotfyle.json | 2 +- lua/configs/lsp.lua | 200 ++++++++++++++++++++++--------------- lua/configs/mason.lua | 4 +- lua/core/function.lua | 126 +++++++++++++++++++++++ lua/lock.json | 3 +- lua/mason-lock.json | 28 ++++++ lua/plugins/extra.lua | 6 +- lua/plugins/formater.lua | 25 ++++- lua/plugins/lint.lua | 33 ++++-- lua/plugins/lsp.lua | 19 +++- lua/plugins/treesitter.lua | 12 +-- mason-lock.json | 35 ------- 13 files changed, 363 insertions(+), 146 deletions(-) create mode 100644 lua/core/function.lua create mode 100644 lua/mason-lock.json delete mode 100644 mason-lock.json diff --git a/README.md b/README.md index 909ae07..697bdd0 100644 --- a/README.md +++ b/README.md @@ -26,9 +26,9 @@

- Personalized Dev Env ❤️👨‍💻 + Welcome to my personalized Neovim setup 👨‍💻
- Handcrafted Neovim setup for the ultimate CLI dev experience. + Optimized for a smooth and efficient coding experience.

Documentation @@ -40,6 +40,13 @@
+## Highlights: + +- **Modular Structure**: Organized Lua scripts for readability and easy customization. +- **Language Support**: Automated setup for various languages using Mason.nvim. +- **Keybindings**: Streamlined shortcuts for productivity, detailed in `lua/core/keymaps.lua`. +- **Plugins**: Handpicked plugins managed via Lazy.nvim for enhanced functionality. + ## System dependencies Important system dependencies: @@ -52,6 +59,7 @@ Important system dependencies: - **Tools for finding stuff**: - [ripgrep](https://github.com/BurntSushi/ripgrep#installation) + - [zig](https://ziglang.org/) ## Installation @@ -75,6 +83,10 @@ Run neovim to complete the setup nvim ``` +### Customization: + +Feel free to modify and adapt my configuration to your own needs! + ### 🧰 Tools Used - [dots](https://github.com/S4NKALP/hyprland) — Dev Environment diff --git a/dotfyle.json b/dotfyle.json index 47c1b8b..51326f1 100644 --- a/dotfyle.json +++ b/dotfyle.json @@ -1 +1 @@ -{"distribution": "custom", "masonTools": ["actionlint", "bash-language-server", "biome", "black", "clang-format", "clangd", "emmet-ls", "eslint_d", "google-java-format", "graphql-lsp", "hadolint", "isort", "jdtls", "lua-language-server", "markdownlint", "prettier", "prettierd", "pylint", "pylsp", "pyright", "pyright-langserver", "selene", "shfmt", "stylua", "tailwindcss-language-server", "trivy", "typescript-language-server", "typos-lsp", "vim-language-server", "vint", "vscode-css-language-server", "vscode-eslint-language-server", "vscode-html-language-server", "vscode-json-language-server"], "plugins": ["2kabhishek/nerdy.nvim", "2kabhishek/tdo.nvim", "2kabhishek/termim.nvim", "CRAG666/code_runner.nvim", "Exafunction/codeium.vim", "HiPhish/rainbow-delimiters.nvim", "L3MON4D3/LuaSnip", "LudoPinelli/comment-box.nvim", "LunarVim/bigfile.nvim", "MunifTanjim/nui.nvim", "NStefan002/screenkey.nvim", "ThePrimeagen/refactoring.nvim", "WhoIsSethDaniel/mason-tool-installer.nvim", "akinsho/toggleterm.nvim", "altermo/ultimate-autopair.nvim", "antosha417/nvim-lsp-file-operations", "creativenull/dotfyle-metadata.nvim", "debugloop/telescope-undo.nvim", "echasnovski/mini.files", "echasnovski/mini.icons", "echasnovski/mini.nvim", "folke/flash.nvim", "folke/lazy.nvim", "folke/noice.nvim", "folke/persistence.nvim", "folke/trouble.nvim", "folke/which-key.nvim", "folke/zen-mode.nvim", "gbprod/yanky.nvim", "hrsh7th/cmp-buffer", "hrsh7th/cmp-cmdline", "hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-nvim-lsp-signature-help", "hrsh7th/cmp-nvim-lua", "hrsh7th/cmp-path", "hrsh7th/nvim-cmp", "iamcco/markdown-preview.nvim", "kristijanhusak/vim-dadbod-completion", "kristijanhusak/vim-dadbod-ui", "lukas-reineke/indent-blankline.nvim", "m-demare/hlargs.nvim", "m4xshen/hardtime.nvim", "max397574/better-escape.nvim", "mfussenegger/nvim-dap", "mfussenegger/nvim-lint", "mg979/vim-visual-multi", "mstuttgart/odoo-snippets", "mvllow/modes.nvim", "nacro90/numb.nvim", "navarasu/onedark.nvim", "neovim/nvim-lspconfig", "numToStr/Navigator.nvim", "nvim-lua/plenary.nvim", "nvim-lualine/lualine.nvim", "nvim-neo-tree/neo-tree.nvim", "nvim-neotest/neotest", "nvim-neotest/neotest-jest", "nvim-neotest/neotest-python", "nvim-neotest/nvim-nio", "nvim-pack/nvim-spectre", "nvim-telescope/telescope-file-browser.nvim", "nvim-telescope/telescope-fzf-native.nvim", "nvim-telescope/telescope-symbols.nvim", "nvim-telescope/telescope-ui-select.nvim", "nvim-telescope/telescope.nvim", "nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter-context", "nvim-treesitter/nvim-treesitter-textobjects", "nvimdev/dashboard-nvim", "nvimdev/lspsaga.nvim", "olimorris/neotest-rspec", "onsails/lspkind.nvim", "rafamadriz/friendly-snippets", "rcarriga/nvim-dap-ui", "rcarriga/nvim-notify", "saadparwaiz1/cmp_luasnip", "smjonas/inc-rename.nvim", "stevearc/conform.nvim", "stevearc/dressing.nvim", "szw/vim-maximizer", "tpope/vim-dadbod", "wakatime/vim-wakatime", "williamboman/mason-lspconfig.nvim", "williamboman/mason.nvim", "willothy/flatten.nvim", "windwp/nvim-ts-autotag", "zapling/mason-lock.nvim"], "keymaps": [{"desc": "Next Buffer", "noremap": true, "lhs": "", "mode": "n", "rhs": "bnext"}, {"desc": "Escape and clear hlsearch", "noremap": true, "lhs": "", "mode": "n", "rhs": "noh"}, {"desc": "Lspsaga | Code Outline", "noremap": true, "lhs": "lo", "mode": "n", "rhs": "Lspsaga outline"}, {"desc": "Copy Git URL", "noremap": true, "lhs": "yg", "mode": "n", "rhs": "lua require\"gitlinker\".get_buf_range_url()"}, {"desc": "File Name", "noremap": true, "lhs": "yf", "mode": "n", "rhs": "CopyFileName"}, {"desc": "Copy Whole File", "noremap": true, "lhs": "ya", "mode": "n", "rhs": "%y+"}, {"desc": "Absolute Path", "noremap": true, "lhs": "yP", "mode": "n", "rhs": "CopyAbsolutePath"}, {"desc": "Relative Path", "noremap": true, "lhs": "yp", "mode": "n", "rhs": "CopyRelativePath"}, {"desc": "Float File Explorer", "noremap": true, "lhs": "ee", "mode": "n", "rhs": ":Neotree toggle float"}, {"desc": " Left File Explorer", "noremap": true, "lhs": "", "mode": "n", "rhs": ":Neotree toggle left"}, {"desc": "Restore Last Session", "noremap": true, "lhs": "ml", "mode": "n", "rhs": ""}, {"desc": "Restore Session", "noremap": true, "lhs": "ms", "mode": "n", "rhs": ""}, {"desc": "Don't Save Current Session", "noremap": true, "lhs": "md", "mode": "n", "rhs": ""}, {"desc": "Toggle IA (Codeium)", "noremap": true, "lhs": "cI", "mode": "n", "rhs": "CodeiumToggle"}, {"desc": "Command History", "noremap": true, "lhs": "kh", "mode": "n", "rhs": "Telescope command_history"}, {"desc": "Commands", "noremap": true, "lhs": "kc", "mode": "n", "rhs": "Telescope commands"}, {"desc": "Keymaps", "noremap": true, "lhs": "kk", "mode": "n", "rhs": "Telescope keymaps"}, {"desc": "Grep String", "noremap": true, "lhs": "fG", "mode": "n", "rhs": "Telescope grep_string"}, {"desc": "Find Highlight Groups", "noremap": true, "lhs": "fH", "mode": "n", "rhs": "Telescope highlights"}, {"desc": "Marks", "noremap": true, "lhs": "fm", "mode": "n", "rhs": "Telescope marks"}, {"desc": "Old Recent Files", "noremap": true, "lhs": "fo", "mode": "n", "rhs": "Telescope oldfiles"}, {"desc": "Find Help", "noremap": true, "lhs": "fh", "mode": "n", "rhs": "Telescope help_tags"}, {"desc": "Buffers", "noremap": true, "lhs": "fb", "mode": "n", "rhs": "Telescope buffers"}, {"desc": "Live Grep", "noremap": true, "lhs": "fg", "mode": "n", "rhs": "Telescope live_grep"}, {"desc": "Fuzzy Find in File", "noremap": true, "lhs": "fs", "mode": "n", "rhs": "Telescope current_buffer_fuzzy_find"}, {"desc": "Quickfix", "noremap": true, "lhs": "fq", "mode": "n", "rhs": "Telescope quickfix"}, {"desc": "Undo History", "noremap": true, "lhs": "fu", "mode": "n", "rhs": "Telescope undo"}, {"desc": "Notifications", "noremap": true, "lhs": "cn", "mode": "n", "rhs": "Telescope notify"}, {"desc": "Reload Module", "noremap": true, "lhs": "cr", "mode": "n", "rhs": "Telescope reloader"}, {"desc": "File Browser", "noremap": true, "lhs": "ef", "mode": "n", "rhs": "Telescope file_browser"}, {"desc": "Diagnostics", "noremap": true, "lhs": "fd", "mode": "n", "rhs": "Telescope diagnostics"}, {"desc": "Search History", "noremap": true, "lhs": "ks", "mode": "n", "rhs": "Telescope search_history"}, {"desc": "Find Files (CWD)", "noremap": true, "lhs": "ff", "mode": "n", "rhs": "Telescope find_files"}, {"desc": "Current Word", "noremap": true, "lhs": "jw", "mode": "v", "rhs": "lua require(\"flash\").jump({ pattern = vim.fn.expand(\"cword>\")})"}, {"desc": "Current Word", "noremap": true, "lhs": "jw", "mode": "n", "rhs": "lua require(\"flash\").jump({ pattern = vim.fn.expand(\"cword>\")})"}, {"desc": "Remote Treesitter", "noremap": true, "lhs": "jt", "mode": "v", "rhs": "lua require('flash').treesitter_search()"}, {"desc": "Remote Treesitter", "noremap": true, "lhs": "jt", "mode": "n", "rhs": "lua require('flash').treesitter_search()"}, {"desc": "Search", "noremap": true, "lhs": "js", "mode": "v", "rhs": "lua require('flash').jump()"}, {"desc": "Search", "noremap": true, "lhs": "js", "mode": "n", "rhs": "lua require('flash').jump()"}, {"desc": "Previous Jump", "noremap": true, "lhs": "jp", "mode": "v", "rhs": "lua require('flash').jump({continue = true})"}, {"desc": "Previous Jump", "noremap": true, "lhs": "jp", "mode": "n", "rhs": "lua require('flash').jump({continue = true})"}, {"desc": "Search Forward", "noremap": true, "lhs": "jn", "mode": "v", "rhs": "lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})"}, {"desc": "Search Forward", "noremap": true, "lhs": "jn", "mode": "n", "rhs": "lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})"}, {"desc": "Forward", "noremap": true, "lhs": "jl", "mode": "n", "rhs": ""}, {"desc": "Treesitter", "noremap": true, "lhs": "jk", "mode": "v", "rhs": "lua require('flash').treesitter()"}, {"desc": "Treesitter", "noremap": true, "lhs": "jk", "mode": "n", "rhs": "lua require('flash').treesitter()"}, {"desc": "Remote", "noremap": true, "lhs": "jj", "mode": "v", "rhs": "lua require('flash').remote()"}, {"desc": "Remote", "noremap": true, "lhs": "jj", "mode": "n", "rhs": "lua require('flash').remote()"}, {"desc": "Backward", "noremap": true, "lhs": "jh", "mode": "n", "rhs": ""}, {"desc": "Jumplist", "noremap": true, "lhs": "jf", "mode": "n", "rhs": "Telescope jumplist"}, {"desc": "Diagnostics", "noremap": true, "lhs": "jd", "mode": "v", "rhs": "FlashDiagnostics"}, {"desc": "Diagnostics", "noremap": true, "lhs": "jd", "mode": "n", "rhs": "FlashDiagnostics"}, {"desc": "Word", "noremap": true, "lhs": "jc", "mode": "n", "rhs": "*"}, {"desc": "Search Backward", "noremap": true, "lhs": "jN", "mode": "v", "rhs": "lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})"}, {"desc": "Search Backward", "noremap": true, "lhs": "jN", "mode": "n", "rhs": "lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})"}, {"desc": "Dismiss All Notifications", "noremap": true, "lhs": "mn", "mode": "n", "rhs": ""}, {"desc": "Reload Configs", "noremap": true, "lhs": "cR", "mode": "n", "rhs": "ReloadConfig"}, {"desc": "Quit", "noremap": true, "lhs": "qq", "mode": "n", "rhs": "q"}, {"desc": "Close Others", "noremap": true, "lhs": "qo", "mode": "n", "rhs": ":%bdelete|b#|bdelete#"}, {"desc": "Force Quit", "noremap": true, "lhs": "qf", "mode": "n", "rhs": "qall!"}, {"desc": "Delete Buffer", "noremap": true, "lhs": "qd", "mode": "n", "rhs": "bdelete"}, {"desc": "Close Buffer", "noremap": true, "lhs": "qc", "mode": "n", "rhs": "bw"}, {"desc": "Quit All", "noremap": true, "lhs": "qa", "mode": "n", "rhs": "qall"}, {"desc": " Save and Quit", "noremap": true, "lhs": "x", "mode": "n", "rhs": "x"}, {"desc": "Write and Quit", "noremap": true, "lhs": "ww", "mode": "n", "rhs": "w"}, {"desc": "Suggestions", "noremap": true, "lhs": "ws", "mode": "n", "rhs": "Telescope spell_suggest"}, {"desc": "Write and Quit", "noremap": true, "lhs": "wq", "mode": "n", "rhs": "wq"}, {"desc": "Prev Misspell", "noremap": true, "lhs": "wk", "mode": "n", "rhs": "[s"}, {"desc": "Next Misspell", "noremap": true, "lhs": "wj", "mode": "n", "rhs": "]s"}, {"desc": "Force Write", "noremap": true, "lhs": "wf", "mode": "n", "rhs": "lua require'utils'.sudo_write()"}, {"desc": "Spellcheck", "noremap": true, "lhs": "wc", "mode": "n", "rhs": "set spell!"}, {"desc": "Quote", "noremap": true, "lhs": "vq", "mode": "n", "rhs": "viq"}, {"desc": "Paragraph", "noremap": true, "lhs": "vp", "mode": "n", "rhs": "vip"}, {"desc": "Bracket", "noremap": true, "lhs": "vb", "mode": "n", "rhs": "vib"}, {"desc": "Around Quote", "noremap": true, "lhs": "vQ", "mode": "n", "rhs": "vaq"}, {"desc": "Around Para", "noremap": true, "lhs": "vP", "mode": "n", "rhs": "vap"}, {"desc": "Around Bracket", "noremap": true, "lhs": "vB", "mode": "n", "rhs": "vab"}, {"desc": "Vertical Split", "noremap": true, "lhs": "ss", "mode": "n", "rhs": "vsplit"}, {"desc": "Close Split", "noremap": true, "lhs": "sq", "mode": "n", "rhs": "c"}, {"desc": "Previous Pane", "noremap": true, "lhs": "sp", "mode": "n", "rhs": "NavigatorPrevious"}, {"desc": "Move Right", "noremap": true, "lhs": "sl", "mode": "n", "rhs": "l"}, {"desc": "Move Up", "noremap": true, "lhs": "sk", "mode": "n", "rhs": "k"}, {"desc": "Move Down", "noremap": true, "lhs": "sj", "mode": "n", "rhs": "j"}, {"desc": "Move Left", "noremap": true, "lhs": "sh", "mode": "n", "rhs": "h"}, {"desc": "First Tab", "noremap": true, "lhs": "sf", "mode": "n", "rhs": "tabfirst"}, {"desc": "Close Tab", "noremap": true, "lhs": "sc", "mode": "n", "rhs": "tabclose"}, {"desc": "Horizontal Split", "noremap": true, "lhs": "sa", "mode": "n", "rhs": "split"}, {"desc": "Previous Window", "noremap": true, "lhs": "s`", "mode": "n", "rhs": "p"}, {"desc": "Decrease window height", "noremap": true, "lhs": "s_", "mode": "n", "rhs": "resize -10"}, {"desc": "Split Right", "noremap": true, "lhs": "s\\", "mode": "n", "rhs": "v"}, {"desc": "Increase window width", "noremap": true, "lhs": "sL", "mode": "n", "rhs": "vertical resize +10"}, {"desc": "Increase window height", "noremap": true, "lhs": "sK", "mode": "n", "rhs": "resize +5"}, {"desc": "Decrease window height", "noremap": true, "lhs": "sJ", "mode": "n", "rhs": "resize -5"}, {"desc": "Decrease window width", "noremap": true, "lhs": "sH", "mode": "n", "rhs": "vertical resize -10"}, {"desc": "Increase window width", "noremap": true, "lhs": "s=", "mode": "n", "rhs": "vertical resize +20"}, {"desc": "Split Below", "noremap": true, "lhs": "s/", "mode": "n", "rhs": "s"}, {"desc": "Decrease window width", "noremap": true, "lhs": "s-", "mode": "n", "rhs": "vertical resize -20"}, {"desc": "Increase window height", "noremap": true, "lhs": "s+", "mode": "n", "rhs": "resize +10"}, {"desc": "New File", "noremap": true, "lhs": "en", "mode": "n", "rhs": "enew"}, {"desc": "Readme", "noremap": true, "lhs": "em", "mode": "n", "rhs": "e README.md"}, {"desc": "Config Dir", "noremap": true, "lhs": "ed", "mode": "n", "rhs": "lua require(\"telescope.builtin\").find_files({cwd = vim.fn.stdpath(\"config\")})"}, {"desc": "Config", "noremap": true, "lhs": "ec", "mode": "n", "rhs": "e $MYVIMRC"}, {"desc": "Alternate File", "noremap": true, "lhs": "ea", "mode": "n", "rhs": "b#"}, {"desc": "Dashboard", "noremap": true, "lhs": "co", "mode": "n", "rhs": "Dashboard"}, {"desc": "Clean Empty Lines", "noremap": true, "lhs": "cc", "mode": "n", "rhs": ":g/^\\s*$/d"}, {"desc": "Root Directory", "noremap": true, "lhs": "cd", "mode": "n", "rhs": "RootDir"}, {"desc": "Sort Desc", "noremap": true, "lhs": "cS", "mode": "v", "rhs": ":sort!"}, {"desc": " Buffer Local Keymaps (which-key)", "noremap": true, "lhs": "?", "mode": "n", "rhs": ""}, {"desc": "Time", "noremap": true, "lhs": "it", "mode": "n", "rhs": "put =strftime('## %r')"}, {"desc": "Registers", "noremap": true, "lhs": "ir", "mode": "n", "rhs": "Telescope registers"}, {"desc": "Relative Path", "noremap": true, "lhs": "ip", "mode": "n", "rhs": "put %"}, {"desc": "Nerd Glyphs", "noremap": true, "lhs": "in", "mode": "n", "rhs": "Nerdy"}, {"desc": "File Name", "noremap": true, "lhs": "if", "mode": "n", "rhs": "put =expand('%:t')"}, {"desc": "Emojis", "noremap": true, "lhs": "ie", "mode": "n", "rhs": "Telescope symbols"}, {"desc": "Date", "noremap": true, "lhs": "id", "mode": "n", "rhs": "put =strftime('## %a, %d %b, %Y, %r')"}, {"desc": "Absolute Path", "noremap": true, "lhs": "iP", "mode": "n", "rhs": "put %:p"}, {"desc": "Write and Quit", "noremap": true, "lhs": "qw", "mode": "n", "rhs": "wq"}, {"desc": "Close Split", "noremap": true, "lhs": "qs", "mode": "n", "rhs": "c"}, {"desc": "Unique", "noremap": true, "lhs": "cu", "mode": "v", "rhs": ":!uniq"}, {"desc": "Sort Asc", "noremap": true, "lhs": "cs", "mode": "v", "rhs": ":sort"}, {"desc": "Sort Case Insensitive", "noremap": true, "lhs": "ci", "mode": "v", "rhs": ":sort i"}, {"desc": "", "noremap": true, "lhs": "mt", "mode": "n", "rhs": "lua require(\"onedark\").toggle()"}, {"desc": "Chat with IA (Codeium)", "noremap": true, "lhs": "ch", "mode": "n", "rhs": ""}, {"desc": "Quickfix List (Trouble)", "noremap": true, "lhs": "xQ", "mode": "n", "rhs": ""}, {"desc": "Location List (Trouble)", "noremap": true, "lhs": "xL", "mode": "n", "rhs": ""}, {"desc": "LSP references/definitions/... (Trouble)", "noremap": true, "lhs": "xS", "mode": "n", "rhs": ""}, {"desc": "Symbols (Trouble)", "noremap": true, "lhs": "xs", "mode": "n", "rhs": ""}, {"desc": "Buffer Diagnostics (Trouble)", "noremap": true, "lhs": "xX", "mode": "n", "rhs": ""}, {"desc": "Diagnostics (Trouble)", "noremap": true, "lhs": "xx", "mode": "n", "rhs": ""}, {"desc": "Replace in Files (Spectre)", "noremap": true, "lhs": "mr", "mode": "n", "rhs": ""}, {"desc": "Toggle zen mode", "noremap": true, "lhs": "wz", "mode": "n", "rhs": ""}, {"desc": "Stop", "noremap": true, "lhs": "us", "mode": "n", "rhs": ""}, {"desc": "Run Nearest Test", "noremap": true, "lhs": "ur", "mode": "n", "rhs": ""}, {"desc": "Toggle Summary", "noremap": true, "lhs": "uS", "mode": "n", "rhs": ""}, {"desc": "Show Output", "noremap": true, "lhs": "uo", "mode": "n", "rhs": ""}, {"desc": "Run Test File", "noremap": true, "lhs": "uf", "mode": "n", "rhs": ""}, {"desc": "Run Current Test", "noremap": true, "lhs": "uc", "mode": "n", "rhs": ""}, {"desc": "Toggle Output Panel", "noremap": true, "lhs": "uO", "mode": "n", "rhs": ""}, {"desc": "Breakpoint", "noremap": true, "lhs": "bb", "mode": "n", "rhs": ""}, {"desc": "Restart Frame", "noremap": true, "lhs": "bR", "mode": "n", "rhs": ""}, {"desc": "Out", "noremap": true, "lhs": "bO", "mode": "n", "rhs": ""}, {"desc": "Exit", "noremap": true, "lhs": "bx", "mode": "n", "rhs": ""}, {"desc": "Debugger", "noremap": true, "lhs": "bt", "mode": "n", "rhs": ""}, {"desc": "Repl", "noremap": true, "lhs": "br", "mode": "n", "rhs": ""}, {"desc": "Over", "noremap": true, "lhs": "bo", "mode": "n", "rhs": ""}, {"desc": "Last", "noremap": true, "lhs": "bl", "mode": "n", "rhs": ""}, {"desc": "Into", "noremap": true, "lhs": "bi", "mode": "n", "rhs": ""}, {"desc": "Continue", "noremap": true, "lhs": "bc", "mode": "n", "rhs": ""}, {"desc": "Tiled line", "noremap": true, "lhs": "Ct", "mode": "v", "rhs": ""}, {"desc": "Tiled line", "noremap": true, "lhs": "Ct", "mode": "n", "rhs": ""}, {"desc": "Comment Box", "noremap": true, "lhs": "Cb", "mode": "v", "rhs": ""}, {"desc": "Comment Box", "noremap": true, "lhs": "Cb", "mode": "n", "rhs": ""}, {"desc": "Delete Comment Style", "noremap": true, "lhs": "Cd", "mode": "v", "rhs": ""}, {"desc": "Delete Comment Style", "noremap": true, "lhs": "Cd", "mode": "n", "rhs": ""}, {"desc": "Catalog", "noremap": true, "lhs": "Cc", "mode": "n", "rhs": ""}, {"desc": "Marked", "noremap": true, "lhs": "Cm", "mode": "v", "rhs": ""}, {"desc": "Marked", "noremap": true, "lhs": "Cm", "mode": "n", "rhs": ""}, {"desc": "Line", "noremap": true, "lhs": "Cl", "mode": "n", "rhs": ""}, {"desc": "All Notes", "noremap": true, "lhs": "nf", "mode": "n", "rhs": ""}, {"desc": "Today's Entry", "noremap": true, "lhs": "ne", "mode": "n", "rhs": ""}, {"desc": "Today's Todo", "noremap": true, "lhs": "nd", "mode": "n", "rhs": ""}, {"desc": "Toggle Todo", "noremap": true, "lhs": "nx", "mode": "n", "rhs": ""}, {"desc": "Incomplete Todos", "noremap": true, "lhs": "nt", "mode": "n", "rhs": ""}, {"desc": "New Note", "noremap": true, "lhs": "nn", "mode": "n", "rhs": ""}, {"desc": "Tomorrow's Todo", "noremap": true, "lhs": "nl", "mode": "n", "rhs": ""}, {"desc": "Yesterday's Todo", "noremap": true, "lhs": "nh", "mode": "n", "rhs": ""}, {"desc": "Find Notes", "noremap": true, "lhs": "ng", "mode": "n", "rhs": ""}, {"desc": "Maximize/minimize a split", "noremap": true, "lhs": "mm", "mode": "n", "rhs": ""}, {"desc": "Horizontal Terminal", "noremap": true, "lhs": "th", "mode": "n", "rhs": ""}, {"desc": "Vertical Terminal", "noremap": true, "lhs": "tv", "mode": "n", "rhs": ""}, {"desc": "toggle markdown preview", "noremap": true, "lhs": "cm", "mode": "n", "rhs": ""}, {"desc": "Toggle Terminal", "noremap": true, "lhs": "t2", "mode": "n", "rhs": ""}, {"desc": "Toggle Terminal", "noremap": true, "lhs": "t1", "mode": "n", "rhs": ""}, {"desc": "DB Rename buffer", "noremap": true, "lhs": "dr", "mode": "n", "rhs": ""}, {"desc": "DB Find buffer", "noremap": true, "lhs": "db", "mode": "n", "rhs": ""}, {"desc": "Toggle DB UI", "noremap": true, "lhs": "du", "mode": "n", "rhs": ""}, {"desc": "DB Last query", "noremap": true, "lhs": "dl", "mode": "n", "rhs": ""}, {"desc": "Toggle keys", "noremap": true, "lhs": "kt", "mode": "n", "rhs": "Screenkey"}, {"desc": "Close Code Run ", "noremap": true, "lhs": "rx", "mode": "n", "rhs": "RunClose"}, {"desc": "Run Code Project ", "noremap": true, "lhs": "rp", "mode": "n", "rhs": "RunProject"}, {"desc": "Run Code File ", "noremap": true, "lhs": "rf", "mode": "n", "rhs": "RunFile"}, {"desc": "Run Code ", "noremap": true, "lhs": "rc", "mode": "n", "rhs": "RunCode"}, {"desc": " Insert Macro Breakpoint.", "noremap": true, "lhs": "##", "mode": "n", "rhs": ""}, {"desc": ":help v_#-default", "noremap": true, "lhs": "#", "mode": "x", "rhs": ""}, {"desc": "", "noremap": false, "lhs": "%", "mode": "x", "rhs": "(MatchitVisualForward)"}, {"desc": "", "noremap": false, "lhs": "%", "mode": "n", "rhs": "(MatchitNormalForward)"}, {"desc": ":help &-default", "noremap": true, "lhs": "&", "mode": "n", "rhs": ":&&"}, {"desc": ":help v_star-default", "noremap": true, "lhs": "*", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ",", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ",", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "-", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "-", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ";", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ";", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "<", "mode": "v", "rhs": "gv"}, {"desc": "", "noremap": true, "lhs": "=", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "=", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ">", "mode": "v", "rhs": ">gv"}, {"desc": ":help v_@-default", "noremap": true, "lhs": "@", "mode": "x", "rhs": "mode() ==# 'V' ? ':normal! @'.getcharstr().'' : '@'"}, {"desc": "", "noremap": true, "lhs": "F", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "F", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "J", "mode": "x", "rhs": ":move '>+1gv-gv"}, {"desc": "", "noremap": true, "lhs": "J", "mode": "n", "rhs": "mzJ`z"}, {"desc": "LSP Hover", "noremap": true, "lhs": "K", "mode": "n", "rhs": "Lspsaga hover_doc"}, {"desc": "", "noremap": true, "lhs": "K", "mode": "x", "rhs": ":move '-2gv-gv"}, {"desc": "Prev search result", "noremap": true, "lhs": "N", "mode": "x", "rhs": "'nN'[v:searchforward]"}, {"desc": "Prev search result", "noremap": true, "lhs": "N", "mode": "n", "rhs": "'nN'[v:searchforward]"}, {"desc": "Put yanked text before cursor", "noremap": true, "lhs": "P", "mode": "n", "rhs": "(YankyPutBefore)"}, {"desc": "Put yanked text before cursor", "noremap": true, "lhs": "P", "mode": "x", "rhs": "(YankyPutBefore)"}, {"desc": " Play Macro", "noremap": true, "lhs": "Q", "mode": "n", "rhs": ""}, {"desc": ":help v_Q-default", "noremap": true, "lhs": "Q", "mode": "x", "rhs": "mode() ==# 'V' ? ':normal! @=reg_recorded()' : 'Q'"}, {"desc": "", "noremap": true, "lhs": "T", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "T", "mode": "n", "rhs": ""}, {"desc": "Redo", "noremap": true, "lhs": "U", "mode": "n", "rhs": "redo"}, {"desc": ":help Y-default", "noremap": true, "lhs": "Y", "mode": "n", "rhs": "y$"}, {"desc": "Undo backward", "noremap": true, "lhs": "[u", "mode": "n", "rhs": "lua MiniBracketed.undo('backward')"}, {"desc": "Undo first", "noremap": true, "lhs": "[U", "mode": "n", "rhs": "lua MiniBracketed.undo('first')"}, {"desc": "Treesitter backward", "noremap": true, "lhs": "[n", "mode": "x", "rhs": "lua MiniBracketed.treesitter('backward')"}, {"desc": "Treesitter backward", "noremap": true, "lhs": "[n", "mode": "n", "rhs": "lua MiniBracketed.treesitter('backward')"}, {"desc": "Treesitter first", "noremap": true, "lhs": "[N", "mode": "x", "rhs": "lua MiniBracketed.treesitter('first')"}, {"desc": "Treesitter first", "noremap": true, "lhs": "[N", "mode": "n", "rhs": "lua MiniBracketed.treesitter('first')"}, {"desc": "Location backward", "noremap": true, "lhs": "[l", "mode": "n", "rhs": "lua MiniBracketed.location('backward')"}, {"desc": "Location first", "noremap": true, "lhs": "[L", "mode": "n", "rhs": "lua MiniBracketed.location('first')"}, {"desc": "Oldfile backward", "noremap": true, "lhs": "[o", "mode": "n", "rhs": "lua MiniBracketed.oldfile('backward')"}, {"desc": "Oldfile first", "noremap": true, "lhs": "[O", "mode": "n", "rhs": "lua MiniBracketed.oldfile('first')"}, {"desc": "Jump first", "noremap": true, "lhs": "[J", "mode": "n", "rhs": "lua MiniBracketed.jump('first')"}, {"desc": "Indent backward", "noremap": true, "lhs": "[i", "mode": "x", "rhs": "lua MiniBracketed.indent('backward')"}, {"desc": "Indent backward", "noremap": true, "lhs": "[i", "mode": "n", "rhs": "lua MiniBracketed.indent('backward')"}, {"desc": "Indent first", "noremap": true, "lhs": "[I", "mode": "x", "rhs": "lua MiniBracketed.indent('first')"}, {"desc": "Indent first", "noremap": true, "lhs": "[I", "mode": "n", "rhs": "lua MiniBracketed.indent('first')"}, {"desc": "Diagnostic backward", "noremap": true, "lhs": "[d", "mode": "x", "rhs": "lua MiniBracketed.diagnostic('backward')"}, {"desc": "Diagnostic first", "noremap": true, "lhs": "[D", "mode": "x", "rhs": "lua MiniBracketed.diagnostic('first')"}, {"desc": "Diagnostic first", "noremap": true, "lhs": "[D", "mode": "n", "rhs": "lua MiniBracketed.diagnostic('first')"}, {"desc": "Conflict backward", "noremap": true, "lhs": "[x", "mode": "x", "rhs": "lua MiniBracketed.conflict('backward')"}, {"desc": "Conflict backward", "noremap": true, "lhs": "[x", "mode": "n", "rhs": "lua MiniBracketed.conflict('backward')"}, {"desc": "Conflict first", "noremap": true, "lhs": "[X", "mode": "x", "rhs": "lua MiniBracketed.conflict('first')"}, {"desc": "Conflict first", "noremap": true, "lhs": "[X", "mode": "n", "rhs": "lua MiniBracketed.conflict('first')"}, {"desc": "Comment backward", "noremap": true, "lhs": "[c", "mode": "x", "rhs": "lua MiniBracketed.comment('backward')"}, {"desc": "Comment backward", "noremap": true, "lhs": "[c", "mode": "n", "rhs": "lua MiniBracketed.comment('backward')"}, {"desc": "Comment first", "noremap": true, "lhs": "[C", "mode": "x", "rhs": "lua MiniBracketed.comment('first')"}, {"desc": "Comment first", "noremap": true, "lhs": "[C", "mode": "n", "rhs": "lua MiniBracketed.comment('first')"}, {"desc": "Edit", "noremap": true, "lhs": "[e", "mode": "n", "rhs": "g;"}, {"desc": "Buffer first", "noremap": true, "lhs": "[B", "mode": "n", "rhs": "lua MiniBracketed.buffer('first')"}, {"desc": "Buffer backward", "noremap": true, "lhs": "[b", "mode": "n", "rhs": "lua MiniBracketed.buffer('backward')"}, {"desc": "Diagnostic backward", "noremap": true, "lhs": "[d", "mode": "n", "rhs": "lua MiniBracketed.diagnostic('backward')"}, {"desc": "Jump backward", "noremap": true, "lhs": "[j", "mode": "n", "rhs": "lua MiniBracketed.jump('backward')"}, {"desc": "", "noremap": false, "lhs": "[%", "mode": "x", "rhs": "(MatchitVisualMultiBackward)"}, {"desc": "", "noremap": false, "lhs": "[%", "mode": "n", "rhs": "(MatchitNormalMultiBackward)"}, {"desc": "Previous Trouble/Quickfix Item", "noremap": true, "lhs": "[q", "mode": "n", "rhs": ""}, {"desc": "Undo forward", "noremap": true, "lhs": "]u", "mode": "n", "rhs": "lua MiniBracketed.undo('forward')"}, {"desc": "Undo last", "noremap": true, "lhs": "]U", "mode": "n", "rhs": "lua MiniBracketed.undo('last')"}, {"desc": "Treesitter forward", "noremap": true, "lhs": "]n", "mode": "x", "rhs": "lua MiniBracketed.treesitter('forward')"}, {"desc": "Treesitter forward", "noremap": true, "lhs": "]n", "mode": "n", "rhs": "lua MiniBracketed.treesitter('forward')"}, {"desc": "Treesitter last", "noremap": true, "lhs": "]N", "mode": "x", "rhs": "lua MiniBracketed.treesitter('last')"}, {"desc": "Treesitter last", "noremap": true, "lhs": "]N", "mode": "n", "rhs": "lua MiniBracketed.treesitter('last')"}, {"desc": "Location forward", "noremap": true, "lhs": "]l", "mode": "n", "rhs": "lua MiniBracketed.location('forward')"}, {"desc": "Location last", "noremap": true, "lhs": "]L", "mode": "n", "rhs": "lua MiniBracketed.location('last')"}, {"desc": "Oldfile forward", "noremap": true, "lhs": "]o", "mode": "n", "rhs": "lua MiniBracketed.oldfile('forward')"}, {"desc": "Oldfile last", "noremap": true, "lhs": "]O", "mode": "n", "rhs": "lua MiniBracketed.oldfile('last')"}, {"desc": "Jump last", "noremap": true, "lhs": "]J", "mode": "n", "rhs": "lua MiniBracketed.jump('last')"}, {"desc": "Indent forward", "noremap": true, "lhs": "]i", "mode": "x", "rhs": "lua MiniBracketed.indent('forward')"}, {"desc": "Indent forward", "noremap": true, "lhs": "]i", "mode": "n", "rhs": "lua MiniBracketed.indent('forward')"}, {"desc": "Indent last", "noremap": true, "lhs": "]I", "mode": "x", "rhs": "lua MiniBracketed.indent('last')"}, {"desc": "Indent last", "noremap": true, "lhs": "]I", "mode": "n", "rhs": "lua MiniBracketed.indent('last')"}, {"desc": "Diagnostic forward", "noremap": true, "lhs": "]d", "mode": "x", "rhs": "lua MiniBracketed.diagnostic('forward')"}, {"desc": "Diagnostic last", "noremap": true, "lhs": "]D", "mode": "x", "rhs": "lua MiniBracketed.diagnostic('last')"}, {"desc": "Diagnostic last", "noremap": true, "lhs": "]D", "mode": "n", "rhs": "lua MiniBracketed.diagnostic('last')"}, {"desc": "Conflict forward", "noremap": true, "lhs": "]x", "mode": "x", "rhs": "lua MiniBracketed.conflict('forward')"}, {"desc": "Conflict forward", "noremap": true, "lhs": "]x", "mode": "n", "rhs": "lua MiniBracketed.conflict('forward')"}, {"desc": "Conflict last", "noremap": true, "lhs": "]X", "mode": "x", "rhs": "lua MiniBracketed.conflict('last')"}, {"desc": "Conflict last", "noremap": true, "lhs": "]X", "mode": "n", "rhs": "lua MiniBracketed.conflict('last')"}, {"desc": "Comment forward", "noremap": true, "lhs": "]c", "mode": "x", "rhs": "lua MiniBracketed.comment('forward')"}, {"desc": "Comment forward", "noremap": true, "lhs": "]c", "mode": "n", "rhs": "lua MiniBracketed.comment('forward')"}, {"desc": "Comment last", "noremap": true, "lhs": "]C", "mode": "x", "rhs": "lua MiniBracketed.comment('last')"}, {"desc": "Comment last", "noremap": true, "lhs": "]C", "mode": "n", "rhs": "lua MiniBracketed.comment('last')"}, {"desc": "Buffer last", "noremap": true, "lhs": "]B", "mode": "n", "rhs": "lua MiniBracketed.buffer('last')"}, {"desc": "Buffer forward", "noremap": true, "lhs": "]b", "mode": "n", "rhs": "lua MiniBracketed.buffer('forward')"}, {"desc": "Diagnostic forward", "noremap": true, "lhs": "]d", "mode": "n", "rhs": "lua MiniBracketed.diagnostic('forward')"}, {"desc": "Edit", "noremap": true, "lhs": "]e", "mode": "n", "rhs": "g,"}, {"desc": "Jump forward", "noremap": true, "lhs": "]j", "mode": "n", "rhs": "lua MiniBracketed.jump('forward')"}, {"desc": "", "noremap": false, "lhs": "]%", "mode": "x", "rhs": "(MatchitVisualMultiForward)"}, {"desc": "", "noremap": false, "lhs": "]%", "mode": "n", "rhs": "(MatchitNormalMultiForward)"}, {"desc": "Next Trouble/Quickfix Item", "noremap": true, "lhs": "]q", "mode": "n", "rhs": ""}, {"desc": "Around last textobject", "noremap": false, "lhs": "al", "mode": "x", "rhs": ""}, {"desc": "Around next textobject", "noremap": false, "lhs": "an", "mode": "x", "rhs": ""}, {"desc": "Around textobject", "noremap": false, "lhs": "a", "mode": "x", "rhs": ""}, {"desc": "", "noremap": false, "lhs": "a%", "mode": "x", "rhs": "(MatchitVisualTextObject)"}, {"desc": " Edit Macro", "noremap": true, "lhs": "cq", "mode": "n", "rhs": ""}, {"desc": "Change without replacing clipboad", "noremap": true, "lhs": "c", "mode": "n", "rhs": "\"_c"}, {"desc": " Delete All Macros", "noremap": true, "lhs": "dq", "mode": "n", "rhs": ""}, {"desc": "Delete without replacing clipboad", "noremap": true, "lhs": "d", "mode": "n", "rhs": "\"_d"}, {"desc": "", "noremap": true, "lhs": "f", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "f", "mode": "n", "rhs": ""}, {"desc": "Put yanked text after selection", "noremap": true, "lhs": "gp", "mode": "n", "rhs": "(YankyGPutAfter)"}, {"desc": "Put yanked text before selection", "noremap": true, "lhs": "gP", "mode": "n", "rhs": "(YankyGPutBefore)"}, {"desc": "Put yanked text before selection", "noremap": true, "lhs": "gP", "mode": "x", "rhs": "(YankyGPutBefore)"}, {"desc": "Put yanked text after selection", "noremap": true, "lhs": "gp", "mode": "x", "rhs": "(YankyGPutAfter)"}, {"desc": "Highlight next surrounding", "noremap": true, "lhs": "gshn", "mode": "n", "rhs": ""}, {"desc": "Find next left surrounding", "noremap": true, "lhs": "gsFn", "mode": "n", "rhs": ""}, {"desc": "Find next right surrounding", "noremap": true, "lhs": "gsfn", "mode": "n", "rhs": ""}, {"desc": "Replace next surrounding", "noremap": true, "lhs": "gsrn", "mode": "n", "rhs": ""}, {"desc": "Delete next surrounding", "noremap": true, "lhs": "gsdn", "mode": "n", "rhs": ""}, {"desc": "Highlight previous surrounding", "noremap": true, "lhs": "gshl", "mode": "n", "rhs": ""}, {"desc": "Find previous left surrounding", "noremap": true, "lhs": "gsFl", "mode": "n", "rhs": ""}, {"desc": "Find previous right surrounding", "noremap": true, "lhs": "gsfl", "mode": "n", "rhs": ""}, {"desc": "Replace previous surrounding", "noremap": true, "lhs": "gsrl", "mode": "n", "rhs": ""}, {"desc": "Delete previous surrounding", "noremap": true, "lhs": "gsdl", "mode": "n", "rhs": ""}, {"desc": "Add surrounding to selection", "noremap": true, "lhs": "gsa", "mode": "x", "rhs": ":lua MiniSurround.add('visual')"}, {"desc": "Update `MiniSurround.config.n_lines`", "noremap": true, "lhs": "gsn", "mode": "n", "rhs": ""}, {"desc": "Highlight surrounding", "noremap": true, "lhs": "gsh", "mode": "n", "rhs": ""}, {"desc": "Find left surrounding", "noremap": true, "lhs": "gsF", "mode": "n", "rhs": ""}, {"desc": "Find right surrounding", "noremap": true, "lhs": "gsf", "mode": "n", "rhs": ""}, {"desc": "Replace surrounding", "noremap": true, "lhs": "gsr", "mode": "n", "rhs": ""}, {"desc": "Delete surrounding", "noremap": true, "lhs": "gsd", "mode": "n", "rhs": ""}, {"desc": "Add surrounding", "noremap": true, "lhs": "gsa", "mode": "n", "rhs": ""}, {"desc": "Move to right \"around\"", "noremap": false, "lhs": "g]", "mode": "x", "rhs": ""}, {"desc": "Move to right \"around\"", "noremap": false, "lhs": "g]", "mode": "n", "rhs": ""}, {"desc": "Move to left \"around\"", "noremap": false, "lhs": "g[", "mode": "x", "rhs": ""}, {"desc": "Move to left \"around\"", "noremap": false, "lhs": "g[", "mode": "n", "rhs": ""}, {"desc": "", "noremap": false, "lhs": "g%", "mode": "x", "rhs": "(MatchitVisualBackward)"}, {"desc": "", "noremap": false, "lhs": "g%", "mode": "n", "rhs": "(MatchitNormalBackward)"}, {"desc": "Beginning of line", "noremap": true, "lhs": "gh", "mode": "x", "rhs": "^"}, {"desc": "Beginning of line", "noremap": true, "lhs": "gh", "mode": "n", "rhs": "^"}, {"desc": "End of line", "noremap": true, "lhs": "gl", "mode": "x", "rhs": "$"}, {"desc": "End of line", "noremap": true, "lhs": "gl", "mode": "n", "rhs": "$"}, {"desc": "Comment line", "noremap": true, "lhs": "gcc", "mode": "n", "rhs": ""}, {"desc": "Comment selection", "noremap": true, "lhs": "gc", "mode": "x", "rhs": ""}, {"desc": "Comment", "noremap": true, "lhs": "gc", "mode": "n", "rhs": ""}, {"desc": "Opens filepath or URI under cursor with the system handler (file explorer, web browser, …)", "noremap": true, "lhs": "gx", "mode": "x", "rhs": ""}, {"desc": "Opens filepath or URI under cursor with the system handler (file explorer, web browser, …)", "noremap": true, "lhs": "gx", "mode": "n", "rhs": ""}, {"desc": "Inside last textobject", "noremap": false, "lhs": "il", "mode": "x", "rhs": ""}, {"desc": "Inside next textobject", "noremap": false, "lhs": "in", "mode": "x", "rhs": ""}, {"desc": "Inside textobject", "noremap": false, "lhs": "i", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "j", "mode": "v", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "j", "mode": "n", "rhs": "v:count == 0 ? 'gj' : 'j'"}, {"desc": "", "noremap": true, "lhs": "k", "mode": "v", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "k", "mode": "n", "rhs": "v:count == 0 ? 'gk' : 'k'"}, {"desc": "Next search result", "noremap": true, "lhs": "n", "mode": "x", "rhs": "'Nn'[v:searchforward]"}, {"desc": "Next search result", "noremap": true, "lhs": "n", "mode": "n", "rhs": "'Nn'[v:searchforward]"}, {"desc": "Put yanked text after cursor", "noremap": true, "lhs": "p", "mode": "n", "rhs": "(YankyPutAfter)"}, {"desc": "Put yanked text after cursor", "noremap": true, "lhs": "p", "mode": "x", "rhs": "(YankyPutAfter)"}, {"desc": " Start/Stop Recording", "noremap": true, "lhs": "q", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "t", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "t", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "u", "mode": "n", "rhs": "ulua MiniBracketed.register_undo_state()"}, {"desc": "Cut without replacing clipboad", "noremap": true, "lhs": "x", "mode": "n", "rhs": "\"_x"}, {"desc": "", "noremap": true, "lhs": "x", "mode": "x", "rhs": "\"_x"}, {"desc": "Yank text", "noremap": true, "lhs": "y", "mode": "n", "rhs": "(YankyYank)"}, {"desc": "Yank text", "noremap": true, "lhs": "y", "mode": "x", "rhs": "(YankyYank)"}, {"desc": " Yank Macro", "noremap": true, "lhs": "yq", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "(YankyCycleBackward)"}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "(YankyCycleForward)"}, {"desc": "Move line up", "noremap": true, "lhs": "", "mode": "n", "rhs": "lua MiniMove.move_line('up')"}, {"desc": "Move line down", "noremap": true, "lhs": "", "mode": "n", "rhs": "lua MiniMove.move_line('down')"}, {"desc": "Move line right", "noremap": true, "lhs": "", "mode": "n", "rhs": "lua MiniMove.move_line('right')"}, {"desc": "Move line left", "noremap": true, "lhs": "", "mode": "n", "rhs": "lua MiniMove.move_line('left')"}, {"desc": "Move up", "noremap": true, "lhs": "", "mode": "x", "rhs": "lua MiniMove.move_selection('up')"}, {"desc": "Move down", "noremap": true, "lhs": "", "mode": "x", "rhs": "lua MiniMove.move_selection('down')"}, {"desc": "Move right", "noremap": true, "lhs": "", "mode": "x", "rhs": "lua MiniMove.move_selection('right')"}, {"desc": "Move left", "noremap": true, "lhs": "", "mode": "x", "rhs": "lua MiniMove.move_selection('left')"}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "lua MiniBracketed.register_undo_state()"}, {"desc": " Switch Macro Slot", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "Decrease window width", "noremap": true, "lhs": "", "mode": "n", "rhs": "vertical resize -10"}, {"desc": "Increase window width", "noremap": true, "lhs": "", "mode": "n", "rhs": "vertical resize +10"}, {"desc": "Increase window height", "noremap": true, "lhs": "", "mode": "n", "rhs": "resize +10"}, {"desc": "Find Files", "noremap": true, "lhs": "", "mode": "n", "rhs": "Telescope find_files"}, {"desc": "Previous Buffer", "noremap": true, "lhs": "", "mode": "n", "rhs": "bprevious"}, {"desc": "Find browser", "noremap": true, "lhs": "", "mode": "n", "rhs": "Telescope file_browser"}, {"desc": "Decrease window height", "noremap": true, "lhs": "", "mode": "n", "rhs": "resize -10"}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "zz"}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "zz"}, {"desc": "Save File", "noremap": true, "lhs": "", "mode": "n", "rhs": "up"}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "ggVG"}, {"desc": "Show diagnostics under the cursor", "noremap": false, "lhs": "", "mode": "n", "rhs": "d"}, {"desc": "Show diagnostics under the cursor", "noremap": true, "lhs": "d", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}], "treesitterParsers": ["bash", "c", "cpp", "css", "html", "java", "javascript", "json", "lua", "markdown", "markdown_inline", "python", "scss", "toml", "tsx", "typescript", "vim", "vimdoc"], "pluginManager": "lazy.nvim", "leaderKey": "", "lspServers": ["bashls", "clangd", "cssls", "emmet_ls", "html", "lua_ls", "prismals", "pyright", "svelte", "tailwindcss", "tsserver"]} \ No newline at end of file +{"distribution": "custom", "masonTools": ["basedpyright", "basedpyright-langserver", "bash-language-server", "black", "clang-format", "clangd", "codespell", "cpplint", "cspell", "emmet-ls", "eslint_d", "isort", "jdtls", "lua-language-server", "markdownlint", "mypy", "phpcs", "prettier", "pylint", "ruff", "selene", "shfmt", "stylua", "tailwindcss-language-server", "trivy", "typescript-language-server"], "plugins": ["2kabhishek/nerdy.nvim", "2kabhishek/tdo.nvim", "2kabhishek/termim.nvim", "CRAG666/code_runner.nvim", "Exafunction/codeium.vim", "HiPhish/rainbow-delimiters.nvim", "L3MON4D3/LuaSnip", "LudoPinelli/comment-box.nvim", "LunarVim/bigfile.nvim", "MunifTanjim/nui.nvim", "NStefan002/screenkey.nvim", "ThePrimeagen/refactoring.nvim", "akinsho/toggleterm.nvim", "altermo/ultimate-autopair.nvim", "antosha417/nvim-lsp-file-operations", "creativenull/dotfyle-metadata.nvim", "debugloop/telescope-undo.nvim", "echasnovski/mini.files", "echasnovski/mini.icons", "echasnovski/mini.nvim", "folke/flash.nvim", "folke/lazy.nvim", "folke/noice.nvim", "folke/persistence.nvim", "folke/trouble.nvim", "folke/which-key.nvim", "folke/zen-mode.nvim", "gbprod/yanky.nvim", "hrsh7th/cmp-buffer", "hrsh7th/cmp-cmdline", "hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-nvim-lsp-signature-help", "hrsh7th/cmp-nvim-lua", "hrsh7th/cmp-path", "hrsh7th/nvim-cmp", "iamcco/markdown-preview.nvim", "kristijanhusak/vim-dadbod-completion", "kristijanhusak/vim-dadbod-ui", "lukas-reineke/indent-blankline.nvim", "m-demare/hlargs.nvim", "m4xshen/hardtime.nvim", "max397574/better-escape.nvim", "mfussenegger/nvim-dap", "mfussenegger/nvim-lint", "mg979/vim-visual-multi", "mstuttgart/odoo-snippets", "mvllow/modes.nvim", "nacro90/numb.nvim", "navarasu/onedark.nvim", "neovim/nvim-lspconfig", "numToStr/Navigator.nvim", "nvim-lua/plenary.nvim", "nvim-lualine/lualine.nvim", "nvim-neo-tree/neo-tree.nvim", "nvim-neotest/neotest", "nvim-neotest/neotest-jest", "nvim-neotest/neotest-python", "nvim-neotest/nvim-nio", "nvim-pack/nvim-spectre", "nvim-telescope/telescope-file-browser.nvim", "nvim-telescope/telescope-fzf-native.nvim", "nvim-telescope/telescope-symbols.nvim", "nvim-telescope/telescope-ui-select.nvim", "nvim-telescope/telescope.nvim", "nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter-context", "nvim-treesitter/nvim-treesitter-textobjects", "nvimdev/dashboard-nvim", "nvimdev/lspsaga.nvim", "olimorris/neotest-rspec", "onsails/lspkind.nvim", "rafamadriz/friendly-snippets", "rcarriga/nvim-dap-ui", "rcarriga/nvim-notify", "rshkarin/mason-nvim-lint", "saadparwaiz1/cmp_luasnip", "smjonas/inc-rename.nvim", "stevearc/conform.nvim", "stevearc/dressing.nvim", "szw/vim-maximizer", "tpope/vim-dadbod", "wakatime/vim-wakatime", "williamboman/mason-lspconfig.nvim", "williamboman/mason.nvim", "willothy/flatten.nvim", "windwp/nvim-ts-autotag", "zapling/mason-conform.nvim", "zapling/mason-lock.nvim"], "pluginManager": "lazy.nvim", "keymaps": [{"desc": "Next Buffer", "noremap": true, "lhs": "", "mode": "n", "rhs": "bnext"}, {"desc": "Escape and clear hlsearch", "noremap": true, "lhs": "", "mode": "n", "rhs": "noh"}, {"desc": "Lspsaga | Code Outline", "noremap": true, "lhs": "lo", "mode": "n", "rhs": "Lspsaga outline"}, {"desc": "Reload Module", "noremap": true, "lhs": "cr", "mode": "n", "rhs": "Telescope reloader"}, {"desc": "Fuzzy Find in File", "noremap": true, "lhs": "fs", "mode": "n", "rhs": "Telescope current_buffer_fuzzy_find"}, {"desc": "Quickfix", "noremap": true, "lhs": "fq", "mode": "n", "rhs": "Telescope quickfix"}, {"desc": "Undo History", "noremap": true, "lhs": "fu", "mode": "n", "rhs": "Telescope undo"}, {"desc": "Notifications", "noremap": true, "lhs": "cn", "mode": "n", "rhs": "Telescope notify"}, {"desc": "File Browser", "noremap": true, "lhs": "ef", "mode": "n", "rhs": "Telescope file_browser"}, {"desc": "Diagnostics", "noremap": true, "lhs": "fd", "mode": "n", "rhs": "Telescope diagnostics"}, {"desc": "Search History", "noremap": true, "lhs": "ks", "mode": "n", "rhs": "Telescope search_history"}, {"desc": "Command History", "noremap": true, "lhs": "kh", "mode": "n", "rhs": "Telescope command_history"}, {"desc": "Commands", "noremap": true, "lhs": "kc", "mode": "n", "rhs": "Telescope commands"}, {"desc": "Keymaps", "noremap": true, "lhs": "kk", "mode": "n", "rhs": "Telescope keymaps"}, {"desc": "Grep String", "noremap": true, "lhs": "fG", "mode": "n", "rhs": "Telescope grep_string"}, {"desc": "Find Highlight Groups", "noremap": true, "lhs": "fH", "mode": "n", "rhs": "Telescope highlights"}, {"desc": "Marks", "noremap": true, "lhs": "fm", "mode": "n", "rhs": "Telescope marks"}, {"desc": "Old Recent Files", "noremap": true, "lhs": "fo", "mode": "n", "rhs": "Telescope oldfiles"}, {"desc": "Find Help", "noremap": true, "lhs": "fh", "mode": "n", "rhs": "Telescope help_tags"}, {"desc": "Buffers", "noremap": true, "lhs": "fb", "mode": "n", "rhs": "Telescope buffers"}, {"desc": "Live Grep", "noremap": true, "lhs": "fg", "mode": "n", "rhs": "Telescope live_grep"}, {"desc": "Find Files (CWD)", "noremap": true, "lhs": "ff", "mode": "n", "rhs": "Telescope find_files"}, {"desc": "Toggle IA (Codeium)", "noremap": true, "lhs": "cI", "mode": "n", "rhs": "CodeiumToggle"}, {"desc": "Relative Path", "noremap": true, "lhs": "yp", "mode": "n", "rhs": "CopyRelativePath"}, {"desc": "Copy Git URL", "noremap": true, "lhs": "yg", "mode": "n", "rhs": "lua require\"gitlinker\".get_buf_range_url()"}, {"desc": "File Name", "noremap": true, "lhs": "yf", "mode": "n", "rhs": "CopyFileName"}, {"desc": "Copy Whole File", "noremap": true, "lhs": "ya", "mode": "n", "rhs": "%y+"}, {"desc": "Absolute Path", "noremap": true, "lhs": "yP", "mode": "n", "rhs": "CopyAbsolutePath"}, {"desc": " Left File Explorer", "noremap": true, "lhs": "", "mode": "n", "rhs": ":Neotree toggle left"}, {"desc": "Float File Explorer", "noremap": true, "lhs": "ee", "mode": "n", "rhs": ":Neotree toggle float"}, {"desc": "Trigger linting for current file", "noremap": true, "lhs": "cl", "mode": "n", "rhs": ""}, {"desc": "Toggle auto-format on-save globally.", "noremap": true, "lhs": "cft", "mode": "n", "rhs": ""}, {"desc": "Toggle auto-format on-save for buffer.", "noremap": true, "lhs": "cfb", "mode": "n", "rhs": ""}, {"desc": "Format file or range (in visual mode)", "noremap": true, "lhs": "cff", "mode": "v", "rhs": ""}, {"desc": "Format file or range (in visual mode)", "noremap": true, "lhs": "cff", "mode": "n", "rhs": ""}, {"desc": "Don't Save Current Session", "noremap": true, "lhs": "md", "mode": "n", "rhs": ""}, {"desc": "Restore Last Session", "noremap": true, "lhs": "ml", "mode": "n", "rhs": ""}, {"desc": "Restore Session", "noremap": true, "lhs": "ms", "mode": "n", "rhs": ""}, {"desc": "Previous Jump", "noremap": true, "lhs": "jp", "mode": "v", "rhs": "lua require('flash').jump({continue = true})"}, {"desc": "Previous Jump", "noremap": true, "lhs": "jp", "mode": "n", "rhs": "lua require('flash').jump({continue = true})"}, {"desc": "Search Forward", "noremap": true, "lhs": "jn", "mode": "v", "rhs": "lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})"}, {"desc": "Search Forward", "noremap": true, "lhs": "jn", "mode": "n", "rhs": "lua require('flash').jump({search = { forward = true, wrap = false, multi_window = false },})"}, {"desc": "Forward", "noremap": true, "lhs": "jl", "mode": "n", "rhs": ""}, {"desc": "Treesitter", "noremap": true, "lhs": "jk", "mode": "v", "rhs": "lua require('flash').treesitter()"}, {"desc": "Treesitter", "noremap": true, "lhs": "jk", "mode": "n", "rhs": "lua require('flash').treesitter()"}, {"desc": "Remote", "noremap": true, "lhs": "jj", "mode": "v", "rhs": "lua require('flash').remote()"}, {"desc": "Remote", "noremap": true, "lhs": "jj", "mode": "n", "rhs": "lua require('flash').remote()"}, {"desc": "Backward", "noremap": true, "lhs": "jh", "mode": "n", "rhs": ""}, {"desc": "Jumplist", "noremap": true, "lhs": "jf", "mode": "n", "rhs": "Telescope jumplist"}, {"desc": "Diagnostics", "noremap": true, "lhs": "jd", "mode": "v", "rhs": "FlashDiagnostics"}, {"desc": "Diagnostics", "noremap": true, "lhs": "jd", "mode": "n", "rhs": "FlashDiagnostics"}, {"desc": "Word", "noremap": true, "lhs": "jc", "mode": "n", "rhs": "*"}, {"desc": "Search Backward", "noremap": true, "lhs": "jN", "mode": "v", "rhs": "lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})"}, {"desc": "Search Backward", "noremap": true, "lhs": "jN", "mode": "n", "rhs": "lua require('flash').jump({search = { forward = false, wrap = false, multi_window = false },})"}, {"desc": "Current Word", "noremap": true, "lhs": "jw", "mode": "v", "rhs": "lua require(\"flash\").jump({ pattern = vim.fn.expand(\"cword>\")})"}, {"desc": "Current Word", "noremap": true, "lhs": "jw", "mode": "n", "rhs": "lua require(\"flash\").jump({ pattern = vim.fn.expand(\"cword>\")})"}, {"desc": "Remote Treesitter", "noremap": true, "lhs": "jt", "mode": "v", "rhs": "lua require('flash').treesitter_search()"}, {"desc": "Remote Treesitter", "noremap": true, "lhs": "jt", "mode": "n", "rhs": "lua require('flash').treesitter_search()"}, {"desc": "Search", "noremap": true, "lhs": "js", "mode": "v", "rhs": "lua require('flash').jump()"}, {"desc": "Search", "noremap": true, "lhs": "js", "mode": "n", "rhs": "lua require('flash').jump()"}, {"desc": "Increase window width", "noremap": true, "lhs": "sL", "mode": "n", "rhs": "vertical resize +10"}, {"desc": "Increase window height", "noremap": true, "lhs": "sK", "mode": "n", "rhs": "resize +5"}, {"desc": "Decrease window height", "noremap": true, "lhs": "sJ", "mode": "n", "rhs": "resize -5"}, {"desc": "Decrease window width", "noremap": true, "lhs": "sH", "mode": "n", "rhs": "vertical resize -10"}, {"desc": "Increase window width", "noremap": true, "lhs": "s=", "mode": "n", "rhs": "vertical resize +20"}, {"desc": "Split Below", "noremap": true, "lhs": "s/", "mode": "n", "rhs": "s"}, {"desc": "Decrease window width", "noremap": true, "lhs": "s-", "mode": "n", "rhs": "vertical resize -20"}, {"desc": "Increase window height", "noremap": true, "lhs": "s+", "mode": "n", "rhs": "resize +10"}, {"desc": "New File", "noremap": true, "lhs": "en", "mode": "n", "rhs": "enew"}, {"desc": "Readme", "noremap": true, "lhs": "em", "mode": "n", "rhs": "e README.md"}, {"desc": "Config Dir", "noremap": true, "lhs": "ed", "mode": "n", "rhs": "lua require(\"telescope.builtin\").find_files({cwd = vim.fn.stdpath(\"config\")})"}, {"desc": "Config", "noremap": true, "lhs": "ec", "mode": "n", "rhs": "e $MYVIMRC"}, {"desc": "Alternate File", "noremap": true, "lhs": "ea", "mode": "n", "rhs": "b#"}, {"desc": "Dashboard", "noremap": true, "lhs": "co", "mode": "n", "rhs": "Dashboard"}, {"desc": "Clean Empty Lines", "noremap": true, "lhs": "cc", "mode": "n", "rhs": ":g/^\\s*$/d"}, {"desc": "Root Directory", "noremap": true, "lhs": "cd", "mode": "n", "rhs": "RootDir"}, {"desc": "Reload Configs", "noremap": true, "lhs": "cR", "mode": "n", "rhs": "ReloadConfig"}, {"desc": " Buffer Local Keymaps (which-key)", "noremap": true, "lhs": "?", "mode": "n", "rhs": ""}, {"desc": "Unique", "noremap": true, "lhs": "cu", "mode": "v", "rhs": ":!uniq"}, {"desc": "Sort Asc", "noremap": true, "lhs": "cs", "mode": "v", "rhs": ":sort"}, {"desc": "Sort Case Insensitive", "noremap": true, "lhs": "ci", "mode": "v", "rhs": ":sort i"}, {"desc": "Sort Desc", "noremap": true, "lhs": "cS", "mode": "v", "rhs": ":sort!"}, {"desc": "Time", "noremap": true, "lhs": "it", "mode": "n", "rhs": "put =strftime('## %r')"}, {"desc": "Registers", "noremap": true, "lhs": "ir", "mode": "n", "rhs": "Telescope registers"}, {"desc": "Relative Path", "noremap": true, "lhs": "ip", "mode": "n", "rhs": "put %"}, {"desc": "Nerd Glyphs", "noremap": true, "lhs": "in", "mode": "n", "rhs": "Nerdy"}, {"desc": "File Name", "noremap": true, "lhs": "if", "mode": "n", "rhs": "put =expand('%:t')"}, {"desc": "Emojis", "noremap": true, "lhs": "ie", "mode": "n", "rhs": "Telescope symbols"}, {"desc": "Date", "noremap": true, "lhs": "id", "mode": "n", "rhs": "put =strftime('## %a, %d %b, %Y, %r')"}, {"desc": "Absolute Path", "noremap": true, "lhs": "iP", "mode": "n", "rhs": "put %:p"}, {"desc": "Write and Quit", "noremap": true, "lhs": "qw", "mode": "n", "rhs": "wq"}, {"desc": "Close Split", "noremap": true, "lhs": "qs", "mode": "n", "rhs": "c"}, {"desc": "Quit", "noremap": true, "lhs": "qq", "mode": "n", "rhs": "q"}, {"desc": "Close Others", "noremap": true, "lhs": "qo", "mode": "n", "rhs": ":%bdelete|b#|bdelete#"}, {"desc": "Force Quit", "noremap": true, "lhs": "qf", "mode": "n", "rhs": "qall!"}, {"desc": "Delete Buffer", "noremap": true, "lhs": "qd", "mode": "n", "rhs": "bdelete"}, {"desc": "Close Buffer", "noremap": true, "lhs": "qc", "mode": "n", "rhs": "bw"}, {"desc": "Quit All", "noremap": true, "lhs": "qa", "mode": "n", "rhs": "qall"}, {"desc": " Save and Quit", "noremap": true, "lhs": "x", "mode": "n", "rhs": "x"}, {"desc": "Write and Quit", "noremap": true, "lhs": "ww", "mode": "n", "rhs": "w"}, {"desc": "Suggestions", "noremap": true, "lhs": "ws", "mode": "n", "rhs": "Telescope spell_suggest"}, {"desc": "Write and Quit", "noremap": true, "lhs": "wq", "mode": "n", "rhs": "wq"}, {"desc": "Prev Misspell", "noremap": true, "lhs": "wk", "mode": "n", "rhs": "[s"}, {"desc": "Next Misspell", "noremap": true, "lhs": "wj", "mode": "n", "rhs": "]s"}, {"desc": "Force Write", "noremap": true, "lhs": "wf", "mode": "n", "rhs": "lua require'utils'.sudo_write()"}, {"desc": "Spellcheck", "noremap": true, "lhs": "wc", "mode": "n", "rhs": "set spell!"}, {"desc": "Quote", "noremap": true, "lhs": "vq", "mode": "n", "rhs": "viq"}, {"desc": "Paragraph", "noremap": true, "lhs": "vp", "mode": "n", "rhs": "vip"}, {"desc": "Bracket", "noremap": true, "lhs": "vb", "mode": "n", "rhs": "vib"}, {"desc": "Around Quote", "noremap": true, "lhs": "vQ", "mode": "n", "rhs": "vaq"}, {"desc": "Around Para", "noremap": true, "lhs": "vP", "mode": "n", "rhs": "vap"}, {"desc": "Around Bracket", "noremap": true, "lhs": "vB", "mode": "n", "rhs": "vab"}, {"desc": "Vertical Split", "noremap": true, "lhs": "ss", "mode": "n", "rhs": "vsplit"}, {"desc": "Close Split", "noremap": true, "lhs": "sq", "mode": "n", "rhs": "c"}, {"desc": "Previous Pane", "noremap": true, "lhs": "sp", "mode": "n", "rhs": "NavigatorPrevious"}, {"desc": "Move Right", "noremap": true, "lhs": "sl", "mode": "n", "rhs": "l"}, {"desc": "Move Up", "noremap": true, "lhs": "sk", "mode": "n", "rhs": "k"}, {"desc": "Move Down", "noremap": true, "lhs": "sj", "mode": "n", "rhs": "j"}, {"desc": "Move Left", "noremap": true, "lhs": "sh", "mode": "n", "rhs": "h"}, {"desc": "First Tab", "noremap": true, "lhs": "sf", "mode": "n", "rhs": "tabfirst"}, {"desc": "Close Tab", "noremap": true, "lhs": "sc", "mode": "n", "rhs": "tabclose"}, {"desc": "Horizontal Split", "noremap": true, "lhs": "sa", "mode": "n", "rhs": "split"}, {"desc": "Previous Window", "noremap": true, "lhs": "s`", "mode": "n", "rhs": "p"}, {"desc": "Decrease window height", "noremap": true, "lhs": "s_", "mode": "n", "rhs": "resize -10"}, {"desc": "Split Right", "noremap": true, "lhs": "s\\", "mode": "n", "rhs": "v"}, {"desc": "Dismiss All Notifications", "noremap": true, "lhs": "mn", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "mt", "mode": "n", "rhs": "lua require(\"onedark\").toggle()"}, {"desc": "Chat with IA (Codeium)", "noremap": true, "lhs": "ch", "mode": "n", "rhs": ""}, {"desc": "Symbols (Trouble)", "noremap": true, "lhs": "xs", "mode": "n", "rhs": ""}, {"desc": "Buffer Diagnostics (Trouble)", "noremap": true, "lhs": "xX", "mode": "n", "rhs": ""}, {"desc": "Diagnostics (Trouble)", "noremap": true, "lhs": "xx", "mode": "n", "rhs": ""}, {"desc": "Quickfix List (Trouble)", "noremap": true, "lhs": "xQ", "mode": "n", "rhs": ""}, {"desc": "Location List (Trouble)", "noremap": true, "lhs": "xL", "mode": "n", "rhs": ""}, {"desc": "LSP references/definitions/... (Trouble)", "noremap": true, "lhs": "xS", "mode": "n", "rhs": ""}, {"desc": "Replace in Files (Spectre)", "noremap": true, "lhs": "mr", "mode": "n", "rhs": ""}, {"desc": "Maximize/minimize a split", "noremap": true, "lhs": "mm", "mode": "n", "rhs": ""}, {"desc": "Into", "noremap": true, "lhs": "bi", "mode": "n", "rhs": ""}, {"desc": "Continue", "noremap": true, "lhs": "bc", "mode": "n", "rhs": ""}, {"desc": "Breakpoint", "noremap": true, "lhs": "bb", "mode": "n", "rhs": ""}, {"desc": "Restart Frame", "noremap": true, "lhs": "bR", "mode": "n", "rhs": ""}, {"desc": "Out", "noremap": true, "lhs": "bO", "mode": "n", "rhs": ""}, {"desc": "Exit", "noremap": true, "lhs": "bx", "mode": "n", "rhs": ""}, {"desc": "Debugger", "noremap": true, "lhs": "bt", "mode": "n", "rhs": ""}, {"desc": "Repl", "noremap": true, "lhs": "br", "mode": "n", "rhs": ""}, {"desc": "Over", "noremap": true, "lhs": "bo", "mode": "n", "rhs": ""}, {"desc": "Last", "noremap": true, "lhs": "bl", "mode": "n", "rhs": ""}, {"desc": "Toggle Output Panel", "noremap": true, "lhs": "uO", "mode": "n", "rhs": ""}, {"desc": "Stop", "noremap": true, "lhs": "us", "mode": "n", "rhs": ""}, {"desc": "Run Nearest Test", "noremap": true, "lhs": "ur", "mode": "n", "rhs": ""}, {"desc": "Toggle Summary", "noremap": true, "lhs": "uS", "mode": "n", "rhs": ""}, {"desc": "Show Output", "noremap": true, "lhs": "uo", "mode": "n", "rhs": ""}, {"desc": "Run Test File", "noremap": true, "lhs": "uf", "mode": "n", "rhs": ""}, {"desc": "Run Current Test", "noremap": true, "lhs": "uc", "mode": "n", "rhs": ""}, {"desc": "Delete Comment Style", "noremap": true, "lhs": "Cd", "mode": "v", "rhs": ""}, {"desc": "Delete Comment Style", "noremap": true, "lhs": "Cd", "mode": "n", "rhs": ""}, {"desc": "Catalog", "noremap": true, "lhs": "Cc", "mode": "n", "rhs": ""}, {"desc": "Marked", "noremap": true, "lhs": "Cm", "mode": "v", "rhs": ""}, {"desc": "Marked", "noremap": true, "lhs": "Cm", "mode": "n", "rhs": ""}, {"desc": "Line", "noremap": true, "lhs": "Cl", "mode": "n", "rhs": ""}, {"desc": "Tiled line", "noremap": true, "lhs": "Ct", "mode": "v", "rhs": ""}, {"desc": "Tiled line", "noremap": true, "lhs": "Ct", "mode": "n", "rhs": ""}, {"desc": "Comment Box", "noremap": true, "lhs": "Cb", "mode": "v", "rhs": ""}, {"desc": "Comment Box", "noremap": true, "lhs": "Cb", "mode": "n", "rhs": ""}, {"desc": "Toggle zen mode", "noremap": true, "lhs": "wz", "mode": "n", "rhs": ""}, {"desc": "toggle markdown preview", "noremap": true, "lhs": "cm", "mode": "n", "rhs": ""}, {"desc": "Today's Todo", "noremap": true, "lhs": "nd", "mode": "n", "rhs": ""}, {"desc": "Toggle Todo", "noremap": true, "lhs": "nx", "mode": "n", "rhs": ""}, {"desc": "Incomplete Todos", "noremap": true, "lhs": "nt", "mode": "n", "rhs": ""}, {"desc": "New Note", "noremap": true, "lhs": "nn", "mode": "n", "rhs": ""}, {"desc": "Tomorrow's Todo", "noremap": true, "lhs": "nl", "mode": "n", "rhs": ""}, {"desc": "Yesterday's Todo", "noremap": true, "lhs": "nh", "mode": "n", "rhs": ""}, {"desc": "Find Notes", "noremap": true, "lhs": "ng", "mode": "n", "rhs": ""}, {"desc": "All Notes", "noremap": true, "lhs": "nf", "mode": "n", "rhs": ""}, {"desc": "Today's Entry", "noremap": true, "lhs": "ne", "mode": "n", "rhs": ""}, {"desc": "DB Rename buffer", "noremap": true, "lhs": "dr", "mode": "n", "rhs": ""}, {"desc": "DB Find buffer", "noremap": true, "lhs": "db", "mode": "n", "rhs": ""}, {"desc": "Toggle DB UI", "noremap": true, "lhs": "du", "mode": "n", "rhs": ""}, {"desc": "DB Last query", "noremap": true, "lhs": "dl", "mode": "n", "rhs": ""}, {"desc": "Vertical Terminal", "noremap": true, "lhs": "tv", "mode": "n", "rhs": ""}, {"desc": "Horizontal Terminal", "noremap": true, "lhs": "th", "mode": "n", "rhs": ""}, {"desc": "Toggle Terminal", "noremap": true, "lhs": "t2", "mode": "n", "rhs": ""}, {"desc": "Toggle Terminal", "noremap": true, "lhs": "t1", "mode": "n", "rhs": ""}, {"desc": "Toggle keys", "noremap": true, "lhs": "kt", "mode": "n", "rhs": "Screenkey"}, {"desc": "Close Code Run ", "noremap": true, "lhs": "rx", "mode": "n", "rhs": "RunClose"}, {"desc": "Run Code Project ", "noremap": true, "lhs": "rp", "mode": "n", "rhs": "RunProject"}, {"desc": "Run Code File ", "noremap": true, "lhs": "rf", "mode": "n", "rhs": "RunFile"}, {"desc": "Run Code ", "noremap": true, "lhs": "rc", "mode": "n", "rhs": "RunCode"}, {"desc": ":help v_#-default", "noremap": true, "lhs": "#", "mode": "x", "rhs": ""}, {"desc": "", "noremap": false, "lhs": "%", "mode": "x", "rhs": "(MatchitVisualForward)"}, {"desc": "", "noremap": false, "lhs": "%", "mode": "n", "rhs": "(MatchitNormalForward)"}, {"desc": ":help &-default", "noremap": true, "lhs": "&", "mode": "n", "rhs": ":&&"}, {"desc": ":help v_star-default", "noremap": true, "lhs": "*", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ",", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ",", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "-", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "-", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ";", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ";", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "<", "mode": "v", "rhs": "gv"}, {"desc": "", "noremap": true, "lhs": "=", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "=", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": ">", "mode": "v", "rhs": ">gv"}, {"desc": ":help v_@-default", "noremap": true, "lhs": "@", "mode": "x", "rhs": "mode() ==# 'V' ? ':normal! @'.getcharstr().'' : '@'"}, {"desc": "", "noremap": true, "lhs": "F", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "F", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "J", "mode": "x", "rhs": ":move '>+1gv-gv"}, {"desc": "", "noremap": true, "lhs": "J", "mode": "n", "rhs": "mzJ`z"}, {"desc": "LSP Hover", "noremap": true, "lhs": "K", "mode": "n", "rhs": "Lspsaga hover_doc"}, {"desc": "", "noremap": true, "lhs": "K", "mode": "x", "rhs": ":move '-2gv-gv"}, {"desc": "Prev search result", "noremap": true, "lhs": "N", "mode": "x", "rhs": "'nN'[v:searchforward]"}, {"desc": "Prev search result", "noremap": true, "lhs": "N", "mode": "n", "rhs": "'nN'[v:searchforward]"}, {"desc": "Put yanked text before cursor", "noremap": true, "lhs": "P", "mode": "x", "rhs": "(YankyPutBefore)"}, {"desc": "Put yanked text before cursor", "noremap": true, "lhs": "P", "mode": "n", "rhs": "(YankyPutBefore)"}, {"desc": "Force Quit!", "noremap": true, "lhs": "Q", "mode": "n", "rhs": "qall!"}, {"desc": ":help v_Q-default", "noremap": true, "lhs": "Q", "mode": "x", "rhs": "mode() ==# 'V' ? ':normal! @=reg_recorded()' : 'Q'"}, {"desc": "", "noremap": true, "lhs": "T", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "T", "mode": "n", "rhs": ""}, {"desc": "Redo", "noremap": true, "lhs": "U", "mode": "n", "rhs": "redo"}, {"desc": ":help Y-default", "noremap": true, "lhs": "Y", "mode": "n", "rhs": "y$"}, {"desc": "Undo backward", "noremap": true, "lhs": "[u", "mode": "n", "rhs": "lua MiniBracketed.undo('backward')"}, {"desc": "Undo first", "noremap": true, "lhs": "[U", "mode": "n", "rhs": "lua MiniBracketed.undo('first')"}, {"desc": "Treesitter backward", "noremap": true, "lhs": "[n", "mode": "x", "rhs": "lua MiniBracketed.treesitter('backward')"}, {"desc": "Treesitter backward", "noremap": true, "lhs": "[n", "mode": "n", "rhs": "lua MiniBracketed.treesitter('backward')"}, {"desc": "Treesitter first", "noremap": true, "lhs": "[N", "mode": "x", "rhs": "lua MiniBracketed.treesitter('first')"}, {"desc": "Treesitter first", "noremap": true, "lhs": "[N", "mode": "n", "rhs": "lua MiniBracketed.treesitter('first')"}, {"desc": "Location backward", "noremap": true, "lhs": "[l", "mode": "n", "rhs": "lua MiniBracketed.location('backward')"}, {"desc": "Location first", "noremap": true, "lhs": "[L", "mode": "n", "rhs": "lua MiniBracketed.location('first')"}, {"desc": "Oldfile backward", "noremap": true, "lhs": "[o", "mode": "n", "rhs": "lua MiniBracketed.oldfile('backward')"}, {"desc": "Oldfile first", "noremap": true, "lhs": "[O", "mode": "n", "rhs": "lua MiniBracketed.oldfile('first')"}, {"desc": "Jump first", "noremap": true, "lhs": "[J", "mode": "n", "rhs": "lua MiniBracketed.jump('first')"}, {"desc": "Indent backward", "noremap": true, "lhs": "[i", "mode": "x", "rhs": "lua MiniBracketed.indent('backward')"}, {"desc": "Indent backward", "noremap": true, "lhs": "[i", "mode": "n", "rhs": "lua MiniBracketed.indent('backward')"}, {"desc": "Indent first", "noremap": true, "lhs": "[I", "mode": "x", "rhs": "lua MiniBracketed.indent('first')"}, {"desc": "Indent first", "noremap": true, "lhs": "[I", "mode": "n", "rhs": "lua MiniBracketed.indent('first')"}, {"desc": "Diagnostic backward", "noremap": true, "lhs": "[d", "mode": "x", "rhs": "lua MiniBracketed.diagnostic('backward')"}, {"desc": "Diagnostic first", "noremap": true, "lhs": "[D", "mode": "x", "rhs": "lua MiniBracketed.diagnostic('first')"}, {"desc": "Diagnostic first", "noremap": true, "lhs": "[D", "mode": "n", "rhs": "lua MiniBracketed.diagnostic('first')"}, {"desc": "Conflict backward", "noremap": true, "lhs": "[x", "mode": "x", "rhs": "lua MiniBracketed.conflict('backward')"}, {"desc": "Conflict backward", "noremap": true, "lhs": "[x", "mode": "n", "rhs": "lua MiniBracketed.conflict('backward')"}, {"desc": "Conflict first", "noremap": true, "lhs": "[X", "mode": "x", "rhs": "lua MiniBracketed.conflict('first')"}, {"desc": "Conflict first", "noremap": true, "lhs": "[X", "mode": "n", "rhs": "lua MiniBracketed.conflict('first')"}, {"desc": "Comment backward", "noremap": true, "lhs": "[c", "mode": "x", "rhs": "lua MiniBracketed.comment('backward')"}, {"desc": "Comment backward", "noremap": true, "lhs": "[c", "mode": "n", "rhs": "lua MiniBracketed.comment('backward')"}, {"desc": "Comment first", "noremap": true, "lhs": "[C", "mode": "x", "rhs": "lua MiniBracketed.comment('first')"}, {"desc": "Comment first", "noremap": true, "lhs": "[C", "mode": "n", "rhs": "lua MiniBracketed.comment('first')"}, {"desc": "Buffer first", "noremap": true, "lhs": "[B", "mode": "n", "rhs": "lua MiniBracketed.buffer('first')"}, {"desc": "Buffer backward", "noremap": true, "lhs": "[b", "mode": "n", "rhs": "lua MiniBracketed.buffer('backward')"}, {"desc": "Diagnostic backward", "noremap": true, "lhs": "[d", "mode": "n", "rhs": "lua MiniBracketed.diagnostic('backward')"}, {"desc": "Edit", "noremap": true, "lhs": "[e", "mode": "n", "rhs": "g;"}, {"desc": "Jump backward", "noremap": true, "lhs": "[j", "mode": "n", "rhs": "lua MiniBracketed.jump('backward')"}, {"desc": "", "noremap": false, "lhs": "[%", "mode": "x", "rhs": "(MatchitVisualMultiBackward)"}, {"desc": "", "noremap": false, "lhs": "[%", "mode": "n", "rhs": "(MatchitNormalMultiBackward)"}, {"desc": "Previous Trouble/Quickfix Item", "noremap": true, "lhs": "[q", "mode": "n", "rhs": ""}, {"desc": "", "noremap": false, "lhs": "\\\\c", "mode": "x", "rhs": "(VM-Visual-Cursors)"}, {"desc": "", "noremap": false, "lhs": "\\\\gS", "mode": "n", "rhs": "(VM-Reselect-Last)"}, {"desc": "", "noremap": false, "lhs": "\\\\/", "mode": "n", "rhs": "(VM-Start-Regex-Search)"}, {"desc": "", "noremap": false, "lhs": "\\\\\\", "mode": "n", "rhs": "(VM-Add-Cursor-At-Pos)"}, {"desc": "", "noremap": false, "lhs": "\\\\a", "mode": "x", "rhs": "(VM-Visual-Add)"}, {"desc": "", "noremap": false, "lhs": "\\\\f", "mode": "x", "rhs": "(VM-Visual-Find)"}, {"desc": "", "noremap": false, "lhs": "\\\\/", "mode": "x", "rhs": "(VM-Visual-Regex)"}, {"desc": "", "noremap": false, "lhs": "\\\\A", "mode": "x", "rhs": "(VM-Visual-All)"}, {"desc": "", "noremap": false, "lhs": "\\\\A", "mode": "n", "rhs": "(VM-Select-All)"}, {"desc": "Undo forward", "noremap": true, "lhs": "]u", "mode": "n", "rhs": "lua MiniBracketed.undo('forward')"}, {"desc": "Undo last", "noremap": true, "lhs": "]U", "mode": "n", "rhs": "lua MiniBracketed.undo('last')"}, {"desc": "Treesitter forward", "noremap": true, "lhs": "]n", "mode": "x", "rhs": "lua MiniBracketed.treesitter('forward')"}, {"desc": "Treesitter forward", "noremap": true, "lhs": "]n", "mode": "n", "rhs": "lua MiniBracketed.treesitter('forward')"}, {"desc": "Treesitter last", "noremap": true, "lhs": "]N", "mode": "x", "rhs": "lua MiniBracketed.treesitter('last')"}, {"desc": "Treesitter last", "noremap": true, "lhs": "]N", "mode": "n", "rhs": "lua MiniBracketed.treesitter('last')"}, {"desc": "Location forward", "noremap": true, "lhs": "]l", "mode": "n", "rhs": "lua MiniBracketed.location('forward')"}, {"desc": "Location last", "noremap": true, "lhs": "]L", "mode": "n", "rhs": "lua MiniBracketed.location('last')"}, {"desc": "Oldfile forward", "noremap": true, "lhs": "]o", "mode": "n", "rhs": "lua MiniBracketed.oldfile('forward')"}, {"desc": "Oldfile last", "noremap": true, "lhs": "]O", "mode": "n", "rhs": "lua MiniBracketed.oldfile('last')"}, {"desc": "Jump last", "noremap": true, "lhs": "]J", "mode": "n", "rhs": "lua MiniBracketed.jump('last')"}, {"desc": "Indent forward", "noremap": true, "lhs": "]i", "mode": "x", "rhs": "lua MiniBracketed.indent('forward')"}, {"desc": "Indent forward", "noremap": true, "lhs": "]i", "mode": "n", "rhs": "lua MiniBracketed.indent('forward')"}, {"desc": "Indent last", "noremap": true, "lhs": "]I", "mode": "x", "rhs": "lua MiniBracketed.indent('last')"}, {"desc": "Indent last", "noremap": true, "lhs": "]I", "mode": "n", "rhs": "lua MiniBracketed.indent('last')"}, {"desc": "Diagnostic forward", "noremap": true, "lhs": "]d", "mode": "x", "rhs": "lua MiniBracketed.diagnostic('forward')"}, {"desc": "Diagnostic last", "noremap": true, "lhs": "]D", "mode": "x", "rhs": "lua MiniBracketed.diagnostic('last')"}, {"desc": "Diagnostic last", "noremap": true, "lhs": "]D", "mode": "n", "rhs": "lua MiniBracketed.diagnostic('last')"}, {"desc": "Conflict forward", "noremap": true, "lhs": "]x", "mode": "x", "rhs": "lua MiniBracketed.conflict('forward')"}, {"desc": "Conflict forward", "noremap": true, "lhs": "]x", "mode": "n", "rhs": "lua MiniBracketed.conflict('forward')"}, {"desc": "Conflict last", "noremap": true, "lhs": "]X", "mode": "x", "rhs": "lua MiniBracketed.conflict('last')"}, {"desc": "Conflict last", "noremap": true, "lhs": "]X", "mode": "n", "rhs": "lua MiniBracketed.conflict('last')"}, {"desc": "Comment forward", "noremap": true, "lhs": "]c", "mode": "x", "rhs": "lua MiniBracketed.comment('forward')"}, {"desc": "Comment forward", "noremap": true, "lhs": "]c", "mode": "n", "rhs": "lua MiniBracketed.comment('forward')"}, {"desc": "Comment last", "noremap": true, "lhs": "]C", "mode": "x", "rhs": "lua MiniBracketed.comment('last')"}, {"desc": "Comment last", "noremap": true, "lhs": "]C", "mode": "n", "rhs": "lua MiniBracketed.comment('last')"}, {"desc": "Buffer last", "noremap": true, "lhs": "]B", "mode": "n", "rhs": "lua MiniBracketed.buffer('last')"}, {"desc": "Buffer forward", "noremap": true, "lhs": "]b", "mode": "n", "rhs": "lua MiniBracketed.buffer('forward')"}, {"desc": "Diagnostic forward", "noremap": true, "lhs": "]d", "mode": "n", "rhs": "lua MiniBracketed.diagnostic('forward')"}, {"desc": "Edit", "noremap": true, "lhs": "]e", "mode": "n", "rhs": "g,"}, {"desc": "Jump forward", "noremap": true, "lhs": "]j", "mode": "n", "rhs": "lua MiniBracketed.jump('forward')"}, {"desc": "", "noremap": false, "lhs": "]%", "mode": "x", "rhs": "(MatchitVisualMultiForward)"}, {"desc": "", "noremap": false, "lhs": "]%", "mode": "n", "rhs": "(MatchitNormalMultiForward)"}, {"desc": "Next Trouble/Quickfix Item", "noremap": true, "lhs": "]q", "mode": "n", "rhs": ""}, {"desc": "Around last textobject", "noremap": false, "lhs": "al", "mode": "x", "rhs": ""}, {"desc": "Around next textobject", "noremap": false, "lhs": "an", "mode": "x", "rhs": ""}, {"desc": "Around textobject", "noremap": false, "lhs": "a", "mode": "x", "rhs": ""}, {"desc": "", "noremap": false, "lhs": "a%", "mode": "x", "rhs": "(MatchitVisualTextObject)"}, {"desc": "Change without replacing clipboad", "noremap": true, "lhs": "c", "mode": "n", "rhs": "\"_c"}, {"desc": "Delete without replacing clipboad", "noremap": true, "lhs": "d", "mode": "n", "rhs": "\"_d"}, {"desc": "", "noremap": true, "lhs": "f", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "f", "mode": "n", "rhs": ""}, {"desc": "Put yanked text after selection", "noremap": true, "lhs": "gp", "mode": "x", "rhs": "(YankyGPutAfter)"}, {"desc": "Put yanked text after selection", "noremap": true, "lhs": "gp", "mode": "n", "rhs": "(YankyGPutAfter)"}, {"desc": "Put yanked text before selection", "noremap": true, "lhs": "gP", "mode": "n", "rhs": "(YankyGPutBefore)"}, {"desc": "Put yanked text before selection", "noremap": true, "lhs": "gP", "mode": "x", "rhs": "(YankyGPutBefore)"}, {"desc": "Highlight next surrounding", "noremap": true, "lhs": "gshn", "mode": "n", "rhs": ""}, {"desc": "Find next left surrounding", "noremap": true, "lhs": "gsFn", "mode": "n", "rhs": ""}, {"desc": "Find next right surrounding", "noremap": true, "lhs": "gsfn", "mode": "n", "rhs": ""}, {"desc": "Replace next surrounding", "noremap": true, "lhs": "gsrn", "mode": "n", "rhs": ""}, {"desc": "Delete next surrounding", "noremap": true, "lhs": "gsdn", "mode": "n", "rhs": ""}, {"desc": "Highlight previous surrounding", "noremap": true, "lhs": "gshl", "mode": "n", "rhs": ""}, {"desc": "Find previous left surrounding", "noremap": true, "lhs": "gsFl", "mode": "n", "rhs": ""}, {"desc": "Find previous right surrounding", "noremap": true, "lhs": "gsfl", "mode": "n", "rhs": ""}, {"desc": "Replace previous surrounding", "noremap": true, "lhs": "gsrl", "mode": "n", "rhs": ""}, {"desc": "Delete previous surrounding", "noremap": true, "lhs": "gsdl", "mode": "n", "rhs": ""}, {"desc": "Add surrounding to selection", "noremap": true, "lhs": "gsa", "mode": "x", "rhs": ":lua MiniSurround.add('visual')"}, {"desc": "Update `MiniSurround.config.n_lines`", "noremap": true, "lhs": "gsn", "mode": "n", "rhs": ""}, {"desc": "Highlight surrounding", "noremap": true, "lhs": "gsh", "mode": "n", "rhs": ""}, {"desc": "Find left surrounding", "noremap": true, "lhs": "gsF", "mode": "n", "rhs": ""}, {"desc": "Find right surrounding", "noremap": true, "lhs": "gsf", "mode": "n", "rhs": ""}, {"desc": "Replace surrounding", "noremap": true, "lhs": "gsr", "mode": "n", "rhs": ""}, {"desc": "Delete surrounding", "noremap": true, "lhs": "gsd", "mode": "n", "rhs": ""}, {"desc": "Add surrounding", "noremap": true, "lhs": "gsa", "mode": "n", "rhs": ""}, {"desc": "Move to right \"around\"", "noremap": false, "lhs": "g]", "mode": "x", "rhs": ""}, {"desc": "Move to right \"around\"", "noremap": false, "lhs": "g]", "mode": "n", "rhs": ""}, {"desc": "Move to left \"around\"", "noremap": false, "lhs": "g[", "mode": "x", "rhs": ""}, {"desc": "Move to left \"around\"", "noremap": false, "lhs": "g[", "mode": "n", "rhs": ""}, {"desc": "", "noremap": false, "lhs": "g%", "mode": "x", "rhs": "(MatchitVisualBackward)"}, {"desc": "", "noremap": false, "lhs": "g%", "mode": "n", "rhs": "(MatchitNormalBackward)"}, {"desc": "Beginning of line", "noremap": true, "lhs": "gh", "mode": "x", "rhs": "^"}, {"desc": "Beginning of line", "noremap": true, "lhs": "gh", "mode": "n", "rhs": "^"}, {"desc": "End of line", "noremap": true, "lhs": "gl", "mode": "x", "rhs": "$"}, {"desc": "End of line", "noremap": true, "lhs": "gl", "mode": "n", "rhs": "$"}, {"desc": "Comment line", "noremap": true, "lhs": "gcc", "mode": "n", "rhs": ""}, {"desc": "Comment selection", "noremap": true, "lhs": "gc", "mode": "x", "rhs": ""}, {"desc": "Comment", "noremap": true, "lhs": "gc", "mode": "n", "rhs": ""}, {"desc": "Opens filepath or URI under cursor with the system handler (file explorer, web browser, …)", "noremap": true, "lhs": "gx", "mode": "x", "rhs": ""}, {"desc": "Opens filepath or URI under cursor with the system handler (file explorer, web browser, …)", "noremap": true, "lhs": "gx", "mode": "n", "rhs": ""}, {"desc": "Inside last textobject", "noremap": false, "lhs": "il", "mode": "x", "rhs": ""}, {"desc": "Inside next textobject", "noremap": false, "lhs": "in", "mode": "x", "rhs": ""}, {"desc": "Inside textobject", "noremap": false, "lhs": "i", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "j", "mode": "v", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "j", "mode": "n", "rhs": "v:count == 0 ? 'gj' : 'j'"}, {"desc": "", "noremap": true, "lhs": "k", "mode": "v", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "k", "mode": "n", "rhs": "v:count == 0 ? 'gk' : 'k'"}, {"desc": "Next search result", "noremap": true, "lhs": "n", "mode": "x", "rhs": "'Nn'[v:searchforward]"}, {"desc": "Next search result", "noremap": true, "lhs": "n", "mode": "n", "rhs": "'Nn'[v:searchforward]"}, {"desc": "Put yanked text after cursor", "noremap": true, "lhs": "p", "mode": "x", "rhs": "(YankyPutAfter)"}, {"desc": "Put yanked text after cursor", "noremap": true, "lhs": "p", "mode": "n", "rhs": "(YankyPutAfter)"}, {"desc": "", "noremap": true, "lhs": "t", "mode": "x", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "t", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "u", "mode": "n", "rhs": "ulua MiniBracketed.register_undo_state()"}, {"desc": "Cut without replacing clipboad", "noremap": true, "lhs": "x", "mode": "n", "rhs": "\"_x"}, {"desc": "", "noremap": true, "lhs": "x", "mode": "x", "rhs": "\"_x"}, {"desc": "Yank text", "noremap": true, "lhs": "y", "mode": "n", "rhs": "(YankyYank)"}, {"desc": "Yank text", "noremap": true, "lhs": "y", "mode": "x", "rhs": "(YankyYank)"}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "(YankyCycleForward)"}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "(YankyCycleBackward)"}, {"desc": "", "noremap": false, "lhs": "", "mode": "x", "rhs": "(VM-Find-Subword-Under)"}, {"desc": "", "noremap": false, "lhs": "", "mode": "n", "rhs": "(VM-Select-l)"}, {"desc": "", "noremap": false, "lhs": "", "mode": "n", "rhs": "(VM-Select-h)"}, {"desc": "Multi Edit Next", "noremap": true, "lhs": "", "mode": "n", "rhs": ":call vm#commands#ctrln(v:count1)"}, {"desc": "Add Cursor Down", "noremap": true, "lhs": "", "mode": "n", "rhs": ":call vm#commands#add_cursor_up(0, v:count1)"}, {"desc": "Add Cursor Down", "noremap": true, "lhs": "", "mode": "n", "rhs": ":call vm#commands#add_cursor_down(0, v:count1)"}, {"desc": "Add Cursor Up", "noremap": true, "lhs": "", "mode": "n", "rhs": ":call vm#commands#add_cursor_up(0, v:count1)"}, {"desc": "Add Cursor Down", "noremap": true, "lhs": "", "mode": "n", "rhs": ":call vm#commands#add_cursor_down(0, v:count1)"}, {"desc": "Move line up", "noremap": true, "lhs": "", "mode": "n", "rhs": "lua MiniMove.move_line('up')"}, {"desc": "Move line down", "noremap": true, "lhs": "", "mode": "n", "rhs": "lua MiniMove.move_line('down')"}, {"desc": "Move line right", "noremap": true, "lhs": "", "mode": "n", "rhs": "lua MiniMove.move_line('right')"}, {"desc": "Move line left", "noremap": true, "lhs": "", "mode": "n", "rhs": "lua MiniMove.move_line('left')"}, {"desc": "Move up", "noremap": true, "lhs": "", "mode": "x", "rhs": "lua MiniMove.move_selection('up')"}, {"desc": "Move down", "noremap": true, "lhs": "", "mode": "x", "rhs": "lua MiniMove.move_selection('down')"}, {"desc": "Move right", "noremap": true, "lhs": "", "mode": "x", "rhs": "lua MiniMove.move_selection('right')"}, {"desc": "Move left", "noremap": true, "lhs": "", "mode": "x", "rhs": "lua MiniMove.move_selection('left')"}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "lua MiniBracketed.register_undo_state()"}, {"desc": "Previous Buffer", "noremap": true, "lhs": "", "mode": "n", "rhs": "bprevious"}, {"desc": "Find browser", "noremap": true, "lhs": "", "mode": "n", "rhs": "Telescope file_browser"}, {"desc": "Find Files", "noremap": true, "lhs": "", "mode": "n", "rhs": "Telescope find_files"}, {"desc": "", "noremap": false, "lhs": "", "mode": "n", "rhs": "(VM-Add-Cursor-Up)"}, {"desc": "Increase window width", "noremap": true, "lhs": "", "mode": "n", "rhs": "vertical resize +10"}, {"desc": "Decrease window width", "noremap": true, "lhs": "", "mode": "n", "rhs": "vertical resize -10"}, {"desc": "", "noremap": false, "lhs": "", "mode": "n", "rhs": "(VM-Add-Cursor-Down)"}, {"desc": "Move Left", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "Move Down", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "Move Up", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "Previous Pane", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "zz"}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "zz"}, {"desc": "Save File", "noremap": true, "lhs": "", "mode": "n", "rhs": "up"}, {"desc": "", "noremap": true, "lhs": "", "mode": "n", "rhs": "ggVG"}, {"desc": "Show diagnostics under the cursor", "noremap": false, "lhs": "", "mode": "n", "rhs": "d"}, {"desc": "Show diagnostics under the cursor", "noremap": true, "lhs": "d", "mode": "n", "rhs": ""}, {"desc": "Move Right", "noremap": true, "lhs": "", "mode": "n", "rhs": ""}], "treesitterParsers": ["bash", "c", "cpp", "css", "html", "java", "javascript", "json", "liquid", "lua", "markdown", "markdown_inline", "python", "scss", "toml", "tsx", "typescript", "vim", "vimdoc"], "lspServers": ["basedpyright", "bashls", "clangd", "emmet_ls", "jdtls", "lua_ls", "ruff", "tailwindcss", "tsserver"], "leaderKey": ""} \ No newline at end of file diff --git a/lua/configs/lsp.lua b/lua/configs/lsp.lua index 24897b4..f0380b7 100644 --- a/lua/configs/lsp.lua +++ b/lua/configs/lsp.lua @@ -1,109 +1,143 @@ -local lspconfig = require("lspconfig") +-- Define nvim-lspconfig LSP servers here +local lsp_servers = { + 'basedpyright', + 'lua_ls', + 'tsserver', + 'tailwindcss', + 'emmet_ls', + 'bashls', + 'jdtls', + 'clangd', +} + +local lspconfig = require('lspconfig') + -- import cmp-nvim-lsp plugin -local cmp_nvim_lsp = require("cmp_nvim_lsp") +local cmp_nvim_lsp = require('cmp_nvim_lsp') + -- import mason_lspconfig plugin -local mason_lspconfig = require("mason-lspconfig") +local mason_lspconfig = require('mason-lspconfig') + local keymap = vim.keymap -- for conciseness -vim.api.nvim_create_autocmd("LspAttach", { - group = vim.api.nvim_create_augroup("UserLspConfig", {}), - callback = function(ev) - -- Buffer local mappings. - -- See `:help vim.lsp.*` for documentation on any of the below functions - local opts = { buffer = ev.buf, silent = true } +vim.api.nvim_create_autocmd('LspAttach', { + group = vim.api.nvim_create_augroup('UserLspConfig', {}), + callback = function(ev) + -- Buffer local mappings. + -- See `:help vim.lsp.*` for documentation on any of the below functions + local opts = { buffer = ev.buf, silent = true } - -- set keybinds - opts.desc = "Show LSP references" - keymap.set("n", "lR", "Telescope lsp_references", opts) -- show definition, references + -- set keybinds + opts.desc = 'Show LSP references' + keymap.set('n', 'lR', 'Telescope lsp_references', opts) -- show definition, references - opts.desc = "Go to declaration" - keymap.set("n", "lD", vim.lsp.buf.declaration, opts) -- go to declaration + opts.desc = 'Go to declaration' + keymap.set('n', 'lD', vim.lsp.buf.declaration, opts) -- go to declaration - opts.desc = "Inlay hint" - keymap.set( - "n", - "lh", - "lua vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())", - opts - ) + opts.desc = 'Inlay hint' + keymap.set( + 'n', + 'lh', + 'lua vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())', + opts + ) - opts.desc = "Show LSP definitions" - keymap.set("n", "ld", "Telescope lsp_definitions", opts) -- show lsp definitions + opts.desc = 'Show LSP definitions' + keymap.set('n', 'ld', 'Telescope lsp_definitions', opts) -- show lsp definitions - opts.desc = "Show LSP implementations" - keymap.set("n", "li", "Telescope lsp_implementations", opts) -- show lsp implementations + opts.desc = 'Show LSP implementations' + keymap.set('n', 'li', 'Telescope lsp_implementations', opts) -- show lsp implementations - opts.desc = "Show LSP type definitions" - keymap.set("n", "lt", "Telescope lsp_type_definitions", opts) -- show lsp type definitions + opts.desc = 'Show LSP type definitions' + keymap.set('n', 'lt', 'Telescope lsp_type_definitions', opts) -- show lsp type definitions - opts.desc = "See available code actions" - keymap.set({ "n", "v" }, "ca", vim.lsp.buf.code_action, opts) -- see available code actions, in visual mode will apply to selection + opts.desc = 'See available code actions' + keymap.set({ 'n', 'v' }, 'ca', vim.lsp.buf.code_action, opts) -- see available code actions, in visual mode will apply to selection - opts.desc = "Smart rename" - keymap.set("n", "mR", vim.lsp.buf.rename, opts) -- smart rename + opts.desc = 'Smart rename' + keymap.set('n', 'mR', vim.lsp.buf.rename, opts) -- smart rename - opts.desc = "Show buffer diagnostics" - keymap.set("n", "lD", "Telescope diagnostics bufnr=0", opts) -- show diagnostics for file + opts.desc = 'Show buffer diagnostics' + keymap.set('n', 'lD', 'Telescope diagnostics bufnr=0', opts) -- show diagnostics for file - opts.desc = "Show line diagnostics" - keymap.set("n", "ld", vim.diagnostic.open_float, opts) -- show diagnostics for line + opts.desc = 'Show line diagnostics' + keymap.set('n', 'ld', vim.diagnostic.open_float, opts) -- show diagnostics for line - opts.desc = "Show documentation for what is under cursor" - keymap.set("n", "K", vim.lsp.buf.hover, opts) -- show documentation for what is under cursor + opts.desc = 'Show documentation for what is under cursor' + keymap.set('n', 'K', vim.lsp.buf.hover, opts) -- show documentation for what is under cursor - opts.desc = "Restart LSP" - keymap.set("n", "ls", ":LspRestart", opts) -- mapping to restart lsp if necessary - end, + opts.desc = 'Restart LSP' + keymap.set('n', 'ls', ':LspRestart', opts) -- mapping to restart lsp if necessary + end, }) -- used to enable autocompletion (assign to every lsp server config) local capabilities = cmp_nvim_lsp.default_capabilities() -- Change the Diagnostic symbols in the sign column (gutter) -local signs = { Error = " ", Warn = " ", Hint = "󰠠 ", Info = " " } +local signs = { Error = ' ', Warn = ' ', Hint = '󰠠 ', Info = ' ' } for type, icon in pairs(signs) do - local hl = "DiagnosticSign" .. type - vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" }) + local hl = 'DiagnosticSign' .. type + vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = '' }) end -mason_lspconfig.setup_handlers({ - -- default handler for installed servers - function(server_name) - lspconfig[server_name].setup({ - capabilities = capabilities, - }) - end, - - ["lua_ls"] = function() - -- configure lua server (with special settings) - lspconfig["lua_ls"].setup({ - capabilities = capabilities, - settings = { - Lua = { - -- make the language server recognize "vim" global - diagnostics = { - globals = { "vim" }, - }, - hint = { enable = true }, - completion = { - callSnippet = "Replace", - }, - }, - }, - }) - end, - ["basedpyright"] = function() - -- configure pyright server (with special settings) - lspconfig["basedpyright"].setup({ - capabilities = capabilities, - settings = { - python = { - hint = { enable = true }, - }, - }, - handlers = { - ["textDocument/publishDiagnostics"] = function() end, - }, - }) - end, +-- Set Mason LSPs Here +mason_lspconfig.setup({ + ensure_installed = lsp_servers, + automatic_installation = true, + handlers = { + -- default handler for installed servers + function(server_name) + lspconfig[server_name].setup({ + capabilities = capabilities, + }) + end, + ['lua_ls'] = function() + -- configure lua server (with special settings) + lspconfig['lua_ls'].setup({ + capabilities = capabilities, + settings = { + Lua = { + -- make the language server recognize "vim" global + diagnostics = { + globals = { 'vim' }, + }, + hint = { enable = true }, + completion = { + callSnippet = 'Replace', + }, + }, + }, + }) + end, + ['basedpyright'] = function() + -- configure pyright server (with special settings) + lspconfig['basedpyright'].setup({ + capabilities = capabilities, + settings = { + python = { + hint = { enable = true }, + }, + }, + handlers = { + ['textDocument/publishDiagnostics'] = function() end, + }, + }) + end, + ['emmet_ls'] = function() + -- configure emmet language server + lspconfig['emmet_ls'].setup({ + capabilities = capabilities, + filetypes = { + 'html', + 'javascript', + 'typescript', + 'javascriptreact', + 'typescriptreact', + 'css', + 'less', + }, + }) + end, + }, }) diff --git a/lua/configs/mason.lua b/lua/configs/mason.lua index 2c79626..1c188f4 100644 --- a/lua/configs/mason.lua +++ b/lua/configs/mason.lua @@ -16,6 +16,7 @@ mason.setup({ }) mason_lspconfig.setup({ + automatic_installation = true, -- list of servers for mason to install ensure_installed = { 'tsserver', @@ -23,12 +24,12 @@ mason_lspconfig.setup({ 'basedpyright', 'jdtls', 'bashls', - 'jsonls', 'clangd', }, }) mason_tool_installer.setup({ + run_on_start = true, ensure_installed = { 'prettier', -- prettier formatter 'stylua', -- lua formatter @@ -38,5 +39,6 @@ mason_tool_installer.setup({ 'ruff', -- python linter 'mypy', -- type checking 'eslint_d', --js linter + 'shfmt', -- shell formatter }, }) diff --git a/lua/core/function.lua b/lua/core/function.lua new file mode 100644 index 0000000..8a1a739 --- /dev/null +++ b/lua/core/function.lua @@ -0,0 +1,126 @@ +local vim = vim + +local X = {} + +---@param on_attach fun(client, buffer) +function X.on_attach(on_attach) + vim.api.nvim_create_autocmd("LspAttach", { + callback = function(args) + local buffer = args.buf + local client = vim.lsp.get_client_by_id(args.data.client_id) + on_attach(client, buffer) + end, + }) +end + +function X.starts_with(str, start) + return str:sub(1, #start) == start +end + +function X.is_table(to_check) + return type(to_check) == "table" +end + +function X.has_key(t, key) + for t_key, _ in pairs(t) do + if t_key == key then + return true + end + end + return false +end + +function X.has_value(t, val) + for _, value in ipairs(t) do + if value == val then + return true + end + end + return false +end + +function X.tprint(table) + print(vim.inspect(table)) +end + +function X.tprint_keys(table) + for k in pairs(table) do + print(k) + end +end + +X.reload = function() + local presentReload, reload = pcall(require, "plenary.reload") + if presentReload then + local counter = 0 + + for moduleName in pairs(package.loaded) do + if X.starts_with(moduleName, "lt.") then + reload.reload_module(moduleName) + counter = counter + 1 + end + end + -- clear nvim-mapper keys + vim.g.mapper_records = nil + vim.notify("Reloaded " .. counter .. " modules!") + end +end + +function X.is_macunix() + return vim.fn.has("macunix") +end + +function X.link_highlight(from, to, override) + local hl_exists, _ = pcall(vim.api.nvim_get_hl_by_name, from, false) + if override or not hl_exists then + -- vim.cmd(("highlight link %s %s"):format(from, to)) + vim.api.nvim_set_hl(0, from, { link = to }) + end +end + +X.highlight = function(group, opts) + vim.api.nvim_set_hl(0, group, opts) +end + +X.highlight_bg = function(group, col) + vim.api.nvim_set_hl(0, group, { bg = col }) +end + +-- Define fg color +-- @param group Group +-- @param color Color +X.highlight_fg = function(group, col) + vim.api.nvim_set_hl(0, group, { fg = col }) +end + +-- Define bg and fg color +-- @param group Group +-- @param fgcol Fg Color +-- @param bgcol Bg Color +X.highlight_fg_bg = function(group, fgcol, bgcol) + vim.api.nvim_set_hl(0, group, { bg = bgcol, fg = fgcol }) +end + +X.from_highlight = function(hl) + local result = {} + local list = vim.api.nvim_get_hl_by_name(hl, true) + for k, v in pairs(list) do + local name = k == "background" and "bg" or "fg" + result[name] = string.format("#%06x", v) + end + return result +end + +X.get_color_from_terminal = function(num, default) + local key = "terminal_color_" .. num + return vim.g[key] and vim.g[key] or default +end + +X.cmd = function(name, command, desc) + vim.api.nvim_create_user_command(name, command, desc) +end + +X.autocmd = function(evt, opts) + vim.api.nvim_create_autocmd(evt, opts) +end +return X \ No newline at end of file diff --git a/lua/lock.json b/lua/lock.json index 2f9c2ce..f4b0080 100644 --- a/lua/lock.json +++ b/lua/lock.json @@ -29,8 +29,10 @@ "lspsaga.nvim": { "branch": "main", "commit": "4ce44df854f447cf0a8972e5387b3aeb5efc798b" }, "lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" }, "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, + "mason-conform.nvim": { "branch": "main", "commit": "abce2be529f3b4b336c56d0ba6336a9144e0fee6" }, "mason-lock.nvim": { "branch": "main", "commit": "86614f76c3442fba1c5c8d79aa1efcb3ad69de1c" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "482350b050bd413931c2cdd4857443c3da7d57cb" }, + "mason-nvim-lint": { "branch": "main", "commit": "b579a00ee39dcd590b1023028dc8fb3d203a67b0" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "c5e07b8ff54187716334d585db34282e46fa2932" }, "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, "mini.files": { "branch": "main", "commit": "7ed15315247775b4c5fcfaf4c8fe45d3a0dde9ad" }, @@ -54,7 +56,6 @@ "nvim-lspconfig": { "branch": "master", "commit": "911167921d49cd5c1c9b2436031d0da3945e787f" }, "nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, - "nvim-recorder": { "branch": "main", "commit": "ce96792c1ff750977fc3affc56f0561b0c20a7e2" }, "nvim-spectre": { "branch": "master", "commit": "ba7fb777edff6c1fbbeffd343e113af64c04e90a" }, "nvim-treesitter": { "branch": "master", "commit": "397982d197768ebdefc0e2db396d95c4d371ca86" }, "nvim-treesitter-context": { "branch": "master", "commit": "0f3332788e0bd37716fbd25f39120dcfd557c90f" }, diff --git a/lua/mason-lock.json b/lua/mason-lock.json new file mode 100644 index 0000000..dbdcb99 --- /dev/null +++ b/lua/mason-lock.json @@ -0,0 +1,28 @@ +{ + "basedpyright": "1.17.0", + "bash-language-server": "5.4.0", + "black": "24.8.0", + "clang-format": "18.1.8", + "clangd": "18.1.3", + "codespell": "2.3.0", + "cpplint": "1.6.1", + "cspell": "8.14.2", + "emmet-ls": "0.4.2", + "eslint_d": "14.0.3", + "isort": "5.13.2", + "jdtls": "v1.38.0", + "lua-language-server": "3.10.5", + "markdownlint": "0.41.0", + "mypy": "1.11.2", + "phpcs": "3.10.2", + "prettier": "3.3.3", + "pylint": "3.2.6", + "ruff": "0.6.2", + "selene": "0.27.1", + "shfmt": "v3.9.0", + "stylua": "v0.20.0", + "tailwindcss-language-server": "0.0.23", + "trivy": "v0.54.1", + "typescript-language-server": "4.3.3" +} + diff --git a/lua/plugins/extra.lua b/lua/plugins/extra.lua index e5a7af9..2e2d7a2 100644 --- a/lua/plugins/extra.lua +++ b/lua/plugins/extra.lua @@ -21,7 +21,11 @@ return { { 'zapling/mason-lock.nvim', cmd = { 'MasonLock', 'MasonLockRestore' }, - opts = {}, + config = function() + require('mason-lock').setup({ + lockfile_path = vim.fn.stdpath('config') .. '/lua/mason-lock.json', -- (default) + }) + end, }, { '2kabhishek/nerdy.nvim', diff --git a/lua/plugins/formater.lua b/lua/plugins/formater.lua index ef48cb5..b6d3701 100644 --- a/lua/plugins/formater.lua +++ b/lua/plugins/formater.lua @@ -1,10 +1,27 @@ +-- Define conform.nvim formatting servers here +local formatting_servers = { + 'prettier', + 'isort', + 'clang-format', + 'black', + 'stylua', + 'shfmt', + 'php-cs-fixer', + 'google-java-formatter', + 'codespell', +} + return { 'stevearc/conform.nvim', - enabled = true, + dependencies = { 'zapling/mason-conform.nvim' }, event = { 'BufReadPre', 'BufNewFile' }, + cmd = { 'ConformInfo' }, config = function() local conform = require('conform') - + require('mason-conform').setup({ + ensure_installed = formatting_servers, + automatic_installation = true, + }) conform.setup({ formatters_by_ft = { cpp = { 'clang-format' }, @@ -17,7 +34,7 @@ return { html = { 'prettier' }, json = { 'prettier' }, yaml = { 'prettier' }, - markdown = { 'prettier' }, + markdown = { 'prettier', 'markdownlint' }, lua = { 'stylua' }, python = { 'isort', 'black' }, php = { 'php-cs-fixer' }, @@ -26,6 +43,8 @@ return { liquid = { 'prettier' }, bash = { 'shfmt' }, sh = { 'shfmt' }, + ['*'] = { 'codespell' }, + ['_'] = { 'trim_whitespace' }, }, format_on_save = function(bufnr) -- Disable with a global or buffer-local variable diff --git a/lua/plugins/lint.lua b/lua/plugins/lint.lua index 88baac4..c53bf4f 100644 --- a/lua/plugins/lint.lua +++ b/lua/plugins/lint.lua @@ -1,8 +1,30 @@ +-- Define nvim-lint linters here +local linting_servers = { + 'cpplint', + 'eslint_d', + 'cspell', + 'ruff', + 'mypy', + 'trivy', + 'phpcs', + 'markdownlint', +} + return { 'mfussenegger/nvim-lint', + dependencies = { + 'rshkarin/mason-nvim-lint', + }, event = { 'BufReadPre', 'BufNewFile' }, - opts = { - linters_by_ft = { + + config = function() + local lint = require('lint') + require('mason-nvim-lint').setup({ + ensure_installed = linting_servers, + automatic_installation = true, + }) + + lint.linters_by_ft = { lua = { 'selene' }, cpp = { 'cpplint' }, c = { 'cpplint' }, @@ -14,12 +36,9 @@ return { markdown = { 'markdownlint' }, java = { 'trivy' }, php = { 'phpcs' }, - }, - }, - config = function() - local lint = require('lint') - local lint_augroup = vim.api.nvim_create_augroup('lint', { clear = true }) + } + local lint_augroup = vim.api.nvim_create_augroup('lint', { clear = true }) vim.api.nvim_create_autocmd({ 'BufEnter', 'BufWritePost', 'InsertLeave' }, { group = lint_augroup, callback = function() diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index ad6878b..2fd3a31 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -5,6 +5,7 @@ return { dependencies = { 'hrsh7th/cmp-nvim-lsp', { 'antosha417/nvim-lsp-file-operations', config = true }, + 'williamboman/mason-lspconfig.nvim', }, config = function() require('configs.lsp') @@ -13,12 +14,20 @@ return { { 'williamboman/mason.nvim', cmd = { 'Mason', 'MasonInstall', 'MasonInstallAll', 'MasonUpdate' }, - dependencies = { - 'williamboman/mason-lspconfig.nvim', - 'WhoIsSethDaniel/mason-tool-installer.nvim', - }, config = function() - require('mason').setup() + -- import mason + local mason = require('mason') + + -- enable mason and configure icons + mason.setup({ + ui = { + icons = { + package_installed = '✓', + package_pending = '➜', + package_uninstalled = '✗', + }, + }, + }) end, }, -- { diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua index 6f7a9e1..e5613b8 100644 --- a/lua/plugins/treesitter.lua +++ b/lua/plugins/treesitter.lua @@ -72,12 +72,10 @@ return { end, }, { - { - 'nvim-treesitter/nvim-treesitter-context', - event = 'VeryLazy', - config = function() - require('treesitter-context').setup({ mode = 'cursor', max_lines = 3 }) - end, - }, + 'nvim-treesitter/nvim-treesitter-context', + event = 'VeryLazy', + config = function() + require('treesitter-context').setup({ mode = 'cursor', max_lines = 3 }) + end, }, } diff --git a/mason-lock.json b/mason-lock.json deleted file mode 100644 index be5ff1e..0000000 --- a/mason-lock.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "actionlint": "v1.7.1", - "bash-language-server": "5.4.0", - "biome": "1.8.3", - "black": "24.8.0", - "clang-format": "18.1.8", - "clangd": "18.1.3", - "css-lsp": "4.10.0", - "emmet-ls": "0.4.2", - "eslint-lsp": "4.10.0", - "eslint_d": "14.0.3", - "google-java-format": "v1.23.0", - "graphql-language-service-cli": "3.5.0", - "hadolint": "v2.12.0", - "html-lsp": "4.10.0", - "isort": "5.13.2", - "jdtls": "v1.38.0", - "json-lsp": "4.10.0", - "lua-language-server": "3.10.5", - "markdownlint": "0.41.0", - "prettier": "3.3.3", - "prettierd": "0.25.3", - "pylint": "3.2.6", - "pyright": "1.1.377", - "python-lsp-server": "1.12.0", - "selene": "0.27.1", - "shfmt": "v3.9.0", - "stylua": "v0.20.0", - "tailwindcss-language-server": "0.0.23", - "trivy": "v0.54.1", - "typescript-language-server": "4.3.3", - "typos-lsp": "v0.1.22", - "vim-language-server": "2.3.1", - "vint": "0.3.21" -} \ No newline at end of file