diff options
Diffstat (limited to 'lua')
-rw-r--r-- | lua/gabrielgio/dap.lua | 67 | ||||
-rw-r--r-- | lua/gabrielgio/formatter.lua | 37 | ||||
-rw-r--r-- | lua/gabrielgio/lazy.lua | 2 | ||||
-rw-r--r-- | lua/gabrielgio/linter.lua | 2 | ||||
-rw-r--r-- | lua/gabrielgio/lsp.lua | 24 | ||||
-rw-r--r-- | lua/gabrielgio/mini.lua | 12 | ||||
-rw-r--r-- | lua/gabrielgio/settable.lua | 8 | ||||
-rw-r--r-- | lua/gabrielgio/telescope.lua | 36 | ||||
-rw-r--r-- | lua/gabrielgio/term.lua | 28 | ||||
-rw-r--r-- | lua/gabrielgio/treesitter.lua | 2 | ||||
-rw-r--r-- | lua/gabrielgio/trouble.lua | 16 |
11 files changed, 177 insertions, 57 deletions
diff --git a/lua/gabrielgio/dap.lua b/lua/gabrielgio/dap.lua index c5f316b..4d55ca6 100644 --- a/lua/gabrielgio/dap.lua +++ b/lua/gabrielgio/dap.lua @@ -1,5 +1,9 @@ local dap = require("dap") local key = require("gabrielgio.key") +local dapui = require("dapui") +local dapgo = require("dap-go") + +dapgo.setup() key.nnoremap("<F5>", ":lua require'dap'.continue()<CR>") key.nnoremap("<F10>", ":lua require'dap'.step_over()<CR>") @@ -8,6 +12,7 @@ key.nnoremap("<F12>", ":lua require'dap'.step_out()<CR>") key.nnoremap("<leader>b", ":lua require'dap'.toggle_breakpoint()<CR>") key.nnoremap("<leader>B", ":lua require'dap'.set_breakpoint(vim.fn.input('Condition: '))<CR>") key.nnoremap("<leader>dr", ":lua require'dap'.repl.open()<CR>") +key.nnoremap("<Alt-k>", "<Cmd>lua require'dapui'.eval()<CR>") dap.adapters.delve = { type = "server", @@ -15,6 +20,19 @@ dap.adapters.delve = { port = 2345, } +dap.adapters.gdb = { + id = "gdb", + type = "executable", + command = "gdb", + args = { "--interpreter=dap", "--eval-command", "set print pretty on" }, +} + +dap.adapters.lldb = { + type = "executable", + command = "lldb-vscode", -- adjust as needed, must be absolute path + name = "lldb", +} + dap.configurations.go = { { type = "delve", @@ -27,3 +45,52 @@ dap.configurations.go = { }, }, } +dap.configurations.zig = { + { + name = "Launch", + type = "gdb", + request = "launch", + program = function() + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") + end, + cwd = "${workspaceFolder}", + stopAtBeginningOfMainSubprogram = false, + args = function() + local args_str = vim.fn.input({ + prompt = "Arguments: ", + }) + return vim.split(args_str, " +") + end, + }, + { + name = "Launch", + type = "lldb", + request = "launch", + program = function() + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") + end, + cwd = "${workspaceFolder}", + stopAtBeginningOfMainSubprogram = false, + args = function() + local args_str = vim.fn.input({ + prompt = "Arguments: ", + }) + return vim.split(args_str, " +") + end, + }, +} + +dapui.setup({ + layouts = { + { + elements = { + { + id = "watches", + size = 1, + }, + }, + position = "bottom", + size = 10, + }, + }, +}) diff --git a/lua/gabrielgio/formatter.lua b/lua/gabrielgio/formatter.lua index 7f400b6..893b837 100644 --- a/lua/gabrielgio/formatter.lua +++ b/lua/gabrielgio/formatter.lua @@ -1,18 +1,51 @@ local formatter = require("formatter") +local go = require("formatter.filetypes.go") +local util = require("formatter.util") + +local function terraformfmt() + return { + exe = "terraform", + args = { + "fmt", + "-", + }, + stdin = true, + } +end + +local function tspfmt() + return { + exe = "tsp", + args = { + "format", + }, + } +end formatter.setup({ filetype = { nix = { require("formatter.filetypes.nix").alejandra }, lua = { require("formatter.filetypes.lua").stylua }, fish = { require("formatter.filetypes.fish").fishindent }, + javascript = { require("formatter.filetypes.javascript").prettier }, + typescript = { require("formatter.filetypes.javascript").prettier }, + css = { require("formatter.filetypes.css").cssbeautify }, + scss = { require("formatter.filetypes.css").cssbeautify }, + go = { go.gofumpt, go.goimports }, + terraform = { terraformfmt }, + yaml = { require("formatter.filetypes.yaml").yamlfmt }, + typespec = { tspfmt }, }, ["*"] = { require("formatter.filetypes.any").remove_trailing_whitespace, }, }) -vim.api.nvim_create_augroup("__formatter__", { clear = true }) -vim.api.nvim_create_autocmd("BufWritePost", { +local augroup = vim.api.nvim_create_augroup +local autocmd = vim.api.nvim_create_autocmd + +augroup("__formatter__", { clear = true }) +autocmd("BufWritePost", { group = "__formatter__", command = ":FormatWrite", }) diff --git a/lua/gabrielgio/lazy.lua b/lua/gabrielgio/lazy.lua index 93a7b0a..1354b76 100644 --- a/lua/gabrielgio/lazy.lua +++ b/lua/gabrielgio/lazy.lua @@ -5,13 +5,11 @@ require("neogit").setup() require("mason").setup() require("mason-lspconfig").setup({ ensure_installed = { - "buf", "cssls", "emmet_ls", "gopls", "html", "lua_ls", - "nixd", "pylsp", "rust_analyzer", "tsserver", diff --git a/lua/gabrielgio/linter.lua b/lua/gabrielgio/linter.lua index b40c28f..8828f73 100644 --- a/lua/gabrielgio/linter.lua +++ b/lua/gabrielgio/linter.lua @@ -3,8 +3,8 @@ local lint = require("lint") lint.linters_by_ft = { go = { "golangcilint" }, lua = { "luacheck" }, - javascript = { "prettier" }, fish = { "fish" }, + markdown = { "vale" }, } vim.api.nvim_create_autocmd({ "BufWritePost" }, { diff --git a/lua/gabrielgio/lsp.lua b/lua/gabrielgio/lsp.lua index d848859..36a3c25 100644 --- a/lua/gabrielgio/lsp.lua +++ b/lua/gabrielgio/lsp.lua @@ -5,17 +5,14 @@ local function set_key(mode, keys, v, opts) end local function on_attach(client, bufnr) - do - local bufopts = { noremap = true, silent = true, buffer = bufnr } - set_key("n", "gD", vim.lsp.buf.declaration, bufopts) - set_key("n", "gd", vim.lsp.buf.definition, bufopts) - set_key("n", "K", vim.lsp.buf.hover, bufopts) - set_key("n", "gi", vim.lsp.buf.implementation, bufopts) - set_key("n", "<C-s>", vim.lsp.buf.signature_help, bufopts) - set_key("n", "<space>rn", vim.lsp.buf.declaration, bufopts) - set_key("n", "<space>ca", vim.lsp.buf.code_action, bufopts) - set_key("n", "<space>f", vim.lsp.buf.formatting, bufopts) - end + local bufopts = { noremap = true, silent = true, buffer = bufnr } + set_key("n", "gD", vim.lsp.buf.declaration, bufopts) + set_key("n", "gd", vim.lsp.buf.definition, bufopts) + set_key("n", "K", vim.lsp.buf.hover, bufopts) + set_key("n", "gi", vim.lsp.buf.implementation, bufopts) + set_key("n", "<C-s>", vim.lsp.buf.signature_help, bufopts) + set_key("n", "<space>rn", vim.lsp.buf.declaration, bufopts) + set_key("n", "<space>ca", vim.lsp.buf.code_action, bufopts) return bufnr end @@ -38,7 +35,9 @@ load_all({ lsp_config.emmet_ls.setup, lsp_config.pylsp.setup, lsp_config.zls.setup, - lsp_config.tsserver.setup, + lsp_config.ts_ls.setup, + lsp_config.terraformls.setup, + lsp_config.tsp_server.setup, }) lsp_config.gopls.setup({ @@ -47,6 +46,7 @@ lsp_config.gopls.setup({ }) lsp_config.lua_ls.setup({ + on_attach = on_attach, settings = { Lua = { diagnostics = { diff --git a/lua/gabrielgio/mini.lua b/lua/gabrielgio/mini.lua index 2c853cb..087e5be 100644 --- a/lua/gabrielgio/mini.lua +++ b/lua/gabrielgio/mini.lua @@ -1,11 +1,15 @@ -local diff = require("mini.diff") local cmp = require("mini.completion") -local status = require("mini.statusline") +local diff = require("mini.diff") local icons = require("mini.icons") +local notify = require("mini.notify") +local status = require("mini.statusline") local tabline = require("mini.tabline") +local ai = require("mini.ai") -diff.setup({ view = { style = "sign" } }) cmp.setup() -status.setup() +diff.setup({ view = { style = "sign" } }) icons.setup() +notify.setup() +status.setup() tabline.setup() +ai.setup() diff --git a/lua/gabrielgio/settable.lua b/lua/gabrielgio/settable.lua index 1307c72..76aa8d6 100644 --- a/lua/gabrielgio/settable.lua +++ b/lua/gabrielgio/settable.lua @@ -26,9 +26,12 @@ vim.opt.showmode = false vim.opt.colorcolumn = "80" vim.opt.signcolumn = "yes" vim.opt.background = "light" +vim.g.terminal_emulator = "/usr/bin/fish" vim.opt.completeopt = { "menu", "menuone", "noselect" } vim.opt.clipboard = (vim.opt.clipboard + "unnamedplus") vim.opt.spelllang = { "en", "pt_br", "de" } +vim.opt.spelloptions = "camel" +vim.opt.spell = true vim.opt.list = true vim.opt.listchars = { eol = "\194\172", @@ -58,6 +61,11 @@ vim.g.maplocalleader = ";" vim.g.cmake_build_dir = "build" vim.g.cmake_build_type = "Debug" +-- vimwiki +vim.opt.compatible = false +vim.opt.syntax = "on" +vim.cmd("filetype plugin indent on") + key.nnoremap("<leader>w", "<C-w>w") key.nnoremap("<TAB>", ":bnext<CR>") key.nnoremap("<S-TAB>", ":bprevious<CR>") diff --git a/lua/gabrielgio/telescope.lua b/lua/gabrielgio/telescope.lua index b1e6cbe..d8089d1 100644 --- a/lua/gabrielgio/telescope.lua +++ b/lua/gabrielgio/telescope.lua @@ -2,24 +2,24 @@ local key = require("gabrielgio.key") local builtins = require("telescope.builtin") local telescope = require("telescope") -telescope.setup({ - defaults = { - file_ignore_patterns = { - "vendor/", - ".git/", - }, - vimgrep_arguments = { - "rg", - "--color=never", - "--no-heading", - "--with-filename", - "--line-number", - "--column", - "--smart-case", - "--hidden", - }, - }, -}) +telescope.setup{ + defaults = { + file_ignore_patterns = { + 'vendor/', + '\\.git/' + }, + vimgrep_arguments = { + "rg", + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + "--smart-case", + "--hidden" + } + }, +} telescope.load_extension("file_browser") diff --git a/lua/gabrielgio/term.lua b/lua/gabrielgio/term.lua index 0172fbe..0bd5675 100644 --- a/lua/gabrielgio/term.lua +++ b/lua/gabrielgio/term.lua @@ -1,7 +1,29 @@ local key = require("gabrielgio.key") +require("toggleterm").setup() + +local function isempty(s) + return s == nil or s == "" +end + +local lastCommand = "" + key.nnoremap("<C-n>", ":Neogit kind=replace<cr>") -key.nnoremap("<C-p>", ":ToggleTerminal<cr>") -key.tnoremap("<C-p>", "<C-\\><C-n>:ToggleTerminal<cr>") +key.nnoremap("<C-p>", ":ToggleTerm size=40 direction=float<cr>") +key.nnoremap("<C-l>", ":ToggleTerm size=100 direction=vertical<cr>") +key.vnoremap("<C-y>", ":ToggleTermSendVisualSelection<cr>") +key.nnoremap("<C-y>", function() + local user_input = vim.fn.input("$ ") + + if isempty(user_input) then + user_input = lastCommand + end + + if not isempty(user_input) then + vim.cmd(string.format("TermExec cmd='%s'", user_input)) + lastCommand = user_input + end +end) key.tnoremap("<Esc>", "<C-\\><C-n>") -key.tnoremap("<C-n>", "<C-\\><C-n>:Neogit kind=replace<cr>") +key.tnoremap("<C-p>", "<C-\\><C-n>:ToggleTerm<cr>") +key.tnoremap("<C-l>", "<C-\\><C-n>:ToggleTerm<cr>") diff --git a/lua/gabrielgio/treesitter.lua b/lua/gabrielgio/treesitter.lua index d15aa05..118a890 100644 --- a/lua/gabrielgio/treesitter.lua +++ b/lua/gabrielgio/treesitter.lua @@ -1,6 +1,6 @@ local tree_sitter = require("nvim-treesitter.configs") tree_sitter.setup({ - ensure_installed = { "c", "go" }, + ensure_installed = {"go"}, highlight = { enable = true }, }) diff --git a/lua/gabrielgio/trouble.lua b/lua/gabrielgio/trouble.lua index 9249c07..37ade3e 100644 --- a/lua/gabrielgio/trouble.lua +++ b/lua/gabrielgio/trouble.lua @@ -1,18 +1,6 @@ local key = require("gabrielgio.key") local trouble = require("trouble") -trouble.setup({ - modes = { - test = { - mode = "diagnostics", - preview = { - type = "split", - relative = "win", - position = "right", - size = 0.3, - }, - }, - }, -}) +trouble.setup() -key.nnoremap("<leader>t", ":Trouble test toggle<cr>") +key.nnoremap("<leader>t", ":Trouble diagnostics toggle<cr>") |