This commit is contained in:
RingOfStorms (Joshua Bell) 2023-10-20 15:01:42 -04:00
parent 552ecb6608
commit 5c547d92cc
3 changed files with 502 additions and 477 deletions

View file

@ -20,7 +20,24 @@ require("util").keymaps({
["<return>"] = { ":noh<CR><return>", desc = "Clear search on return" },
["<leader>a"] = { "ggVG", desc = "Select all" },
["<leader>w"] = { "<cmd>w<cr>", desc = "Save" },
["<leader>qq"] = { "<cmd>confirm q<cr>", desc = "Quit" },
["<leader>qq"] = {
function()
-- Use to have this which always closed and quit ont he last screen: "<cmd>confirm q<cr>"
-- Instead I want this behavior:
-- if only 1 screen is open then close all buffers, resulting in a blank unamed buffer window similar to fresh session
-- else if more than 1 screen, confirm q to close that screen
-- Check the number of screens
if vim.fn.winnr("$") == 1 then
-- If only 1 screen is open then close all buffers, resulting in a blank unnamed buffer window similar to fresh session
vim.cmd("bufdo bd")
vim.cmd("SessionDelete")
else
-- If more than 1 screen, confirm q to close that screen
vim.cmd("confirm q")
end
end,
desc = "Quit ",
},
["<leader>bq"] = { "<cmd>bp|bd #<cr>", desc = "Close current buffer only" },
["<leader>tn"] = { "<cmd>tabnew<cr>", desc = "Create new tab" },
["<leader>tq"] = { "<cmd>tabclose<cr>", desc = "Close current tab" },
@ -30,7 +47,7 @@ require("util").keymaps({
["<C-u>"] = { "<C-u>zz", desc = "Vertical half page up and center cursor" },
["<leader>y"] = { '"*y', desc = "Copy to system clipboard" },
["<leader>p"] = { '"*p', desc = "Paste from system clipboard" },
["<leader>Q"] = { "<cmd>Neotree close<cr><cmd>qa<CR>", desc = "Quit all" },
-- ["<leader>Q"] = { "<cmd>Neotree close<cr><cmd>qa<CR>", desc = "Quit all" },
["<leader>q<leader>"] = { "<cmd>Neotree close<cr><cmd>qa<CR>", desc = "Quit all" },
["J"] = { "mzJ`z", desc = "Move line below onto this line" },
["<S-Tab>"] = { "<C-o>", desc = "Go back <C-o>" },

View file

@ -98,13 +98,23 @@ local on_attach = function(client, bufnr)
vim.keymap.set("n", keys, func, { buffer = bufnr, desc = desc })
end
local cursor_layout = {
layout_strategy = "cursor",
layout_config = { width = 0.25, height = 0.35 },
}
nmap("<leader>lr", vim.lsp.buf.rename, "[R]ename")
nmap("<leader>la", vim.lsp.buf.code_action, "Code [A]ction")
nmap("gd", vim.lsp.buf.definition, "[G]oto [D]efinition")
-- I dont like the default vim quickfix buffer opening for goto defintiion so use telescope
-- nmap("gd", vim.lsp.buf.definition, "[G]oto [D]efinition")
nmap("gd", function()
require("telescope.builtin").lsp_definitions(cursor_layout)
end, "[G]oto [D]efinition")
nmap("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences")
nmap("gI", vim.lsp.buf.implementation, "[G]oto [I]mplementation")
nmap("<leader>D", vim.lsp.buf.type_definition, "Type [D]efinition")
nmap("gI", function()
require("telescope.builtin").lsp_implementations(cursor_layout)
end, "[G]oto [I]mplementation")
-- See `:help K` for why this keymap
nmap("K", vim.lsp.buf.hover, "Hover Documentation")
@ -136,7 +146,7 @@ return {
history = true,
region_check_events = "InsertEnter",
delete_check_events = "TextChanged,InsertLeave",
}
},
},
{
-- Autocompletion
@ -278,28 +288,23 @@ return {
},
})
-- Window borders for visibility
local _border = "single"
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(
vim.lsp.handlers.hover, {
border = _border
}
)
vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
border = _border,
})
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(
vim.lsp.handlers.signature_help, {
border = _border
}
)
vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, {
border = _border,
})
vim.diagnostic.config {
float = { border = _border }
}
vim.diagnostic.config({
float = { border = _border },
})
require('lspconfig.ui.windows').default_options = {
border = _border
require("lspconfig.ui.windows").default_options = {
border = _border,
}
end,
},

View file

@ -43,7 +43,9 @@ return {
{
"<leader>fg",
function()
require("telescope.builtin").git_files()
require("telescope.builtin").git_files({
hidden = true,
})
end,
desc = "Find Git only Files",
},
@ -54,7 +56,7 @@ return {
vim.notify("rg not installed, live grep will not function.", 3)
end
require("telescope.builtin").live_grep({
grep_open_files = true,
hidden = true,
})
end,
desc = "Find Words",
@ -85,7 +87,8 @@ return {
function()
require("telescope.builtin").lsp_references()
end,
desc = "Find References", mode ={"n", "v", "x"}
desc = "Find References",
mode = { "n", "v", "x" },
},
},
opts = {