diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 0d49084..cd77141 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -40,6 +40,18 @@ vim.o.undofile = true -- instead raise a dialog asking if you wish to save the current file(s) See `:help 'confirm'` vim.o.confirm = true +-- local toggle_background = function (obj) +-- print(string.find(obj.stdout, "prefer-light")) +-- if string.find(obj.stdout, "prefer-light") then +-- print('light') +-- else +-- print('dark') +-- end +-- end +-- +-- vim.o.background = 'light' +-- vim.system({"dconf", "read", "/org/gnome/desktop/interface/color-scheme"}, toggle_background) + vim.cmd.colorscheme("gruvbox") -- [[ Set up keymaps ]] See `:h vim.keymap.set()`, `:h mapping`, `:h keycodes` @@ -110,10 +122,10 @@ vim.filetype.add({ -- Install nvim-treesitter vim.pack.add({ "https://github.com/nvim-treesitter/nvim-treesitter" }) -require("nvim-treesitter").setup() +require("nvim-treesitter").install({ 'fish', 'java', 'latex', 'make'}) vim.api.nvim_create_autocmd('FileType', { - pattern = {'', 'tex'}, + pattern = {''}, callback = function() vim.treesitter.start() end, @@ -153,73 +165,75 @@ vim.keymap.set("n", "dN", "]D", { desc = "Jump to last diagnostic" }) vim.keymap.set("n", "dP", "[D", { desc = "Jump to first diagnostic" }) vim.keymap.set("n", "ds", "d", { desc = "Display diagnostic on current line" }) +vim.api.nvim_create_autocmd('FileType', { + pattern = {'c', 'cpp', 'rust'}, + callback = function() + vim.pack.add({ "https://github.com/mfussenegger/nvim-dap", "https://github.com/theHamsta/nvim-dap-virtual-text" }) + local dap = require("dap") + local dap_widgets = require("dap.ui.widgets") + local dap_sidebar_s = dap_widgets.sidebar(dap_widgets.scopes) + local dap_sidebar_f = dap_widgets.sidebar(dap_widgets.frames) -vim.api.nvim_create_user_command("DapInit", function() - vim.pack.add({ "https://github.com/mfussenegger/nvim-dap" }) + vim.keymap.set("n", "bb", dap.toggle_breakpoint, { desc = "Toggle breakpoint" }) + vim.keymap.set("n", "bc", dap.continue, { desc = "Continue execution" }) + dap.listeners.on_session["debug"] = function() + vim.keymap.set("n", "bs", dap_sidebar_s.toggle, { desc = "Toggle scopes" }) + vim.keymap.set("n", "bf", dap_sidebar_f.toggle, { desc = "Toggle frames" }) + vim.keymap.set("n", "br", dap.repl.toggle, { desc = "Toggle REPL"}) - local dap = require("dap") - local dap_widgets = require("dap.ui.widgets") - local dap_sidebar_s = dap_widgets.sidebar(dap_widgets.scopes) - local dap_sidebar_f = dap_widgets.sidebar(dap_widgets.frames) + vim.keymap.set("n", "", dap.step_out, { desc = "Step out" }) + vim.keymap.set("n", "", dap.step_into, { desc = "Step into" }) + vim.keymap.set("n", "", dap.step_over, { desc = "Step over" }) + vim.keymap.set("n", "", dap.restart_frame, { desc = "Restart frame" }) + end - vim.keymap.set("n", "bb", dap.toggle_breakpoint, { desc = "Toggle breakpoint" }) - vim.keymap.set("n", "bc", dap.continue, { desc = "Continue execution" }) - dap.listeners.on_session["debug"] = function() - vim.keymap.set("n", "bs", dap_sidebar_s.toggle, { desc = "Show scopes" }) - vim.keymap.set("n", "bf", dap_sidebar_f.toggle, { desc = "Show frames" }) - - vim.keymap.set("n", "", dap.step_out, { desc = "Step out" }) - vim.keymap.set("n", "", dap.step_into, { desc = "Step into" }) - vim.keymap.set("n", "", dap.step_over, { desc = "Step over" }) - vim.keymap.set("n", "", dap.restart_frame, { desc = "Restart frame" }) - end - - dap.adapters.gdb = { - type = "executable", - command = "gdb", - args = { "--interpreter=dap", "--eval-command", "set print pretty on" } - } - - dap.configurations.c = { - { - name = "Launch", - type = "gdb", - request = "launch", - program = function() - return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') - end, - args = {}, -- provide arguments if needed - cwd = "${workspaceFolder}", - stopAtBeginningOfMainSubprogram = false, - }, - { - name = "Select and attach to process", - type = "gdb", - request = "attach", - program = function() - return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') - end, - pid = function() - local name = vim.fn.input('Executable name (filter): ') - return require("dap.utils").pick_process({ filter = name }) - end, - cwd = '${workspaceFolder}' - }, - { - name = 'Attach to gdbserver :1234', - type = 'gdb', - request = 'attach', - target = 'localhost:1234', - program = function() - return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') - end, - cwd = '${workspaceFolder}' + dap.adapters.gdb = { + type = "executable", + command = "gdb", + args = { "--interpreter=dap", "--eval-command", "set print pretty on" } } - } - dap.configurations.cpp = dap.configurations.c - dap.configurations.rust = dap.configurations.c -end, { desc = "Initialize Debug Adater Protocol support" }) + dap.configurations.c = { + { + name = "Launch", + type = "gdb", + request = "launch", + program = function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + args = {}, -- provide arguments if needed + cwd = "${workspaceFolder}", + stopAtBeginningOfMainSubprogram = false, + }, + { + name = "Select and attach to process", + type = "gdb", + request = "attach", + program = function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + pid = function() + local name = vim.fn.input('Executable name (filter): ') + return require("dap.utils").pick_process({ filter = name }) + end, + cwd = '${workspaceFolder}' + }, + { + name = 'Attach to gdbserver :1234', + type = 'gdb', + request = 'attach', + target = 'localhost:1234', + program = function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + cwd = '${workspaceFolder}' + } + } + + dap.configurations.cpp = dap.configurations.c + dap.configurations.rust = dap.configurations.c + end, +}) -- [[ UI Configuration ]] vim.pack.add({ "https://github.com/nvim-mini/mini.nvim" }) diff --git a/.config/nvim/lsp/texlab.lua b/.config/nvim/lsp/texlab.lua index 5fe3e7e..a774760 100644 --- a/.config/nvim/lsp/texlab.lua +++ b/.config/nvim/lsp/texlab.lua @@ -147,15 +147,17 @@ return { forwardSearch = { executable = 'sioyek', args = { - '--inverse-search', - '--reuse-instance', - 'file:%p#src:%l%f', - '--forward-search-file', - '%f', - '--forward-search-line', - '%l', - '%p' - }, + '--reuse-window', + '--execute-command', + 'toggle_synctex', + '--inverse-search', + 'texlab inverse-search -i \"%%1\" -l %%2', + '--forward-search-file', + '%f', + '--forward-search-line', + '%l', + '%p', + }, }, chktex = { onOpenAndSave = false, diff --git a/.config/nvim/nvim-pack-lock.json b/.config/nvim/nvim-pack-lock.json index fd04478..c7a5b14 100644 --- a/.config/nvim/nvim-pack-lock.json +++ b/.config/nvim/nvim-pack-lock.json @@ -68,6 +68,10 @@ "rev": "cdfd55a133f63228c55f91378f12908cb2a78ded", "src": "https://github.com/mfussenegger/nvim-dap" }, + "nvim-dap-ui": { + "rev": "cf91d5e2d07c72903d052f5207511bf7ecdb7122", + "src": "https://github.com/rcarriga/nvim-dap-ui" + }, "nvim-dap-virtual-text": { "rev": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6", "src": "https://github.com/theHamsta/nvim-dap-virtual-text"