Compare commits

..

No commits in common. "cc046fb4470c8bf3c83899d07e7ba87ee64fb628" and "92f62551d9d23fe8328d84cca17f7e52644fdf1b" have entirely different histories.

11 changed files with 78 additions and 98 deletions

View File

@ -6,7 +6,7 @@ TERM = "xterm-256color"
size = 9.8 size = 9.8
[font.normal] [font.normal]
family = "Hack Nerd Font" family = "Hack Nerd Font Mono"
[window] [window]
decorations = "none" decorations = "none"

View File

@ -1,3 +1,5 @@
local window = require("symbols.window")
-- Highlight on yank -- Highlight on yank
vim.api.nvim_create_autocmd("TextYankPost", { vim.api.nvim_create_autocmd("TextYankPost", {
callback = function() callback = function()
@ -25,58 +27,63 @@ vim.api.nvim_create_autocmd({ "InsertEnter", "WinLeave" }, {
end, end,
}) })
local group = vim.api.nvim_create_augroup("lsp-attach", { clear = true })
-- Setup lsp keybindings -- Setup lsp keybindings
vim.api.nvim_create_autocmd("LspAttach", { vim.api.nvim_create_autocmd("LspAttach", {
group = group,
callback = function(event) callback = function(event)
local map = function(keys, func, desc, mode)
mode = mode or "n"
vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = desc })
end
-- Symbols -- Symbols
map("grD", vim.lsp.buf.declaration, "Goto declaration") vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Goto definition" })
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { desc = "Goto declaration" })
vim.keymap.set("n", "<leader>D", vim.lsp.buf.type_definition, { desc = "Type definition" })
local has_telescope, telescope = pcall(require, "telescope.builtin") if pcall(require, "telescope") then
if has_telescope then vim.keymap.set("n", "gr", require("telescope.builtin").lsp_references, { desc = "Goto references" })
map("grd", telescope.lsp_definitions, "Goto definition") vim.keymap.set(
"n",
map("grt", telescope.lsp_type_definitions, "Type definition") "gI",
require("telescope.builtin").lsp_implementations,
map("grr", telescope.lsp_references, "Goto references") { desc = "Goto implementation" }
map("gri", telescope.lsp_implementations, "Goto implementation") )
map("gO", telescope.lsp_document_symbols, "Document symbols") vim.keymap.set(
map("gW", telescope.lsp_dynamic_workspace_symbols, "Workspace symbols") "n",
"<leader>ds",
require("telescope.builtin").lsp_document_symbols,
{ desc = "Document symbols" }
)
vim.keymap.set(
"n",
"<leader>ws",
require("telescope.builtin").lsp_dynamic_workspace_symbols,
{ desc = "Workspace symbols" }
)
end end
-- Diagnostics -- Diagnostics
map("[d", function() vim.keymap.set("n", "[d", function()
vim.diagnostic.jump({ count = -1 }) vim.diagnostic.jump({ count = -1 })
end, "Go to previous diagnostic message") end, { desc = "Go to previous diagnostic message" })
map("]d", function() vim.keymap.set("n", "]d", function()
vim.diagnostic.jump({ count = 1 }) vim.diagnostic.jump({ count = 1 })
end, "Go to next diagnostic message") end, { desc = "Go to next diagnostic message" })
map("<leader>e", vim.diagnostic.open_float, "Open floating diagnostic message") vim.keymap.set("n", "<leader>e", vim.diagnostic.open_float, { desc = "Open floating diagnostic message" })
-- Helpers -- Helpers
vim.keymap.set("n", "grn", function() vim.keymap.set("n", "<leader>rn", function()
return ":IncRename " .. vim.fn.expand("<cword>") return ":IncRename " .. vim.fn.expand("<cword>")
end, { buffer = event.buf, expr = true, desc = "Rename" }) end, { buffer = event.buf, expr = true, desc = "Rename" })
map("gra", vim.lsp.buf.code_action, "Code actions", { "n", "x" }) vim.keymap.set(
"n",
"<leader>ca",
vim.lsp.buf.code_action,
{ buffer = event.buf, desc = "Code actions", remap = true }
)
local client = vim.lsp.get_client_by_id(event.data.client_id) -- Documentation
if client and client:supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then -- vim.keymap.set("n", "<C-k>", vim.lsp.buf.signature_help, { desc = "Signature Documentation" })
map("<leader>th", function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = event.buf }))
end, "Inlay hints")
end
end, end,
}) })
-- Setup cursor hover symbol highlight -- Setup cursor hover symbol highlight
vim.api.nvim_create_autocmd("LspAttach", { vim.api.nvim_create_autocmd("LspAttach", {
group = group,
callback = function(event) callback = function(event)
local client = vim.lsp.get_client_by_id(event.data.client_id) local client = vim.lsp.get_client_by_id(event.data.client_id)
if client and client:supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight, event.buf) then if client and client:supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight, event.buf) then
@ -106,7 +113,6 @@ vim.api.nvim_create_autocmd("LspAttach", {
-- Disable lsp based syntax highlighting -- Disable lsp based syntax highlighting
vim.api.nvim_create_autocmd("LspAttach", { vim.api.nvim_create_autocmd("LspAttach", {
group = group,
callback = function(event) callback = function(event)
local client = vim.lsp.get_client_by_id(event.data.client_id) local client = vim.lsp.get_client_by_id(event.data.client_id)
if client and client.server_capabilities.semanticTokensProvider then if client and client.server_capabilities.semanticTokensProvider then

View File

@ -66,8 +66,6 @@ vim.o.listchars = "trail:~,tab:¦⁃,nbsp:␣"
vim.o.list = true vim.o.list = true
-- Fold settings -- Fold settings
vim.wo.foldmethod = "expr"
vim.wo.foldexpr = "v:lua.vim.treesitter.foldexpr()"
vim.o.foldlevelstart = 99 vim.o.foldlevelstart = 99
-- Windows borders -- Windows borders
@ -77,17 +75,11 @@ vim.o.winborder = window.border
vim.diagnostic.config({ vim.diagnostic.config({
severity_sort = true, severity_sort = true,
signs = { signs = {
numhl = {
[vim.diagnostic.severity.ERROR] = "DiagnosticNumError",
[vim.diagnostic.severity.WARN] = "DiagnosticNumWarn",
[vim.diagnostic.severity.HINT] = "DiagnosticNumHint",
[vim.diagnostic.severity.INFO] = "DiagnosticNumInfo",
},
text = { text = {
[vim.diagnostic.severity.ERROR] = "", [vim.diagnostic.severity.ERROR] = diagnostic.error,
[vim.diagnostic.severity.WARN] = "", [vim.diagnostic.severity.WARN] = diagnostic.warn,
[vim.diagnostic.severity.HINT] = "", [vim.diagnostic.severity.HINT] = diagnostic.hint,
[vim.diagnostic.severity.INFO] = "", [vim.diagnostic.severity.INFO] = diagnostic.info,
}, },
}, },
float = { float = {
@ -101,7 +93,7 @@ vim.diagnostic.config({
}, },
virtual_text = { virtual_text = {
prefix = function(d) prefix = function(d)
return diagnostic[d.severity] return vim.diagnostic.config().signs.text[d.severity]
end, end,
virt_text_pos = "eol_right_align", virt_text_pos = "eol_right_align",
}, },

View File

@ -1,13 +1,6 @@
-- https://github.com/numToStr/Comment.nvim -- https://github.com/numToStr/Comment.nvim
return { return {
"numToStr/Comment.nvim", 'numToStr/Comment.nvim',
event = "VeryLazy", event = "VeryLazy",
opts = { opts = {},
toggler = {
block = "gBc",
},
opleader = {
block = "gB",
},
},
} }

View File

@ -1,4 +1,3 @@
-- https://github.com/lewis6991/gitsigns.nvim
return { return {
-- Adds git related signs to the gutter, as well as utilities for managing changes -- Adds git related signs to the gutter, as well as utilities for managing changes
"lewis6991/gitsigns.nvim", "lewis6991/gitsigns.nvim",
@ -21,33 +20,33 @@ return {
}, },
attach_to_untracked = true, attach_to_untracked = true,
current_line_blame_opts = { current_line_blame_opts = {
virt_text_pos = "eol", virt_text_pos = "right_align",
virt_text_priority = 1,
delay = 200, delay = 200,
priority = 9999,
}, },
}, },
init = function() init = function()
local ga = require("gitsigns.actions") vim.keymap.set("n", "<leader>gs", require("gitsigns.actions").stage_hunk, { desc = "Stage hunk" })
vim.keymap.set("n", "gs", ga.stage_hunk, { desc = "(Un)stage hunk" }) vim.keymap.set("v", "<leader>gs", function()
vim.keymap.set("v", "gs", function() require("gitsigns.actions").stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
ga.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) end, { desc = "Stage selection" })
end, { desc = "(Un)stage selection" })
vim.keymap.set("n", "gd", ga.preview_hunk, { desc = "Diff hunk" }) vim.keymap.set("n", "<leader>gS", require("gitsigns.actions").undo_stage_hunk, { desc = "Undo stage hunk" })
vim.keymap.set("n", "<leader>tb", ga.toggle_current_line_blame, { desc = "Line blame" }) vim.keymap.set("n", "<leader>gd", require("gitsigns.actions").preview_hunk, { desc = "Diff hunk" })
vim.keymap.set("n", "gb", ga.blame_line, { desc = "View blame" })
vim.keymap.set("n", "<leader>gr", ga.reset_hunk, { desc = "Reset hunk" }) vim.keymap.set("n", "<leader>gb", require("gitsigns.actions").toggle_current_line_blame, { desc = "Blame" })
vim.keymap.set("n", "<leader>gr", require("gitsigns.actions").reset_hunk, { desc = "Reset hunk" })
vim.keymap.set("v", "<leader>gr", function() vim.keymap.set("v", "<leader>gr", function()
ga.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) require("gitsigns.actions").reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
end, { desc = "Reset selection" }) end, { desc = "Reset selection" })
vim.keymap.set("n", "]g", function() vim.keymap.set("n", "]g", function()
ga.nav_hunk("next") require("gitsigns.actions").nav_hunk("next")
end, { desc = "Next hunk" }) end, { desc = "Next hunk" })
vim.keymap.set("n", "[g", function() vim.keymap.set("n", "[g", function()
ga.nav_hunk("prev") require("gitsigns.actions").nav_hunk("prev")
end, { desc = "Previous hunk" }) end, { desc = "Previous hunk" })
end, end,
} }

View File

@ -5,10 +5,9 @@ return {
ft = "lua", ft = "lua",
opts = { opts = {
library = { library = {
-- See the configuration section for more details { path = "luvit-meta/library", words = { "vim%.uv" } },
-- Load luvit types when the `vim.uv` word is found
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
}, },
}, },
}, },
{ "Bilal2453/luvit-meta", lazy = true }, -- optional `vim.uv` typings
} }

View File

@ -35,7 +35,7 @@ return {
-- HACK: Hack -- HACK: Hack
HACK = { icon = diagnostic.hack }, HACK = { icon = diagnostic.hack },
-- WARN: Warn -- WARN: Warn
WARN = { icon = diagnostic.warn }, WARN = { icon = diagnostic.warning },
-- PERF: Perf -- PERF: Perf
PERF = { icon = diagnostic.performance }, PERF = { icon = diagnostic.performance },
-- NOTE: Note -- NOTE: Note

View File

@ -18,9 +18,10 @@ return {
incremental_selection = { incremental_selection = {
enable = true, enable = true,
keymaps = { keymaps = {
init_selection = "<M-o>", init_selection = "<c-space>",
node_incremental = "<M-o>", node_incremental = "<c-space>",
node_decremental = "<M-i>", scope_incremental = "<c-s>",
node_decremental = "<M-space>",
}, },
}, },
textobjects = { textobjects = {

View File

@ -49,9 +49,8 @@ return {
require("which-key").add({ require("which-key").add({
{ "<leader>b", group = "Buffer" }, { "<leader>b", group = "Buffer" },
{ "<leader>d", group = "Document" }, { "<leader>d", group = "Document" },
{ "<leader>t", group = "Toggle" }, { "<leader>g", group = "Git" },
{ "<leader>s", group = "Search" }, { "<leader>s", group = "Search" },
{ "gr", group = "LSP" },
}) })
end, end,
} }

View File

@ -1,13 +1,9 @@
-- Symbols to use for diagnostics -- Symbols to use for diagnostics
return { return {
-- LSP Status symbols -- LSP Status symbols
[vim.diagnostic.severity.ERROR] = "", error = "",
[vim.diagnostic.severity.WARN] = "", warn = "",
[vim.diagnostic.severity.INFO] = "", info = "",
[vim.diagnostic.severity.HINT] = "󰌵",
error = "",
warn = "",
info = "",
hint = "󰌵", hint = "󰌵",
-- Comment type symbols -- Comment type symbols
bug = "󰃤", bug = "󰃤",

View File

@ -11,7 +11,6 @@ return {
strings = false, strings = false,
}, },
overrides = { overrides = {
CursorLineNr = { fg = palette.light4, bg = palette.dark1, bold = true },
YankHighlight = { fg = palette.bright_blue, bg = palette.dark0, reverse = true }, YankHighlight = { fg = palette.bright_blue, bg = palette.dark0, reverse = true },
Search = { fg = palette.bright_aqua }, Search = { fg = palette.bright_aqua },
IncSearch = { link = "Search" }, IncSearch = { link = "Search" },
@ -44,12 +43,12 @@ return {
TodoCommentHint = { fg = palette.bright_aqua }, TodoCommentHint = { fg = palette.bright_aqua },
TodoCommentTest = { fg = palette.bright_purple }, TodoCommentTest = { fg = palette.bright_purple },
TodoCommentDefault = { fg = palette.bright_blue }, TodoCommentDefault = { fg = palette.bright_blue },
GitSignsAdd = { fg = palette.bright_green, bold = true }, GitSignsAdd = { link = "GruvboxGreenSign" },
GitSignsStagedAdd = { fg = palette.dark_green, bold = true }, GitSignsStagedAdd = { fg = palette.dark_green, bg = palette.dark1 },
GitSignsChange = { fg = palette.bright_aqua, bold = true }, GitSignsChange = { link = "GruvboxAquaSign" },
GitSignsStagedChange = { fg = palette.dark_aqua, bold = true }, GitSignsStagedChange = { fg = palette.dark_aqua, bg = palette.dark1 },
GitSignsDelete = { fg = palette.bright_red, bold = true }, GitSignsDelete = { link = "GruvboxRedSign" },
GitSignsStagedDelete = { fg = palette.dark_red, bold = true }, GitSignsStagedDelete = { fg = palette.dark_red, bg = palette.dark1 },
GitSignsCurrentLineBlame = { link = "GruvboxFg4" }, GitSignsCurrentLineBlame = { link = "GruvboxFg4" },
NeoTreeGitAdded = { link = "GruboxGreen" }, NeoTreeGitAdded = { link = "GruboxGreen" },
NeoTreeGitModified = { link = "GruvboxAqua" }, NeoTreeGitModified = { link = "GruvboxAqua" },
@ -69,10 +68,6 @@ return {
NeoTreeFileIcon = { fg = palette.light1 }, NeoTreeFileIcon = { fg = palette.light1 },
NeoTreeFilterTerm = { fg = palette.bright_aqua, bold = true }, NeoTreeFilterTerm = { fg = palette.bright_aqua, bold = true },
NeoTreeSymbolicLinkTarget = { fg = palette.bright_aqua, bold = true }, NeoTreeSymbolicLinkTarget = { fg = palette.bright_aqua, bold = true },
DiagnosticNumError = { fg = palette.dark0, bg = palette.bright_red, bold = true },
DiagnosticNumWarn = { fg = palette.dark0, bg = palette.bright_yellow, bold = true },
DiagnosticNumHint = { fg = palette.dark0, bg = palette.bright_aqua, bold = true },
DiagnosticNumInfo = { fg = palette.dark0, bg = palette.bright_blue, bold = true },
}, },
}) })