aboutsummaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/gabrielgio/dap.lua67
-rw-r--r--lua/gabrielgio/formatter.lua37
-rw-r--r--lua/gabrielgio/lazy.lua2
-rw-r--r--lua/gabrielgio/linter.lua2
-rw-r--r--lua/gabrielgio/lsp.lua24
-rw-r--r--lua/gabrielgio/mini.lua12
-rw-r--r--lua/gabrielgio/settable.lua8
-rw-r--r--lua/gabrielgio/telescope.lua36
-rw-r--r--lua/gabrielgio/term.lua28
-rw-r--r--lua/gabrielgio/treesitter.lua2
-rw-r--r--lua/gabrielgio/trouble.lua16
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>")