Merge branch 'master' into changes

This commit is contained in:
Joshua Bell 2023-10-23 11:51:59 -05:00 committed by GitHub
commit ef2d33bbd4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 502 additions and 475 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" },
@ -31,8 +48,8 @@ require("util").keymaps({
["<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<leader>"] = { "<cmd>Neotree close<cr><cmd>qa<CR>", desc = "Quit all" },
["<leader>qq<leader>"] = { "<cmd>Neotree close<cr><cmd>SessionDelete<cr><cmd>qa<CR>", desc = "Quit all, no session saved" },
["<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>" },
-- window navigation
@ -83,6 +100,8 @@ require("util").keymaps({
["<leader>p"] = { '"*p', desc = "Paste from system clipboard" },
["p"] = { '"_dP', desc = "Paste without yanking replaced content" },
["<C-r>"] = { '"hy:%s/<C-r>h//g<left><left>', desc = "Replace current selection" },
[">"] = { "> gv", desc = "Indent selection" },
["<"] = { "< gv", desc = "Outdent selection" },
},
i = {
["<C-k>"] = { "<Up>", desc = "Up" },

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 = {