Big improvements to Vim keymaps; add swift configs
This commit is contained in:
parent
04d02d3417
commit
375cb89d5f
@ -24,6 +24,7 @@
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "c2599a81ecabaae07c49ff9b45dcd032a8d90f1a" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" },
|
||||
"project-cli-commands.nvim": { "branch": "main", "commit": "9a2a2fdfd38a3d71cc927e3a398ac0ddfa846b3d" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" },
|
||||
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },
|
||||
|
||||
9
nvim/lsp/sourcekit.lua
Normal file
9
nvim/lsp/sourcekit.lua
Normal file
@ -0,0 +1,9 @@
|
||||
return {
|
||||
capabilities = {
|
||||
workspace = {
|
||||
didChangeWatchedFiles = {
|
||||
dynamicRegistration = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@ -17,6 +17,7 @@ local filetype_maps = {
|
||||
{ pattern = "*.tf", ft = "terraform" },
|
||||
{ pattern = "*.pro", ft = "progruard" },
|
||||
{ pattern = "*.mjml", ft = "html" },
|
||||
{ pattern = ".swift-format", ft = "json" },
|
||||
}
|
||||
|
||||
for _, mapping in ipairs(filetype_maps) do
|
||||
|
||||
@ -2,21 +2,13 @@ local keymap = vim.keymap.set
|
||||
|
||||
-- Normal mode
|
||||
keymap("n", "<Esc>", "<cmd>nohlsearch<CR>")
|
||||
keymap("n", "<leader>fd", vim.diagnostic.setloclist, { desc = "Open quick[f]ix [d]iagnostics" })
|
||||
keymap("n", "<leader>w", "<cmd>w!<CR>", { desc = "[w]rite current file", silent = true })
|
||||
keymap("n", "<leader>q", "<cmd>q<CR>", { desc = "[q]uit current buffer", silent = true })
|
||||
keymap("n", "<leader>Q", "<cmd>qa<CR>", { desc = "[Q]uit completely", silent = true })
|
||||
keymap("n", "<Leader>fb", ":lua vim.lsp.buf.format()<CR>", { desc = "[f]ormat [b]uffer", silent = true })
|
||||
keymap("n", "<C-h>", "<C-w><C-h>", { desc = "Move focus to the left window" })
|
||||
keymap("n", "<C-l>", "<C-w><C-l>", { desc = "Move focus to the right window" })
|
||||
keymap("n", "<C-j>", "<C-w><C-j>", { desc = "Move focus to the lower window" })
|
||||
keymap("n", "<C-k>", "<C-w><C-k>", { desc = "Move focus to the upper window" })
|
||||
keymap(
|
||||
"n",
|
||||
"gd",
|
||||
"<cmd>lua vim.lsp.buf.definition()<CR>",
|
||||
{ desc = "[g]o to [d]efinition", noremap = true, silent = true }
|
||||
)
|
||||
|
||||
-- Visual mode
|
||||
keymap("v", "<Leader>p", '"_dP', { desc = "[p]aste without overwriting default register" })
|
||||
|
||||
@ -3,6 +3,7 @@ return {
|
||||
event = "VimEnter",
|
||||
opts = {
|
||||
delay = 0,
|
||||
preset = "helix",
|
||||
icons = {
|
||||
mappings = vim.g.have_nerd_font,
|
||||
keys = vim.g.have_nerd_font,
|
||||
@ -10,10 +11,13 @@ return {
|
||||
|
||||
-- Document existing key chains
|
||||
spec = {
|
||||
{ "<leader>s", group = "[S]earch" },
|
||||
{ "<leader>e", group = "[E]xplorer/Tree" },
|
||||
{ "<leader>t", group = "[T]oggle" },
|
||||
{ "<leader>g", group = "[G]oto/Actions" },
|
||||
{ "<leader>a", group = "[a]vante" },
|
||||
{ "<leader>g", group = "[g]it" },
|
||||
{ "<leader>l", group = "[l]sp" },
|
||||
{ "<leader>lg", group = "[l]sp [g]oto" },
|
||||
{ "<leader>ls", group = "[l]sp [s]ymbols" },
|
||||
{ "<leader>s", group = "[s]earch" },
|
||||
{ "<leader>t", group = "[t]oggle" },
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@ -34,33 +34,33 @@ return {
|
||||
|
||||
-- Define these keys here since they require access to runtime values
|
||||
local builtin = require("telescope.builtin")
|
||||
keymap("n", "<leader>sh", builtin.help_tags, { desc = "[S]earch [H]elp" })
|
||||
keymap("n", "<leader>sk", builtin.keymaps, { desc = "[S]earch [K]eymaps" })
|
||||
keymap("n", "<leader>sf", builtin.find_files, { desc = "[S]earch [F]iles" })
|
||||
keymap("n", "<leader>ss", builtin.builtin, { desc = "[S]earch [S]elect Telescope" })
|
||||
keymap("n", "<leader>sw", builtin.grep_string, { desc = "[S]earch current [W]ord" })
|
||||
keymap("n", "<leader>sg", builtin.live_grep, { desc = "[S]earch by [G]rep" })
|
||||
keymap("n", "<leader>sd", builtin.diagnostics, { desc = "[S]earch [D]iagnostics" })
|
||||
keymap("n", "<leader>sr", builtin.resume, { desc = "[S]earch [R]esume" })
|
||||
keymap("n", "<leader>s.", builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
|
||||
keymap("n", "<leader><leader>", builtin.buffers, { desc = "[ ] Find existing buffers" })
|
||||
|
||||
keymap("n", "<leader>/", function()
|
||||
local map = function(keys, func, desc)
|
||||
vim.keymap.set("n", "<leader>" .. keys, func, { desc = "[s]earch " .. desc })
|
||||
end
|
||||
map("<leader>", builtin.find_files, "all files ([ ])")
|
||||
map("sb", builtin.buffers, "[b]uffers")
|
||||
map("sd", builtin.diagnostics, "[d]iagnostics")
|
||||
map("sg", builtin.live_grep, "[g]rep")
|
||||
map("sh", builtin.help_tags, "[h]elp")
|
||||
map("sk", builtin.keymaps, "[k]eymaps")
|
||||
map("sn", function()
|
||||
builtin.find_files({ cwd = vim.fn.stdpath("config") })
|
||||
end, "[n]eovim files")
|
||||
map("sr", builtin.resume, "[r]esume")
|
||||
map("st", builtin.builtin, "[t]elescope")
|
||||
map("sw", builtin.grep_string, "current [w]ord")
|
||||
map("s.", builtin.oldfiles, "recent files ([.] for repeat)")
|
||||
map("/", function()
|
||||
builtin.current_buffer_fuzzy_find(require("telescope.themes").get_dropdown({
|
||||
winblend = 10,
|
||||
previewer = false,
|
||||
}))
|
||||
end, { desc = "[/] Fuzzily search in current buffer" })
|
||||
|
||||
keymap("n", "<leader>s/", function()
|
||||
end, "current buffer fuzzy ([/])")
|
||||
map("s/", function()
|
||||
builtin.live_grep({
|
||||
grep_open_files = true,
|
||||
prompt_title = "Live Grep in Open Files",
|
||||
})
|
||||
end, { desc = "[S]earch [/] in Open Files" })
|
||||
|
||||
keymap("n", "<leader>sn", function()
|
||||
builtin.find_files({ cwd = vim.fn.stdpath("config") })
|
||||
end, { desc = "[S]earch [N]eovim files" })
|
||||
end, "in open files ([/])")
|
||||
end,
|
||||
}
|
||||
|
||||
@ -18,6 +18,7 @@ return {
|
||||
hide_gitignore = false,
|
||||
never_show = {
|
||||
"node_modules",
|
||||
".build",
|
||||
".DS_Store",
|
||||
"thumbs.db",
|
||||
".git",
|
||||
|
||||
42
nvim/lua/plugins/34-commands.lua
Normal file
42
nvim/lua/plugins/34-commands.lua
Normal file
@ -0,0 +1,42 @@
|
||||
return {
|
||||
"dimaportenko/project-cli-commands.nvim",
|
||||
dependencies = {
|
||||
"akinsho/toggleterm.nvim",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<leader>sc",
|
||||
"<cmd>Telescope project_cli_commands open<cr>",
|
||||
desc = "[s]earch [c]ommands",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
local OpenActions = require("project_cli_commands.open_actions")
|
||||
local RunActions = require("project_cli_commands.actions")
|
||||
|
||||
require("project_cli_commands").setup({
|
||||
-- Key mappings bound inside the telescope window
|
||||
running_telescope_mapping = {
|
||||
["<C-c>"] = RunActions.exit_terminal,
|
||||
["<C-f>"] = RunActions.open_float,
|
||||
["<C-v>"] = RunActions.open_vertical,
|
||||
["<C-h>"] = RunActions.open_horizontal,
|
||||
},
|
||||
open_telescope_mapping = {
|
||||
{ mode = "i", key = "<CR>", action = OpenActions.execute_script_vertical },
|
||||
{ mode = "n", key = "<CR>", action = OpenActions.execute_script_vertical },
|
||||
{ mode = "i", key = "<C-h>", action = OpenActions.execute_script },
|
||||
{ mode = "n", key = "<C-h>", action = OpenActions.execute_script },
|
||||
{ mode = "i", key = "<C-i>", action = OpenActions.execute_script_with_input },
|
||||
{ mode = "n", key = "<C-i>", action = OpenActions.execute_script_with_input },
|
||||
{ mode = "i", key = "<C-c>", action = OpenActions.copy_command_clipboard },
|
||||
{ mode = "n", key = "<C-c>", action = OpenActions.copy_command_clipboard },
|
||||
{ mode = "i", key = "<C-f>", action = OpenActions.execute_script_float },
|
||||
{ mode = "n", key = "<C-f>", action = OpenActions.execute_script_float },
|
||||
{ mode = "i", key = "<C-v>", action = OpenActions.execute_script_vertical },
|
||||
{ mode = "n", key = "<C-v>", action = OpenActions.execute_script_vertical },
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
local servers = {
|
||||
local mason_lsps = {
|
||||
-- LSPs
|
||||
"json-lsp",
|
||||
"lua_ls",
|
||||
@ -14,8 +14,10 @@ local servers = {
|
||||
"shellharden",
|
||||
"stylua",
|
||||
"yamlfix",
|
||||
--- Linters
|
||||
"swiftlint",
|
||||
}
|
||||
|
||||
local non_mason_lsps = {
|
||||
"sourcekit",
|
||||
}
|
||||
|
||||
return {
|
||||
@ -25,7 +27,7 @@ return {
|
||||
"mason-org/mason-lspconfig.nvim",
|
||||
},
|
||||
opts = {
|
||||
ensure_installed = servers,
|
||||
ensure_installed = mason_lsps,
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -50,26 +52,31 @@ return {
|
||||
"saghen/blink.cmp",
|
||||
},
|
||||
config = function()
|
||||
for _, server in ipairs(non_mason_lsps) do
|
||||
vim.lsp.enable(server)
|
||||
end
|
||||
|
||||
vim.api.nvim_create_autocmd("LspAttach", {
|
||||
group = vim.api.nvim_create_augroup("kickstart-lsp-attach", { clear = true }),
|
||||
callback = function(event)
|
||||
local map = function(keys, func, desc, mode)
|
||||
vim.keymap.set(mode or "n", keys, func, { buffer = event.buf, desc = "LSP: " .. desc })
|
||||
vim.keymap.set(
|
||||
mode or "n",
|
||||
"<leader>" .. keys,
|
||||
func,
|
||||
{ buffer = event.buf, desc = "[l]sp: " .. desc }
|
||||
)
|
||||
end
|
||||
|
||||
map("grn", vim.lsp.buf.rename, "[R]e[n]ame")
|
||||
map("ga", vim.lsp.buf.code_action, "[g]oto [a]ction", { "n", "x" })
|
||||
map("gtr", require("telescope.builtin").lsp_references, "[g]o[t]o [r]eferences")
|
||||
map("gti", require("telescope.builtin").lsp_implementations, "[g]o[t]o [i]mplementation")
|
||||
map("gtd", require("telescope.builtin").lsp_definitions, "[g]o[t]o [d]efinition")
|
||||
map("gtD", vim.lsp.buf.declaration, "[g]o[t]o [D]eclaration")
|
||||
map("gtt", require("telescope.builtin").lsp_type_definitions, "[g]o[t]o [t]ype Definition")
|
||||
map("gsb", require("telescope.builtin").lsp_document_symbols, "[g]oto [s]ymbols in [b]uffer")
|
||||
map(
|
||||
"gsw",
|
||||
require("telescope.builtin").lsp_dynamic_workspace_symbols,
|
||||
"[g]oto [s]ymbols in [w]orkspace"
|
||||
)
|
||||
map("la", vim.lsp.buf.code_action, "[a]ctions", { "n", "x" })
|
||||
map("lgr", require("telescope.builtin").lsp_references, "[g]oto [r]eferences")
|
||||
map("lgi", require("telescope.builtin").lsp_implementations, "[g]oto [i]mplementation")
|
||||
map("lgf", require("telescope.builtin").lsp_definitions, "[g]oto de[f]inition")
|
||||
map("lgd", vim.lsp.buf.declaration, "[g]oto [d]eclaration")
|
||||
map("lgt", require("telescope.builtin").lsp_type_definitions, "[g]oto [t]ype definition")
|
||||
map("lr", vim.lsp.buf.rename, "[r]ename")
|
||||
map("lsb", require("telescope.builtin").lsp_document_symbols, "[s]ymbols in [b]uffer")
|
||||
map("lsw", require("telescope.builtin").lsp_dynamic_workspace_symbols, "[s]ymbols in [w]orkspace")
|
||||
|
||||
local client = vim.lsp.get_client_by_id(event.data.client_id)
|
||||
local augroup = vim.api.nvim_create_augroup
|
||||
|
||||
@ -4,12 +4,12 @@ return {
|
||||
cmd = { "ConformInfo" },
|
||||
keys = {
|
||||
{
|
||||
"<leader>f",
|
||||
"<leader>lf",
|
||||
function()
|
||||
require("conform").format({ async = true, lsp_format = "fallback" })
|
||||
end,
|
||||
mode = "",
|
||||
desc = "[F]ormat buffer",
|
||||
desc = "[l]sp: [f]ormat buffer",
|
||||
},
|
||||
},
|
||||
opts = {
|
||||
@ -36,7 +36,7 @@ return {
|
||||
ruby = { "rubocop" },
|
||||
rust = { "rustfmt" },
|
||||
sh = { "shellharden" },
|
||||
swift = { "swiftlint" },
|
||||
swift = { "swiftformat" },
|
||||
terraform = { "terraform_fmt" },
|
||||
xml = { "xmllint" },
|
||||
yaml = { "yamlfix" },
|
||||
|
||||
@ -1,37 +0,0 @@
|
||||
return {
|
||||
"folke/trouble.nvim",
|
||||
opts = {}, -- for default options, refer to the configuration section for custom setup.
|
||||
cmd = "Trouble",
|
||||
keys = {
|
||||
{
|
||||
"<leader>xx",
|
||||
"<cmd>Trouble diagnostics toggle<cr>",
|
||||
desc = "Diagnostics (Trouble)",
|
||||
},
|
||||
{
|
||||
"<leader>xX",
|
||||
"<cmd>Trouble diagnostics toggle filter.buf=0<cr>",
|
||||
desc = "Buffer Diagnostics (Trouble)",
|
||||
},
|
||||
{
|
||||
"<leader>cs",
|
||||
"<cmd>Trouble symbols toggle focus=false<cr>",
|
||||
desc = "Symbols (Trouble)",
|
||||
},
|
||||
{
|
||||
"<leader>cl",
|
||||
"<cmd>Trouble lsp toggle focus=false win.position=right<cr>",
|
||||
desc = "LSP Definitions / references / ... (Trouble)",
|
||||
},
|
||||
{
|
||||
"<leader>xL",
|
||||
"<cmd>Trouble loclist toggle<cr>",
|
||||
desc = "Location List (Trouble)",
|
||||
},
|
||||
{
|
||||
"<leader>xQ",
|
||||
"<cmd>Trouble qflist toggle<cr>",
|
||||
desc = "Quickfix List (Trouble)",
|
||||
},
|
||||
},
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user