Adjust neovim key mappings and themes, add initial dap configs
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
#### specific prereqs, macos
|
#### specific prereqs, macos
|
||||||
- install the package manager, [homebrew](https://brew.sh/)
|
- install the package manager, [homebrew](https://brew.sh/)
|
||||||
- for aerospace window manager, have only 1 workspace/desktop
|
- 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
|
### script run
|
||||||
- (run these commands from repo's root dir)
|
- (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
|
- NOTE: the `copy_dotfiles.sh` script may not work if ENV vars are not set as expected
|
||||||
|
|
||||||
### after script run
|
### 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
|
### todo items
|
||||||
- choose window manager for linux, then configure
|
- choose window manager for linux, then configure
|
||||||
|
@@ -1,25 +1,17 @@
|
|||||||
|
local defaultColorScheme = "tokyodark"
|
||||||
|
|
||||||
function SetColorSchemeWrapper(scheme)
|
function SetColorSchemeWrapper(scheme)
|
||||||
scheme = scheme or "tokyonight-night"
|
scheme = scheme or defaultColorScheme
|
||||||
vim.cmd.colorscheme(scheme)
|
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
|
end
|
||||||
SetColorSchemeWrapper("tokyonight-night")
|
|
||||||
|
|
||||||
-- TODO: get this working as desired for different file types
|
SetColorSchemeWrapper(defaultColorScheme)
|
||||||
-- local dsGroup = vim.api.nvim_create_augroup("DavidStandardGroup", { clear = false })
|
--
|
||||||
-- vim.api.nvim_create_autocmd('BufEnter', {
|
-- SetColorSchemeWrapper("tokyodark")
|
||||||
-- group = dsGroup,
|
-- SetColorSchemeWrapper("tokyonight-night")
|
||||||
-- callback = function()
|
-- SetColorSchemeWrapper("bamboo-vulgaris")
|
||||||
-- if vim.bo.filetype == "zig" then
|
-- SetColorSchemeWrapper("rose-pine-main")
|
||||||
-- pcall(SetColorSchemeWrapper, "tokyonight-night")
|
-- SetColorSchemeWrapper("gruvbox")
|
||||||
-- else
|
-- SetColorSchemeWrapper("slate")
|
||||||
-- pcall(SetColorSchemeWrapper, "rose-pine-main")
|
-- SetColorSchemeWrapper("sorbet")
|
||||||
-- pcall(SetColorSchemeWrapper, "slate")
|
|
||||||
-- pcall(SetColorSchemeWrapper, "sorbet")
|
|
||||||
-- end
|
|
||||||
-- end
|
|
||||||
-- })
|
|
||||||
|
|
||||||
|
@@ -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>k", "<cmd>lnext<CR>zz")
|
||||||
-- vim.keymap.set("n", "<leader>j", "<cmd>lprev<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
|
-- lsp
|
||||||
|
|
||||||
@@ -85,28 +115,20 @@ kmgAutocmd('LspAttach', {
|
|||||||
-- plugins
|
-- plugins
|
||||||
|
|
||||||
-- telescope
|
-- telescope
|
||||||
local builtin = require('telescope.builtin')
|
local tscBuiltin = require('telescope.builtin')
|
||||||
local custom_tscope_grep = function()
|
local custom_tscope_grep = function()
|
||||||
builtin.grep_string({ search = vim.fn.input("grep > ")})
|
tscBuiltin.grep_string({ search = vim.fn.input("grep > ")})
|
||||||
end
|
end
|
||||||
vim.keymap.set('n', '<leader>ft', builtin.live_grep, {
|
vim.keymap.set('n', '<leader>ft', tscBuiltin.live_grep, { desc = 'tscope find text, live_grep' })
|
||||||
desc = 'Telescope 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>fT', custom_tscope_grep, {
|
vim.keymap.set('n', '<leader>ff', tscBuiltin.find_files, { desc = 'tscope find files' })
|
||||||
desc = 'Telescope find text (grep_string)'
|
vim.keymap.set('n', '<leader>fb', tscBuiltin.buffers, { desc = 'tscope buffers' })
|
||||||
})
|
vim.keymap.set('n', '<leader>fh', tscBuiltin.help_tags, { desc = 'tscope help tags' })
|
||||||
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' })
|
|
||||||
|
|
||||||
-- harpoon
|
-- harpoon
|
||||||
local harpoon = require("harpoon")
|
local harpoon = require("harpoon")
|
||||||
vim.keymap.set("n", "<leader>hl", function()
|
vim.keymap.set("n", "<leader>hl", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end)
|
||||||
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():add() end)
|
||||||
vim.keymap.set("n", "<leader>hA", function() harpoon:list():prepend() end)
|
vim.keymap.set("n", "<leader>hA", function() harpoon:list():prepend() end)
|
||||||
vim.keymap.set("n", "<leader>hn", function() harpoon:list():next() end)
|
vim.keymap.set("n", "<leader>hn", function() harpoon:list():next() end)
|
||||||
|
@@ -3,6 +3,7 @@ return {
|
|||||||
{
|
{
|
||||||
"ellisonleao/gruvbox.nvim",
|
"ellisonleao/gruvbox.nvim",
|
||||||
name = "gruvbox",
|
name = "gruvbox",
|
||||||
|
-- lazy = false,
|
||||||
-- priority = 1000,
|
-- priority = 1000,
|
||||||
opts = {
|
opts = {
|
||||||
terminal_colors = true, -- add neovim terminal colors
|
terminal_colors = true, -- add neovim terminal colors
|
||||||
@@ -45,7 +46,28 @@ return {
|
|||||||
colors.hint = colors.orange
|
colors.hint = colors.orange
|
||||||
colors.error = "#ff0000"
|
colors.error = "#ff0000"
|
||||||
colors.fg_gutter = "#9098B8"
|
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-path",
|
||||||
"hrsh7th/cmp-cmdline",
|
"hrsh7th/cmp-cmdline",
|
||||||
"hrsh7th/nvim-cmp",
|
"hrsh7th/nvim-cmp",
|
||||||
-- snippets, using luasnip for now
|
"L3MON4D3/LuaSnip", -- snippets, using luasnip for now
|
||||||
"L3MON4D3/LuaSnip",
|
"saadparwaiz1/cmp_luasnip", -- snippets, using luasnip for now
|
||||||
"saadparwaiz1/cmp_luasnip",
|
|
||||||
},
|
},
|
||||||
|
|
||||||
config = function()
|
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('clangd')
|
||||||
-- vim.lsp.enable('ruby_lsp')
|
-- vim.lsp.enable('ruby_lsp')
|
||||||
-- vim.lsp.enable('standardrb')
|
-- vim.lsp.enable('standardrb')
|
||||||
|
@@ -40,5 +40,5 @@ vim.opt.undofile = true
|
|||||||
vim.g.netrw_browse_split = 0
|
vim.g.netrw_browse_split = 0
|
||||||
vim.g.netrw_preview = 1
|
vim.g.netrw_preview = 1
|
||||||
vim.g.netrw_banner = 0
|
vim.g.netrw_banner = 0
|
||||||
vim.g.netrw_winsize = 25
|
vim.g.netrw_winsize = 50
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user