MPCRSHWO4BHUEDTOA7PCBBY4IJEWOSS52OF4BBJPE33NKTAYNHRQC YI4P3GZAGBDDEAEWGXMO7X35SV3VA7UDOQBUOLZRVIN7S5HV5DGAC 4UYGXRXNEPSZXEEIDBKGSNJMIFHRB7C2WMV6GFUA2N6N2J6IBXGQC ULAK3OU5SJALLFJJ2IWYE5RSFJ2GE6KITFGXAGJQETFUCJIZLSRAC KEVPQ6MLWHZWIQJVBG6BYSUQU6PYYDYX33XZFN5Q4UE2GHGFFS2QC 4CGMXOB255STMJ54SMBREWY6SNFL7NCQ7CC4VKCAVO2RC5ZQRGLAC 526CRD2QD6NF6N6PQUNWZT6UUGNLMC25UYNIO7ZFUCPQCUALYN4QC KXYLAJ5WZIXV5FQ4TU3IPHCO2YRKQBAZBW27LOA5EVWI2OLVPIIAC HQ4UTQK5UQXMEUZRYQSCTEKW73UZLJQHPA4YD75FCKBKHS5NMJOAC RXJH46XLP6AFSIZZD4WEQA5A5YZLKHZ54ZUGCRH7TRAOH2Z4Q2VQC MRDYSJCB6JYGQIEIYBSBA2UFITUKBLXCP5CCLPKR6U6OV7MASXQQC NJK4RXW2F5EFM7PDLS2YFCQHR5YALN4BM3YJDZ4RFEWFRY5RUL6QC 5MVRBPXU6D5UN7IGEGOGE3OQ44RWVIRYZCZPB7KWQGKRBRK6GBLQC 2ATBP4YXEXEJ6YW7UQF6R62OKBP4HM3HMYUWQQFSNIBSI3S53S4QC GK3TF3NHYNTLUQBFBK7VSR4YATDOT2P5LTEUGFLVTQTL4XFXLP3QC JHZWYON4WGRONPPXQT7W3ADDJGQ72XFCXLNDRCNEATKW7HYY7EHQC UAQOJNN4U555IQMOHWGZRQT6YAJDXEH2KT62D6P7SA4BV7YZSXSQC YQTJKSDUZ6Y6LSJGOKBYQOPG3IG5RFMRKO2JGVUN5Q7AHPGOWFTAC MHVO2C7QN3N7SPO4UQ2U4G4BF3DOOZXK4MTGAJWBWKO5WYVPMCVAC QRPPLHLL6YZU3Z35JNJFXHMBY3BX4THHN4AMWDFCUSFHYAHWTRHAC 5G7WRBMWKG6DMCOHE6WQHTYZACUHO2UPBZRWN72CFH7P45NN5E7QC "vimplugin-rusticated" = {package = pkgs.vimUtils.buildVimPlugin {name = "rusticated";src = pkgs.fetchFromGitHub {owner = "haystackandroid";repo = "rusticated";rev = "8052162f2c602725b4c0faf1d003404d5b9140c2";sha256 = "sha256-PF5rUyEMi05HsimfrfqpXNY6RAEBHctpBoJh733jogE=";};
"vimplugin-rusticated".package = pkgs.vimUtils.buildVimPlugin {name = "rusticated";src = pkgs.fetchFromGitHub {owner = "haystackandroid";repo = "rusticated";rev = "8052162f2c602725b4c0faf1d003404d5b9140c2";sha256 = "sha256-PF5rUyEMi05HsimfrfqpXNY6RAEBHctpBoJh733jogE=";
"vimplugin-rasmus.nvim" = {package = pkgs.vimUtils.buildVimPlugin {name = "rasmus.nvim";src = pkgs.fetchFromGitHub {owner = "kvrohit";repo = "rasmus.nvim";rev = "49f7ee7bf3eb00db52c77f84b15bc69f318bafc1";sha256 = "sha256-MWc6zzMGZ6OceZGbx2qmuHe9FvIUXK1rtb+yIsfRokY=";};
"vimplugin-rasmus.nvim".package = pkgs.vimUtils.buildVimPlugin {name = "rasmus.nvim";src = pkgs.fetchFromGitHub {owner = "kvrohit";repo = "rasmus.nvim";rev = "49f7ee7bf3eb00db52c77f84b15bc69f318bafc1";sha256 = "sha256-MWc6zzMGZ6OceZGbx2qmuHe9FvIUXK1rtb+yIsfRokY=";
programs.nvf.settings.vim = {keymaps = [# debugging{desc = "toggle breakpoint";key = "<leader>db";mode = "n";action = ":lua require('dap').toggle_breakpoint()<CR>";}{desc = "toggle breakpoint";key = "<F1>";mode = "n";action = ":lua require('dap').toggle_breakpoint()<CR>";}{desc = "run last";key = "<leader>dB";mode = "n";action = ":lua require('dap').toggle_breakpoint(vim.fn.input('Breakpoint condition: '))<CR>";}{desc = "run last";key = "<F2>";mode = "n";action = ":lua require('dap').toggle_breakpoint(vim.fn.input('Breakpoint condition: '))<CR>";}{desc = "continue";key = "<leader>dc";mode = "n";action = ":lua require('dap').continue()<CR>";}{desc = "continue";key = "<F3>";mode = "n";action = ":lua require('dap').continue()<CR>";}{desc = "open/close debugger ui";key = "<leader>du";mode = "n";action = ":lua require('dapui').toggle()<CR>";}{desc = "open/close debugger ui";key = "<F4>";mode = "n";action = ":lua require('dapui').toggle()<CR>";}{desc = "step over";key = "<leader>do";mode = "n";action = ":lua require('dap').step_over()<CR>";}{desc = "step over";key = "<RIGHT>";mode = "n";action = ":lua require('dap').step_over()<CR>";}{desc = "step into";key = "<leader>di";mode = "n";action = ":lua require('dap').step_into()<CR>";}{desc = "step into";key = "<DOWN>";mode = "n";action = ":lua require('dap').step_into()<CR>";}{desc = "step out";key = "<leader>dO";mode = "n";action = ":lua require('dap').step_out()<CR>";}{desc = "step out";key = "<UP>";mode = "n";action = ":lua require('dap').step_out()<CR>";}{desc = "step back";key = "<leader>dp";mode = "n";action = ":lua require('dap').step_back()<CR>";}{desc = "step back";key = "<LEFT>";mode = "n";action = ":lua require('dap').step_back()<CR>";}{desc = "restart last session";key = "<leader>dr";mode = "n";action = ":lua require('dap').run_last()<CR>";}{desc = "restart last session";key = "<F5>";mode = "n";action = ":lua require('dap').run_last()<CR>";}# clipboard mappings (thanks primeagen){desc = "paste over text but keep clipboard";key = "<leader>p";mode = "x";action = ''"_dP'';}{desc = "yank selection to system clipboard";key = "<leader>y";mode = [ "n" "v" ];action = ''"+y'';}{desc = "yank line to system clipboard";key = "<leader>Y";mode = "n";action = ''"+Y'';}{desc = "delete without yank";key = "<leader>d";mode = [ "n" "v" ];action = ''"_d'';}{desc = "better line joins";key = "J";mode = "n";action = "mzJ`z";}{desc = "move line down";key = "J";mode = "v";action = ":m '>+1<CR>gv=gv";}{desc = "move line up";key = "K";mode = "v";action = ":m '<-2<CR>gv=gv";}{desc = "instant search and replace current word";key = "<leader>sr";mode = "n";action = '':%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>'';}{desc = "1/2 page down + center cursor";key = "<C-d>";mode = "n";action = "<C-d>zz";}{desc = "1/2 page up + center cursor";key = "<C-u>";mode = "n";action = "<C-u>zz";}{desc = "center cursor on next search result";key = "n";mode = "n";action = "nzz";}{desc = "center cursor on previous search result";key = "N";mode = "n";action = "Nzz";}{desc = "1/2 page down + center cursor";key = "<C-d>";mode = "v";action = "<C-d>zz";}{desc = "1/2 page up + center cursor";key = "<C-u>";mode = "v";action = "<C-u>zz";}{desc = "center cursor on next search result";key = "n";mode = "v";action = "nzz";}{desc = "center cursor on previous search result";key = "N";mode = "v";action = "Nzz";}{desc = "move to first non-blank character of line";key = "H";mode = "n";action = "^";}{desc = "move to last character of line";key = "L";mode = "n";action = "$";}{desc = "switch to left pane";key = "<C-h>";mode = "n";action = "<C-w>h";}{desc = "switch to below pane";key = "<C-j>";mode = "n";action = "<C-w>j";}{desc = "switch to above pane";key = "<C-k>";mode = "n";action = "<C-w>k";}{desc = "switch to right pane";key = "<C-l>";mode = "n";action = "<C-w>l";}{desc = "open a terminal in a vertical split";key = "<leader>tt";mode = "n";action = "<cmd>vs<cr><cmd>term<cr>";}{desc = "close window";key = "<leader>qq";mode = "n";action = "<cmd>clo<cr>";}{desc = "disable search highlight";key = "<leader><esc><esc>";mode = "n";action = "<cmd>silent nohl<cr>";}# missing from builtin ccc{desc = "Toggle ccc";key = "<leader>ccc";mode = "n";action = "<cmd>CccHighlighterToggle<CR>";}# missing from builtin mini.bufremove{desc = "close buffer";key = "<leader>qb";mode = "n";action = "<cmd>lua MiniBufremove.delete()<CR>";}# telescope# {# desc = "Telescope find_files";# key = "<leader>ff";# mode = "n";# action = "<cmd>lua require('telescope.builtin').find_files()<CR>"; # now using fff# }{desc = "Telescope live grep";key = "<leader>fg";mode = "n";action = "<cmd>lua require('telescope.builtin').live_grep()<CR>";}{desc = "Telescope buffers";key = "<leader>fb";mode = "n";action = "<cmd>lua require('telescope.builtin').buffers()<CR>";}{desc = "Telescope treesitter";key = "<leader>ft";mode = "n";action = "<cmd>Telescope treesitter<CR>";}{desc = "Telescope word";key = "<leader>fw";mode = "n";action = "<cmd>lua require('telescope.builtin').grep_string({ search = vim.fn.expand('<cword>') })<CR>";}{desc = "Telescope WORD";key = "<leader>fW";mode = "n";action = "<cmd>lua require('telescope.builtin').grep_string({ search = vim.fn.expand('<cWORD>') })<CR>";}{desc = "Telescope search for input word";key = "<leader>fs";mode = "n";action = "<cmd>lua require('telescope.builtin').grep_string({ search = vim.fn.input('Grep > ') })<CR>";}{desc = "Telescope resume last picker";key = "<leader>fc";mode = "n";action = "<cmd>lua require('telescope.builtin').resume()<CR>";}# missing from builtin undotree{desc = "Toggle undotree";key = "<leader>u";mode = "n";action = "<cmd>UndotreeToggle<CR>";}{desc = "Open ~/notes/todo.md";key = "<leader>td";mode = "n";action = "<cmd>lua OpenTodo()<CR>";}];autocmds = [{event = [ "LspAttach" ];callback = mkLuaInline ''function(args)local client = vim.lsp.get_client_by_id(args.data.client_id)
programs.nvf.settings.vim.keymaps = [# debugging{desc = "toggle breakpoint";key = "<leader>db";mode = "n";action = ":lua require('dap').toggle_breakpoint()<CR>";}{desc = "toggle breakpoint";key = "<F1>";mode = "n";action = ":lua require('dap').toggle_breakpoint()<CR>";}{desc = "run last";key = "<leader>dB";mode = "n";action = ":lua require('dap').toggle_breakpoint(vim.fn.input('Breakpoint condition: '))<CR>";}{desc = "run last";key = "<F2>";mode = "n";action = ":lua require('dap').toggle_breakpoint(vim.fn.input('Breakpoint condition: '))<CR>";}{desc = "continue";key = "<leader>dc";mode = "n";action = ":lua require('dap').continue()<CR>";}{desc = "continue";key = "<F3>";mode = "n";action = ":lua require('dap').continue()<CR>";}{desc = "open/close debugger ui";key = "<leader>du";mode = "n";action = ":lua require('dapui').toggle()<CR>";}{desc = "open/close debugger ui";key = "<F4>";mode = "n";action = ":lua require('dapui').toggle()<CR>";}{desc = "step over";key = "<leader>do";mode = "n";action = ":lua require('dap').step_over()<CR>";}{desc = "step over";key = "<RIGHT>";mode = "n";action = ":lua require('dap').step_over()<CR>";}{desc = "step into";key = "<leader>di";mode = "n";action = ":lua require('dap').step_into()<CR>";}{desc = "step into";key = "<DOWN>";mode = "n";action = ":lua require('dap').step_into()<CR>";}{desc = "step out";key = "<leader>dO";mode = "n";action = ":lua require('dap').step_out()<CR>";}{desc = "step out";key = "<UP>";mode = "n";action = ":lua require('dap').step_out()<CR>";}{desc = "step back";key = "<leader>dp";mode = "n";action = ":lua require('dap').step_back()<CR>";}{desc = "step back";key = "<LEFT>";mode = "n";action = ":lua require('dap').step_back()<CR>";}{desc = "restart last session";key = "<leader>dr";mode = "n";action = ":lua require('dap').run_last()<CR>";}{desc = "restart last session";key = "<F5>";mode = "n";action = ":lua require('dap').run_last()<CR>";}# clipboard mappings (thanks primeagen){desc = "paste over text but keep clipboard";key = "<leader>p";mode = "x";action = ''"_dP'';}{desc = "yank selection to system clipboard";key = "<leader>y";mode = [ "n" "v" ];action = ''"+y'';}{desc = "yank line to system clipboard";key = "<leader>Y";mode = "n";action = ''"+Y'';}{desc = "delete without yank";key = "<leader>d";mode = [ "n" "v" ];action = ''"_d'';}{desc = "better line joins";key = "J";mode = "n";action = "mzJ`z";}{desc = "move line down";key = "J";mode = "v";action = ":m '>+1<CR>gv=gv";}{desc = "move line up";key = "K";mode = "v";action = ":m '<-2<CR>gv=gv";}{desc = "instant search and replace current word";mode = "n";key = "<leader>sr";action = '':%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>'';}{desc = "1/2 page down + center cursor";key = "<C-d>";mode = "n";action = "<C-d>zz";}{desc = "1/2 page up + center cursor";key = "<C-u>";mode = "n";action = "<C-u>zz";}{desc = "center cursor on next search result";key = "n";mode = "n";action = "nzz";}{desc = "center cursor on previous search result";key = "N";mode = "n";action = "Nzz";}{desc = "1/2 page down + center cursor";key = "<C-d>";mode = "v";action = "<C-d>zz";}{desc = "1/2 page up + center cursor";key = "<C-u>";mode = "v";action = "<C-u>zz";}{desc = "center cursor on next search result";key = "n";mode = "v";action = "nzz";}{desc = "center cursor on previous search result";key = "N";mode = "v";action = "Nzz";}{desc = "move to first non-blank character of line";key = "H";mode = "n";action = "^";}{desc = "move to last character of line";key = "L";mode = "n";action = "$";}{desc = "switch to left pane";key = "<C-h>";mode = "n";action = "<C-w>h";}{desc = "switch to below pane";key = "<C-j>";mode = "n";action = "<C-w>j";}{desc = "switch to above pane";key = "<C-k>";mode = "n";action = "<C-w>k";}{desc = "switch to right pane";key = "<C-l>";mode = "n";action = "<C-w>l";}{desc = "open a terminal in a vertical split";key = "<leader>tt";mode = "n";action = "<cmd>vs<cr><cmd>term<cr>";}{desc = "close window";key = "<leader>qq";mode = "n";action = "<cmd>clo<cr>";}{desc = "disable search highlight";key = "<leader><esc><esc>";mode = "n";action = "<cmd>silent nohl<cr>";}# missing from builtin ccc{desc = "Toggle ccc";key = "<leader>ccc";mode = "n";action = "<cmd>CccHighlighterToggle<CR>";}# missing from builtin mini.bufremove{desc = "close buffer";key = "<leader>qb";mode = "n";action = "<cmd>lua MiniBufremove.delete()<CR>";}# telescope# {# desc = "Telescope find_files";# key = "<leader>ff";# mode = "n";# action = "<cmd>lua require('telescope.builtin').find_files()<CR>"; # now using fff# }{desc = "Telescope live grep";key = "<leader>fg";mode = "n";action = "<cmd>lua require('telescope.builtin').live_grep()<CR>";}{desc = "Telescope buffers";key = "<leader>fb";mode = "n";action = "<cmd>lua require('telescope.builtin').buffers()<CR>";}{desc = "Telescope treesitter";key = "<leader>ft";mode = "n";action = "<cmd>Telescope treesitter<CR>";}{desc = "Telescope word";key = "<leader>fw";mode = "n";action = "<cmd>lua require('telescope.builtin').grep_string({ search = vim.fn.expand('<cword>') })<CR>";}{desc = "Telescope WORD";key = "<leader>fW";mode = "n";action = "<cmd>lua require('telescope.builtin').grep_string({ search = vim.fn.expand('<cWORD>') })<CR>";}{desc = "Telescope search for input word";key = "<leader>fs";mode = "n";action = "<cmd>lua require('telescope.builtin').grep_string({ search = vim.fn.input('Grep > ') })<CR>";}{desc = "Telescope resume last picker";key = "<leader>fc";mode = "n";action = "<cmd>lua require('telescope.builtin').resume()<CR>";}# missing from builtin undotree{desc = "Toggle undotree";key = "<leader>u";mode = "n";action = "<cmd>UndotreeToggle<CR>";}{desc = "Open ~/notes/todo.md";key = "<leader>td";mode = "n";action = "<cmd>lua OpenTodo()<CR>";}];
vim.keymap.set("n", "<leader>ih", function()if vim.lsp.inlay_hint.is_enabled() thenvim.lsp.inlay_hint.enable(false)elsevim.lsp.inlay_hint.enable(true)endend)
autocmds = [{event = [ "LspAttach" ];callback = mkLuaInline ''function(args)local client = vim.lsp.get_client_by_id(args.data.client_id)
vim.keymap.set("n", "gd", function()vim.lsp.buf.definition()end, { desc = "Go to definition" })vim.keymap.set("n", "gr", function()vim.lsp.buf.references()end, { desc = "Show references" })vim.keymap.set("n", "grn", function()vim.lsp.buf.rename()end, { desc = "vim.lsp rename" })vim.keymap.set("n", "gi", function()vim.lsp.buf.implementation()end, { desc = "vim.lsp implementation" })vim.keymap.set({ "n", "v" }, "ga", function()vim.lsp.buf.code_action()end, { desc = "vim.lsp code action" })vim.keymap.set("n", "K", function()vim.lsp.buf.hover()end, { desc = "Hover" })
if client:supports_method("textDocument/foldingRange") thenvim.wo.foldmethod = "expr"vim.wo.foldexpr = "v:lua.vim.lsp.foldexpr()"elsevim.wo.foldmethod = "indent"
'';}];};
vim.keymap.set("n", "gd", function()vim.lsp.buf.definition()end, { desc = "Go to definition" })vim.keymap.set("n", "gr", function()vim.lsp.buf.references()end, { desc = "Show references" })vim.keymap.set("n", "grn", function()vim.lsp.buf.rename()end, { desc = "vim.lsp rename" })vim.keymap.set("n", "gi", function()vim.lsp.buf.implementation()end, { desc = "vim.lsp implementation" })vim.keymap.set({ "n", "v" }, "ga", function()vim.lsp.buf.code_action()end, { desc = "vim.lsp code action" })vim.keymap.set("n", "K", function()vim.lsp.buf.hover()end, { desc = "Hover" })end'';}];
local dap = require('dap')
local dap = require('dap')dap.defaults.codelldb.stepping_granularity = 'instruction'dap.adapters.codelldb = {type = 'executable',command = 'codelldb',}dap.adapters.gdb = {type = 'executable',command = 'gdb',args = { '-i', 'dap' }}dap.adapters["pwa-node"] = {type = "server",host = "localhost",port = "''${port}",executable = {command = "js-debug",args = {"''${port}"}},processId = require("dap.utils").pick_process,}-- only for nasmdap.configurations.nasm = {{name = "Launch NASM (CodeLLDB)",type = "codelldb",request = "launch",program = function()local file_dir = vim.fn.expand('%:p:h') -- dir of current filelocal file = vim.fn.expand('%:t') -- filename without extensionlocal source = vim.fn.expand('%:t:r') -- filename with extension
dap.defaults.codelldb.stepping_granularity = 'instruction'
vim.fn.system('mkdir -p ' .. file_dir .. '/target')-- assemblevim.fn.system('nasm -f elf64 -g -F dwarf ' .. file_dir .. source .. ' -o ' .. file_dir .. '/target/' .. file .. '.o')-- linkvim.fn.system('ld ' .. file_dir .. '/target/' .. file .. '.o -o ' .. file_dir .. '/target/' .. file)-- path to execreturn file_dir .. '/target/' .. sourceend,cwd = vim.fn.expand('%:p:h'),stopOnEntry = true,terminal = "integrated",initCommands = {"settings set target.x86-disassembly-flavor intel",},-- showDisassembly = "never",presentationHint = "normal",sourceLanguages = { "asm" },}}
dap.adapters.codelldb = {type = 'executable',command = 'codelldb',}
dap.configurations.rust = {{name = 'Launch file',type = 'codelldb',request = 'launch',program = function()return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')end,cwd = vim.fn.getcwd(),stopOnEntry = false,}}dap.configurations.javascript = {{type = "pwa-node",request = "launch",name = "Launch File",program = "''${file}",cwd = "''${workspaceFolder}",}}dap.configurations.typescript = {{type = "pwa-node",request = "launch",name = "Launch File",program = "''${workspaceFolder}/../node_modules/astro/astro.js",args = { "dev" },cwd = "''${workspaceFolder}",rootPath = "''${workspaceFolder}",sourceMaps = true,console = "integratedTerminal",outFiles = {"''${workspaceFolder}/dist/**/*.js","''${workspaceFolder}/.astro/**/*.ts"},resolveSourceMapLocations = {"''${workspaceFolder}/dist/**/*.js","''${workspaceFolder}/.astro/**/*.ts"},skipFiles = {"<node_internals>/**"}}}dap.configurations.astro = dap.configurations.typescript
dap.adapters.gdb = {type = 'executable',command = 'gdb',args = { '-i', 'dap' }}
-- open dapui on debugger startdap.listeners.before.attach.dapui_config = function()require("dapui").open()enddap.listeners.before.launch.dapui_config = function()require("dapui").open()end
dap.adapters["pwa-node"] = {type = "server",host = "localhost",port = "''${port}",executable = {command = "js-debug",args = {"''${port}"}},processId = require("dap.utils").pick_process,}-- only for nasmdap.configurations.nasm = {{name = "Launch NASM (CodeLLDB)",type = "codelldb",request = "launch",program = function()local file_dir = vim.fn.expand('%:p:h') -- dir of current filelocal file = vim.fn.expand('%:t') -- filename without extensionlocal source = vim.fn.expand('%:t:r') -- filename with extensionvim.fn.system('mkdir -p ' .. file_dir .. '/target')-- assemblevim.fn.system('nasm -f elf64 -g -F dwarf ' .. file_dir .. source .. ' -o ' .. file_dir .. '/target/' .. file .. '.o')-- linkvim.fn.system('ld ' .. file_dir .. '/target/' .. file .. '.o -o ' .. file_dir .. '/target/' .. file)-- path to execreturn file_dir .. '/target/' .. sourceend,cwd = vim.fn.expand('%:p:h'),stopOnEntry = true,terminal = "integrated",initCommands = {"settings set target.x86-disassembly-flavor intel",},-- showDisassembly = "never",presentationHint = "normal",sourceLanguages = { "asm" },}}dap.configurations.rust = {{name = 'Launch file',type = 'codelldb',request = 'launch',program = function()return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file')end,cwd = vim.fn.getcwd(),stopOnEntry = false,}}dap.configurations.javascript = {{type = "pwa-node",request = "launch",name = "Launch File",program = "''${file}",cwd = "''${workspaceFolder}",}}dap.configurations.typescript = {{type = "pwa-node",request = "launch",name = "Launch File",program = "''${workspaceFolder}/../node_modules/astro/astro.js",args = { "dev" },cwd = "''${workspaceFolder}",rootPath = "''${workspaceFolder}",sourceMaps = true,console = "integratedTerminal",outFiles = {"''${workspaceFolder}/dist/**/*.js","''${workspaceFolder}/.astro/**/*.ts"},resolveSourceMapLocations = {"''${workspaceFolder}/dist/**/*.js","''${workspaceFolder}/.astro/**/*.ts"},skipFiles = {"<node_internals>/**"}}
vim.keymap.set('n', '<leader>da', function()local word = vim.fn.expand('<cword>')if word and word ~= "" thenlocal dapui = require('dapui')dapui.elements.watches.add(word)endend, { desc = 'Add default single LLDB formatted watch' })vim.keymap.set('n', '<F8>', function()local word = vim.fn.expand('<cword>')if word and word ~= "" thenlocal dapui = require('dapui')dapui.elements.watches.add(word)endend, { desc = 'Add default single LLDB formatted watch' })vim.keymap.set('n', '<leader>dA', function()local word = vim.fn.expand('<cword>')if word and word ~= "" thenlocal dapui = require('dapui')-- Format options - key maps to suffixlocal formats = {d = ',d', -- (d)ecimalc = ',c', -- (c)haracteru = ',u', -- (u)nsignedb = ',b', -- (b)inaryx = ',x', -- he(x)o = ',o', -- (o)ctalf = ',f', -- (f)loatp = ',p', -- (p)ointers = ',s', -- (s)tringy = ',y', -- b(y)tesY = ',Y', -- b(Y)tes+ASCII
dap.configurations.astro = dap.configurations.typescript
local help_text = '(d)ecimal (c)haracter (u)nsigned (b)inary he(x) (o)ctal (f)loat (p)ointer (s)tring b(y)tes b(Y)tes+ASCII'vim.ui.input({prompt = 'Format for "' .. word .. '" - ' .. help_text .. ': ',default = ""}, function(input)if input and input ~= "" thenlocal char = input:sub(1, 1):lower()local suffix = formats[char]if suffix thendapui.elements.watches.add(word .. suffix)print('Added: ' .. word .. suffix)elseprint('Invalid format: ' .. char)endendend)elseprint('No word under cursor')endend, { desc = 'Add specific single LLDB formatted watch' })vim.keymap.set('n', '<F9>', function()local word = vim.fn.expand('<cword>')if word and word ~= "" thenlocal dapui = require('dapui')
-- open dapui on debugger startdap.listeners.before.attach.dapui_config = function()require("dapui").open()enddap.listeners.before.launch.dapui_config = function()require("dapui").open()end
-- Format options - key maps to suffixlocal formats = {d = ',d', -- (d)ecimalc = ',c', -- (c)haracteru = ',u', -- (u)nsignedb = ',b', -- (b)inaryx = ',x', -- he(x)o = ',o', -- (o)ctalf = ',f', -- (f)loatp = ',p', -- (p)ointers = ',s', -- (s)tringy = ',y', -- b(y)tesY = ',Y', -- b(Y)tes+ASCII}
vim.keymap.set('n', '<leader>da', function()local word = vim.fn.expand('<cword>')if word and word ~= "" thenlocal dapui = require('dapui')dapui.elements.watches.add(word)endend, { desc = 'Add default single LLDB formatted watch' })
local help_text = '(d)ecimal (c)haracter (u)nsigned (b)inary he(x) (o)ctal (f)loat (p)ointer (s)tring b(y)tes b(Y)tes+ASCII'
vim.keymap.set('n', '<F8>', function()local word = vim.fn.expand('<cword>')if word and word ~= "" thenlocal dapui = require('dapui')dapui.elements.watches.add(word)endend, { desc = 'Add default single LLDB formatted watch' })
vim.ui.input({prompt = 'Format for "' .. word .. '" - ' .. help_text .. ': ',default = ""}, function(input)if input and input ~= "" thenlocal char = input:sub(1, 1):lower()local suffix = formats[char]
vim.keymap.set('n', '<leader>dA', function()local word = vim.fn.expand('<cword>')if word and word ~= "" thenlocal dapui = require('dapui')-- Format options - key maps to suffixlocal formats = {d = ',d', -- (d)ecimalc = ',c', -- (c)haracteru = ',u', -- (u)nsignedb = ',b', -- (b)inaryx = ',x', -- he(x)o = ',o', -- (o)ctalf = ',f', -- (f)loatp = ',p', -- (p)ointers = ',s', -- (s)tringy = ',y', -- b(y)tesY = ',Y', -- b(Y)tes+ASCII}local help_text = '(d)ecimal (c)haracter (u)nsigned (b)inary he(x) (o)ctal (f)loat (p)ointer (s)tring b(y)tes b(Y)tes+ASCII'vim.ui.input({prompt = 'Format for "' .. word .. '" - ' .. help_text .. ': ',default = ""}, function(input)if input and input ~= "" thenlocal char = input:sub(1, 1):lower()local suffix = formats[char]if suffix thendapui.elements.watches.add(word .. suffix)print('Added: ' .. word .. suffix)elseprint('Invalid format: ' .. char)endendend)elseprint('No word under cursor')endend, { desc = 'Add specific single LLDB formatted watch' })vim.keymap.set('n', '<F9>', function()local word = vim.fn.expand('<cword>')if word and word ~= "" thenlocal dapui = require('dapui')-- Format options - key maps to suffixlocal formats = {d = ',d', -- (d)ecimalc = ',c', -- (c)haracteru = ',u', -- (u)nsignedb = ',b', -- (b)inaryx = ',x', -- he(x)o = ',o', -- (o)ctalf = ',f', -- (f)loatp = ',p', -- (p)ointers = ',s', -- (s)tringy = ',y', -- b(y)tesY = ',Y', -- b(Y)tes+ASCII}local help_text = '(d)ecimal (c)haracter (u)nsigned (b)inary he(x) (o)ctal (f)loat (p)ointer (s)tring b(y)tes b(Y)tes+ASCII'vim.ui.input({prompt = 'Format for "' .. word .. '" - ' .. help_text .. ': ',default = ""}, function(input)if input and input ~= "" thenlocal char = input:sub(1, 1):lower()local suffix = formats[char]if suffix thendapui.elements.watches.add(word .. suffix)print('Added: ' .. word .. suffix)elseprint('Invalid format: ' .. char)endendend)elseprint('No word under cursor')endend, { desc = 'Add specific single LLDB formatted watch' })
if suffix thendapui.elements.watches.add(word .. suffix)print('Added: ' .. word .. suffix)elseprint('Invalid format: ' .. char)endendend)elseprint('No word under cursor')endend, { desc = 'Add specific single LLDB formatted watch' })
require("nvim-dap-virtual-text").setup({enabled = true;enabled_commands = true;highlight_new_as_changed = true;commented = true;virt_text_win_col = 80;})'';
require("nvim-dap-virtual-text").setup({enabled = true;enabled_commands = true;highlight_new_as_changed = true;commented = true;virt_text_win_col = 80;})'';
programs.nvf.settings.vim = {autocmds = [{desc = "clear trailing whitespace matches on insert enter";event = [ "InsertEnter" ];callback = mkLuaInline ''function()vim.fn.clearmatches()end'';}{desc = "highlight trailing whitespace on insert leave";event = [ "InsertLeave" ];callback = mkLuaInline ''function()vim.fn.matchadd("ws", [[\(\s\|\r\)\+$]])end'';}{desc = "highlight yanked text";event = [ "TextYankPost" ];callback = mkLuaInline ''function()vim.highlight.on_yank({ higroup = "Visual", timeout = 500 })end'';}{desc = "auto-resize windows on vim resize";event = [ "VimResized" ];pattern = [ "*" ];callback = mkLuaInline ''function()vim.cmd("wincmd =")end'';}{desc = "remove trailing whitespace on save";event = [ "BufWritePre" ];pattern = [ "*" ];callback = mkLuaInline ''function()local cursor_pos = vim.api.nvim_win_get_cursor(0)vim.cmd("%s/\\(\\s\\|\\r\\)\\+$//e")vim.api.nvim_win_set_cursor(0, cursor_pos)
programs.nvf.settings.vim.autocmds = [{desc = "clear trailing whitespace matches on insert enter";event = [ "InsertEnter" ];callback = mkLuaInline ''function() vim.fn.clearmatches() end'';}{desc = "highlight trailing whitespace on insert leave";event = [ "InsertLeave" ];callback = mkLuaInline ''function() vim.fn.matchadd("ws", [[\(\s\|\r\)\+$]]) end'';}{desc = "highlight yanked text";event = [ "TextYankPost" ];callback = mkLuaInline ''function() vim.highlight.on_yank({ higroup = "Visual", timeout = 500 }) end'';}{desc = "auto-resize windows on vim resize";event = [ "VimResized" ];pattern = [ "*" ];callback = mkLuaInline ''function() vim.cmd("wincmd =") end'';}{desc = "remove trailing whitespace on save";event = [ "BufWritePre" ];pattern = [ "*" ];callback = mkLuaInline ''function()local cursor_pos = vim.api.nvim_win_get_cursor(0)vim.cmd("%s/\\(\\s\\|\\r\\)\\+$//e")vim.api.nvim_win_set_cursor(0, cursor_pos)end'';}{desc = "detect fasm vs nasm by format directive";event = [ "BufRead" "BufNewFile" ];pattern = [ "*.asm" "*.inc" "*.j" ];callback = mkLuaInline ''function()local lines = vim.api.nvim_buf_get_lines(0, 0, 40, false)local content = table.concat(lines, "\n")if content:match("format ELF64 executable 3") thenvim.bo.filetype = "fasm"vim.o.shiftwidth = 4vim.o.tabstop = 4vim.o.softtabstop = 4vim.o.expandtab = true -- for nicer indentationelsevim.bo.filetype = "nasm"vim.o.shiftwidth = 4vim.o.tabstop = 4vim.o.softtabstop = 4vim.o.expandtab = true -- for nicer indentation
'';}{desc = "detect fasm vs nasm by format directive";event = [ "BufRead" "BufNewFile" ];pattern = [ "*.asm" "*.inc" "*.j" ];callback = mkLuaInline ''function()local lines = vim.api.nvim_buf_get_lines(0, 0, 40, false)local content = table.concat(lines, "\n")if content:match("format ELF64 executable 3") thenvim.bo.filetype = "fasm"vim.o.shiftwidth = 4vim.o.tabstop = 4vim.o.softtabstop = 4vim.o.expandtab = true -- for nicer indentationelsevim.bo.filetype = "nasm"vim.o.shiftwidth = 4vim.o.tabstop = 4vim.o.softtabstop = 4vim.o.expandtab = true -- for nicer indentationendend'';}];
end'';}];
luaConfigRC.whitespace = "vim.api.nvim_create_autocmd('ColorScheme', {pattern = '*',callback = function()vim.api.nvim_set_hl(0, 'ws', { bg = 'red' })end})vim.api.nvim_set_hl(0, 'ws', { bg = 'red' })vim.fn.matchadd('ws', [[\(\s\|\r\)\+$]])";};
programs.nvf.settings.vim.luaConfigRC.whitespace = "vim.api.nvim_create_autocmd('ColorScheme', {pattern = '*',callback = function()vim.api.nvim_set_hl(0, 'ws', { bg = 'red' })end})vim.api.nvim_set_hl(0, 'ws', { bg = 'red' })vim.fn.matchadd('ws', [[\(\s\|\r\)\+$]])";