diff --git a/nvim/.config/nvim/after/ftplugin/c.lua b/nvim/.config/nvim/after/ftplugin/c.lua deleted file mode 100644 index 3da1392..0000000 --- a/nvim/.config/nvim/after/ftplugin/c.lua +++ /dev/null @@ -1,5 +0,0 @@ -vim.lsp.start({ - name = 'clangd', - cmd = {'clangd'}, - -- root_dir = vim.fs.root(args.buf, {'Makefile'}) -}) diff --git a/nvim/.config/nvim/after/ftplugin/cmake.lua b/nvim/.config/nvim/after/ftplugin/cmake.lua deleted file mode 100644 index 840be69..0000000 --- a/nvim/.config/nvim/after/ftplugin/cmake.lua +++ /dev/null @@ -1,4 +0,0 @@ -vim.lsp.start({ - name = 'cmake-language-server', - cmd = {'cmake-language-server'}, -}) diff --git a/nvim/.config/nvim/after/ftplugin/lua.lua b/nvim/.config/nvim/after/ftplugin/lua.lua deleted file mode 100644 index 2ed0356..0000000 --- a/nvim/.config/nvim/after/ftplugin/lua.lua +++ /dev/null @@ -1,4 +0,0 @@ -vim.lsp.start({ - name = 'lua-language-server', - cmd = {'lua-language-server'}, -}) diff --git a/nvim/.config/nvim/after/ftplugin/markdown.lua b/nvim/.config/nvim/after/ftplugin/markdown.lua new file mode 100644 index 0000000..617144a --- /dev/null +++ b/nvim/.config/nvim/after/ftplugin/markdown.lua @@ -0,0 +1 @@ +vim.opt.textwidth = 100 diff --git a/nvim/.config/nvim/after/ftplugin/python.lua b/nvim/.config/nvim/after/ftplugin/python.lua index 48b67c4..39c4ae3 100644 --- a/nvim/.config/nvim/after/ftplugin/python.lua +++ b/nvim/.config/nvim/after/ftplugin/python.lua @@ -2,3 +2,9 @@ vim.lsp.start({ name = 'jedi', cmd = {'jedi-language-server'}, }) + +vim.keymap.set('n', '', ":Repl") +vim.keymap.set('v', '', ":'<,'>Repl") + +vim.keymap.set('n', '', ":ReplSend") +vim.keymap.set('v', '', ":'<,'>ReplSend") diff --git a/nvim/.config/nvim/after/ftplugin/racket.lua b/nvim/.config/nvim/after/ftplugin/racket.lua new file mode 100644 index 0000000..b4e139e --- /dev/null +++ b/nvim/.config/nvim/after/ftplugin/racket.lua @@ -0,0 +1,5 @@ +vim.keymap.set('n', '', ":Repl") +vim.keymap.set('v', '', ":'<,'>Repl") + +vim.keymap.set('n', '', ":ReplSend") +vim.keymap.set('v', '', ":'<,'>ReplSend") diff --git a/nvim/.config/nvim/after/ftplugin/sh.lua b/nvim/.config/nvim/after/ftplugin/sh.lua deleted file mode 100644 index 1b6cdb8..0000000 --- a/nvim/.config/nvim/after/ftplugin/sh.lua +++ /dev/null @@ -1,4 +0,0 @@ -vim.lsp.start({ - name = 'bash-language-server', - cmd = {'bash-language-server'}, -}) diff --git a/nvim/.config/nvim/after/ftplugin/tex.lua b/nvim/.config/nvim/after/ftplugin/tex.lua deleted file mode 100644 index c62a3c7..0000000 --- a/nvim/.config/nvim/after/ftplugin/tex.lua +++ /dev/null @@ -1,4 +0,0 @@ -vim.lsp.start({ - name = 'texlab', - cmd = {'texlab'}, -}) diff --git a/nvim/.config/nvim/after/ftplugin/zig.lua b/nvim/.config/nvim/after/ftplugin/zig.lua new file mode 100644 index 0000000..deb3736 --- /dev/null +++ b/nvim/.config/nvim/after/ftplugin/zig.lua @@ -0,0 +1,10 @@ +vim.lsp.start({ + name = 'zls', + cmd = {'zls'}, + on_attach = function(client, bufnr) + vim.lsp.completion.enable(true, client.id, bufnr, { + autotrigger = true, + }) + end, +}) +vim.g.zig_fmt_autosave = 0 diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua new file mode 100644 index 0000000..d5b7dd8 --- /dev/null +++ b/nvim/.config/nvim/init.lua @@ -0,0 +1,13 @@ +vim.cmd('set runtimepath^=~/.vim runtimepath+=~/.vim/after') +vim.cmd('let &packpath = &runtimepath') +vim.cmd('let g:python3_host_prog="/usr/bin/python"') +vim.cmd('source ~/.vimrc"') + + +-- Enable LSPs +vim.lsp.enable("clangd") +vim.lsp.enable("cmake") +vim.lsp.enable("lua_ls") +vim.lsp.enable('bashls') +vim.lsp.enable('jedi_language_server') +vim.lsp.enable('texlab') diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim deleted file mode 100644 index 61b9e52..0000000 --- a/nvim/.config/nvim/init.vim +++ /dev/null @@ -1,4 +0,0 @@ -set runtimepath^=~/.vim runtimepath+=~/.vim/after -let &packpath = &runtimepath -let g:python3_host_prog="/usr/bin/python" -source ~/.vimrc diff --git a/nvim/.config/nvim/lua/plugin/dap/c.lua b/nvim/.config/nvim/lua/plugin/dap/c.lua new file mode 100644 index 0000000..1590abf --- /dev/null +++ b/nvim/.config/nvim/lua/plugin/dap/c.lua @@ -0,0 +1,51 @@ +local dap = require('dap') + +dap.adapters.gdb = { + id = 'gdb', + type = 'executable', + command = 'gdb', + args = { '--quiet', '--interpreter=dap' }, +} + +dap.configurations.c = { + { + name = 'Run executable (GDB)', + type = 'gdb', + request = 'launch', + program = function() + local path = vim.fn.input({ + prompt = 'Path to executable: ', + default = vim.fn.getcwd() .. '/', + completion = 'file', + }) + return (path and path ~= '') and path or dap.ABORT + end, + }, + { + name = 'Run executable with arguments (GDB)', + type = 'gdb', + request = 'launch', + program = function() + local path = vim.fn.input({ + prompt = 'Path to executable: ', + default = vim.fn.getcwd() .. '/', + completion = 'file', + }) + return (path and path ~= '') and path or dap.ABORT + end, + args = function() + local args_str = vim.fn.input({ + prompt = 'Arguments: ', + }) + return vim.split(args_str, ' +') + end + }, + { + name = 'Attach to process (GDB)', + type = 'gdb', + request = 'gdb', + processId = require('dap.utils').pick_process, + }, +} + +dap.configurations.rust = dap.configurations.c diff --git a/nvim/.config/nvim/lua/plugin/dap/zig.lua b/nvim/.config/nvim/lua/plugin/dap/zig.lua new file mode 100644 index 0000000..433df49 --- /dev/null +++ b/nvim/.config/nvim/lua/plugin/dap/zig.lua @@ -0,0 +1,48 @@ +local dap = require('dap') + +dap.adapters.lldb = { + id = 'lldb', + type = 'executable', + command = 'lldb-dap', +} + +dap.configurations.zig = { + { + name = 'Run executable (lldb)', + type = 'lldb', + request = 'launch', + program = function() + local path = vim.fn.input({ + prompt = 'Path to executable: ', + default = vim.fn.getcwd() .. '/', + completion = 'file', + }) + return (path and path ~= '') and path or dap.ABORT + end, + }, + { + name = 'Run executable with arguments (lldb)', + type = 'lldb', + request = 'launch', + program = function() + local path = vim.fn.input({ + prompt = 'Path to executable: ', + default = vim.fn.getcwd() .. '/', + completion = 'file', + }) + return (path and path ~= '') and path or dap.ABORT + end, + args = function() + local args_str = vim.fn.input({ + prompt = 'Arguments: ', + }) + return vim.split(args_str, ' +') + end + }, + { + name = 'Attach to process (lldb)', + type = 'lldb', + request = 'lldb', + processId = require('dap.utils').pick_process, + }, +} diff --git a/nvim/.config/nvim/plugin/configs.lua b/nvim/.config/nvim/plugin/configs.lua index 663a890..d4f1102 100644 --- a/nvim/.config/nvim/plugin/configs.lua +++ b/nvim/.config/nvim/plugin/configs.lua @@ -1,3 +1,7 @@ vim.g.vimtex_view_method="zathura" vim.opt.completeopt="menu,popup,noinsert,noselect" vim.g.python3_host_prog="/bin/python" + +require("dapui").setup() +require("plugin.dap.c") +require("plugin.dap.zig") diff --git a/nvim/.config/nvim/plugin/configs.vim b/nvim/.config/nvim/plugin/configs.vim new file mode 100644 index 0000000..c10d7e0 --- /dev/null +++ b/nvim/.config/nvim/plugin/configs.vim @@ -0,0 +1,3 @@ +nnoremap sd :lua vim.diagnostic.open_float() +nnoremap :FloatermToggle +let g:neomake_open_list = 2 diff --git a/nvim/.config/nvim/plugin/dap_keybinds.lua b/nvim/.config/nvim/plugin/dap_keybinds.lua new file mode 100644 index 0000000..19a4576 --- /dev/null +++ b/nvim/.config/nvim/plugin/dap_keybinds.lua @@ -0,0 +1,26 @@ +vim.keymap.set('n', '', function() require('dap').continue() end) +vim.keymap.set('n', '', function() require('dap').step_over() end) +vim.keymap.set('n', '', function() require('dap').step_into() end) +vim.keymap.set('n', '', function() require('dap').step_out() end) +vim.keymap.set('n', 'b', function() require('dap').toggle_breakpoint() end) +vim.keymap.set('n', 'B', function() require('dap').set_breakpoint() end) +vim.keymap.set('n', 'lp', function() require('dap').set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) end) +vim.keymap.set('n', 'dr', function() require('dap').repl.open() end) +vim.keymap.set('n', 'dl', function() require('dap').run_last() end) +vim.keymap.set({'n', 'v'}, 'dh', function() + require('dap.ui.widgets').hover() +end) +vim.keymap.set({'n', 'v'}, 'dp', function() + require('dap.ui.widgets').preview() +end) +vim.keymap.set('n', 'df', function() + local widgets = require('dap.ui.widgets') + widgets.centered_float(widgets.frames) +end) +vim.keymap.set('n', 'ds', function() + local widgets = require('dap.ui.widgets') + widgets.centered_float(widgets.scopes) +end) +vim.keymap.set('n', '', function() require("dapui").toggle() end) +vim.keymap.set('n', '', function() require("dapui").eval() end) +vim.keymap.set('v', '', function() require("dapui").eval() end)