diff --git a/configs/nvim/lua/mappings.lua b/configs/nvim/lua/mappings.lua index 1d802ae..d7207e9 100644 --- a/configs/nvim/lua/mappings.lua +++ b/configs/nvim/lua/mappings.lua @@ -11,6 +11,16 @@ local function init() -------------------- NvimTreeToggle ------------------------ map('n', '', 'NvimTreeToggle') map('n', '', 'NvimTreeRefresh') + + -------------------- BarBar -------------------------------- + -- Move to previous/next + map('n', '', ':BufferPrevious', opts) + map('n', '', ':BufferNext', opts) + -- Re-order to previous/next + map('n', '', ':BufferMovePrevious', opts) + map('n', '>', ' :BufferMoveNext', opts) + -- Close buffer + map('n', '', ':BufferClose', opts) -------------------- LSP ----------------------------------- map('n', ',', 'lua vim.lsp.diagnostic.goto_prev()') @@ -32,6 +42,11 @@ local function init() map('n', 'g*', "g*lua require('hlslens').start()") map('n', 'g#', "g#lua require('hlslens').start()") + -------------------- DAP ----------------------------------- + map('n', '', 'lua require\'dap\'.toggle_breakpoint()', opts) + map('n', '', 'lua require\'dap\'.continue()', opts) + map('n', '', 'lua require\'dap\'.repl.open()', opts) + -------------------- FTerm --------------------------------- map('n', '', 'lua require("FTerm").toggle()') map('t', '', 'lua require("FTerm").toggle()') diff --git a/configs/nvim/lua/plugins/dap/init.lua b/configs/nvim/lua/plugins/dap/init.lua new file mode 100644 index 0000000..eea1e9b --- /dev/null +++ b/configs/nvim/lua/plugins/dap/init.lua @@ -0,0 +1,7 @@ +local function init() + call_with_helpers(require('plugins.dap.lldb').init) +end + +return { + init = init +} \ No newline at end of file diff --git a/configs/nvim/lua/plugins/dap/lldb.lua b/configs/nvim/lua/plugins/dap/lldb.lua new file mode 100644 index 0000000..23ad04c --- /dev/null +++ b/configs/nvim/lua/plugins/dap/lldb.lua @@ -0,0 +1,29 @@ +local dap = require('dap') + +local function init() + dap.adapters.lldb = { + type = 'executable', + command = '/usr/bin/lldb-vscode', + name = 'lldb' + } + dap.configurations.cpp = { + { + 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 = {}, + runInTerminal = false, + }, + } + dap.configurations.c = dap.configurations.cpp + dap.configurations.rust = dap.configurations.cpp +end + +return { + init = init +} \ No newline at end of file diff --git a/configs/nvim/lua/plugins/init.lua b/configs/nvim/lua/plugins/init.lua index 3cc4a60..7bddccc 100644 --- a/configs/nvim/lua/plugins/init.lua +++ b/configs/nvim/lua/plugins/init.lua @@ -1,5 +1,6 @@ function configure_packages() call_with_helpers(require('plugins.lspconfig').init) + call_with_helpers(require('plugins.dap').init) call_with_helpers(require('plugins.compe').init) call_with_helpers(require('plugins.nvim-rust-tools').init) call_with_helpers(require('plugins.nvim-tree').init) diff --git a/configs/nvim/lua/plugins/nvim-fterm.lua b/configs/nvim/lua/plugins/nvim-fterm.lua index e35f4f6..98e69cc 100644 --- a/configs/nvim/lua/plugins/nvim-fterm.lua +++ b/configs/nvim/lua/plugins/nvim-fterm.lua @@ -1,12 +1,12 @@ local function init() - require('FTerm').setup { - dimensions = { + require'FTerm'.setup { + border = 'double', + dimensions = { height = 0.8, width = 0.8, x = 0.5, y = 0.5 - }, - border = 'double' + } } end diff --git a/configs/nvim/lua/plugins/nvim-todo-comments.lua b/configs/nvim/lua/plugins/nvim-todo-comments.lua index 29274e3..bf56103 100644 --- a/configs/nvim/lua/plugins/nvim-todo-comments.lua +++ b/configs/nvim/lua/plugins/nvim-todo-comments.lua @@ -1,5 +1,59 @@ local function init() - require("todo-comments").setup {} + require("todo-comments").setup { + signs = true, -- show icons in the signs column + sign_priority = 8, -- sign priority + -- keywords recognized as todo comments + keywords = { + FIX = { + icon = " ", -- icon used for the sign, and in search results + color = "error", -- can be a hex color, or a named color (see below) + alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords + -- signs = false, -- configure signs for some keywords individually + }, + TODO = { icon = " ", color = "info" }, + HACK = { icon = " ", color = "warning" }, + WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } }, + PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } }, + NOTE = { icon = " ", color = "hint", alt = { "INFO" } }, + }, + merge_keywords = true, -- when true, custom keywords will be merged with the defaults + -- highlighting of the line containing the todo comment + -- * before: highlights before the keyword (typically comment characters) + -- * keyword: highlights of the keyword + -- * after: highlights after the keyword (todo text) + highlight = { + before = "", -- "fg" or "bg" or empty + keyword = "wide", -- "fg", "bg", "wide" or empty. (wide is the same as bg, but will also highlight surrounding characters) + after = "fg", -- "fg" or "bg" or empty + pattern = [[.*<(KEYWORDS)\s*:]], -- pattern or table of patterns, used for highlightng (vim regex) + comments_only = true, -- uses treesitter to match keywords in comments only + max_line_len = 400, -- ignore lines longer than this + exclude = {}, -- list of file types to exclude highlighting + }, + -- list of named colors where we try to extract the guifg from the + -- list of hilight groups or use the hex color if hl not found as a fallback + colors = { + error = { "LspDiagnosticsDefaultError", "ErrorMsg", "#DC2626" }, + warning = { "LspDiagnosticsDefaultWarning", "WarningMsg", "#FBBF24" }, + info = { "LspDiagnosticsDefaultInformation", "#2563EB" }, + hint = { "LspDiagnosticsDefaultHint", "#10B981" }, + default = { "Identifier", "#7C3AED" }, + }, + search = { + command = "rg", + args = { + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + }, + -- regex that will be used to match keywords. + -- don't replace the (KEYWORDS) placeholder + pattern = [[\b(KEYWORDS):]], -- ripgrep regex + -- pattern = [[\b(KEYWORDS)\b]], -- match without the extra colon. You'll likely get false positives + }, + } end return {