Compare commits

..
13 Commits
14 changed files with 975 additions and 139 deletions
+110 -112
View File
@@ -1,116 +1,114 @@
local dap = require "dap" -- local dap = require "dap"
dap.adapters.python = function(cb, config) -- dap.adapters.python = function(cb, config)
if config.request == "attach" then -- if config.request == "attach" then
---@diagnostic disable-next-line: undefined-field -- local port = (config.connect or config).port
local port = (config.connect or config).port -- local host = (config.connect or config).host or "127.0.0.1"
---@diagnostic disable-next-line: undefined-field -- cb {
local host = (config.connect or config).host or "127.0.0.1" -- type = "server",
cb { -- port = assert(
type = "server", -- port,
port = assert( -- "`connect.port` is required for a python `attach` configuration"
port, -- ),
"`connect.port` is required for a python `attach` configuration" -- host = host,
), -- options = { source_filetype = "python" },
host = host, -- }
options = { source_filetype = "python" }, -- else
} -- cb {
else -- type = "executable",
cb { -- command = "path/to/virtualenvs/debugpy/bin/python",
type = "executable", -- args = { "-m", "debugpy.adapter" },
command = "path/to/virtualenvs/debugpy/bin/python", -- options = { source_filetype = "python" },
args = { "-m", "debugpy.adapter" }, -- }
options = { source_filetype = "python" }, -- end
} -- end
end
end
dap.configurations.python = {
{
-- The first three options are required by nvim-dap
type = "python", -- the type here established the link to the adapter definition: `dap.adapters.python`
request = "launch",
name = "Launch file",
-- Options below are for debugpy, see https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for supported options
program = "${file}", -- This configuration will launch the current file if used.
pythonPath = function()
-- debugpy supports launching an application with a different interpreter then the one used to launch debugpy itself.
-- The code below looks for a `venv` or `.venv` folder in the current directly and uses the python within.
-- You could adapt this - to for example use the `VIRTUAL_ENV` environment variable.
local cwd = vim.fn.getcwd()
if vim.fn.executable(cwd .. "/venv/bin/python") == 1 then
return cwd .. "/venv/bin/python"
elseif vim.fn.executable(cwd .. "/.venv/bin/python") == 1 then
return cwd .. "/.venv/bin/python"
else
return "/home/zach/miniconda3/bin/python"
end
end,
},
}
dap.adapters.lldb = {
type = "executable",
command = "/usr/bin/lldb-vscode", -- adjust as needed, must be absolute path
name = "lldb",
}
dap.configurations.cpp = {
{
name = "Launch",
type = "lldb",
request = "launch",
program = function()
return vim.fn.input(
"Path to executable: ",
vim.fn.getcwd() .. "/",
"file"
)
end,
cwd = "${workspaceFolder}",
stopOnEntry = false,
args = {},
-- 💀
-- if you change `runInTerminal` to true, you might need to change the yama/ptrace_scope setting:
-- --
-- echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope -- dap.configurations.python = {
-- {
-- -- The first three options are required by nvim-dap
-- type = "python", -- the type here established the link to the adapter definition: `dap.adapters.python`
-- request = "launch",
-- name = "Launch file",
-- --
-- Otherwise you might get the following error: -- -- Options below are for debugpy, see https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings for supported options
-- --
-- Error on launch: Failed to attach to the target process -- program = "${file}", -- This configuration will launch the current file if used.
-- pythonPath = function()
-- -- debugpy supports launching an application with a different interpreter then the one used to launch debugpy itself.
-- -- The code below looks for a `venv` or `.venv` folder in the current directly and uses the python within.
-- -- You could adapt this - to for example use the `VIRTUAL_ENV` environment variable.
-- local cwd = vim.fn.getcwd()
-- if vim.fn.executable(cwd .. "/venv/bin/python") == 1 then
-- return cwd .. "/venv/bin/python"
-- elseif vim.fn.executable(cwd .. "/.venv/bin/python") == 1 then
-- return cwd .. "/.venv/bin/python"
-- else
-- return "/home/zach/miniconda3/bin/python"
-- end
-- end,
-- },
-- }
-- --
-- But you should be aware of the implications: -- dap.adapters.lldb = {
-- https://www.kernel.org/doc/html/latest/admin-guide/LSM/Yama.html -- type = "executable",
-- runInTerminal = false, -- command = "/usr/bin/lldb-vscode", -- adjust as needed, must be absolute path
}, -- name = "lldb",
} -- }
--
dap.adapters["pwa-node"] = { -- dap.configurations.cpp = {
type = "server", -- {
host = "localhost", -- name = "Launch",
port = "${port}", -- type = "lldb",
executable = { -- request = "launch",
command = "node", -- program = function()
-- 💀 Make sure to update this path to point to your installation -- return vim.fn.input(
args = { -- "Path to executable: ",
"%HOME/.config/nvim/java-dap/js-debug/src/dapDebugServer.js", -- vim.fn.getcwd() .. "/",
"${port}", -- "file"
}, -- )
}, -- end,
} -- cwd = "${workspaceFolder}",
-- stopOnEntry = false,
dap.configurations.javascript = { -- args = {},
{ --
type = "pwa-node", -- -- 💀
request = "launch", -- -- if you change `runInTerminal` to true, you might need to change the yama/ptrace_scope setting:
name = "Launch file", -- --
program = "${file}", -- -- echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
cwd = "${workspaceFolder}", -- --
}, -- -- Otherwise you might get the following error:
} -- --
-- -- Error on launch: Failed to attach to the target process
dap.configurations.java = { -- --
{ type = "java", name = "Debug", request = "launch", program = "${file}" }, -- -- But you should be aware of the implications:
} -- -- https://www.kernel.org/doc/html/latest/admin-guide/LSM/Yama.html
-- -- runInTerminal = false,
-- },
-- }
--
-- dap.adapters["pwa-node"] = {
-- type = "server",
-- host = "localhost",
-- port = "${port}",
-- executable = {
-- command = "node",
-- -- 💀 Make sure to update this path to point to your installation
-- args = {
-- "%HOME/.config/nvim/java-dap/js-debug/src/dapDebugServer.js",
-- "${port}",
-- },
-- },
-- }
--
-- dap.configurations.javascript = {
-- {
-- type = "pwa-node",
-- request = "launch",
-- name = "Launch file",
-- program = "${file}",
-- cwd = "${workspaceFolder}",
-- },
-- }
--
-- dap.configurations.java = {
-- { type = "java", name = "Debug", request = "launch", program = "${file}" },
-- }
+230
View File
@@ -0,0 +1,230 @@
-- Lua
local actions = require("diffview.actions")
require("diffview").setup({
diff_binaries = false, -- Show diffs for binaries
enhanced_diff_hl = false, -- See |diffview-config-enhanced_diff_hl|
git_cmd = { "git" }, -- The git executable followed by default args.
hg_cmd = { "hg" }, -- The hg executable followed by default args.
use_icons = true, -- Requires nvim-web-devicons
show_help_hints = true, -- Show hints for how to open the help panel
watch_index = true, -- Update views and index buffers when the git index changes.
icons = { -- Only applies when use_icons is true.
folder_closed = "",
folder_open = "",
},
signs = {
fold_closed = "",
fold_open = "",
done = "",
},
view = {
-- Configure the layout and behavior of different types of views.
-- Available layouts:
-- 'diff1_plain'
-- |'diff2_horizontal'
-- |'diff2_vertical'
-- |'diff3_horizontal'
-- |'diff3_vertical'
-- |'diff3_mixed'
-- |'diff4_mixed'
-- For more info, see |diffview-config-view.x.layout|.
default = {
-- Config for changed files, and staged files in diff views.
layout = "diff2_horizontal",
disable_diagnostics = false, -- Temporarily disable diagnostics for diff buffers while in the view.
winbar_info = false, -- See |diffview-config-view.x.winbar_info|
},
merge_tool = {
-- Config for conflicted files in diff views during a merge or rebase.
layout = "diff3_horizontal",
disable_diagnostics = true, -- Temporarily disable diagnostics for diff buffers while in the view.
winbar_info = true, -- See |diffview-config-view.x.winbar_info|
},
file_history = {
-- Config for changed files in file history views.
layout = "diff2_horizontal",
disable_diagnostics = false, -- Temporarily disable diagnostics for diff buffers while in the view.
winbar_info = false, -- See |diffview-config-view.x.winbar_info|
},
},
file_panel = {
listing_style = "tree", -- One of 'list' or 'tree'
tree_options = { -- Only applies when listing_style is 'tree'
flatten_dirs = true, -- Flatten dirs that only contain one single dir
folder_statuses = "only_folded", -- One of 'never', 'only_folded' or 'always'.
},
win_config = { -- See |diffview-config-win_config|
position = "left",
width = 35,
win_opts = {},
},
},
file_history_panel = {
log_options = { -- See |diffview-config-log_options|
git = {
single_file = {
diff_merges = "combined",
},
multi_file = {
diff_merges = "first-parent",
},
},
hg = {
single_file = {},
multi_file = {},
},
},
win_config = { -- See |diffview-config-win_config|
position = "bottom",
height = 16,
win_opts = {},
},
},
commit_log_panel = {
win_config = {}, -- See |diffview-config-win_config|
},
default_args = { -- Default args prepended to the arg-list for the listed commands
DiffviewOpen = {},
DiffviewFileHistory = {},
},
hooks = {}, -- See |diffview-config-hooks|
keymaps = {
disable_defaults = false, -- Disable the default keymaps
view = {
-- The `view` bindings are active in the diff buffers, only when the current
-- tabpage is a Diffview.
{ "n", "<tab>", actions.select_next_entry, { desc = "Open the diff for the next file" } },
{ "n", "<s-tab>", actions.select_prev_entry, { desc = "Open the diff for the previous file" } },
{ "n", "[F", actions.select_first_entry, { desc = "Open the diff for the first file" } },
{ "n", "]F", actions.select_last_entry, { desc = "Open the diff for the last file" } },
{ "n", "gf", actions.goto_file_edit, { desc = "Open the file in the previous tabpage" } },
{ "n", "<C-w><C-f>", actions.goto_file_split, { desc = "Open the file in a new split" } },
{ "n", "<C-w>gf", actions.goto_file_tab, { desc = "Open the file in a new tabpage" } },
{ "n", "<leader>e", actions.focus_files, { desc = "Bring focus to the file panel" } },
{ "n", "<leader>b", actions.toggle_files, { desc = "Toggle the file panel." } },
{ "n", "g<C-x>", actions.cycle_layout, { desc = "Cycle through available layouts." } },
{ "n", "[x", actions.prev_conflict, { desc = "In the merge-tool: jump to the previous conflict" } },
{ "n", "]x", actions.next_conflict, { desc = "In the merge-tool: jump to the next conflict" } },
{ "n", "<leader>co", actions.conflict_choose("ours"), { desc = "Choose the OURS version of a conflict" } },
{ "n", "<leader>ct", actions.conflict_choose("theirs"), { desc = "Choose the THEIRS version of a conflict" } },
{ "n", "<leader>cb", actions.conflict_choose("base"), { desc = "Choose the BASE version of a conflict" } },
{ "n", "<leader>ca", actions.conflict_choose("all"), { desc = "Choose all the versions of a conflict" } },
{ "n", "dx", actions.conflict_choose("none"), { desc = "Delete the conflict region" } },
{ "n", "<leader>cO", actions.conflict_choose_all("ours"), { desc = "Choose the OURS version of a conflict for the whole file" } },
{ "n", "<leader>cT", actions.conflict_choose_all("theirs"), { desc = "Choose the THEIRS version of a conflict for the whole file" } },
{ "n", "<leader>cB", actions.conflict_choose_all("base"), { desc = "Choose the BASE version of a conflict for the whole file" } },
{ "n", "<leader>cA", actions.conflict_choose_all("all"), { desc = "Choose all the versions of a conflict for the whole file" } },
{ "n", "dX", actions.conflict_choose_all("none"), { desc = "Delete the conflict region for the whole file" } },
},
diff1 = {
-- Mappings in single window diff layouts
{ "n", "g?", actions.help({ "view", "diff1" }), { desc = "Open the help panel" } },
},
diff2 = {
-- Mappings in 2-way diff layouts
{ "n", "g?", actions.help({ "view", "diff2" }), { desc = "Open the help panel" } },
},
diff3 = {
-- Mappings in 3-way diff layouts
{ { "n", "x" }, "2do", actions.diffget("ours"), { desc = "Obtain the diff hunk from the OURS version of the file" } },
{ { "n", "x" }, "3do", actions.diffget("theirs"), { desc = "Obtain the diff hunk from the THEIRS version of the file" } },
{ "n", "g?", actions.help({ "view", "diff3" }), { desc = "Open the help panel" } },
},
diff4 = {
-- Mappings in 4-way diff layouts
{ { "n", "x" }, "1do", actions.diffget("base"), { desc = "Obtain the diff hunk from the BASE version of the file" } },
{ { "n", "x" }, "2do", actions.diffget("ours"), { desc = "Obtain the diff hunk from the OURS version of the file" } },
{ { "n", "x" }, "3do", actions.diffget("theirs"), { desc = "Obtain the diff hunk from the THEIRS version of the file" } },
{ "n", "g?", actions.help({ "view", "diff4" }), { desc = "Open the help panel" } },
},
file_panel = {
{ "n", "j", actions.next_entry, { desc = "Bring the cursor to the next file entry" } },
{ "n", "<down>", actions.next_entry, { desc = "Bring the cursor to the next file entry" } },
{ "n", "k", actions.prev_entry, { desc = "Bring the cursor to the previous file entry" } },
{ "n", "<up>", actions.prev_entry, { desc = "Bring the cursor to the previous file entry" } },
{ "n", "<cr>", actions.select_entry, { desc = "Open the diff for the selected entry" } },
{ "n", "o", actions.select_entry, { desc = "Open the diff for the selected entry" } },
{ "n", "l", actions.select_entry, { desc = "Open the diff for the selected entry" } },
{ "n", "<2-LeftMouse>", actions.select_entry, { desc = "Open the diff for the selected entry" } },
{ "n", "-", actions.toggle_stage_entry, { desc = "Stage / unstage the selected entry" } },
{ "n", "s", actions.toggle_stage_entry, { desc = "Stage / unstage the selected entry" } },
{ "n", "S", actions.stage_all, { desc = "Stage all entries" } },
{ "n", "U", actions.unstage_all, { desc = "Unstage all entries" } },
{ "n", "X", actions.restore_entry, { desc = "Restore entry to the state on the left side" } },
{ "n", "L", actions.open_commit_log, { desc = "Open the commit log panel" } },
{ "n", "zo", actions.open_fold, { desc = "Expand fold" } },
{ "n", "h", actions.close_fold, { desc = "Collapse fold" } },
{ "n", "zc", actions.close_fold, { desc = "Collapse fold" } },
{ "n", "za", actions.toggle_fold, { desc = "Toggle fold" } },
{ "n", "zR", actions.open_all_folds, { desc = "Expand all folds" } },
{ "n", "zM", actions.close_all_folds, { desc = "Collapse all folds" } },
{ "n", "<c-b>", actions.scroll_view(-0.25), { desc = "Scroll the view up" } },
{ "n", "<c-f>", actions.scroll_view(0.25), { desc = "Scroll the view down" } },
{ "n", "<tab>", actions.select_next_entry, { desc = "Open the diff for the next file" } },
{ "n", "<s-tab>", actions.select_prev_entry, { desc = "Open the diff for the previous file" } },
{ "n", "[F", actions.select_first_entry, { desc = "Open the diff for the first file" } },
{ "n", "]F", actions.select_last_entry, { desc = "Open the diff for the last file" } },
{ "n", "gf", actions.goto_file_edit, { desc = "Open the file in the previous tabpage" } },
{ "n", "<C-w><C-f>", actions.goto_file_split, { desc = "Open the file in a new split" } },
{ "n", "<C-w>gf", actions.goto_file_tab, { desc = "Open the file in a new tabpage" } },
{ "n", "i", actions.listing_style, { desc = "Toggle between 'list' and 'tree' views" } },
{ "n", "f", actions.toggle_flatten_dirs, { desc = "Flatten empty subdirectories in tree listing style" } },
{ "n", "R", actions.refresh_files, { desc = "Update stats and entries in the file list" } },
{ "n", "<leader>e", actions.focus_files, { desc = "Bring focus to the file panel" } },
{ "n", "<leader>b", actions.toggle_files, { desc = "Toggle the file panel" } },
{ "n", "g<C-x>", actions.cycle_layout, { desc = "Cycle available layouts" } },
{ "n", "[x", actions.prev_conflict, { desc = "Go to the previous conflict" } },
{ "n", "]x", actions.next_conflict, { desc = "Go to the next conflict" } },
{ "n", "g?", actions.help("file_panel"), { desc = "Open the help panel" } },
{ "n", "<leader>cO", actions.conflict_choose_all("ours"), { desc = "Choose the OURS version of a conflict for the whole file" } },
{ "n", "<leader>cT", actions.conflict_choose_all("theirs"), { desc = "Choose the THEIRS version of a conflict for the whole file" } },
{ "n", "<leader>cB", actions.conflict_choose_all("base"), { desc = "Choose the BASE version of a conflict for the whole file" } },
{ "n", "<leader>cA", actions.conflict_choose_all("all"), { desc = "Choose all the versions of a conflict for the whole file" } },
{ "n", "dX", actions.conflict_choose_all("none"), { desc = "Delete the conflict region for the whole file" } },
},
file_history_panel = {
{ "n", "g!", actions.options, { desc = "Open the option panel" } },
{ "n", "<C-A-d>", actions.open_in_diffview, { desc = "Open the entry under the cursor in a diffview" } },
{ "n", "y", actions.copy_hash, { desc = "Copy the commit hash of the entry under the cursor" } },
{ "n", "L", actions.open_commit_log, { desc = "Show commit details" } },
{ "n", "X", actions.restore_entry, { desc = "Restore file to the state from the selected entry" } },
{ "n", "zo", actions.open_fold, { desc = "Expand fold" } },
{ "n", "zc", actions.close_fold, { desc = "Collapse fold" } },
{ "n", "h", actions.close_fold, { desc = "Collapse fold" } },
{ "n", "za", actions.toggle_fold, { desc = "Toggle fold" } },
{ "n", "zR", actions.open_all_folds, { desc = "Expand all folds" } },
{ "n", "zM", actions.close_all_folds, { desc = "Collapse all folds" } },
{ "n", "j", actions.next_entry, { desc = "Bring the cursor to the next file entry" } },
{ "n", "<down>", actions.next_entry, { desc = "Bring the cursor to the next file entry" } },
{ "n", "k", actions.prev_entry, { desc = "Bring the cursor to the previous file entry" } },
{ "n", "<up>", actions.prev_entry, { desc = "Bring the cursor to the previous file entry" } },
{ "n", "<cr>", actions.select_entry, { desc = "Open the diff for the selected entry" } },
{ "n", "o", actions.select_entry, { desc = "Open the diff for the selected entry" } },
{ "n", "l", actions.select_entry, { desc = "Open the diff for the selected entry" } },
{ "n", "<2-LeftMouse>", actions.select_entry, { desc = "Open the diff for the selected entry" } },
{ "n", "<c-b>", actions.scroll_view(-0.25), { desc = "Scroll the view up" } },
{ "n", "<c-f>", actions.scroll_view(0.25), { desc = "Scroll the view down" } },
{ "n", "<tab>", actions.select_next_entry, { desc = "Open the diff for the next file" } },
{ "n", "<s-tab>", actions.select_prev_entry, { desc = "Open the diff for the previous file" } },
{ "n", "[F", actions.select_first_entry, { desc = "Open the diff for the first file" } },
{ "n", "]F", actions.select_last_entry, { desc = "Open the diff for the last file" } },
{ "n", "gf", actions.goto_file_edit, { desc = "Open the file in the previous tabpage" } },
{ "n", "<C-w><C-f>", actions.goto_file_split, { desc = "Open the file in a new split" } },
{ "n", "<C-w>gf", actions.goto_file_tab, { desc = "Open the file in a new tabpage" } },
{ "n", "<leader>e", actions.focus_files, { desc = "Bring focus to the file panel" } },
{ "n", "<leader>b", actions.toggle_files, { desc = "Toggle the file panel" } },
{ "n", "g<C-x>", actions.cycle_layout, { desc = "Cycle available layouts" } },
{ "n", "g?", actions.help("file_history_panel"), { desc = "Open the help panel" } },
},
option_panel = {
{ "n", "<tab>", actions.select_entry, { desc = "Change the current option" } },
{ "n", "q", actions.close, { desc = "Close the panel" } },
{ "n", "g?", actions.help("option_panel"), { desc = "Open the help panel" } },
},
help_panel = {
{ "n", "q", actions.close, { desc = "Close help menu" } },
{ "n", "<esc>", actions.close, { desc = "Close help menu" } },
},
},
})
+2 -2
View File
@@ -55,11 +55,11 @@ require("gitsigns").setup {
}, },
auto_attach = true, auto_attach = true,
attach_to_untracked = false, attach_to_untracked = false,
current_line_blame = false, current_line_blame = true,
current_line_blame_opts = { current_line_blame_opts = {
virt_text = true, virt_text = true,
virt_text_pos = "eol", virt_text_pos = "eol",
delay = 1000, delay = 500,
ignore_whitespace = false, ignore_whitespace = false,
virt_text_priority = 100, virt_text_priority = 100,
use_focus = true, use_focus = true,
-2
View File
@@ -8,8 +8,6 @@ local highlight = {
"RainbowCyan", "RainbowCyan",
} }
local hooks = require "ibl.hooks" local hooks = require "ibl.hooks"
-- create the highlight groups in the highlight setup hook, so they are reset
-- every time the colorscheme changes
hooks.register(hooks.type.HIGHLIGHT_SETUP, function() hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" }) vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" })
vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" }) vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" })
+154
View File
@@ -0,0 +1,154 @@
vim.lsp.config("vtsls", {
settings = {
typescript = {
inlayHints = {
parameterNames = { enabled = "all" },
parameterTypes = { enabled = true },
variableTypes = { enabled = true },
propertyDeclarationTypes = { enabled = true },
functionLikeReturnTypes = { enabled = true },
enumMemberValues = { enabled = true },
},
},
},
})
vim.lsp.config("tsgo", {
settings = {
typescript = {
inlayHints = {
parameterNames = { enabled = "all" },
parameterTypes = { enabled = true },
variableTypes = { enabled = true },
propertyDeclarationTypes = { enabled = true },
functionLikeReturnTypes = { enabled = true },
enumMemberValues = { enabled = true },
},
},
},
})
vim.lsp.config("denols", {
settings = {
deno = {
inlayHints = {
parameterNames = {
enabled = "all", -- "none" | "literals" | "all"
suppressWhenArgumentMatchesName = true,
},
parameterTypes = { enabled = true },
variableTypes = {
enabled = true,
suppressWhenTypeMatchesName = true,
},
propertyDeclarationTypes = { enabled = true },
functionLikeReturnTypes = { enabled = true },
enumMemberValues = { enabled = true },
},
},
},
})
vim.lsp.config("basedpyright", {
settings = {
basedpyright = {
analysis = {
inlayHints = {
variableTypes = true, -- Variable type hints
callArgumentNames = true, -- Function argument name hints
callArgumentNamesMatching = false, -- Show even when arg name matches param name
functionReturnTypes = true, -- Function return type hints
genericTypes = true, -- Inferred generic type hints
},
},
},
},
})
vim.lsp.config("gopls", {
settings = {
gopls = {
hints = {
assignVariableTypes = true, -- Variable type hints in assignments
compositeLiteralFields = true, -- Composite literal field name hints
compositeLiteralTypes = true, -- Composite literal type hints
constantValues = true, -- Constant value hints (iota)
functionTypeParameters = true, -- Generic function type parameter hints
ignoredError = true, -- Implicitly discarded error hints (experimental)
parameterNames = true, -- Function call parameter name hints
rangeVariableTypes = true, -- Range statement variable type hints
},
},
},
})
vim.lsp.config("rust_analyzer", {
settings = {
["rust-analyzer"] = {
inlayHints = {
-- Type related
typeHints = { enable = true }, -- Variable type hints
chainingHints = { enable = true }, -- Method chain type hints
closureReturnTypeHints = { enable = "never" }, -- "never" | "always"
closureCaptureHints = { enable = false }, -- Closure capture hints
-- Parameter related
parameterHints = { enable = true }, -- Function parameter hints
-- Brace related
closingBraceHints = { enable = true, minLines = 25 }, -- Closing brace hints
-- Other
bindingModeHints = { enable = false }, -- Binding mode hints
discriminantHints = { enable = "never" }, -- Enum discriminant hints
expressionAdjustmentHints = { enable = "never" }, -- Type adjustment hints
implicitDrops = { enable = false }, -- Implicit drop hints
lifetimeElisionHints = { enable = "never" }, -- Lifetime elision hints
genericParameterHints = {
type = { enable = false },
lifetime = { enable = false },
const = { enable = false },
},
},
},
},
})
vim.lsp.config("zls", {
settings = {
zls = {
enable_inlay_hints = true, -- Global enable
inlay_hints_show_builtin = true, -- Show builtin function hints
inlay_hints_show_parameter_name = true, -- Show parameter name hints
inlay_hints_show_variable_type_hints = true, -- Show variable type hints
inlay_hints_show_struct_literal_field_type = true, -- Show struct literal field type hints
inlay_hints_exclude_single_argument = true, -- Exclude single argument hints
inlay_hints_hide_redundant_param_names = false, -- Hide redundant parameter names
inlay_hints_hide_redundant_param_names_last_token = false, -- Hide redundant param names for last token
},
},
})
vim.lsp.config("jdtls", {
settings = {
java = {
inlayHints = {
parameterNames = {
enabled = "all", -- "none" | "literals" | "all"
exclusions = { "this" },
},
variableTypes = { enabled = true }, -- Variable type hints
parameterTypes = { enabled = true }, -- Parameter type hints
},
},
},
})
vim.lsp.config("phpactor", {
settings = {
language_server_worse_reflection = {
inlay_hints = {
enable = true, -- Master switch
types = true, -- Variable type hints
params = true, -- Parameter name hints
},
},
},
})
+21 -2
View File
@@ -1,11 +1,11 @@
local cmp_cap = require("config.cmp").capabilities local cmp_cap = require("config.cmp").capabilities
local servers = { local servers = {
"gopls",
"phpactor", "phpactor",
-- "ltex",
"ols", "ols",
"zls", "zls",
"ts_ls", "tsc",
"eslint", "eslint",
"yamlls", "yamlls",
"vimls", "vimls",
@@ -28,6 +28,8 @@ local servers = {
"jdtls", "jdtls",
"powershell_es", "powershell_es",
"rust_analyzer", "rust_analyzer",
"digestif",
"elixirls",
} }
for _, server in ipairs(servers) do for _, server in ipairs(servers) do
@@ -37,6 +39,23 @@ for _, server in ipairs(servers) do
vim.lsp.enable(server) vim.lsp.enable(server)
end end
vim.lsp.config("tsgo", {
cmd = function(dispatchers, config)
local bin = "tsc"
if (config or {}).root_dir then
local local_bin = vim.fs.joinpath(config.root_dir, "node_modules/.bin", bin)
if vim.fn.executable(local_bin) == 1 then
bin = local_bin
end
end
return vim.lsp.rpc.start({ bin, "--lsp", "--stdio" }, dispatchers)
end,
})
vim.lsp.config("digestif", {
cmd = { vim.fn.expand "~/.luarocks/bin/digestif" },
})
vim.lsp.config("powershell_es", { vim.lsp.config("powershell_es", {
capabilities = cmp_cap, capabilities = cmp_cap,
bundle_path = "/opt/powershell-editor-services", bundle_path = "/opt/powershell-editor-services",
+3 -9
View File
@@ -7,7 +7,6 @@ local function get_coc_lsp_client()
for _, client in pairs(clients) do for _, client in pairs(clients) do
if client["state"] == "running" then if client["state"] == "running" then
local client_name = client["id"] local client_name = client["id"]
-- Remove 'languageserver.' prefix if it exists
client_name = client_name:gsub("^languageserver%.", "") client_name = client_name:gsub("^languageserver%.", "")
return client_name return client_name
end end
@@ -21,7 +20,6 @@ local function spell()
return "" return ""
end end
--- show indicator for Chinese IME
local function ime_state() local function ime_state()
if vim.g.is_mac then if vim.g.is_mac then
local layout = local layout =
@@ -43,12 +41,10 @@ local diff = function()
local info = local info =
{ added = add_num, modified = modify_num, removed = remove_num } { added = add_num, modified = modify_num, removed = remove_num }
-- vim.print(info)
return info return info
end end
local virtual_env = function() local virtual_env = function()
-- only show virtual env for Python
if vim.bo.filetype ~= "python" then return "" end if vim.bo.filetype ~= "python" then return "" end
local conda_env = os.getenv "CONDA_DEFAULT_ENV" local conda_env = os.getenv "CONDA_DEFAULT_ENV"
@@ -81,10 +77,7 @@ require("lualine").setup {
lualine_b = { lualine_b = {
{ {
"branch", "branch",
fmt = function(name, _) fmt = function(name, _) return string.sub(name, 1, 20) end,
-- truncate branch name in case the name is too long
return string.sub(name, 1, 20)
end,
color = { gui = "italic,bold" }, color = { gui = "italic,bold" },
separator = { right = "" }, separator = { right = "" },
}, },
@@ -132,4 +125,5 @@ require("lualine").setup {
extensions = { "quickfix", "fugitive", "nvim-tree" }, extensions = { "quickfix", "fugitive", "nvim-tree" },
} }
vim.o.laststatus = 0 -- required for some reason -> avoid two bar lualine /w tmux -- also in options, but has to be here as well
vim.o.laststatus = 0;
-5
View File
@@ -21,8 +21,6 @@ require("notify").setup {
end, end,
} }
-- Utility functions shared between progress reports for LSP and DAP
local client_notifs = {} local client_notifs = {}
local function get_notif_data(client_id, token) local function get_notif_data(client_id, token)
@@ -63,9 +61,6 @@ local function format_message(message, percentage)
return (percentage and percentage .. "%\t" or "") .. (message or "") return (percentage and percentage .. "%\t" or "") .. (message or "")
end end
-- LSP integration
-- Make sure to also have the snippet with the common helper functions in your config!
vim.lsp.handlers["$/progress"] = function(_, result, ctx) vim.lsp.handlers["$/progress"] = function(_, result, ctx)
local client_id = ctx.client_id local client_id = ctx.client_id
+389
View File
@@ -0,0 +1,389 @@
require"octo".setup {
picker = "telescope", -- or "fzf-lua" or "snacks" or "default"
picker_config = {
use_emojis = false, -- only used by "fzf-lua" picker for now
search_static = true, -- Whether to use static search results (true) or dynamic search (false)
mappings = { -- mappings for the pickers
open_in_browser = { lhs = "<C-b>", desc = "open issue in browser" },
copy_url = { lhs = "<C-y>", desc = "copy url to system clipboard" },
copy_sha = { lhs = "<C-e>", desc = "copy commit SHA to system clipboard" },
checkout_pr = { lhs = "<C-o>", desc = "checkout pull request" },
merge_pr = { lhs = "<C-r>", desc = "merge pull request" },
},
snacks = { -- snacks specific config
-- Initialize actions as empty arrays
actions = { -- custom actions for specific snacks pickers (array of tables)
issues = { -- actions for the issues picker
-- { name = "my_issue_action", fn = function(picker, item) print("Issue action:", vim.inspect(item)) end, lhs = "<leader>a", desc = "My custom issue action" },
},
pull_requests = { -- actions for the pull requests picker
-- { name = "my_pr_action", fn = function(picker, item) print("PR action:", vim.inspect(item)) end, lhs = "<leader>b", desc = "My custom PR action" },
},
notifications = {}, -- actions for the notifications picker
issue_templates = {}, -- actions for the issue templates picker
search = {}, -- actions for the search picker
-- ... add actions for other pickers as needed
changed_files = {},
commits = {},
review_commits = {},
},
},
},
default_remote = { "upstream", "origin" }, -- order to try remotes
default_merge_method = "merge", -- default merge method which should be used for both `Octo pr merge` and merging from picker, could be `merge`, `rebase` or `squash`
default_delete_branch = false, -- whether to delete branch when merging pull request with either `Octo pr merge` or from picker (can be overridden with `delete`/`nodelete` argument to `Octo pr merge`)
ssh_aliases = {}, -- SSH aliases. e.g. `ssh_aliases = {["github.com-work"] = "github.com"}`. The key part will be interpreted as an anchored Lua pattern.
reaction_viewer_hint_icon = "", -- marker for user reactions
commands = {}, -- additional subcommands made available to `Octo` command
users = "search", -- Users for assignees or reviewers. Values: "search" | "mentionable" | "assignable"
user_icon = "", -- user icon
ghost_icon = "󰊠 ", -- ghost icon
copilot_icon = "", -- copilot icon
dependabot_icon = "",
comment_icon = "",
outdated_icon = "󰅒 ",
resolved_icon = "",
timeline_marker = "",
timeline_indent = 2,
use_timeline_icons = true,
timeline_icons = {
auto_squash = "",
blocking = "",
commit_push = "",
comment_deleted = "",
duplicate = "",
force_push = "",
draft = "",
ready = "",
commit = "",
deployed = "",
issue_type = "",
label = "",
reference = "",
project = "",
connected = "",
subissue = "",
cross_reference = "",
transferred = "",
parent_issue = "",
head_ref = "",
pinned = "",
milestone = "",
renamed = "",
automatic_base_change_succeeded = "",
base_ref_changed = "",
merged = { "", "OctoPurple" },
closed = {
closed = { "", "OctoRed" },
completed = { "", "OctoPurple" },
not_planned = { "", "OctoWhite" },
duplicate = { "", "OctoWhite" },
},
reopened = { "", "OctoGreen" },
assigned = "",
locked = "",
merge_queue = "",
review_requested = "",
},
right_bubble_delimiter = "", -- bubble delimiter
left_bubble_delimiter = "", -- bubble delimiter
github_hostname = "", -- GitHub Enterprise host
use_local_fs = false, -- use local files on right side of reviews
enable_builtin = false, -- shows a list of builtin actions when no action is provided
snippet_context_lines = 4, -- number of lines around commented lines
gh_cmd = "gh", -- Command to use when calling Github CLI
gh_env = {}, -- extra environment variables to pass on to GitHub CLI, can be a table or function returning a table
timeout = 5000, -- timeout for requests between the remote server
default_to_projects_v2 = false, -- use projects v2 for the `Octo card ...` command by default. Both legacy and v2 commands are available under `Octo cardlegacy ...` and `Octo cardv2 ...` respectively.
suppress_missing_scope = {
projects_v2 = false,
},
ui = {
conceallevel = 2, -- conceallevel for octo buffers
use_signcolumn = false, -- show "modified" marks on the sign column
use_statuscolumn = true, -- show "modified" marks on the status column
use_foldtext = true,
},
issues = {
order_by = { -- criteria to sort results of `Octo issue list`
field = "CREATED_AT", -- either COMMENTS, CREATED_AT or UPDATED_AT (https://docs.github.com/en/graphql/reference/enums#issueorderfield)
direction = "DESC", -- either DESC or ASC (https://docs.github.com/en/graphql/reference/enums#orderdirection)
},
},
discussions = {
order_by = {
field = "CREATED_AT",
direction = "DESC",
},
},
notifications = {
current_repo_only = false, -- show notifications for current repo only
},
reviews = {
auto_show_threads = true, -- automatically show comment threads on cursor move
focus = "right", -- focus right buffer on diff open
},
runs = {
icons = {
pending = "🕖",
in_progress = "🔄",
failed = "",
succeeded = "",
skipped = "",
cancelled = "",
},
},
pull_requests = {
order_by = { -- criteria to sort the results of `Octo pr list`
field = "CREATED_AT", -- either COMMENTS, CREATED_AT or UPDATED_AT (https://docs.github.com/en/graphql/reference/enums#issueorderfield)
direction = "DESC", -- either DESC or ASC (https://docs.github.com/en/graphql/reference/enums#orderdirection)
},
always_select_remote_on_create = false, -- always give prompt to select base remote repo when creating PRs
use_branch_name_as_title = false, -- sets branch name to be the name for the PR
},
file_panel = {
size = 10, -- changed files panel rows
icons = true, -- true = nvim-web-devicons, false = disabled, function = custom provider
},
colors = { -- used for highlight groups (see Colors section below)
white = "#ffffff",
grey = "#2A354C",
black = "#000000",
red = "#fdb8c0",
dark_red = "#da3633",
green = "#acf2bd",
dark_green = "#238636",
yellow = "#d3c846",
dark_yellow = "#735c0f",
blue = "#58A6FF",
dark_blue = "#0366d6",
purple = "#6f42c1",
},
mappings_disable_default = false, -- disable default mappings if true, but will still adapt user mappings
mappings = {
discussion = {
discussion_options = { lhs = "<CR>", desc = "show discussion options" },
open_in_browser = { lhs = "<C-b>", desc = "open discussion in browser" },
copy_url = { lhs = "<C-y>", desc = "copy url to system clipboard" },
add_comment = { lhs = "<localleader>ca", desc = "add comment" },
add_reply = { lhs = "<localleader>cr", desc = "add reply" },
delete_comment = { lhs = "<localleader>cd", desc = "delete comment" },
comment_edits = { lhs = "<localleader>ce", desc = "show comment edit history" },
reference_in_new_issue = { lhs = "<localleader>ri", desc = "reference comment in new issue" },
add_label = { lhs = "<localleader>la", desc = "add label" },
remove_label = { lhs = "<localleader>ld", desc = "remove label" },
next_comment = { lhs = "]c", desc = "go to next comment" },
prev_comment = { lhs = "[c", desc = "go to previous comment" },
react_hooray = { lhs = "<localleader>rp", desc = "add/remove 🎉 reaction" },
react_heart = { lhs = "<localleader>rh", desc = "add/remove ❤️ reaction" },
react_eyes = { lhs = "<localleader>re", desc = "add/remove 👀 reaction" },
react_thumbs_up = { lhs = "<localleader>r+", desc = "add/remove 👍 reaction" },
react_thumbs_down = { lhs = "<localleader>r-", desc = "add/remove 👎 reaction" },
react_rocket = { lhs = "<localleader>rr", desc = "add/remove 🚀 reaction" },
react_laugh = { lhs = "<localleader>rl", desc = "add/remove 😄 reaction" },
react_confused = { lhs = "<localleader>rc", desc = "add/remove 😕 reaction" },
},
runs = {
expand_step = { lhs = "o", desc = "expand workflow step" },
next_step = { lhs = "]s", desc = "next workflow step" },
prev_step = { lhs = "[s", desc = "previous workflow step" },
next_job = { lhs = "]j", desc = "next workflow job" },
prev_job = { lhs = "[j", desc = "previous workflow job" },
open_in_browser = { lhs = "<C-b>", desc = "open workflow run in browser" },
refresh = { lhs = "<C-r>", desc = "refresh workflow" },
rerun = { lhs = "<C-o>", desc = "rerun workflow" },
rerun_failed = { lhs = "<C-f>", desc = "rerun failed workflow" },
cancel = { lhs = "<C-x>", desc = "cancel workflow" },
copy_url = { lhs = "<C-y>", desc = "copy url to system clipboard" },
},
issue = {
issue_options = { lhs = "<CR>", desc = "show issue options" },
close_issue = { lhs = "<localleader>ic", desc = "close issue" },
reopen_issue = { lhs = "<localleader>io", desc = "reopen issue" },
list_issues = { lhs = "<localleader>il", desc = "list open issues on same repo" },
reload = { lhs = "<C-r>", desc = "reload issue" },
open_in_browser = { lhs = "<C-b>", desc = "open issue in browser" },
copy_url = { lhs = "<C-y>", desc = "copy url to system clipboard" },
add_assignee = { lhs = "<localleader>aa", desc = "add assignee" },
remove_assignee = { lhs = "<localleader>ad", desc = "remove assignee" },
create_label = { lhs = "<localleader>lc", desc = "create label" },
add_label = { lhs = "<localleader>la", desc = "add label" },
remove_label = { lhs = "<localleader>ld", desc = "remove label" },
goto_issue = { lhs = "<localleader>gi", desc = "navigate to a local repo issue" },
add_comment = { lhs = "<localleader>ca", desc = "add comment" },
add_reply = { lhs = "<localleader>cr", desc = "add reply" },
delete_comment = { lhs = "<localleader>cd", desc = "delete comment" },
comment_edits = { lhs = "<localleader>ce", desc = "show comment edit history" },
reference_in_new_issue = { lhs = "<localleader>ri", desc = "reference comment in new issue" },
next_comment = { lhs = "]c", desc = "go to next comment" },
prev_comment = { lhs = "[c", desc = "go to previous comment" },
react_hooray = { lhs = "<localleader>rp", desc = "add/remove 🎉 reaction" },
react_heart = { lhs = "<localleader>rh", desc = "add/remove ❤️ reaction" },
react_eyes = { lhs = "<localleader>re", desc = "add/remove 👀 reaction" },
react_thumbs_up = { lhs = "<localleader>r+", desc = "add/remove 👍 reaction" },
react_thumbs_down = { lhs = "<localleader>r-", desc = "add/remove 👎 reaction" },
react_rocket = { lhs = "<localleader>rr", desc = "add/remove 🚀 reaction" },
react_laugh = { lhs = "<localleader>rl", desc = "add/remove 😄 reaction" },
react_confused = { lhs = "<localleader>rc", desc = "add/remove 😕 reaction" },
},
pull_request = {
pr_options = { lhs = "<CR>", desc = "show PR options" },
checkout_pr = { lhs = "<localleader>po", desc = "checkout PR" },
merge_pr = { lhs = "<localleader>pm", desc = "merge commit PR" },
squash_and_merge_pr = { lhs = "<localleader>psm", desc = "squash and merge PR" },
rebase_and_merge_pr = { lhs = "<localleader>prm", desc = "rebase and merge PR" },
merge_pr_queue = {
lhs = "<localleader>pq",
desc = "merge commit PR and add to merge queue (Merge queue must be enabled in the repo)",
},
squash_and_merge_queue = {
lhs = "<localleader>psq",
desc = "squash and add to merge queue (Merge queue must be enabled in the repo)",
},
rebase_and_merge_queue = {
lhs = "<localleader>prq",
desc = "rebase and add to merge queue (Merge queue must be enabled in the repo)",
},
list_commits = { lhs = "<localleader>pc", desc = "list PR commits" },
list_changed_files = { lhs = "<localleader>pf", desc = "list PR changed files" },
show_pr_diff = { lhs = "<localleader>pd", desc = "show PR diff" },
add_reviewer = { lhs = "<localleader>va", desc = "add reviewer" },
remove_reviewer = { lhs = "<localleader>vd", desc = "remove reviewer request" },
close_issue = { lhs = "<localleader>ic", desc = "close PR" },
reopen_issue = { lhs = "<localleader>io", desc = "reopen PR" },
list_issues = { lhs = "<localleader>il", desc = "list open issues on same repo" },
reload = { lhs = "<C-r>", desc = "reload PR" },
approve_pr = { lhs = "<leader>qa", desc = "approve PR" },
open_in_browser = { lhs = "<C-b>", desc = "open PR in browser" },
copy_url = { lhs = "<C-y>", desc = "copy url to system clipboard" },
copy_sha = { lhs = "<C-e>", desc = "copy commit SHA to system clipboard" },
goto_file = { lhs = "gf", desc = "go to file" },
add_assignee = { lhs = "<localleader>aa", desc = "add assignee" },
remove_assignee = { lhs = "<localleader>ad", desc = "remove assignee" },
create_label = { lhs = "<localleader>lc", desc = "create label" },
add_label = { lhs = "<localleader>la", desc = "add label" },
remove_label = { lhs = "<localleader>ld", desc = "remove label" },
goto_issue = { lhs = "<localleader>gi", desc = "navigate to a local repo issue" },
add_comment = { lhs = "<localleader>ca", desc = "add comment" },
add_reply = { lhs = "<localleader>cr", desc = "add reply" },
delete_comment = { lhs = "<localleader>cd", desc = "delete comment" },
comment_edits = { lhs = "<localleader>ce", desc = "show comment edit history" },
reference_in_new_issue = { lhs = "<localleader>ri", desc = "reference comment in new issue" },
next_comment = { lhs = "]c", desc = "go to next comment" },
prev_comment = { lhs = "[c", desc = "go to previous comment" },
react_hooray = { lhs = "<localleader>rp", desc = "add/remove 🎉 reaction" },
react_heart = { lhs = "<localleader>rh", desc = "add/remove ❤️ reaction" },
react_eyes = { lhs = "<localleader>re", desc = "add/remove 👀 reaction" },
react_thumbs_up = { lhs = "<localleader>r+", desc = "add/remove 👍 reaction" },
react_thumbs_down = { lhs = "<localleader>r-", desc = "add/remove 👎 reaction" },
react_rocket = { lhs = "<localleader>rr", desc = "add/remove 🚀 reaction" },
react_laugh = { lhs = "<localleader>rl", desc = "add/remove 😄 reaction" },
react_confused = { lhs = "<localleader>rc", desc = "add/remove 😕 reaction" },
review_start = { lhs = "<localleader>vs", desc = "start a review for the current PR" },
review_resume = { lhs = "<localleader>vr", desc = "resume a pending review for the current PR" },
resolve_thread = { lhs = "<localleader>rt", desc = "resolve PR thread" },
unresolve_thread = { lhs = "<localleader>rT", desc = "unresolve PR thread" },
},
review_thread = {
goto_issue = { lhs = "<localleader>gi", desc = "navigate to a local repo issue" },
add_comment = { lhs = "<localleader>ca", desc = "add comment" },
add_reply = { lhs = "<localleader>cr", desc = "add reply" },
add_suggestion = { lhs = "<localleader>sa", desc = "add suggestion" },
delete_comment = { lhs = "<localleader>cd", desc = "delete comment" },
comment_edits = { lhs = "<localleader>ce", desc = "show comment edit history" },
reference_in_new_issue = { lhs = "<localleader>ri", desc = "reference comment in new issue" },
next_comment = { lhs = "]c", desc = "go to next comment" },
prev_comment = { lhs = "[c", desc = "go to previous comment" },
select_next_entry = { lhs = "]q", desc = "move to next changed file" },
select_prev_entry = { lhs = "[q", desc = "move to previous changed file" },
select_first_entry = { lhs = "[Q", desc = "move to first changed file" },
select_last_entry = { lhs = "]Q", desc = "move to last changed file" },
select_next_unviewed_entry = { lhs = "]u", desc = "move to next unviewed file" },
select_prev_unviewed_entry = { lhs = "[u", desc = "move to previous unviewed file" },
close_review_tab = { lhs = "<C-c>", desc = "close review tab" },
react_hooray = { lhs = "<localleader>rp", desc = "add/remove 🎉 reaction" },
react_heart = { lhs = "<localleader>rh", desc = "add/remove ❤️ reaction" },
react_eyes = { lhs = "<localleader>re", desc = "add/remove 👀 reaction" },
react_thumbs_up = { lhs = "<localleader>r+", desc = "add/remove 👍 reaction" },
react_thumbs_down = { lhs = "<localleader>r-", desc = "add/remove 👎 reaction" },
react_rocket = { lhs = "<localleader>rr", desc = "add/remove 🚀 reaction" },
react_laugh = { lhs = "<localleader>rl", desc = "add/remove 😄 reaction" },
react_confused = { lhs = "<localleader>rc", desc = "add/remove 😕 reaction" },
resolve_thread = { lhs = "<localleader>rt", desc = "resolve PR thread" },
unresolve_thread = { lhs = "<localleader>rT", desc = "unresolve PR thread" },
},
submit_win = {
approve_review = { lhs = "<C-a>", desc = "approve review", mode = { "n" } },
comment_review = { lhs = "<C-m>", desc = "comment review", mode = { "n" } },
request_changes = { lhs = "<C-r>", desc = "request changes review", mode = { "n" } },
close_review_tab = { lhs = "<C-c>", desc = "close review tab", mode = { "n" } },
},
review_diff = {
submit_review = { lhs = "<localleader>vs", desc = "submit review" },
discard_review = { lhs = "<localleader>vd", desc = "discard review" },
add_review_comment = { lhs = "<localleader>ca", desc = "add a new review comment", mode = { "n", "x" } },
add_review_suggestion = { lhs = "<localleader>sa", desc = "add a new review suggestion", mode = { "n", "x" } },
focus_files = { lhs = "<localleader>e", desc = "move focus to changed file panel" },
toggle_files = { lhs = "<localleader>b", desc = "hide/show changed files panel" },
next_thread = { lhs = "]t", desc = "move to next thread" },
prev_thread = { lhs = "[t", desc = "move to previous thread" },
select_next_entry = { lhs = "]q", desc = "move to next changed file" },
select_prev_entry = { lhs = "[q", desc = "move to previous changed file" },
select_first_entry = { lhs = "[Q", desc = "move to first changed file" },
select_last_entry = { lhs = "]Q", desc = "move to last changed file" },
select_next_unviewed_entry = { lhs = "]u", desc = "move to next unviewed file" },
select_prev_unviewed_entry = { lhs = "[u", desc = "move to previous unviewed file" },
close_review_tab = { lhs = "<C-c>", desc = "close review tab" },
toggle_viewed = { lhs = "<localleader><space>", desc = "toggle viewer viewed state" },
goto_file = { lhs = "gf", desc = "go to file" },
copy_sha = { lhs = "<C-e>", desc = "copy commit SHA to system clipboard" },
review_commits = { lhs = "<localleader>C", desc = "review PR commits" },
},
file_panel = {
submit_review = { lhs = "<localleader>vs", desc = "submit review" },
discard_review = { lhs = "<localleader>vd", desc = "discard review" },
next_entry = { lhs = "j", desc = "move to next changed file" },
prev_entry = { lhs = "k", desc = "move to previous changed file" },
select_entry = { lhs = "<cr>", desc = "show selected changed file diffs" },
refresh_files = { lhs = "R", desc = "refresh changed files panel" },
focus_files = { lhs = "<localleader>e", desc = "move focus to changed file panel" },
toggle_files = { lhs = "<localleader>b", desc = "hide/show changed files panel" },
select_next_entry = { lhs = "]q", desc = "move to next changed file" },
select_prev_entry = { lhs = "[q", desc = "move to previous changed file" },
select_first_entry = { lhs = "[Q", desc = "move to first changed file" },
select_last_entry = { lhs = "]Q", desc = "move to last changed file" },
select_next_unviewed_entry = { lhs = "]u", desc = "move to next unviewed file" },
select_prev_unviewed_entry = { lhs = "[u", desc = "move to previous unviewed file" },
close_review_tab = { lhs = "<C-c>", desc = "close review tab" },
toggle_viewed = { lhs = "<localleader><space>", desc = "toggle viewer viewed state" },
review_commits = { lhs = "<localleader>C", desc = "review PR commits" },
},
notification = {
read = { lhs = "<localleader>nr", desc = "mark notification as read" },
done = { lhs = "<localleader>nd", desc = "mark notification as done" },
unsubscribe = { lhs = "<localleader>nu", desc = "unsubscribe from notifications" },
},
repo = {
repo_options = { lhs = "<CR>", desc = "show repo options" },
create_issue = { lhs = "<localleader>ic", desc = "create issue" },
create_discussion = { lhs = "<localleader>dc", desc = "create discussion" },
contributing_guidelines = { lhs = "<localleader>cg", desc = "view contributing guidelines" },
open_in_browser = { lhs = "<C-b>", desc = "open repo in browser" },
},
release = {
open_in_browser = { lhs = "<C-b>", desc = "open release in browser" },
},
},
poll = {
enabled = false, -- opt-in polling for remote changes
interval = 10000, -- polling interval in milliseconds (default: 10s)
notify_on_refresh = true, -- notify when a buffer is auto-refreshed
notify_on_change = true, -- notify when remote changed but buffer has local edits
},
search = {
completion_overrides = {}, -- key is a qualifier, value is an array table or a function returning a table
},
debug = {
notify_missing_timeline_items = false,
},
}
-1
View File
@@ -1,4 +1,3 @@
-- Default options:
require("gruvbox").setup { require("gruvbox").setup {
terminal_colors = true, -- add neovim terminal colors terminal_colors = true, -- add neovim terminal colors
undercurl = true, undercurl = true,
-1
View File
@@ -1,2 +1 @@
-- Lua
require("onedarkpro").setup {} require("onedarkpro").setup {}
-1
View File
@@ -1,4 +1,3 @@
local time = tonumber(os.date "%H")
vim.g.loaded_netrw = 1 vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1 vim.g.loaded_netrwPlugin = 1
vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/" vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/"
+3
View File
@@ -55,6 +55,9 @@ map("n", "<C-u>", "<C-u>zz")
map("n", "n", "nzzzv") map("n", "n", "nzzzv")
map("n", "N", "Nzzzv") map("n", "N", "Nzzzv")
map("n", "<leader>zig", "<cmd>LspRestart<cr>") map("n", "<leader>zig", "<cmd>LspRestart<cr>")
map("n", "gd", vim.lsp.buf.definition)
map("n", "gD", vim.lsp.buf.definition)
map("n", "gr", vim.lsp.buf.references)
-- greatest remap ever -- greatest remap ever
map("x", "<leader>p", [["_dP]]) map("x", "<leader>p", [["_dP]])
+59
View File
@@ -1,4 +1,63 @@
return { return {
{
"sindrets/diffview.nvim",
config = function() require("diffview").setup() end,
},
{
"pwntester/octo.nvim",
cmd = "Octo",
config = function() require("octo").setup() end,
opts = {
-- or "fzf-lua" or "snacks" or "default"
picker = "telescope",
-- bare Octo command opens picker of commands
enable_builtin = true,
},
keys = {
{
"<leader>oi",
"<CMD>Octo issue list<CR>",
desc = "List GitHub Issues",
},
{
"<leader>op",
"<CMD>Octo pr list<CR>",
desc = "List GitHub PullRequests",
},
{
"<leader>od",
"<CMD>Octo discussion list<CR>",
desc = "List GitHub Discussions",
},
{
"<leader>on",
"<CMD>Octo notification list<CR>",
desc = "List GitHub Notifications",
},
{
"<leader>os",
function()
require("octo.utils").create_base_search_command {
include_current_repo = true,
}
end,
desc = "Search GitHub",
},
},
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-telescope/telescope.nvim",
-- OR "ibhagwan/fzf-lua",
-- OR "folke/snacks.nvim",
"nvim-tree/nvim-web-devicons", -- optional if file_panel.icons is a function
},
},
{
"MysticalDevil/inlay-hints.nvim",
event = "LspAttach",
dependencies = { "neovim/nvim-lspconfig" },
config = function() require("inlay-hints").setup() end,
},
{ {
"mg979/vim-visual-multi", "mg979/vim-visual-multi",
}, },