Adjust neovim key mappings and themes, add initial dap configs
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
#### specific prereqs, macos
|
||||
- install the package manager, [homebrew](https://brew.sh/)
|
||||
- for aerospace window manager, have only 1 workspace/desktop
|
||||
- manual settings, refer to [macos-system-settings](ref/macos-system-settings.txt)
|
||||
- manual settings, refer to [ref/macos-system-settings](ref/macos-system-settings.txt)
|
||||
|
||||
### script run
|
||||
- (run these commands from repo's root dir)
|
||||
@@ -19,7 +19,7 @@
|
||||
- NOTE: the `copy_dotfiles.sh` script may not work if ENV vars are not set as expected
|
||||
|
||||
### after script run
|
||||
- complete manual actions specified in [ref/post-run-manual.md](ref/post-run-manual.md)
|
||||
- complete manual actions specified in [ref/post-run-manual](ref/post-run-manual.md)
|
||||
|
||||
### todo items
|
||||
- choose window manager for linux, then configure
|
||||
|
@@ -1,25 +1,17 @@
|
||||
local defaultColorScheme = "tokyodark"
|
||||
|
||||
function SetColorSchemeWrapper(scheme)
|
||||
scheme = scheme or "tokyonight-night"
|
||||
scheme = scheme or defaultColorScheme
|
||||
vim.cmd.colorscheme(scheme)
|
||||
|
||||
-- Allow for transparency -- TODO: do i actually want transparency?
|
||||
vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
|
||||
vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
|
||||
end
|
||||
SetColorSchemeWrapper("tokyonight-night")
|
||||
|
||||
-- TODO: get this working as desired for different file types
|
||||
-- local dsGroup = vim.api.nvim_create_augroup("DavidStandardGroup", { clear = false })
|
||||
-- vim.api.nvim_create_autocmd('BufEnter', {
|
||||
-- group = dsGroup,
|
||||
-- callback = function()
|
||||
-- if vim.bo.filetype == "zig" then
|
||||
-- pcall(SetColorSchemeWrapper, "tokyonight-night")
|
||||
-- else
|
||||
-- pcall(SetColorSchemeWrapper, "rose-pine-main")
|
||||
-- pcall(SetColorSchemeWrapper, "slate")
|
||||
-- pcall(SetColorSchemeWrapper, "sorbet")
|
||||
-- end
|
||||
-- end
|
||||
-- })
|
||||
SetColorSchemeWrapper(defaultColorScheme)
|
||||
--
|
||||
-- SetColorSchemeWrapper("tokyodark")
|
||||
-- SetColorSchemeWrapper("tokyonight-night")
|
||||
-- SetColorSchemeWrapper("bamboo-vulgaris")
|
||||
-- SetColorSchemeWrapper("rose-pine-main")
|
||||
-- SetColorSchemeWrapper("gruvbox")
|
||||
-- SetColorSchemeWrapper("slate")
|
||||
-- SetColorSchemeWrapper("sorbet")
|
||||
|
||||
|
@@ -61,6 +61,36 @@ vim.keymap.set("n", "<C-l>", [[<C-w>l]])
|
||||
-- vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz")
|
||||
-- vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz")
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
-- debugger and debugging ui
|
||||
|
||||
local dap = require("dap")
|
||||
vim.keymap.set("n", "<leader>bc", dap.continue, { desc = "debug: continue" })
|
||||
vim.keymap.set("n", "<leader>bi", dap.step_into, { desc = "debug: step into" })
|
||||
vim.keymap.set("n", "<leader>bo", dap.step_over, { desc = "debug: step over" })
|
||||
vim.keymap.set("n", "<leader>bu", dap.step_out, { desc = "debug: step out" })
|
||||
vim.keymap.set("n", "<leader>blb", dap.list_breakpoints, { desc = "debug: list breakpoints" })
|
||||
vim.keymap.set("n", "<leader>bt", dap.toggle_breakpoint, { desc = "debug: toggle breakpoint" })
|
||||
vim.keymap.set("n", "<leader>bb", dap.set_breakpoint, { desc = "debug: set breakpoint" })
|
||||
|
||||
vim.keymap.set("n", "<leader>bB", function()
|
||||
dap.set_breakpoint(vim.fn.input("breakpoint condition: "))
|
||||
end, { desc = "debug: set conditional breakpoint" })
|
||||
|
||||
vim.keymap.set("n", "<leader>bq", function()
|
||||
dap.terminate() require("dapui").close() require("nvim-dap-virtual-text").toggle()
|
||||
end, { desc = "debug: quit debugger" })
|
||||
|
||||
-- TODO: decide if i want these or others, add if so
|
||||
-- vim.keymap.set("n", "<leader>zxcv", dap.repl.open, { desc = "open REPL" })
|
||||
-- vim.keymap.set("n", "<leader>zxcv", dap.run_last, { desc = "run last" })
|
||||
-- vim.keymap.set("n", "<leader>zxcv", dap.set_exception_breakpoints({ "all" }), { desc = "set exception breakpoints" })
|
||||
-- local dapWidgets = require('dap.ui.widgets')
|
||||
-- vim.keymap.set({'n', 'v'}, '<leader>zxcv', dapWidgets.hover)
|
||||
-- vim.keymap.set({'n', 'v'}, '<leader>zxcv', dapWidgets.preview)
|
||||
-- vim.keymap.set('n', '<leader>zxcv', function() dapWidgets.centered_float(dapWidgets.frames) end)
|
||||
-- vim.keymap.set('n', '<leader>zxcv', function() dapWidgets.centered_float(dapWidgets.scopes) end)
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
-- lsp
|
||||
|
||||
@@ -85,28 +115,20 @@ kmgAutocmd('LspAttach', {
|
||||
-- plugins
|
||||
|
||||
-- telescope
|
||||
local builtin = require('telescope.builtin')
|
||||
local tscBuiltin = require('telescope.builtin')
|
||||
local custom_tscope_grep = function()
|
||||
builtin.grep_string({ search = vim.fn.input("grep > ")})
|
||||
tscBuiltin.grep_string({ search = vim.fn.input("grep > ")})
|
||||
end
|
||||
vim.keymap.set('n', '<leader>ft', builtin.live_grep, {
|
||||
desc = 'Telescope find text (live_grep)'
|
||||
})
|
||||
vim.keymap.set('n', '<leader>fT', custom_tscope_grep, {
|
||||
desc = 'Telescope find text (grep_string)'
|
||||
})
|
||||
vim.keymap.set('n', '<leader>fg', builtin.git_files, {
|
||||
desc = 'Telescope find git-tracked files'
|
||||
})
|
||||
vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = 'Telescope find files' })
|
||||
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' })
|
||||
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
|
||||
vim.keymap.set('n', '<leader>ft', tscBuiltin.live_grep, { desc = 'tscope find text, live_grep' })
|
||||
vim.keymap.set('n', '<leader>fT', custom_tscope_grep, { desc = 'tscope find text, custom grep' })
|
||||
vim.keymap.set('n', '<leader>fg', tscBuiltin.git_files, { desc = 'tscope find git-tracked files' })
|
||||
vim.keymap.set('n', '<leader>ff', tscBuiltin.find_files, { desc = 'tscope find files' })
|
||||
vim.keymap.set('n', '<leader>fb', tscBuiltin.buffers, { desc = 'tscope buffers' })
|
||||
vim.keymap.set('n', '<leader>fh', tscBuiltin.help_tags, { desc = 'tscope help tags' })
|
||||
|
||||
-- harpoon
|
||||
local harpoon = require("harpoon")
|
||||
vim.keymap.set("n", "<leader>hl", function()
|
||||
harpoon.ui:toggle_quick_menu(harpoon:list())
|
||||
end)
|
||||
vim.keymap.set("n", "<leader>hl", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end)
|
||||
vim.keymap.set("n", "<leader>ha", function() harpoon:list():add() end)
|
||||
vim.keymap.set("n", "<leader>hA", function() harpoon:list():prepend() end)
|
||||
vim.keymap.set("n", "<leader>hn", function() harpoon:list():next() end)
|
||||
|
@@ -3,6 +3,7 @@ return {
|
||||
{
|
||||
"ellisonleao/gruvbox.nvim",
|
||||
name = "gruvbox",
|
||||
-- lazy = false,
|
||||
-- priority = 1000,
|
||||
opts = {
|
||||
terminal_colors = true, -- add neovim terminal colors
|
||||
@@ -45,7 +46,28 @@ return {
|
||||
colors.hint = colors.orange
|
||||
colors.error = "#ff0000"
|
||||
colors.fg_gutter = "#9098B8"
|
||||
end
|
||||
end,
|
||||
},
|
||||
}
|
||||
},
|
||||
{
|
||||
"tiagovla/tokyodark.nvim",
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
opts = {
|
||||
custom_highlights = function(highlights, _palette)
|
||||
highlights.Comment['fg'] = "#8a9097"
|
||||
highlights.LineNr['fg'] = "#8088A8"
|
||||
return highlights
|
||||
end,
|
||||
},
|
||||
},
|
||||
{
|
||||
'ribru17/bamboo.nvim',
|
||||
-- lazy = false,
|
||||
-- priority = 1000,
|
||||
config = function()
|
||||
require('bamboo').setup { }
|
||||
require('bamboo').load()
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
128
src_files/.config/nvim/lua/plugins_lazy/dap.lua
Normal file
128
src_files/.config/nvim/lua/plugins_lazy/dap.lua
Normal file
@@ -0,0 +1,128 @@
|
||||
return {
|
||||
{
|
||||
"mfussenegger/nvim-dap",
|
||||
config = function()
|
||||
local dap = require("dap")
|
||||
dap.set_log_level("DEBUG")
|
||||
|
||||
dap.adapters.codelldb = {
|
||||
type = "executable",
|
||||
command = "codelldb",
|
||||
}
|
||||
|
||||
local dapConfigArgsInput = function()
|
||||
return vim.split(vim.fn.input("args: "), " ")
|
||||
end
|
||||
|
||||
local dapConfigProgramSelect = function()
|
||||
local co = coroutine.running()
|
||||
|
||||
require('telescope.pickers').new({}, {
|
||||
prompt_title = "debug executable",
|
||||
finder = require('telescope.finders').new_oneshot_job({
|
||||
"find", ".", "-type", "f", "-perm", "+100", "-exec", "realpath", "{}", "+"
|
||||
}),
|
||||
sorter = require('telescope.sorters').get_fuzzy_file(),
|
||||
attach_mappings = function(prompt_bufnr, _map)
|
||||
local tscopeActions = require('telescope.actions')
|
||||
tscopeActions.select_default:replace(function()
|
||||
tscopeActions.close(prompt_bufnr)
|
||||
local chosenFile = require('telescope.actions.state').get_selected_entry().value
|
||||
coroutine.resume(co, chosenFile)
|
||||
end)
|
||||
return true
|
||||
end,
|
||||
}):find()
|
||||
|
||||
return coroutine.yield()
|
||||
end
|
||||
|
||||
dap.configurations.cpp = {
|
||||
{
|
||||
name = "default c/cpp: launch",
|
||||
type = "codelldb",
|
||||
request = "launch",
|
||||
cwd = "${workspaceFolder}",
|
||||
program = dapConfigProgramSelect,
|
||||
stopOnEntry = false,
|
||||
},
|
||||
-- {
|
||||
-- name = "default c/cpp: attach to lldbserver :1234",
|
||||
-- type = "codelldb",
|
||||
-- request = "attach",
|
||||
-- cwd = "${workspaceFolder}",
|
||||
-- program = dapConfigProgramSelect,
|
||||
-- MIMode = "lldb",
|
||||
-- miDebuggerServerAddress = "localhost:1234",
|
||||
-- miDebuggerPath = "/usr/bin/lldb",
|
||||
-- },
|
||||
}
|
||||
dap.configurations.c = dap.configurations.cpp
|
||||
dap.configurations.go = {
|
||||
{
|
||||
name = "go: launch",
|
||||
type = "delve",
|
||||
request = "launch",
|
||||
program = dapConfigProgramSelect,
|
||||
args = dapConfigArgsInput,
|
||||
outputMode = "remote",
|
||||
},
|
||||
{
|
||||
name = "go: launch current file",
|
||||
type = "delve",
|
||||
request = "launch",
|
||||
program = "${file}",
|
||||
args = dapConfigArgsInput,
|
||||
outputMode = "remote",
|
||||
},
|
||||
}
|
||||
end,
|
||||
},
|
||||
{
|
||||
"rcarriga/nvim-dap-ui",
|
||||
dependencies = {
|
||||
"mfussenegger/nvim-dap",
|
||||
"nvim-neotest/nvim-nio",
|
||||
},
|
||||
config = function()
|
||||
local dap = require("dap")
|
||||
local dap_ui = require("dapui")
|
||||
dap_ui.setup()
|
||||
dap.listeners.before.attach.dapui_config = function() dap_ui.open() end
|
||||
dap.listeners.before.launch.dapui_config = function() dap_ui.open() end
|
||||
dap.listeners.before.event_terminated.dapui_config = function() dap_ui.close() end
|
||||
dap.listeners.before.event_exited.dapui_config = function() dap_ui.close() end
|
||||
end,
|
||||
},
|
||||
{
|
||||
"jay-babu/mason-nvim-dap.nvim", -- TODO: here, or handle manually outside of neovim?
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
"mfussenegger/nvim-dap",
|
||||
"neovim/nvim-lspconfig",
|
||||
},
|
||||
config = function()
|
||||
require("mason-nvim-dap").setup({
|
||||
ensure_installed = {
|
||||
"codelldb",
|
||||
-- "delve",
|
||||
},
|
||||
automatic_installation = true,
|
||||
handlers = {
|
||||
function(config) require("mason-nvim-dap").default_setup(config) end,
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"theHamsta/nvim-dap-virtual-text",
|
||||
dependencies = {
|
||||
"mfussenegger/nvim-dap",
|
||||
},
|
||||
-- TODO: disabled by default, keymapping to toggle
|
||||
-- config = function()
|
||||
-- local dap_virtual_text = require("nvim-dap-virtual-text")
|
||||
-- dap_virtual_text.setup()
|
||||
-- end,
|
||||
},
|
||||
}
|
@@ -9,9 +9,8 @@ return {
|
||||
"hrsh7th/cmp-path",
|
||||
"hrsh7th/cmp-cmdline",
|
||||
"hrsh7th/nvim-cmp",
|
||||
-- snippets, using luasnip for now
|
||||
"L3MON4D3/LuaSnip",
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
"L3MON4D3/LuaSnip", -- snippets, using luasnip for now
|
||||
"saadparwaiz1/cmp_luasnip", -- snippets, using luasnip for now
|
||||
},
|
||||
|
||||
config = function()
|
||||
@@ -115,7 +114,7 @@ return {
|
||||
},
|
||||
})
|
||||
|
||||
-- TODO: enables needed? or does neovim/nvim-lspconfig cover by default?
|
||||
-- TODO: needed? seems like neovim/nvim-lspconfig covers by default
|
||||
-- vim.lsp.enable('clangd')
|
||||
-- vim.lsp.enable('ruby_lsp')
|
||||
-- vim.lsp.enable('standardrb')
|
||||
|
@@ -40,5 +40,5 @@ vim.opt.undofile = true
|
||||
vim.g.netrw_browse_split = 0
|
||||
vim.g.netrw_preview = 1
|
||||
vim.g.netrw_banner = 0
|
||||
vim.g.netrw_winsize = 25
|
||||
vim.g.netrw_winsize = 50
|
||||
|
||||
|
Reference in New Issue
Block a user