diff --git a/common/.config/Code/User/settings.json b/common/.config/Code/User/settings.json index 28137da..c9f5d26 100644 --- a/common/.config/Code/User/settings.json +++ b/common/.config/Code/User/settings.json @@ -22,6 +22,7 @@ "editor.insertSpaces": true, "editor.detectIndentation": false, "editor.multiCursorModifier": "ctrlCmd", + "editor.cursorSurroundingLines": 8, "files.trimTrailingWhitespace": true, "files.autoSave": "afterDelay", "files.autoSaveDelay": 1000, @@ -52,13 +53,23 @@ "debug.onTaskErrors": "debugAnyway", // NeoVIM - // "keyboard.dispatch": "keyCode", // Hack to make CAPS->Esc remap work on Ubuntu - // "extensions.experimental.affinity": { - // "asvetliakov.vscode-neovim": 1 - // }, - // "vscode-neovim.logLevel": "warn", + "keyboard.dispatch": "keyCode", // Hack to make CAPS->Esc remap work on Ubuntu + "extensions.experimental.affinity": { + "asvetliakov.vscode-neovim": 1 + }, // "vscode-neovim.neovimExecutablePaths.linux": "/home/linuxbrew/.linuxbrew/bin/nvim", // "vscode-neovim.useWSL": true, + // https://github.com/vscode-neovim/vscode-neovim/wiki/Settings#search-result-border + "vscode-neovim.highlightGroups.highlights": { + "IncSearch": { + "borderStyle": "solid", + "borderWidth": "1px" + }, + "Search": { + "borderStyle": "solid", + "borderWidth": "1px" + } + }, // // Prettier Plugin diff --git a/common/.config/nvim/lua/config/keymaps.lua b/common/.config/nvim/lua/config/keymaps.lua index a50a534..d522fa7 100644 --- a/common/.config/nvim/lua/config/keymaps.lua +++ b/common/.config/nvim/lua/config/keymaps.lua @@ -1,6 +1,7 @@ -- Load Keybindings from VIM local vim_mappings = os.getenv("HOME") .. "/.vim/key_maps.vim" -if vim.loop.fs_stat(vim_mappings) then +local util = require("config.util") +if vim.loop.fs_stat(vim_mappings) and util.is_not_vscode() then vim.cmd("source " .. vim_mappings) end @@ -43,8 +44,10 @@ vim.keymap.set("i", ";", ";u", { desc = "Auto add undo breakpoints on ';'" vim.keymap.set("i", "\r", "\ru", { desc = "Auto add undo breakpoints on new lines" }) -- Traverse Buffer -vim.keymap.set("n", "", "bnext", { desc = "Switch to next buffer" }) -vim.keymap.set("n", "", "bprevious", { desc = "Switch to previous buffer" }) +if require("config.util").is_not_vscode() then + vim.keymap.set("n", "", "bnext", { desc = "Switch to next buffer" }) + vim.keymap.set("n", "", "bprevious", { desc = "Switch to previous buffer" }) +end -- Save file vim.keymap.set({ "i", "x", "n", "s" }, "", "w", { desc = "Save file" }) diff --git a/common/.config/nvim/lua/config/util.lua b/common/.config/nvim/lua/config/util.lua index 03294f5..1e79df0 100644 --- a/common/.config/nvim/lua/config/util.lua +++ b/common/.config/nvim/lua/config/util.lua @@ -98,6 +98,10 @@ local M = { }, } +function M.is_not_vscode() + return not vim.g.vscode +end + function M.fg(name) ---@type {foreground?:number}? ---@diagnostic disable-next-line: deprecated diff --git a/common/.config/nvim/lua/plugins/code-completion.lua b/common/.config/nvim/lua/plugins/code-completion.lua index 5f92a7c..44055d5 100644 --- a/common/.config/nvim/lua/plugins/code-completion.lua +++ b/common/.config/nvim/lua/plugins/code-completion.lua @@ -5,6 +5,7 @@ return { { -- Autocompletion "hrsh7th/nvim-cmp", + cond = require("config.util").is_not_vscode(), dependencies = { -- Snippet Engine & its associated nvim-cmp source "L3MON4D3/LuaSnip", @@ -76,6 +77,7 @@ return { { "L3MON4D3/LuaSnip", + cond = require("config.util").is_not_vscode(), keys = { { "", diff --git a/common/.config/nvim/lua/plugins/code-db.lua b/common/.config/nvim/lua/plugins/code-db.lua index 102ef5c..11782b7 100644 --- a/common/.config/nvim/lua/plugins/code-db.lua +++ b/common/.config/nvim/lua/plugins/code-db.lua @@ -5,6 +5,7 @@ end return { { "tpope/vim-dadbod", + cond = require("config.util").is_not_vscode(), opt = true, dependencies = { { "kristijanhusak/vim-dadbod-ui" }, diff --git a/common/.config/nvim/lua/plugins/code-debug.lua b/common/.config/nvim/lua/plugins/code-debug.lua index e6c8240..005fe73 100644 --- a/common/.config/nvim/lua/plugins/code-debug.lua +++ b/common/.config/nvim/lua/plugins/code-debug.lua @@ -3,6 +3,7 @@ return { "mfussenegger/nvim-dap", + cond = require("config.util").is_not_vscode(), dependencies = { -- Creates a beautiful debugger UI "rcarriga/nvim-dap-ui", diff --git a/common/.config/nvim/lua/plugins/code-formatting.lua b/common/.config/nvim/lua/plugins/code-formatting.lua index 9d3144a..b708f3f 100644 --- a/common/.config/nvim/lua/plugins/code-formatting.lua +++ b/common/.config/nvim/lua/plugins/code-formatting.lua @@ -1,6 +1,7 @@ return { { "stevearc/conform.nvim", + -- cond = require("config.util").is_not_vscode(), lazy = true, event = { "BufReadPre", "BufNewFile" }, config = function() diff --git a/common/.config/nvim/lua/plugins/code-generic.lua b/common/.config/nvim/lua/plugins/code-generic.lua index 8428fe9..aa171bf 100644 --- a/common/.config/nvim/lua/plugins/code-generic.lua +++ b/common/.config/nvim/lua/plugins/code-generic.lua @@ -14,6 +14,7 @@ return { -- "gc" to comment visual regions/lines { "numToStr/Comment.nvim", + cond = require("config.util").is_not_vscode(), config = function() require("Comment").setup({ pre_hook = function() @@ -26,6 +27,7 @@ return { -- Better code folding { "kevinhwang91/nvim-ufo", + cond = require("config.util").is_not_vscode(), event = "VeryLazy", dependencies = { "kevinhwang91/promise-async", @@ -114,6 +116,7 @@ return { -- indent guides for Neovim { "lukas-reineke/indent-blankline.nvim", + cond = require("config.util").is_not_vscode(), opts = { indent = { char = "│", tab_char = "│" }, scope = { enabled = false }, @@ -139,6 +142,7 @@ return { -- Highlights the current level of indentation, and animates the highlighting. { "echasnovski/mini.indentscope", + cond = require("config.util").is_not_vscode(), opts = { symbol = "│", options = { try_as_border = true } }, init = function() vim.api.nvim_create_autocmd("FileType", { @@ -281,6 +285,7 @@ return { -- Inlay hints { "lvimuser/lsp-inlayhints.nvim", + cond = require("config.util").is_not_vscode(), config = function() require("lsp-inlayhints").setup() @@ -304,6 +309,7 @@ return { -- LspSaga { "nvimdev/lspsaga.nvim", + cond = require("config.util").is_not_vscode(), dependencies = { "nvim-treesitter/nvim-treesitter", "nvim-tree/nvim-web-devicons", @@ -412,6 +418,7 @@ return { -- Refactor code: Refactoring book by Martin Fowler { "ThePrimeagen/refactoring.nvim", + cond = require("config.util").is_not_vscode(), event = { "BufReadPre", "BufNewFile" }, dependencies = { "nvim-lua/plenary.nvim", diff --git a/common/.config/nvim/lua/plugins/code-git.lua b/common/.config/nvim/lua/plugins/code-git.lua index 0116479..f8bad38 100644 --- a/common/.config/nvim/lua/plugins/code-git.lua +++ b/common/.config/nvim/lua/plugins/code-git.lua @@ -2,6 +2,7 @@ return { -- Better fugitive: neogit { "NeogitOrg/neogit", + cond = require("config.util").is_not_vscode(), dependencies = { "nvim-lua/plenary.nvim", "sindrets/diffview.nvim", @@ -30,6 +31,7 @@ return { -- Adds git related signs to the gutter, as well as utilities for managing changes { "lewis6991/gitsigns.nvim", + cond = require("config.util").is_not_vscode(), opts = { -- See `:help gitsigns.txt` signs = { @@ -109,6 +111,7 @@ return { -- Git worktree { "ThePrimeagen/git-worktree.nvim", + cond = require("config.util").is_not_vscode(), config = function() -- FIX: Open files do NOT get replaced with the changed branch require("telescope").load_extension("git_worktree") diff --git a/common/.config/nvim/lua/plugins/code-lsp.lua b/common/.config/nvim/lua/plugins/code-lsp.lua index bcd2c6b..8f20705 100644 --- a/common/.config/nvim/lua/plugins/code-lsp.lua +++ b/common/.config/nvim/lua/plugins/code-lsp.lua @@ -33,6 +33,7 @@ return { { -- LSP Configuration & Plugins "neovim/nvim-lspconfig", + cond = require("config.util").is_not_vscode(), dependencies = { -- Automatically install LSPs to stdpath for neovim { "williamboman/mason.nvim", config = true }, @@ -46,6 +47,7 @@ return { { "williamboman/mason-lspconfig.nvim", + cond = require("config.util").is_not_vscode(), config = function() -- Configure LSP @@ -64,6 +66,7 @@ return { workspace = { checkThirdParty = false }, telemetry = { enable = false }, completion = { callSnippet = "Replace" }, + hint = { enable = true }, -- NOTE: toggle below to ignore Lua_LS's noisy `missing-fields` warnings -- diagnostics = { disable = { 'missing-fields' } }, }, @@ -95,7 +98,7 @@ return { }, typescript = { inlayHints = { - -- includeInlayParameterNameHints = 'all', + includeInlayParameterNameHints = "all", includeInlayParameterNameHintsWhenArgumentMatchesName = false, includeInlayFunctionParameterTypeHints = true, includeInlayVariableTypeHints = true, @@ -107,7 +110,7 @@ return { }, javascript = { inlayHints = { - -- includeInlayParameterNameHints = 'all', + includeInlayParameterNameHints = "all", includeInlayParameterNameHintsWhenArgumentMatchesName = false, includeInlayFunctionParameterTypeHints = true, includeInlayVariableTypeHints = true, @@ -173,6 +176,7 @@ return { { "j-hui/fidget.nvim", + cond = require("config.util").is_not_vscode(), opts = { progress = { poll_rate = 1, -- How and when to poll for progress messages diff --git a/common/.config/nvim/lua/plugins/code-testing.lua b/common/.config/nvim/lua/plugins/code-testing.lua index 6772a0e..959339d 100644 --- a/common/.config/nvim/lua/plugins/code-testing.lua +++ b/common/.config/nvim/lua/plugins/code-testing.lua @@ -3,11 +3,12 @@ return { -- Taken from LazyVim { "nvim-neotest/neotest", + cond = require("config.util").is_not_vscode(), dependencies = { "nvim-lua/plenary.nvim", "antoinemadec/FixCursorHold.nvim", "nvim-treesitter/nvim-treesitter", - "marilari88/neotest-vitest" + "marilari88/neotest-vitest", }, opts = { -- Do NOT add adapters here @@ -31,8 +32,7 @@ return { virtual_text = { format = function(diagnostic) -- Replace newline and tab characters with space for more compact diagnostics - local message = diagnostic.message:gsub("\n", " "):gsub("\t", " "):gsub("%s+", " "):gsub("^%s+", - "") + local message = diagnostic.message:gsub("\n", " "):gsub("\t", " "):gsub("%s+", " "):gsub("^%s+", "") return message end, }, diff --git a/common/.config/nvim/lua/plugins/navigate-files.lua b/common/.config/nvim/lua/plugins/navigate-files.lua index 9fe5f5f..0395f17 100644 --- a/common/.config/nvim/lua/plugins/navigate-files.lua +++ b/common/.config/nvim/lua/plugins/navigate-files.lua @@ -114,6 +114,7 @@ return { -- File Explorer: Neotree { "nvim-neo-tree/neo-tree.nvim", + cond = require("config.util").is_not_vscode(), branch = "v3.x", keys = { { "e", "Neotree filesystem toggle", desc = "Open NeoTree Explorer at Git root", remap = true }, @@ -206,6 +207,7 @@ return { -- Telescope: Fuzzy Finder (files, lsp, etc) { "nvim-telescope/telescope.nvim", + cond = require("config.util").is_not_vscode(), branch = "0.1.x", dependencies = { "nvim-lua/plenary.nvim", diff --git a/common/.config/nvim/lua/plugins/ui.lua b/common/.config/nvim/lua/plugins/ui.lua index 5f14323..dbff39a 100644 --- a/common/.config/nvim/lua/plugins/ui.lua +++ b/common/.config/nvim/lua/plugins/ui.lua @@ -1,18 +1,28 @@ return { -- icons - { "nvim-tree/nvim-web-devicons" }, + { + "nvim-tree/nvim-web-devicons", + cond = require("config.util").is_not_vscode(), + }, -- ui components - { "MunifTanjim/nui.nvim" }, + { + "MunifTanjim/nui.nvim", + cond = require("config.util").is_not_vscode(), + }, -- Better vim.ui - { "stevearc/dressing.nvim" }, + { + "stevearc/dressing.nvim", + cond = require("config.util").is_not_vscode(), + }, { "machakann/vim-highlightedyank" }, -- colorscheme { "projekt0n/github-nvim-theme", + cond = require("config.util").is_not_vscode(), lazy = false, priority = 1000, config = function() @@ -23,6 +33,7 @@ return { -- Show buffers like VS Code tabs { "akinsho/bufferline.nvim", + cond = require("config.util").is_not_vscode(), dependencies = { { "echasnovski/mini.bufremove", version = "*" }, }, @@ -72,6 +83,7 @@ return { -- Better `vim.notify()` { "rcarriga/nvim-notify", + cond = require("config.util").is_not_vscode(), keys = { { "xn", @@ -106,6 +118,7 @@ return { -- Completely replaces the UI for messages, cmdline and the popupmenu. { "folke/noice.nvim", + cond = require("config.util").is_not_vscode(), event = "VeryLazy", dependencies = { "MunifTanjim/nui.nvim", @@ -177,6 +190,7 @@ return { -- Set lualine as statusline { "nvim-lualine/lualine.nvim", + cond = require("config.util").is_not_vscode(), init = function() vim.g.lualine_laststatus = vim.o.laststatus if vim.fn.argc(-1) > 0 then diff --git a/common/.config/nvim/lua/plugins/utility-plugs.lua b/common/.config/nvim/lua/plugins/utility-plugs.lua index 81d2320..452e907 100644 --- a/common/.config/nvim/lua/plugins/utility-plugs.lua +++ b/common/.config/nvim/lua/plugins/utility-plugs.lua @@ -176,11 +176,15 @@ return { }, -- Navigate between NVIM & Tmux splits seamlessly - { "christoomey/vim-tmux-navigator" }, + { + "christoomey/vim-tmux-navigator", + cond = require("config.util").is_not_vscode(), + }, -- Navigate between NVIM & kitty splits { "knubie/vim-kitty-navigator", + cond = require("config.util").is_not_vscode(), build = "cp ./*.py ~/.config/kitty/", keys = { { "", "KittyNavigateLeft" }, @@ -194,6 +198,7 @@ return { { "mikesmithgh/kitty-scrollback.nvim", lazy = true, + cond = require("config.util").is_not_vscode(), cmd = { "KittyScrollbackGenerateKittens", "KittyScrollbackCheckHealth" }, event = { "User KittyScrollbackLaunch" }, version = "^4.0.0", @@ -210,6 +215,7 @@ return { -- Changes the Nvim root to git root { "airblade/vim-rooter", + cond = require("config.util").is_not_vscode(), config = function() vim.g.rooter_cd_cmd = "tcd" -- Use tcd command to change the root end, @@ -265,6 +271,7 @@ return { -- Speedup loading large files by disabling some plugins { "LunarVim/bigfile.nvim", + cond = require("config.util").is_not_vscode(), lazy = true, opts = { filesize = 2, --2MiB diff --git a/common/.vim/plugin_config.vim b/common/.vim/plugin_config.vim index 5dca333..c3e4f2b 100644 --- a/common/.vim/plugin_config.vim +++ b/common/.vim/plugin_config.vim @@ -7,3 +7,7 @@ let g:NERDTreeWinSize = 25 let g:qs_highlight_on_keys = ['f', 'F', 't', 'T'] let g:qs_accepted_chars = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] +" Quickscope in VSCode +" https://github.com/vscode-neovim/vscode-neovim/wiki/Plugins#quick-scope +highlight QuickScopePrimary guifg='#afff5f' gui=underline ctermfg=155 cterm=underline +highlight QuickScopeSecondary guifg='#5fffff' gui=underline ctermfg=81 cterm=underline