---- General Config ---- vim.opt.mouse = "a" vim.opt.tabstop = 2 vim.opt.shiftwidth = 2 vim.opt.number = true vim.opt.breakindent = true vim.opt.showmatch = true vim.opt.ignorecase = true vim.opt.smartcase = true vim.opt.joinspaces = false vim.opt.showmode = false vim.opt.hidden = true vim.opt.backup = false vim.opt.writebackup = false vim.opt.swapfile = false vim.opt.shortmess:append({ I = true }) -- whichwrap -- left/right keys can traverse up/down vim.opt.whichwrap:append("<,>,[,]") vim.opt.cmdheight = 2 vim.opt.showcmd = true vim.opt.splitright = true vim.opt.splitbelow = true vim.g.mapleader = " " ---- Terminal ---- vim.api.nvim_create_autocmd({ "TermOpen" }, { callback = function() vim.opt_local.number = false end, }) ---- lazy.nvim ---- require("lazy-nvim") ---- Theming ---- vim.opt.termguicolors = true vim.opt.background = "dark" vim.g.gruvbox_italic = true vim.cmd.colorscheme("gruvbox") vim.opt.listchars = { eol = "↲", tab = "▶▹", nbsp = "␣", extends = "…", trail = "•", } ---- Maps ---- vim.keymap.set("!", "", "") vim.keymap.set("v", ">", ">gv") vim.keymap.set("v", "<", "", ":nohlsearch") ---- Filetypes --- -- KDL -- vim.filetype.add({ extension = { kdl = "kdl" } }) -- Markdown -- vim.api.nvim_create_autocmd({ "FileType" }, { pattern = "markdown", callback = function() vim.opt_local.textwidth = 85 vim.opt_local.spell = true end, }) -- YAML -- vim.api.nvim_create_autocmd({ "FileType" }, { pattern = { "yaml", "helm", }, callback = function() vim.opt_local.softtabstop = 2 vim.opt_local.expandtab = true vim.opt_local.foldmethod = "indent" end, }) ---- nvim-dap -- vim.g.dap_loaded = false -- vim.api.nvim_create_autocmd({ "FileType" }, { -- pattern = { "go", "rust" }, -- callback = function() -- vim.g.dap_loaded = true -- vim.cmd("packadd nvim-dap") -- vim.cmd("packadd nvim-dap-ui") -- vim.cmd("packadd nvim-dap-go") -- -- local dap = require("dap") -- vim.fn.sign_define("DapBreakpoint", { text = "🟥", texthl = "", linehl = "", numhl = "" }) -- vim.fn.sign_define("DapStopped", { text = "▶️", texthl = "", linehl = "", numhl = "" }) -- -- Set keymaps to control the debugger -- vim.keymap.set("n", "dc", dap.continue) -- vim.keymap.set("n", "do", dap.step_over) -- vim.keymap.set("n", "di", dap.step_into) -- vim.keymap.set("n", "dO", dap.step_out) -- vim.keymap.set("n", "db", dap.toggle_breakpoint) -- vim.keymap.set("n", "dB", function() -- dap.set_breakpoint(vim.fn.input("Breakpoint condition: ")) -- end) -- local dapui = require("dapui") -- dap.listeners.after.event_initialized["dapui_config"] = function() -- dapui.open() -- end -- dap.listeners.before.event_terminated["dapui_config"] = function() -- dapui.close() -- end -- dap.listeners.before.event_exited["dapui_config"] = function() -- dapui.close() -- end -- dapui.setup() -- -- -- rust -- dap.adapters.lldb = { -- type = 'executable', -- command = '/usr/bin/lldb-vscode', -- name = 'lldb' -- } -- dap.configurations.rust = { -- { -- name = 'Launch', -- type = 'lldb', -- request = 'launch', -- program = function() -- return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') -- end, -- cwd = '${workspaceFolder}', -- stopOnEntry = false, -- args = {}, -- initCommands = function() -- -- Find out where to look for the pretty printer Python module -- local rustc_sysroot = vim.fn.trim(vim.fn.system('rustc --print sysroot')) -- -- local script_import = 'command script import "' .. rustc_sysroot .. '/lib/rustlib/etc/lldb_lookup.py"' -- local commands_file = rustc_sysroot .. '/lib/rustlib/etc/lldb_commands' -- -- local commands = {} -- local file = io.open(commands_file, 'r') -- if file then -- for line in file:lines() do -- table.insert(commands, line) -- end -- file:close() -- end -- table.insert(commands, 1, script_import) -- -- return commands -- end, -- }, -- } -- -- -- nvim-dap-go -- require("dap-go").setup() -- end, -- }) -- -- -- ---- neotest -- vim.g.neotest_loaded = false -- vim.api.nvim_create_autocmd({ "FileType" }, { -- pattern = { "rust" }, -- callback = function() -- if vim.g.neotest_loaded then -- return -- end -- vim.g.neotest_loaded = true -- vim.cmd("packadd nvim-nio") -- vim.cmd("packadd neotest") -- vim.cmd("packadd neotest-rust") -- -- local neotest = require("neotest") -- neotest.setup({ -- adapters = { -- require("neotest-rust") { -- args = { "--no-capture" }, -- dap_adapter = "lldb", -- }, -- }, -- }) -- vim.keymap.set("n", "tr", function() -- neotest.run.run() -- end) -- vim.keymap.set("n", "td", function() -- neotest.run.run({ strategy = "dap" }) -- end) -- vim.keymap.set("n", "tf", function() -- neotest.run.run(vim.fn.expand("%")) -- end) -- vim.keymap.set("n", "ts", function() -- neotest.run.stop() -- end) -- vim.keymap.set("n", "tt", function() -- neotest.summary.toggle() -- end) -- end, -- })