Compare commits
No commits in common. "cc046fb4470c8bf3c83899d07e7ba87ee64fb628" and "92f62551d9d23fe8328d84cca17f7e52644fdf1b" have entirely different histories.
cc046fb447
...
92f62551d9
|
@ -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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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",
|
||||||
},
|
},
|
||||||
|
|
|
@ -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",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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,
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 = "",
|
||||||
|
|
|
@ -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 },
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user