-- Use Lazy.nvim as the plugin manager local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then local lazyrepo = "https://github.com/folke/lazy.nvim.git" local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) if vim.v.shell_error ~= 0 then vim.api.nvim_echo({ { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, { out, "WarningMsg" }, { "\nPress any key to exit..." }, }, true, {}) vim.fn.getchar() os.exit(1) end end vim.opt.rtp:prepend(lazypath) -- Clipboard vim.opt.clipboard = "unnamedplus" -- use system clipboard -- Searching vim.opt.incsearch = true -- search as characters are entered vim.opt.hlsearch = true -- do not highlight matches vim.opt.ignorecase = true -- ignore case in searches by default vim.opt.smartcase = true -- but make it case sensitive if an uppercase is entered -- Tab width vim.opt.tabstop = 4 -- number of visual spaces per TAB vim.opt.softtabstop = 4 -- number of spacesin tab when editing vim.opt.shiftwidth = 4 -- insert 4 spaces on a tab vim.opt.expandtab = true -- tabs are spaces, mainly because of python -- Leader and Local Leader vim.g.mapleader = " " -- set leader key to space vim.g.maplocalleader = "\\" -- set local leader key to space local vscode = require("vscode") vim.notify = vscode.notify -- Code Folding local fold = { unfoldAll = function() vscode.action("editor.unfoldAll") end, foldAll = function() vscode.action("editor.foldAll") end, toggleFold = function() vscode.action("editor.toggleFold") end, } vim.keymap.set("n", "zR", fold.unfoldAll, { desc = "Fold All" }) vim.keymap.set("n", "zM", fold.foldAll, { desc = "Unfold All" }) vim.keymap.set("n", "za", fold.toggleFold, { desc = "Toggle Fold" }) -- Toggle VSCode Zen Mode local zenMode = { toggle = function() vscode.action("workbench.action.toggleZenMode") end, } vim.keymap.set("n", "z", zenMode.toggle, { desc = "Toggle Zen Mode" }) -- Toggle VSCode Sidebar local sidebar = { toggleVisibility = function() vscode.action("workbench.action.toggleSidebarVisibility") end, togglePosition = function() vscode.action("workbench.action.toggleSidebarPosition") end, open = function () -- vscode.action("workbench.action.quickOpen") -- vscode.action("workbench.action.quickOpenNavigateNextInFilePicker") -- vscode.action("workbench.action.quickOpenSelectNext") -- vscode.action("workbench.action.quickOpenPreviousRecentlyUsedEditor") vscode.action("workbench.view.explorer") end } vim.keymap.set("n", "b", sidebar.toggleVisibility, { desc = "Toggle Sidebar Vidibility" }) vim.keymap.set("n", "B", sidebar.togglePosition, { desc = "Toggle Sidebar Position" }) vim.keymap.set("n", "e", sidebar.open, { desc = "Open Explorer" }) -- Toggle Line-Number Mode vim.keymap.set("n", "l", function() local lineNumbMode = vscode.get_config("editor.lineNumbers") if lineNumbMode == "on" then vscode.update_config("editor.lineNumbers", "relative") elseif lineNumbMode == "relative" then vscode.update_config("editor.lineNumbers", "on") else vscode.update_config("editor.lineNumbers", "relative") end end, { desc = "Toggle Line-Number Mode" }) -- -- Use Lazy.nvim as the plugin manager require("lazy").setup({ spec = { -- import your plugins { import = "vscodeplugins" }, }, -- Configure any other settings here. See the documentation for more details. -- colorscheme that will be used when installing plugins. install = { colorscheme = { "habamax" } }, -- automatically check for plugin updates checker = { enabled = true }, })