193 lines
5.1 KiB
Lua
193 lines
5.1 KiB
Lua
---- 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("!", "<C-BS>", "<C-w>")
|
|
vim.keymap.set("v", ">", ">gv")
|
|
vim.keymap.set("v", "<", "<gv")
|
|
vim.keymap.set("n", "<C-L>", ":nohlsearch<CR>")
|
|
|
|
---- 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", "<leader>dc", dap.continue)
|
|
-- vim.keymap.set("n", "<leader>do", dap.step_over)
|
|
-- vim.keymap.set("n", "<leader>di", dap.step_into)
|
|
-- vim.keymap.set("n", "<leader>dO", dap.step_out)
|
|
-- vim.keymap.set("n", "<leader>db", dap.toggle_breakpoint)
|
|
-- vim.keymap.set("n", "<leader>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", "<leader>tr", function()
|
|
-- neotest.run.run()
|
|
-- end)
|
|
-- vim.keymap.set("n", "<leader>td", function()
|
|
-- neotest.run.run({ strategy = "dap" })
|
|
-- end)
|
|
-- vim.keymap.set("n", "<leader>tf", function()
|
|
-- neotest.run.run(vim.fn.expand("%"))
|
|
-- end)
|
|
-- vim.keymap.set("n", "<leader>ts", function()
|
|
-- neotest.run.stop()
|
|
-- end)
|
|
-- vim.keymap.set("n", "<leader>tt", function()
|
|
-- neotest.summary.toggle()
|
|
-- end)
|
|
-- end,
|
|
-- })
|