aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/alpha/completition/init.lua94
-rw-r--r--lua/alpha/dap/configs/dart.lua2
-rw-r--r--lua/alpha/dap/configs/elixir.lua52
-rw-r--r--lua/alpha/dap/configs/javascript.lua103
-rw-r--r--lua/alpha/dap/init.lua4
-rw-r--r--lua/alpha/lsp/attach.lua2
-rw-r--r--lua/alpha/lsp/default.lua1
-rw-r--r--lua/alpha/lsp/servers/kotlin.lua1
-rw-r--r--lua/alpha/lsp/servers/vscode_smarty_langserver.lua25
-rw-r--r--lua/config/autocmds.lua12
-rw-r--r--lua/config/keymaps.lua7
-rw-r--r--lua/plugins/buffer_manager.lua24
-rw-r--r--lua/plugins/colorscheme.lua47
-rw-r--r--lua/plugins/completition.lua16
-rw-r--r--lua/plugins/elixir.lua34
-rw-r--r--lua/plugins/indent-o-matic.lua5
-rw-r--r--lua/plugins/lualine.lua148
-rw-r--r--lua/plugins/luarocks.lua5
-rw-r--r--lua/plugins/nvim-bqf.lua10
-rw-r--r--lua/plugins/smart-splits.lua8
-rw-r--r--lua/plugins/smooth-cursor.lua.n (renamed from lua/plugins/smooth-cursor.lua)0
-rw-r--r--lua/plugins/telescope.lua2
-rw-r--r--lua/plugins/treesitter-context.lua13
-rw-r--r--lua/plugins/treesitter.lua40
-rw-r--r--lua/plugins/treesj.lua11
-rw-r--r--lua/plugins/undotree.lua11
-rw-r--r--lua/plugins/vim-illuminate.lua21
-rw-r--r--lua/plugins/vim-lastplace.lua4
-rw-r--r--lua/plugins/which-key.lua14
29 files changed, 598 insertions, 118 deletions
diff --git a/lua/alpha/completition/init.lua b/lua/alpha/completition/init.lua
index 9933971..667e30b 100644
--- a/lua/alpha/completition/init.lua
+++ b/lua/alpha/completition/init.lua
@@ -7,6 +7,24 @@ local compare = require "cmp.config.compare"
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done { map_char = { tex = "" } })
cmp.setup {
+ window = {
+ completion = {
+ border = "rounded",
+ -- winhighlight = 'Normal:Pmenu,FloatBorder:Pmenu,CursorLine:PmenuSel,Search:None',
+ -- winblend = vim.o.pumblend,
+ -- scrolloff = 0,
+ -- col_offset = 0,
+ -- side_padding = 1,
+ -- scrollbar = true,
+ },
+ documentation = {
+ -- max_height = math.floor(WIDE_HEIGHT * (WIDE_HEIGHT / vim.o.lines)),
+ -- max_width = math.floor((WIDE_HEIGHT * 2) * (vim.o.columns / (WIDE_HEIGHT * 2 * 16 / 9))),
+ border = "rounded",
+ -- winhighlight = 'FloatBorder:NormalFloat',
+ -- winblend = vim.o.pumblend,
+ },
+ },
mapping = {
["<C-d>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
@@ -68,18 +86,70 @@ cmp.setup {
},
formatting = {
- format = lspkind.cmp_format {
- with_text = true,
- menu = {
- buffer = "[buf]",
- nvim_lsp = "[ ]",
- nvim_lua = "[api]",
- path = "[path]",
- luasnip = "[snip]",
- copilot = "[ﮧ ]",
- ["vim-dadbod-completion"] = "[DB]",
- },
- },
+ format = function (entry, vim_item)
+ lspkind.cmp_format {
+ with_text = true,
+ menu = {
+ buffer = "[buf]",
+ nvim_lsp = "[ ]",
+ nvim_lua = "[api]",
+ path = "[path]",
+ luasnip = "[snip]",
+ copilot = "[ﮧ ]",
+ ["vim-dadbod-completion"] = "[DB]",
+ },
+ }
+ local KIND_ICONS = {
+ Tailwind = '󰹞󰹞󰹞󰹞󰹞󰹞󰹞󰹞',
+ Color = ' ',
+ -- Class = 7,
+ -- Constant = '󰚞',
+ -- Constructor = 4,
+ -- Enum = 13,
+ -- EnumMember = 20,
+ -- Event = 23,
+ -- Field = 5,
+ -- File = 17,
+ -- Folder = 19,
+ -- Function = 3,
+ -- Interface = 8,
+ -- Keyword = 14,
+ -- Method = 2,
+ -- Module = 9,
+ -- Operator = 24,
+ -- Property = 10,
+ -- Reference = 18,
+ Snippet = " ",
+ -- Struct = 22,
+ -- Text = "",
+ -- TypeParameter = 25,
+ -- Unit = 11,
+ -- Value = 12,
+ -- Variable = 6
+ }
+ if vim_item.kind == 'Color' and entry.completion_item.documentation then
+ local _, _, r, g, b =
+ ---@diagnostic disable-next-line: param-type-mismatch
+ string.find(entry.completion_item.documentation, '^rgb%((%d+), (%d+), (%d+)')
+
+ if r and g and b then
+ local color = string.format('%02x', r) .. string.format('%02x', g) .. string.format('%02x', b)
+ local group = 'Tw_' .. color
+
+ if vim.api.nvim_call_function('hlID', { group }) < 1 then
+ vim.api.nvim_command('highlight' .. ' ' .. group .. ' ' .. 'guifg=#' .. color)
+ end
+
+ vim_item.kind = KIND_ICONS.Tailwind
+ vim_item.kind_hl_group = group
+
+ return vim_item
+ end
+ end
+
+ vim_item.kind = KIND_ICONS[vim_item.kind] or vim_item.kind
+ return vim_item
+ end
},
sorting = {
diff --git a/lua/alpha/dap/configs/dart.lua b/lua/alpha/dap/configs/dart.lua
index cdb7a47..a23c118 100644
--- a/lua/alpha/dap/configs/dart.lua
+++ b/lua/alpha/dap/configs/dart.lua
@@ -27,6 +27,6 @@ dap.configurations.dart = {
-- The nvim-dap plugin populates this variable with the editor's current working directory
cwd = "${workspaceFolder}",
-- This gets forwarded to the Flutter CLI tool, substitute `linux` for whatever device you wish to launch
- toolArgs = {"-d", "192.168.0.15:5555"}
+ toolArgs = {"-d", "192.168.0.33:5555"}
}
}
diff --git a/lua/alpha/dap/configs/elixir.lua b/lua/alpha/dap/configs/elixir.lua
new file mode 100644
index 0000000..bf732ce
--- /dev/null
+++ b/lua/alpha/dap/configs/elixir.lua
@@ -0,0 +1,52 @@
+local dap = require('dap')
+
+dap.adapters.mix_task = {
+ type = 'executable',
+ command = 'elixir-ls-debugger', -- El comando 'elixir-ls' está en $PATH
+ args = {}
+}
+
+dap.configurations.elixir = {
+ {
+ type = "mix_task",
+ name = "mix (Default task)",
+ request = "launch",
+ projectDir = "${workspaceRoot}"
+ },
+ {
+ type = "mix_task",
+ name = "mix test",
+ request = "launch",
+ task = 'test',
+ env = {
+ MIX_ENV = "test",
+ MIX_TARGET = "host",
+ HEX_UNSAFE_HTTPS = 1
+ },
+ taskArgs = {"--trace"},
+ startApps = true, -- for Phoenix projects
+ projectDir = "${workspaceFolder}",
+ requireFiles = {
+ "test/**/test_helper.exs",
+ "test/**/*_test.exs"
+ }
+ },
+ {
+ type = "mix_task",
+ name = "phx server",
+ request = "launch",
+ stackTraceMode = "all",
+ task = 'phx.server',
+ debugAutoInterpretAllModules = true,
+ noDebug = false,
+ exitAfterTaskReturns = false,
+ env = {
+ MIX_ENV = "dev",
+ MIX_TARGET = "host",
+ HEX_UNSAFE_HTTPS = 1
+ },
+ startApps = false, -- for Phoenix projects
+ taskArgs = {"--no-halt", "--open"},
+ projectDir = "${workspaceFolder}",
+ },
+}
diff --git a/lua/alpha/dap/configs/javascript.lua b/lua/alpha/dap/configs/javascript.lua
index b910f30..03173ba 100644
--- a/lua/alpha/dap/configs/javascript.lua
+++ b/lua/alpha/dap/configs/javascript.lua
@@ -1,45 +1,62 @@
-require("dap-vscode-js").setup {
- debugger_cmd = { "js-debug-adapter" },
- adapters = { "pwa-node", "pwa-chrome", "node-terminal" },
+local dap = require('dap')
+dap.adapters.firefox = {
+ type = 'executable',
+ command = 'firefox-debug-adapter',
}
-for _, language in ipairs { "typescript", "javascript" } do
- require("dap").configurations[language] = {
- {
- type = "pwa-node",
- request = "launch",
- name = "Launch file",
- program = "${file}",
- cwd = "${workspaceFolder}",
- },
- {
- type = "pwa-node",
- request = "attach",
- name = "Attach",
- processId = require("dap.utils").pick_process,
- cwd = "${workspaceFolder}",
- },
- }
-end
-
-for _, language in ipairs { "typescriptreact", "javascriptreact" } do
- require("dap").configurations[language] = {
- {
- type = "pwa-chrome",
- name = "Attach - Remote Debugging",
- request = "attach",
- program = "${file}",
- cwd = vim.fn.getcwd(),
- sourceMaps = true,
- protocol = "inspector",
- port = 9222,
- webRoot = "${workspaceFolder}",
- },
- {
- type = "pwa-chrome",
- name = "Launch Chrome",
- request = "launch",
- url = "http://localhost:3000",
- },
- }
-end
+dap.configurations.typescript = {
+ {
+ name = 'Debug with Firefox',
+ type = 'firefox',
+ request = 'launch',
+ reAttach = true,
+ url = 'http://localhost:3010',
+ webRoot = '${workspaceFolder}',
+ firefoxExecutable = '/home/elvis/.local/bin/firefox'
+ },
+}
+-- require("dap-vscode-js").setup {
+-- debugger_cmd = { "js-debug-adapter" },
+-- adapters = { "pwa-node", "pwa-chrome", "node-terminal" },
+-- }
+--
+-- for _, language in ipairs { "typescript", "javascript" } do
+-- require("dap").configurations[language] = {
+-- {
+-- type = "pwa-node",
+-- request = "launch",
+-- name = "Launch file",
+-- program = "${file}",
+-- cwd = "${workspaceFolder}",
+-- },
+-- {
+-- type = "pwa-node",
+-- request = "attach",
+-- name = "Attach",
+-- processId = require("dap.utils").pick_process,
+-- cwd = "${workspaceFolder}",
+-- },
+-- }
+-- end
+--
+-- for _, language in ipairs { "typescriptreact", "javascriptreact" } do
+-- require("dap").configurations[language] = {
+-- {
+-- type = "pwa-chrome",
+-- name = "Attach - Remote Debugging",
+-- request = "attach",
+-- program = "${file}",
+-- cwd = vim.fn.getcwd(),
+-- sourceMaps = true,
+-- protocol = "inspector",
+-- port = 9222,
+-- webRoot = "${workspaceFolder}",
+-- },
+-- {
+-- type = "pwa-chrome",
+-- name = "Launch Chrome",
+-- request = "launch",
+-- url = "http://localhost:3000",
+-- },
+-- }
+-- end
diff --git a/lua/alpha/dap/init.lua b/lua/alpha/dap/init.lua
index 44b3e50..12ea352 100644
--- a/lua/alpha/dap/init.lua
+++ b/lua/alpha/dap/init.lua
@@ -1,5 +1,7 @@
local dap, dapui, hydra = require "dap", require "dapui", require "hydra"
+dap.set_log_level('TRACE')
+
-- Setup Virtual Text
require("nvim-dap-virtual-text").setup {}
@@ -15,7 +17,7 @@ vim.fn.sign_define("DapBreakpointCondition", { text = "❓", texthl = "", linehl
vim.fn.sign_define("DapLogPoint", { text = "💬", texthl = "", linehl = "", numhl = "" })
-- UI structure
-dapui.setup {
+dapui.setup {
icons = { expanded = "▾", collapsed = "▸" },
layouts = {
{
diff --git a/lua/alpha/lsp/attach.lua b/lua/alpha/lsp/attach.lua
index e71cb75..7c7413c 100644
--- a/lua/alpha/lsp/attach.lua
+++ b/lua/alpha/lsp/attach.lua
@@ -24,6 +24,6 @@ return function(client, bufnr)
vim.bo.omnifunc = "v:lua.vim.lsp.omnifunc"
if client.server_capabilities.inlayHintProvider then
- vim.lsp.inlay_hint(bufnr, true)
+ vim.lsp.inlay_hint.enable(bufnr)
end
end
diff --git a/lua/alpha/lsp/default.lua b/lua/alpha/lsp/default.lua
index e4bf24e..61e1b28 100644
--- a/lua/alpha/lsp/default.lua
+++ b/lua/alpha/lsp/default.lua
@@ -19,6 +19,7 @@ return {
texlab = { enable = true, filetypes = {"tex", "bib"} },
pyright = { enable = true, filetypes = {"python"} },
kotlin_language_server = { enable = true, filetypes = {"kotlin"}, root_dir = require("lspconfig.util").root_pattern("build.gradle.kts", "pom.xml", ".git") },
+ smarty_ls = { enable = true, filetypes = {"smarty"}, root_dir = require("lspconfig.util").root_pattern("composer.json", ".git") },
},
default_options = function (options)
return vim.tbl_deep_extend("force", {
diff --git a/lua/alpha/lsp/servers/kotlin.lua b/lua/alpha/lsp/servers/kotlin.lua
deleted file mode 100644
index 39cdd0d..0000000
--- a/lua/alpha/lsp/servers/kotlin.lua
+++ /dev/null
@@ -1 +0,0 @@
--
diff --git a/lua/alpha/lsp/servers/vscode_smarty_langserver.lua b/lua/alpha/lsp/servers/vscode_smarty_langserver.lua
new file mode 100644
index 0000000..e404698
--- /dev/null
+++ b/lua/alpha/lsp/servers/vscode_smarty_langserver.lua
@@ -0,0 +1,25 @@
+local lsp_attach = require "alpha.lsp.attach"
+local lsp_flags = require "alpha.lsp.flags"
+
+return function(ops)
+ return vim.tbl_extend("force", {
+ on_attach = lsp_attach,
+ flags = lsp_flags,
+ settings = {
+ css = {
+ validate = true
+ },
+ smarty = {
+ pluginDirs = {}
+ },
+ ["smarty_ls"] = {
+ checkOnSave = {
+ overrideCommand = {
+ "smarty-language-server",
+ "--stdio",
+ },
+ },
+ },
+ },
+ }, ops)
+end
diff --git a/lua/config/autocmds.lua b/lua/config/autocmds.lua
index c178f44..b62150e 100644
--- a/lua/config/autocmds.lua
+++ b/lua/config/autocmds.lua
@@ -37,3 +37,15 @@ vim.api.nvim_create_autocmd({ "BufWritePre" }, {
vim.cmd [[%s/\s\+$//e]]
end,
})
+
+if vim.fn.has("persistent_undo") then
+ local target_path = vim.fn.expand('~/.cache/undodir')
+ -- crear el directorio y cualquier directorio padre
+ -- si la ubicación no existe.
+ if not vim.fn.isdirectory(target_path) then
+ vim.fn.mkdir(target_path, "p", 0700)
+ end
+
+ vim.o.undodir = target_path
+ vim.o.undofile = true
+end
diff --git a/lua/config/keymaps.lua b/lua/config/keymaps.lua
index cf70ef0..d56b536 100644
--- a/lua/config/keymaps.lua
+++ b/lua/config/keymaps.lua
@@ -32,6 +32,8 @@ map("n", "<C-k>", ":cprev<CR>zz", { desc = "Goes to the previous item in the qui
-- map("n", "<leader>o", ":lprev<CR>zz")
map("n", "<leader>cc", ":cclose<CR>", { desc = "Close the quick fix list" })
+map("n", "<leader><leader><leader>tc", ":TSContextToggle<CR>", { desc = "Toggle treesitter context" })
+
-- tabulation
map("v", "<", "<gv", { desc = "Indent out and keeps the selection" })
map("v", ">", ">gv", { desc = "Indent in and keeps the selection" })
@@ -72,7 +74,9 @@ map("n", "<leader>vp", vim.diagnostic.goto_prev, { desc = "Goes to prev diagnost
map("v", "<leader>q", require('alpha.select_to_quickfix').handle)
map('n', '99', ':set invspell<CR>', { noremap = true })
-map("n", "<leader>ss", function() require('nvim-python-repl').send_statement_definition() end, { desc = "Send semantic unit to REPL"})
+-- map("n", "<leader>ss", function() require('nvim-python-repl').send_statement_definition() end, { desc = "Send semantic unit to REPL"})
+vim.api.nvim_set_keymap('n', '<C-Enter>', [[<Esc>:lua require('nvim-python-repl').send_statement_definition()<CR>j]], {noremap = true, silent = true})
+vim.api.nvim_set_keymap('i', '<C-Enter>', [[<Esc>:lua require('nvim-python-repl').send_statement_definition()<CR>i]], {noremap = true, silent = true})
map("n", "<leader>sl", function() require('nvim-python-repl').send_visual_to_repl() end, { desc = "Send visual selection to REPL"})
map("v", "<leader>sl", function() require('nvim-python-repl').send_visual_to_repl() end, { desc = "Send visual selection to REPL"})
map("n", "<leader>MReturn", function() require('nvim-python-repl').send_buffer_to_repl() end, { desc = "Send entire buffer to REPL"})
@@ -82,3 +86,4 @@ map("n", "<leader>rl",function() require('rust-tools').inlay_hints.enable() end,
map("n", "<leader>rdl",function() require('rust-tools').inlay_hints.disable() end, {desc = "Disable inlay hints auto update and unset them for all buffers"})
map("n", "<leader>rrn", function () require('rust-tools').runnables.runnables() end, {desc = "run rust"})
map("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory" })
+map("n", "<leader>fg", function() require('telescope').extensions.live_grep_args.live_grep_args() end, {desc = "run grep"})
diff --git a/lua/plugins/buffer_manager.lua b/lua/plugins/buffer_manager.lua
new file mode 100644
index 0000000..794e178
--- /dev/null
+++ b/lua/plugins/buffer_manager.lua
@@ -0,0 +1,24 @@
+return {
+ 'j-morano/buffer_manager.nvim',
+ dependencies = { 'nvim-lua/plenary.nvim' },
+ keys = {
+ {
+ desc = 'Buffer Manager',
+ '<leader>o',
+ function() require('buffer_manager.ui').toggle_quick_menu() end,
+ },
+ {
+ desc = 'Next buffer',
+ ']b',
+ function() require('buffer_manager.ui').nav_next() end,
+ },
+ {
+ desc = 'Previous buffer',
+ '[b',
+ function() require('buffer_manager.ui').nav_prev() end,
+ },
+ },
+ opts = {
+ width = 0.9,
+ },
+ }
diff --git a/lua/plugins/colorscheme.lua b/lua/plugins/colorscheme.lua
index 0b90faf..b72b76f 100644
--- a/lua/plugins/colorscheme.lua
+++ b/lua/plugins/colorscheme.lua
@@ -1,11 +1,40 @@
return {
- "wuelnerdotexe/vim-enfocado",
- lazy = false,
- priority = 1000,
- init = function()
- vim.g.enfocado_style = "neon"
- end,
- config = function()
- vim.cmd.colorscheme "enfocado"
- end,
+ {
+ 'catppuccin/nvim',
+ name = 'catppuccin',
+ lazy = false,
+ priority = 1000,
+ opts = {
+ flavour = 'frappe',
+ transparent_background = true,
+ integrations = {
+ mason = true,
+ mini = true,
+ native_lsp = {
+ underlines = {
+ errors = { 'undercurl' },
+ hints = { 'undercurl' },
+ warnings = { 'undercurl' },
+ information = { 'undercurl' },
+ },
+ },
+ treesitter_context = true,
+ which_key = true,
+ },
+ },
+ config = function(_, opts)
+ require('catppuccin').setup(opts)
+ vim.cmd.colorscheme 'catppuccin'
+ end,
+ },
+ {
+ 'stevearc/dressing.nvim',
+ event = 'VeryLazy',
+ opts = {
+ input = {
+ insert_only = false,
+ start_in_insert = false,
+ },
+ },
+ },
}
diff --git a/lua/plugins/completition.lua b/lua/plugins/completition.lua
index b659fb7..0037c40 100644
--- a/lua/plugins/completition.lua
+++ b/lua/plugins/completition.lua
@@ -31,21 +31,21 @@ return {
dict.setup({
-- The following are default values.
- exact = 2,
+ exact_length = 2,
first_case_insensitive = false,
document = false,
document_command = "wn %s -over",
sqlite = false,
- max_items = -1,
- capacity = 5,
+ max_number_items = -1,
+ -- capacity = 5,
debug = false,
})
- dict.switcher({
- spelllang = {
- es = "./../../spell/dic_es.dict",
- },
- })
+ -- dict.switcher({
+ -- spelllang = {
+ -- es = "./../../spell/dic_es.dict",
+ -- },
+ -- })
end,
},
diff --git a/lua/plugins/elixir.lua b/lua/plugins/elixir.lua
new file mode 100644
index 0000000..6aabb08
--- /dev/null
+++ b/lua/plugins/elixir.lua
@@ -0,0 +1,34 @@
+return {
+ "elixir-tools/elixir-tools.nvim",
+ version = "*",
+ event = { "BufReadPre", "BufNewFile" },
+ filetypes = { "elixir" },
+ config = function()
+ local elixir = require("elixir")
+ local elixirls = require("elixir.elixirls")
+
+ elixir.setup {
+ nextls = {enable = false},
+ credo = {enable = false},
+ elixirls = {
+ enable = true,
+ cmd = "elixir-ls",
+ settings = elixirls.settings {
+ incrementalDialyzer = true,
+ dialyzerEnabled = true,
+ fetchDeps = true,
+ enableTestLenses = true,
+ suggestSpecs = true,
+ },
+ on_attach = function(client, bufnr)
+ vim.keymap.set("n", "<space>fp", ":ElixirFromPipe<cr>", { buffer = true, noremap = true })
+ vim.keymap.set("n", "<space>tp", ":ElixirToPipe<cr>", { buffer = true, noremap = true })
+ vim.keymap.set("v", "<space>em", ":ElixirExpandMacro<cr>", { buffer = true, noremap = true })
+ end,
+ }
+ }
+ end,
+ dependencies = {
+ "nvim-lua/plenary.nvim",
+ },
+}
diff --git a/lua/plugins/indent-o-matic.lua b/lua/plugins/indent-o-matic.lua
new file mode 100644
index 0000000..39b53d3
--- /dev/null
+++ b/lua/plugins/indent-o-matic.lua
@@ -0,0 +1,5 @@
+return {
+ 'Darazaki/indent-o-matic',
+ event = 'BufReadPre',
+ opts = {},
+ }
diff --git a/lua/plugins/lualine.lua b/lua/plugins/lualine.lua
index e4c3b4a..8406d42 100644
--- a/lua/plugins/lualine.lua
+++ b/lua/plugins/lualine.lua
@@ -1,19 +1,40 @@
return {
- "nvim-lualine/lualine.nvim",
- dependencies = { "kyazdani42/nvim-web-devicons" },
- config = function()
- require("lualine").setup {
- options = {
- theme = "auto",
- icons_enabled = true,
- globalstatus = true,
- },
- extensions = { "quickfix", "fugitive" },
- sections = {
- lualine_a = { { "mode", upper = true } },
- lualine_b = { { "branch", icon = "" }, "db_ui#statusline" },
- lualine_c = { { "filename", file_status = true, path = 1 } },
- lualine_x = {
+ {
+ 'nvim-lualine/lualine.nvim',
+ dependencies = {
+ 'kyazdani42/nvim-web-devicons',
+ 'arkav/lualine-lsp-progress',
+ },
+ opts = function()
+ local function winnr() return ' ' .. vim.fn.winnr() end
+ local function bufnr() return '󱔗 ' .. vim.fn.bufnr() end
+
+ local function lualine_c(filename_opts)
+ filename_opts = filename_opts or {}
+
+ return {
+ {
+ 'filetype',
+ icon_only = true,
+ separator = '',
+ padding = { left = 1, right = 0 },
+ },
+ {
+ 'filename',
+ file_status = filename_opts.file_status,
+ padding = 0,
+ path = filename_opts.fullpath and 1,
+ separator = '',
+ },
+ }
+ end
+
+ local sections = {
+ lualine_a = { winnr },
+ lualine_b = { bufnr },
+ lualine_d = lualine_c { fullpath = true },
+ lualine_x = { 'searchcount' },
+ lualine_y = {
"diagnostics",
"diff",
{
@@ -27,25 +48,80 @@ return {
color = { fg = "ff9e64" },
},
},
- lualine_y = { "filetype" },
- lualine_z = { "location" },
- },
- winbar = {
- lualine_a = {},
- lualine_b = {},
- lualine_c = {},
- lualine_x = {},
- lualine_y = {},
- lualine_z = {},
- },
- inactive_winbar = {
- lualine_a = {},
- lualine_b = {},
- lualine_c = { {"filename", file_status = true, path = 1} },
- lualine_x = {},
- lualine_y = {},
- lualine_z = {},
- },
- }
- end,
+ lualine_z = { 'progress' },
+ }
+
+ return {
+ options = {
+ disabled_filetypes = { 'alpha', 'dbui', 'fugitiveblame' },
+ theme = 'catppuccin',
+ },
+ tabline = {
+ lualine_a = {
+ 'mode',
+ 'selectioncount',
+ function() return vim.fn.fnamemodify(vim.fn.getcwd(), ':p:~:h') end,
+ },
+ lualine_b = {
+ function()
+ local dap_status = require('dap').status()
+
+ return dap_status ~= '' and '󰃤 ' .. dap_status or ''
+ end,
+ },
+ lualine_x = { 'lsp_progress' },
+ lualine_y = { { "branch", icon = "" }, "db_ui#statusline" },
+ lualine_z = {
+ {
+ 'tabs',
+ show_modified_status = false,
+ use_mode_colors = true,
+ },
+ },
+ },
+ sections = sections,
+ inactive_sections = sections,
+ extensions = {
+ {
+ filetypes = { 'fugitive', 'git' },
+ sections = vim.tbl_extend('force', sections, {
+ lualine_c = { { 'FugitiveHead', icon = '' } },
+ }),
+ },
+ {
+ filetypes = { 'help', 'man' },
+ sections = vim.tbl_extend('force', sections, {
+ lualine_c = lualine_c { file_status = false },
+ }),
+ },
+ {
+ filetypes = { 'oil' },
+ sections = vim.tbl_extend('force', sections, {
+ lualine_c = {
+ {
+ function()
+ local dir = require('oil').get_current_dir()
+
+ return dir and vim.fn.fnamemodify(dir, ':p:~:.')
+ end,
+ icon = {
+ '',
+ color = {
+ fg = require('catppuccin.palettes').get_palette('frappe').maroon,
+ },
+ },
+ },
+ },
+ }),
+ },
+ {
+ filetypes = { 'qf' },
+ sections = vim.tbl_extend('force', sections, {
+ lualine_c = { 'w:quickfix_title' },
+ }),
+ },
+ },
+ }
+ end,
+ },
}
diff --git a/lua/plugins/luarocks.lua b/lua/plugins/luarocks.lua
new file mode 100644
index 0000000..c8dfe6c
--- /dev/null
+++ b/lua/plugins/luarocks.lua
@@ -0,0 +1,5 @@
+return {
+ "vhyrro/luarocks.nvim",
+ priority = 1000, -- Very high priority is required, luarocks.nvim should run as the first plugin in your config.
+ config = true,
+}
diff --git a/lua/plugins/nvim-bqf.lua b/lua/plugins/nvim-bqf.lua
new file mode 100644
index 0000000..5de7214
--- /dev/null
+++ b/lua/plugins/nvim-bqf.lua
@@ -0,0 +1,10 @@
+return {
+ 'kevinhwang91/nvim-bqf',
+ ft = 'qf',
+ opts = {
+ auto_resize_height = true,
+ preview = {
+ wrap = true,
+ },
+ },
+ }
diff --git a/lua/plugins/smart-splits.lua b/lua/plugins/smart-splits.lua
index 57faedb..29cccb7 100644
--- a/lua/plugins/smart-splits.lua
+++ b/lua/plugins/smart-splits.lua
@@ -3,28 +3,28 @@ return {
config = true,
keys = {
{
- "<A-h>",
+ "<leader><A-h>",
function()
require("smart-splits").resize_left()
end,
desc = "Resize window left +10",
},
{
- "<A-j>",
+ "<leader><A-j>",
function()
require("smart-splits").resize_down()
end,
desc = "Resize window down +10",
},
{
- "<A-k>",
+ "<leader><A-k>",
function()
require("smart-splits").resize_up()
end,
desc = "Resize window up +10",
},
{
- "<A-l>",
+ "<leader><A-l>",
function()
require("smart-splits").resize_right()
end,
diff --git a/lua/plugins/smooth-cursor.lua b/lua/plugins/smooth-cursor.lua.n
index 71fe431..71fe431 100644
--- a/lua/plugins/smooth-cursor.lua
+++ b/lua/plugins/smooth-cursor.lua.n
diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua
index 4f5b59d..291f777 100644
--- a/lua/plugins/telescope.lua
+++ b/lua/plugins/telescope.lua
@@ -7,6 +7,7 @@ return {
{ "kyazdani42/nvim-web-devicons" },
{ "nvim-telescope/telescope-file-browser.nvim" },
{ "nvim-telescope/telescope-ui-select.nvim" },
+ { "nvim-telescope/telescope-live-grep-args.nvim" },
{
"nvim-telescope/telescope-fzf-native.nvim",
build = "make",
@@ -29,5 +30,6 @@ return {
config = function()
require "alpha.telescope.setup"
require "alpha.telescope.mappings"
+ require("telescope").load_extension("live_grep_args")
end,
}
diff --git a/lua/plugins/treesitter-context.lua b/lua/plugins/treesitter-context.lua
new file mode 100644
index 0000000..0f68d08
--- /dev/null
+++ b/lua/plugins/treesitter-context.lua
@@ -0,0 +1,13 @@
+return {
+ 'nvim-treesitter/nvim-treesitter-context',
+ dependencies = { 'nvim-treesitter/nvim-treesitter' },
+ event = { 'BufReadPre', 'BufNew', 'BufNewFile' },
+ cmd = {
+ 'TSContextDisable',
+ 'TSContextEnable',
+ 'TSContextToggle',
+ },
+ opts = {
+ max_lines = 8,
+ },
+ }
diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua
index 9bbcde2..363f081 100644
--- a/lua/plugins/treesitter.lua
+++ b/