diff --git a/docs/extras/lang/swift.md b/docs/extras/lang/swift.md new file mode 100644 index 0000000000..5fadfe4e8e --- /dev/null +++ b/docs/extras/lang/swift.md @@ -0,0 +1,244 @@ +# Swift + + + +:::info +You can enable the extra with the `:LazyExtras` command. +Plugins marked as optional will only be configured if they are installed. +::: + +
+Alternatively, you can add it to your lazy.nvim imports + +```lua title="lua/config/lazy.lua" {4} +require("lazy").setup({ + spec = { + { "LazyVim/LazyVim", import = "lazyvim.plugins" }, + { import = "lazyvim.plugins.extras.lang.swift" }, + { import = "plugins" }, + }, +}) +``` + +
+ +## Prerequisites + +Some dependencies are not **yet** available in Mason and will need to be installed manually. + +- [SwiftLint](https://github.com/realm/SwiftLint) - Swift linter +- [SwiftFormat](https://github.com/nicklockwood/SwiftFormat) - Swift formatter +- [xcode-build-server](https://github.com/SolaWing/xcode-build-server) - Integrates sourcekit-lsp (generic swift LSP) with xcodebuild via build server protocol +- [xcbeautify](https://github.com/cpisciotta/xcbeautify) - Makes xcodebuild output pretty + +## Included plugins + +Below you can find a list of included plugins and their default settings. + +:::caution +You don't need to copy the default settings to your config. +They are only shown here for reference. +::: + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +### [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) + +Add syntax highlighting for Swift + + + + + +```lua +opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "swift" }) +end +``` + + + + + +```lua +{ + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "swift" }) + end, +} +``` + + + + + +### [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) + +Configure LSP for Swift + + + + + +```lua +opts = { + servers = { + sourcekit = { + root_dir = function(filename, _) + local util = require("lspconfig.util") + return util.root_pattern("buildServer.json")(filename) + or util.root_pattern("*.xcodeproj", "*.xcworkspace")(filename) + or util.find_git_ancestor(filename) + or util.root_pattern("Package.swift")(filename) + end, + }, + }, +} +``` + + + + + +```lua +{ + "neovim/nvim-lspconfig", + opts = { + servers = { + source_kit = { + root_dir = function(filename, _) + local util = require("lspconfig.util") + return util.root_pattern("buildServer.json")(filename) + or util.root_pattern("*.xcodeproj", "*.xcworkspace")(filename) + or util.find_git_ancestor(filename) + or util.root_pattern("Package.swift")(filename) + end, + }, + }, + }, +} +``` + + + + + +### [nvim-lint](https://github.com/mfussenegger/nvim-lint) + + + + + +```lua +opts = { + linters_by_ft = {} + swift = { "swiftlint" }, + }, +} +``` + + + + + +```lua +{ + "mfussenegger/nvim-lint", + optional = true, + opts = { + linters_by_ft = { + swift = { "swiftlint" }, + }, + }, +} +``` + + + + + +### [conform.nvim](https://github.com/stevearc/conform.nvim) + + + + + +```lua +opts = { + formatters_by_ft = { + swift = { "swiftformat" }, + }, +} +``` + + + + + +```lua +{ + "stevearc/conform.nvim", + optional = true, + opts = { + formatters_by_ft = { + swift = { "swiftformat" }, + }, + }, +} +``` + + + + + +### [xcodebuild.nvim](https://github.com/wojciech-kulik/xcodebuild.nvim) + +Build, run, test, view logs for XCode Projects + + + + + +```lua +{ + "wojciech-kulik/xcodebuild.nvim", + dependencies = { + "nvim-telescope/telescope.nvim", + "MunifTanjim/nui.nvim", + }, + config = function() + require("xcodebuild").setup({ + code_coverage = { + enabled = true, + }, + }) + + vim.keymap.set("n", "xl", "XcodebuildToggleLogs", { desc = "Toggle Xcodebuild Logs" }) + vim.keymap.set("n", "xb", "XcodebuildBuild", { desc = "Build Project" }) + vim.keymap.set("n", "xr", "XcodebuildBuildRun", { desc = "Build & Run Project" }) + vim.keymap.set("n", "xt", "XcodebuildTest", { desc = "Run Tests" }) + vim.keymap.set("n", "xT", "XcodebuildTestClass", { desc = "Run This Test Class" }) + vim.keymap.set("n", "X", "XcodebuildPicker", { desc = "Show All Xcodebuild Actions" }) + vim.keymap.set("n", "xd", "XcodebuildSelectDevice", { desc = "Select Device" }) + vim.keymap.set("n", "xp", "XcodebuildSelectTestPlan", { desc = "Select Test Plan" }) + vim.keymap.set("n", "xc", "XcodebuildToggleCodeCoverage", { desc = "Toggle Code Coverage" }) + vim.keymap.set( + "n", + "xC", + "XcodebuildShowCodeCoverageReport", + { desc = "Show Code Coverage Report" } + ) + vim.keymap.set("n", "xq", "Telescope quickfix", { desc = "Show QuickFix List" }) + end, +} +``` + + + + + + diff --git a/docs/keymaps.md b/docs/keymaps.md index b540ddc740..e73a67b3de 100644 --- a/docs/keymaps.md +++ b/docs/keymaps.md @@ -17,497 +17,536 @@ possible keymaps starting with ``. ## General -| Key | Description | Mode | -| --- | --- | --- | -| <C-h> | Go to Left Window | **n**, **t** | -| <C-j> | Go to Lower Window | **n**, **t** | -| <C-k> | Go to Upper Window | **n**, **t** | -| <C-l> | Go to Right Window | **n**, **t** | -| <C-Up> | Increase Window Height | **n** | -| <C-Down> | Decrease Window Height | **n** | -| <C-Left> | Decrease Window Width | **n** | -| <C-Right> | Increase Window Width | **n** | -| <A-j> | Move Down | **n**, **i**, **v** | -| <A-k> | Move Up | **n**, **i**, **v** | -| <S-h> | Prev Buffer | **n** | -| <S-l> | Next Buffer | **n** | -| [b | Prev Buffer | **n** | -| ]b | Next Buffer | **n** | -| <leader>bb | Switch to Other Buffer | **n** | -| <leader>` | Switch to Other Buffer | **n** | -| <esc> | Escape and Clear hlsearch | **i**, **n** | -| <leader>ur | Redraw / Clear hlsearch / Diff Update | **n** | -| n | Next Search Result | **n**, **x**, **o** | -| N | Prev Search Result | **n**, **x**, **o** | -| <C-s> | Save File | **i**, **x**, **n**, **s** | -| <leader>K | Keywordprg | **n** | -| <leader>l | Lazy | **n** | -| <leader>fn | New File | **n** | -| <leader>xl | Location List | **n** | -| <leader>xq | Quickfix List | **n** | -| [q | Previous Quickfix | **n** | -| ]q | Next Quickfix | **n** | -| <leader>cf | Format | **n**, **v** | -| <leader>cd | Line Diagnostics | **n** | -| ]d | Next Diagnostic | **n** | -| [d | Prev Diagnostic | **n** | -| ]e | Next Error | **n** | -| [e | Prev Error | **n** | -| ]w | Next Warning | **n** | -| [w | Prev Warning | **n** | -| <leader>uf | Toggle Auto Format (Global) | **n** | -| <leader>uF | Toggle Auto Format (Buffer) | **n** | -| <leader>us | Toggle Spelling | **n** | -| <leader>uw | Toggle Word Wrap | **n** | -| <leader>uL | Toggle Relative Line Numbers | **n** | -| <leader>ul | Toggle Line Numbers | **n** | -| <leader>ud | Toggle Diagnostics | **n** | -| <leader>uc | Toggle Conceal | **n** | -| <leader>uh | Toggle Inlay Hints | **n** | -| <leader>uT | Toggle Treesitter Highlight | **n** | -| <leader>ub | Toggle Background | **n** | -| <leader>gg | Lazygit (Root Dir) | **n** | -| <leader>gG | Lazygit (cwd) | **n** | -| <leader>gb | Git Blame Line | **n** | -| <leader>gf | Lazygit Current File History | **n** | -| <leader>qq | Quit All | **n** | -| <leader>ui | Inspect Pos | **n** | -| <leader>L | LazyVim Changelog | **n** | -| <leader>ft | Terminal (Root Dir) | **n** | -| <leader>fT | Terminal (cwd) | **n** | -| <c-/> | Terminal (Root Dir) | **n** | -| <c-_> | which_key_ignore | **n**, **t** | -| <esc><esc> | Enter Normal Mode | **t** | -| <C-/> | Hide Terminal | **t** | -| <leader>ww | Other Window | **n** | -| <leader>wd | Delete Window | **n** | -| <leader>w- | Split Window Below | **n** | -| <leader>w| | Split Window Right | **n** | -| <leader>- | Split Window Below | **n** | -| <leader>| | Split Window Right | **n** | -| <leader><tab>l | Last Tab | **n** | -| <leader><tab>f | First Tab | **n** | -| <leader><tab><tab> | New Tab | **n** | -| <leader><tab>] | Next Tab | **n** | -| <leader><tab>d | Close Tab | **n** | -| <leader><tab>[ | Previous Tab | **n** | +| Key | Description | Mode | +| ------------------------------------------------- | ------------------------------------- | -------------------------- | +| <C-h> | Go to Left Window | **n**, **t** | +| <C-j> | Go to Lower Window | **n**, **t** | +| <C-k> | Go to Upper Window | **n**, **t** | +| <C-l> | Go to Right Window | **n**, **t** | +| <C-Up> | Increase Window Height | **n** | +| <C-Down> | Decrease Window Height | **n** | +| <C-Left> | Decrease Window Width | **n** | +| <C-Right> | Increase Window Width | **n** | +| <A-j> | Move Down | **n**, **i**, **v** | +| <A-k> | Move Up | **n**, **i**, **v** | +| <S-h> | Prev Buffer | **n** | +| <S-l> | Next Buffer | **n** | +| [b | Prev Buffer | **n** | +| ]b | Next Buffer | **n** | +| <leader>bb | Switch to Other Buffer | **n** | +| <leader>` | Switch to Other Buffer | **n** | +| <esc> | Escape and Clear hlsearch | **i**, **n** | +| <leader>ur | Redraw / Clear hlsearch / Diff Update | **n** | +| n | Next Search Result | **n**, **x**, **o** | +| N | Prev Search Result | **n**, **x**, **o** | +| <C-s> | Save File | **i**, **x**, **n**, **s** | +| <leader>K | Keywordprg | **n** | +| <leader>l | Lazy | **n** | +| <leader>fn | New File | **n** | +| <leader>xl | Location List | **n** | +| <leader>xq | Quickfix List | **n** | +| [q | Previous Quickfix | **n** | +| ]q | Next Quickfix | **n** | +| <leader>cf | Format | **n**, **v** | +| <leader>cd | Line Diagnostics | **n** | +| ]d | Next Diagnostic | **n** | +| [d | Prev Diagnostic | **n** | +| ]e | Next Error | **n** | +| [e | Prev Error | **n** | +| ]w | Next Warning | **n** | +| [w | Prev Warning | **n** | +| <leader>uf | Toggle Auto Format (Global) | **n** | +| <leader>uF | Toggle Auto Format (Buffer) | **n** | +| <leader>us | Toggle Spelling | **n** | +| <leader>uw | Toggle Word Wrap | **n** | +| <leader>uL | Toggle Relative Line Numbers | **n** | +| <leader>ul | Toggle Line Numbers | **n** | +| <leader>ud | Toggle Diagnostics | **n** | +| <leader>uc | Toggle Conceal | **n** | +| <leader>uh | Toggle Inlay Hints | **n** | +| <leader>uT | Toggle Treesitter Highlight | **n** | +| <leader>ub | Toggle Background | **n** | +| <leader>gg | Lazygit (Root Dir) | **n** | +| <leader>gG | Lazygit (cwd) | **n** | +| <leader>gb | Git Blame Line | **n** | +| <leader>gf | Lazygit Current File History | **n** | +| <leader>qq | Quit All | **n** | +| <leader>ui | Inspect Pos | **n** | +| <leader>L | LazyVim Changelog | **n** | +| <leader>ft | Terminal (Root Dir) | **n** | +| <leader>fT | Terminal (cwd) | **n** | +| <c-/> | Terminal (Root Dir) | **n** | +| <c-\_> | which_key_ignore | **n**, **t** | +| <esc><esc> | Enter Normal Mode | **t** | +| <C-/> | Hide Terminal | **t** | +| <leader>ww | Other Window | **n** | +| <leader>wd | Delete Window | **n** | +| <leader>w- | Split Window Below | **n** | +| <leader>w| | Split Window Right | **n** | +| <leader>- | Split Window Below | **n** | +| <leader>| | Split Window Right | **n** | +| <leader><tab>l | Last Tab | **n** | +| <leader><tab>f | First Tab | **n** | +| <leader><tab><tab> | New Tab | **n** | +| <leader><tab>] | Next Tab | **n** | +| <leader><tab>d | Close Tab | **n** | +| <leader><tab>[ | Previous Tab | **n** | ## LSP -| Key | Description | Mode | -| --- | --- | --- | -| <leader>cl | Lsp Info | **n** | -| gd | Goto Definition | **n** | -| gr | References | **n** | -| gD | Goto Declaration | **n** | -| gI | Goto Implementation | **n** | -| gy | Goto T[y]pe Definition | **n** | -| K | Hover | **n** | -| gK | Signature Help | **n** | -| <c-k> | Signature Help | **i** | -| <leader>ca | Code Action | **n**, **v** | -| <leader>cc | Run Codelens | **n**, **v** | -| <leader>cC | Refresh & Display Codelens | **n** | -| <leader>cA | Source Action | **n** | -| <leader>cr | Rename | **n** | +| Key | Description | Mode | +| ----------------------------- | -------------------------- | ------------ | +| <leader>cl | Lsp Info | **n** | +| gd | Goto Definition | **n** | +| gr | References | **n** | +| gD | Goto Declaration | **n** | +| gI | Goto Implementation | **n** | +| gy | Goto T[y]pe Definition | **n** | +| K | Hover | **n** | +| gK | Signature Help | **n** | +| <c-k> | Signature Help | **i** | +| <leader>ca | Code Action | **n**, **v** | +| <leader>cc | Run Codelens | **n**, **v** | +| <leader>cC | Refresh & Display Codelens | **n** | +| <leader>cA | Source Action | **n** | +| <leader>cr | Rename | **n** | ## [bufferline.nvim](https://github.com/akinsho/bufferline.nvim.git) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>bl | Delete Buffers to the Left | **n** | -| <leader>bo | Delete Other Buffers | **n** | -| <leader>bp | Toggle Pin | **n** | -| <leader>bP | Delete Non-Pinned Buffers | **n** | +| Key | Description | Mode | +| ----------------------------- | --------------------------- | ----- | +| <leader>bl | Delete Buffers to the Left | **n** | +| <leader>bo | Delete Other Buffers | **n** | +| <leader>bp | Toggle Pin | **n** | +| <leader>bP | Delete Non-Pinned Buffers | **n** | | <leader>br | Delete Buffers to the Right | **n** | -| [b | Prev Buffer | **n** | -| ]b | Next Buffer | **n** | -| <S-h> | Prev Buffer | **n** | -| <S-l> | Next Buffer | **n** | +| [b | Prev Buffer | **n** | +| ]b | Next Buffer | **n** | +| <S-h> | Prev Buffer | **n** | +| <S-l> | Next Buffer | **n** | ## [conform.nvim](https://github.com/stevearc/conform.nvim.git) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | --------------------- | ------------ | | <leader>cF | Format Injected Langs | **n**, **v** | ## [flash.nvim](https://github.com/folke/flash.nvim.git) -| Key | Description | Mode | -| --- | --- | --- | -| <c-s> | Toggle Flash Search | **c** | -| r | Remote Flash | **o** | -| R | Treesitter Search | **o**, **x** | -| s | Flash | **n**, **o**, **x** | -| S | Flash Treesitter | **n**, **o**, **x** | +| Key | Description | Mode | +| ------------------------ | ------------------- | ------------------- | +| <c-s> | Toggle Flash Search | **c** | +| r | Remote Flash | **o** | +| R | Treesitter Search | **o**, **x** | +| s | Flash | **n**, **o**, **x** | +| S | Flash Treesitter | **n**, **o**, **x** | ## [mason.nvim](https://github.com/williamboman/mason.nvim.git) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>cm | Mason | **n** | +| Key | Description | Mode | +| ----------------------------- | ----------- | ----- | +| <leader>cm | Mason | **n** | ## [mini.bufremove](https://github.com/echasnovski/mini.bufremove.git) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>bd | Delete Buffer | **n** | +| Key | Description | Mode | +| ----------------------------- | --------------------- | ----- | +| <leader>bd | Delete Buffer | **n** | | <leader>bD | Delete Buffer (Force) | **n** | ## [mini.pairs](https://github.com/echasnovski/mini.pairs.git) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | ----------------- | ----- | | <leader>up | Toggle Auto Pairs | **n** | ## [mini.surround](https://github.com/echasnovski/mini.surround.git) -| Key | Description | Mode | -| --- | --- | --- | -| gsa | Add Surrounding | **n**, **v** | -| gsd | Delete Surrounding | **n** | -| gsf | Find Right Surrounding | **n** | -| gsF | Find Left Surrounding | **n** | -| gsh | Highlight Surrounding | **n** | -| gsn | Update `MiniSurround.config.n_lines` | **n** | -| gsr | Replace Surrounding | **n** | +| Key | Description | Mode | +| ---------------- | ------------------------------------ | ------------ | +| gsa | Add Surrounding | **n**, **v** | +| gsd | Delete Surrounding | **n** | +| gsf | Find Right Surrounding | **n** | +| gsF | Find Left Surrounding | **n** | +| gsh | Highlight Surrounding | **n** | +| gsn | Update `MiniSurround.config.n_lines` | **n** | +| gsr | Replace Surrounding | **n** | ## [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim.git) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>be | Buffer Explorer | **n** | -| <leader>e | Explorer NeoTree (Root Dir) | **n** | -| <leader>E | Explorer NeoTree (cwd) | **n** | +| Key | Description | Mode | +| ----------------------------- | --------------------------- | ----- | +| <leader>be | Buffer Explorer | **n** | +| <leader>e | Explorer NeoTree (Root Dir) | **n** | +| <leader>E | Explorer NeoTree (cwd) | **n** | | <leader>fe | Explorer NeoTree (Root Dir) | **n** | -| <leader>fE | Explorer NeoTree (cwd) | **n** | -| <leader>ge | Git Explorer | **n** | +| <leader>fE | Explorer NeoTree (cwd) | **n** | +| <leader>ge | Git Explorer | **n** | ## [noice.nvim](https://github.com/folke/noice.nvim.git) -| Key | Description | Mode | -| --- | --- | --- | -| <c-b> | Scroll Backward | **n**, **i**, **s** | -| <c-f> | Scroll Forward | **n**, **i**, **s** | -| <leader>sna | Noice All | **n** | -| <leader>snd | Dismiss All | **n** | -| <leader>snh | Noice History | **n** | -| <leader>snl | Noice Last Message | **n** | -| <S-Enter> | Redirect Cmdline | **c** | +| Key | Description | Mode | +| ------------------------------ | ------------------ | ------------------- | +| <c-b> | Scroll Backward | **n**, **i**, **s** | +| <c-f> | Scroll Forward | **n**, **i**, **s** | +| <leader>sna | Noice All | **n** | +| <leader>snd | Dismiss All | **n** | +| <leader>snh | Noice History | **n** | +| <leader>snl | Noice Last Message | **n** | +| <S-Enter> | Redirect Cmdline | **c** | ## [nvim-notify](https://github.com/rcarriga/nvim-notify.git) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | ------------------------- | ----- | | <leader>un | Dismiss All Notifications | **n** | ## [nvim-spectre](https://github.com/nvim-pack/nvim-spectre.git) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | -------------------------- | ----- | | <leader>sr | Replace in Files (Spectre) | **n** | ## [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter.git) -| Key | Description | Mode | -| --- | --- | --- | -| <bs> | Decrement Selection | **x** | +| Key | Description | Mode | +| ---------------------------- | ------------------- | ----- | +| <bs> | Decrement Selection | **x** | | <c-space> | Increment Selection | **n** | ## [nvim-treesitter-context](https://github.com/nvim-treesitter/nvim-treesitter-context.git) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | ------------------------- | ----- | | <leader>ut | Toggle Treesitter Context | **n** | ## [persistence.nvim](https://github.com/folke/persistence.nvim.git) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | -------------------------- | ----- | | <leader>qd | Don't Save Current Session | **n** | -| <leader>ql | Restore Last Session | **n** | -| <leader>qs | Restore Session | **n** | +| <leader>ql | Restore Last Session | **n** | +| <leader>qs | Restore Session | **n** | ## [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) -| Key | Description | Mode | -| --- | --- | --- | -| <leader><space> | Find Files (Root Dir) | **n** | -| <leader>, | Switch Buffer | **n** | -| <leader>/ | Grep (Root Dir) | **n** | -| <leader>: | Command History | **n** | -| <leader>fb | Buffers | **n** | -| <leader>fc | Find Config File | **n** | -| <leader>ff | Find Files (Root Dir) | **n** | -| <leader>fF | Find Files (cwd) | **n** | -| <leader>fg | Find Files (git-files) | **n** | -| <leader>fr | Recent | **n** | -| <leader>fR | Recent (cwd) | **n** | -| <leader>gc | Commits | **n** | -| <leader>gs | Status | **n** | -| <leader>s" | Registers | **n** | -| <leader>sa | Auto Commands | **n** | -| <leader>sb | Buffer | **n** | -| <leader>sc | Command History | **n** | -| <leader>sC | Commands | **n** | -| <leader>sd | Document Diagnostics | **n** | -| <leader>sD | Workspace Diagnostics | **n** | -| <leader>sg | Grep (Root Dir) | **n** | -| <leader>sG | Grep (cwd) | **n** | -| <leader>sh | Help Pages | **n** | -| <leader>sH | Search Highlight Groups | **n** | -| <leader>sk | Key Maps | **n** | -| <leader>sm | Jump to Mark | **n** | -| <leader>sM | Man Pages | **n** | -| <leader>so | Options | **n** | -| <leader>sR | Resume | **n** | -| <leader>ss | Goto Symbol | **n** | -| <leader>sS | Goto Symbol (Workspace) | **n** | -| <leader>sw | Word (Root Dir) | **n** | -| <leader>sW | Word (cwd) | **n** | -| <leader>sw | Selection (Root Dir) | **v** | -| <leader>sW | Selection (cwd) | **v** | -| <leader>uC | Colorscheme with Preview | **n** | +| Key | Description | Mode | +| ---------------------------------------- | ------------------------ | ----- | +| <leader><space> | Find Files (Root Dir) | **n** | +| <leader>, | Switch Buffer | **n** | +| <leader>/ | Grep (Root Dir) | **n** | +| <leader>: | Command History | **n** | +| <leader>fb | Buffers | **n** | +| <leader>fc | Find Config File | **n** | +| <leader>ff | Find Files (Root Dir) | **n** | +| <leader>fF | Find Files (cwd) | **n** | +| <leader>fg | Find Files (git-files) | **n** | +| <leader>fr | Recent | **n** | +| <leader>fR | Recent (cwd) | **n** | +| <leader>gc | Commits | **n** | +| <leader>gs | Status | **n** | +| <leader>s" | Registers | **n** | +| <leader>sa | Auto Commands | **n** | +| <leader>sb | Buffer | **n** | +| <leader>sc | Command History | **n** | +| <leader>sC | Commands | **n** | +| <leader>sd | Document Diagnostics | **n** | +| <leader>sD | Workspace Diagnostics | **n** | +| <leader>sg | Grep (Root Dir) | **n** | +| <leader>sG | Grep (cwd) | **n** | +| <leader>sh | Help Pages | **n** | +| <leader>sH | Search Highlight Groups | **n** | +| <leader>sk | Key Maps | **n** | +| <leader>sm | Jump to Mark | **n** | +| <leader>sM | Man Pages | **n** | +| <leader>so | Options | **n** | +| <leader>sR | Resume | **n** | +| <leader>ss | Goto Symbol | **n** | +| <leader>sS | Goto Symbol (Workspace) | **n** | +| <leader>sw | Word (Root Dir) | **n** | +| <leader>sW | Word (cwd) | **n** | +| <leader>sw | Selection (Root Dir) | **v** | +| <leader>sW | Selection (cwd) | **v** | +| <leader>uC | Colorscheme with Preview | **n** | ## [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>st | Todo | **n** | -| <leader>sT | Todo/Fix/Fixme | **n** | -| <leader>xt | Todo (Trouble) | **n** | +| Key | Description | Mode | +| ----------------------------- | ------------------------ | ----- | +| <leader>st | Todo | **n** | +| <leader>sT | Todo/Fix/Fixme | **n** | +| <leader>xt | Todo (Trouble) | **n** | | <leader>xT | Todo/Fix/Fixme (Trouble) | **n** | -| [t | Previous Todo Comment | **n** | -| ]t | Next Todo Comment | **n** | +| [t | Previous Todo Comment | **n** | +| ]t | Next Todo Comment | **n** | ## [trouble.nvim](https://github.com/folke/trouble.nvim.git) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>xL | Location List (Trouble) | **n** | -| <leader>xQ | Quickfix List (Trouble) | **n** | -| <leader>xx | Document Diagnostics (Trouble) | **n** | +| Key | Description | Mode | +| ----------------------------- | ------------------------------- | ----- | +| <leader>xL | Location List (Trouble) | **n** | +| <leader>xQ | Quickfix List (Trouble) | **n** | +| <leader>xx | Document Diagnostics (Trouble) | **n** | | <leader>xX | Workspace Diagnostics (Trouble) | **n** | -| [q | Previous Trouble/Quickfix Item | **n** | -| ]q | Next Trouble/Quickfix Item | **n** | +| [q | Previous Trouble/Quickfix Item | **n** | +| ]q | Next Trouble/Quickfix Item | **n** | ## [vim-illuminate](https://github.com/RRethy/vim-illuminate.git) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| --------------- | -------------- | ----- | | [[ | Prev Reference | **n** | | ]] | Next Reference | **n** | ## [yanky.nvim](https://github.com/gbprod/yanky.nvim.git) + Part of [lazyvim.plugins.extras.coding.yanky](/extras/coding/yanky) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>p | Open Yank History | **n** | -| <p | Put and Indent Left | **n** | -| <P | Put Before and Indent Left | **n** | -| =p | Put After Applying a Filter | **n** | -| =P | Put Before Applying a Filter | **n** | -| >p | Put and Indent Right | **n** | -| >P | Put Before and Indent Right | **n** | -| [p | Put Indented Before Cursor (Linewise) | **n** | -| [P | Put Indented Before Cursor (Linewise) | **n** | -| [y | Cycle Forward Through Yank History | **n** | -| ]p | Put Indented After Cursor (Linewise) | **n** | -| ]P | Put Indented After Cursor (Linewise) | **n** | -| ]y | Cycle Backward Through Yank History | **n** | -| gp | Put Yanked Text After Selection | **n**, **x** | -| gP | Put Yanked Text Before Selection | **n**, **x** | -| p | Put Yanked Text After Cursor | **n**, **x** | -| P | Put Yanked Text Before Cursor | **n**, **x** | -| y | Yank Text | **n**, **x** | +| Key | Description | Mode | +| ---------------------------- | ------------------------------------- | ------------ | +| <leader>p | Open Yank History | **n** | +| <p | Put and Indent Left | **n** | +| <P | Put Before and Indent Left | **n** | +| =p | Put After Applying a Filter | **n** | +| =P | Put Before Applying a Filter | **n** | +| >p | Put and Indent Right | **n** | +| >P | Put Before and Indent Right | **n** | +| [p | Put Indented Before Cursor (Linewise) | **n** | +| [P | Put Indented Before Cursor (Linewise) | **n** | +| [y | Cycle Forward Through Yank History | **n** | +| ]p | Put Indented After Cursor (Linewise) | **n** | +| ]P | Put Indented After Cursor (Linewise) | **n** | +| ]y | Cycle Backward Through Yank History | **n** | +| gp | Put Yanked Text After Selection | **n**, **x** | +| gP | Put Yanked Text Before Selection | **n**, **x** | +| p | Put Yanked Text After Cursor | **n**, **x** | +| P | Put Yanked Text Before Cursor | **n**, **x** | +| y | Yank Text | **n**, **x** | ## [nvim-dap](https://github.com/mfussenegger/nvim-dap.git) + Part of [lazyvim.plugins.extras.dap.core](/extras/dap/core) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>da | Run with Args | **n** | -| <leader>db | Toggle Breakpoint | **n** | -| <leader>dB | Breakpoint Condition | **n** | -| <leader>dc | Continue | **n** | -| <leader>dC | Run to Cursor | **n** | +| Key | Description | Mode | +| ----------------------------- | ----------------------- | ----- | +| <leader>da | Run with Args | **n** | +| <leader>db | Toggle Breakpoint | **n** | +| <leader>dB | Breakpoint Condition | **n** | +| <leader>dc | Continue | **n** | +| <leader>dC | Run to Cursor | **n** | | <leader>dg | Go to Line (No Execute) | **n** | -| <leader>di | Step Into | **n** | -| <leader>dj | Down | **n** | -| <leader>dk | Up | **n** | -| <leader>dl | Run Last | **n** | -| <leader>do | Step Out | **n** | -| <leader>dO | Step Over | **n** | -| <leader>dp | Pause | **n** | -| <leader>dr | Toggle REPL | **n** | -| <leader>ds | Session | **n** | -| <leader>dt | Terminate | **n** | -| <leader>dw | Widgets | **n** | +| <leader>di | Step Into | **n** | +| <leader>dj | Down | **n** | +| <leader>dk | Up | **n** | +| <leader>dl | Run Last | **n** | +| <leader>do | Step Out | **n** | +| <leader>dO | Step Over | **n** | +| <leader>dp | Pause | **n** | +| <leader>dr | Toggle REPL | **n** | +| <leader>ds | Session | **n** | +| <leader>dt | Terminate | **n** | +| <leader>dw | Widgets | **n** | ## [nvim-dap-ui](https://github.com/rcarriga/nvim-dap-ui.git) + Part of [lazyvim.plugins.extras.dap.core](/extras/dap/core) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>de | Eval | **n**, **v** | -| <leader>du | Dap UI | **n** | +| Key | Description | Mode | +| ----------------------------- | ----------- | ------------ | +| <leader>de | Eval | **n**, **v** | +| <leader>du | Dap UI | **n** | ## [aerial.nvim](https://github.com/stevearc/aerial.nvim.git) + Part of [lazyvim.plugins.extras.editor.aerial](/extras/editor/aerial) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | ---------------- | ----- | | <leader>cs | Aerial (Symbols) | **n** | ## [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) + Part of [lazyvim.plugins.extras.editor.aerial](/extras/editor/aerial) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | -------------------- | ----- | | <leader>ss | Goto Symbol (Aerial) | **n** | ## [dial.nvim](https://github.com/monaqa/dial.nvim.git) + Part of [lazyvim.plugins.extras.editor.dial](/extras/editor/dial) -| Key | Description | Mode | -| --- | --- | --- | -| <C-a> | Increment | **n**, **v** | -| <C-x> | Decrement | **n**, **v** | -| g<C-a> | Increment | **n**, **v** | -| g<C-x> | Decrement | **n**, **v** | +| Key | Description | Mode | +| ------------------------- | ----------- | ------------ | +| <C-a> | Increment | **n**, **v** | +| <C-x> | Decrement | **n**, **v** | +| g<C-a> | Increment | **n**, **v** | +| g<C-x> | Decrement | **n**, **v** | ## [harpoon](https://github.com/ThePrimeagen/harpoon.git) + Part of [lazyvim.plugins.extras.editor.harpoon2](/extras/editor/harpoon2) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>1 | Harpoon to File 1 | **n** | -| <leader>2 | Harpoon to File 2 | **n** | -| <leader>3 | Harpoon to File 3 | **n** | -| <leader>4 | Harpoon to File 4 | **n** | -| <leader>5 | Harpoon to File 5 | **n** | +| Key | Description | Mode | +| ---------------------------- | ------------------ | ----- | +| <leader>1 | Harpoon to File 1 | **n** | +| <leader>2 | Harpoon to File 2 | **n** | +| <leader>3 | Harpoon to File 3 | **n** | +| <leader>4 | Harpoon to File 4 | **n** | +| <leader>5 | Harpoon to File 5 | **n** | | <leader>h | Harpoon Quick Menu | **n** | -| <leader>H | Harpoon File | **n** | +| <leader>H | Harpoon File | **n** | ## [flit.nvim](https://github.com/ggandor/flit.nvim.git) + Part of [lazyvim.plugins.extras.editor.leap](/extras/editor/leap) -| Key | Description | Mode | -| --- | --- | --- | -| f | f | **n**, **o**, **x** | -| F | F | **n**, **o**, **x** | -| t | t | **n**, **o**, **x** | -| T | T | **n**, **o**, **x** | +| Key | Description | Mode | +| -------------- | ----------- | ------------------- | +| f | f | **n**, **o**, **x** | +| F | F | **n**, **o**, **x** | +| t | t | **n**, **o**, **x** | +| T | T | **n**, **o**, **x** | ## [leap.nvim](https://github.com/ggandor/leap.nvim.git) + Part of [lazyvim.plugins.extras.editor.leap](/extras/editor/leap) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| --------------- | ----------------- | ------------------- | | gs | Leap from Windows | **n**, **o**, **x** | -| s | Leap Forward to | **n**, **o**, **x** | -| S | Leap Backward to | **n**, **o**, **x** | +| s | Leap Forward to | **n**, **o**, **x** | +| S | Leap Backward to | **n**, **o**, **x** | ## [mini.diff](https://github.com/echasnovski/mini.diff.git) + Part of [lazyvim.plugins.extras.editor.mini-diff](/extras/editor/mini-diff) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | ------------------------ | ----- | | <leader>go | Toggle mini.diff overlay | **n** | ## [mini.files](https://github.com/echasnovski/mini.files.git) + Part of [lazyvim.plugins.extras.editor.mini-files](/extras/editor/mini-files) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | ------------------------------------------- | ----- | | <leader>fm | Open mini.files (Directory of Current File) | **n** | -| <leader>fM | Open mini.files (cwd) | **n** | +| <leader>fM | Open mini.files (cwd) | **n** | ## [outline.nvim](https://github.com/hedyhli/outline.nvim.git) + Part of [lazyvim.plugins.extras.editor.outline](/extras/editor/outline) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | -------------- | ----- | | <leader>cs | Toggle Outline | **n** | ## [trouble.nvim](https://github.com/folke/trouble.nvim.git) + Part of [lazyvim.plugins.extras.editor.trouble-v3](/extras/editor/trouble-v3) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>cs | Symbols (Trouble) | **n** | +| Key | Description | Mode | +| ----------------------------- | ---------------------------------------- | ----- | +| <leader>cs | Symbols (Trouble) | **n** | | <leader>cS | LSP references/definitions/... (Trouble) | **n** | -| <leader>xL | Location List (Trouble) | **n** | -| <leader>xQ | Quickfix List (Trouble) | **n** | -| <leader>xx | Diagnostics (Trouble) | **n** | -| <leader>xX | Buffer Diagnostics (Trouble) | **n** | -| [q | Previous Trouble/Quickfix Item | **n** | +| <leader>xL | Location List (Trouble) | **n** | +| <leader>xQ | Quickfix List (Trouble) | **n** | +| <leader>xx | Diagnostics (Trouble) | **n** | +| <leader>xX | Buffer Diagnostics (Trouble) | **n** | +| [q | Previous Trouble/Quickfix Item | **n** | ## [markdown-preview.nvim](https://github.com/iamcco/markdown-preview.nvim.git) + Part of [lazyvim.plugins.extras.lang.markdown](/extras/lang/markdown) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | ---------------- | ----- | | <leader>cp | Markdown Preview | **n** | ## [nvim-dap-python](https://github.com/mfussenegger/nvim-dap-python.git) + Part of [lazyvim.plugins.extras.lang.python](/extras/lang/python) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>dPc | Debug Class | **n** | +| Key | Description | Mode | +| ------------------------------ | ------------ | ----- | +| <leader>dPc | Debug Class | **n** | | <leader>dPt | Debug Method | **n** | ## [venv-selector.nvim](https://github.com/linux-cultist/venv-selector.nvim.git) + Part of [lazyvim.plugins.extras.lang.python](/extras/lang/python) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | ----------------- | ----- | | <leader>cv | Select VirtualEnv | **n** | ## [neotest](https://github.com/nvim-neotest/neotest.git) + Part of [lazyvim.plugins.extras.test.core](/extras/test/core) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>tl | Run Last | **n** | -| <leader>to | Show Output | **n** | +| Key | Description | Mode | +| ----------------------------- | ------------------- | ----- | +| <leader>tl | Run Last | **n** | +| <leader>to | Show Output | **n** | | <leader>tO | Toggle Output Panel | **n** | -| <leader>tr | Run Nearest | **n** | -| <leader>ts | Toggle Summary | **n** | -| <leader>tS | Stop | **n** | -| <leader>tt | Run File | **n** | -| <leader>tT | Run All Test Files | **n** | +| <leader>tr | Run Nearest | **n** | +| <leader>ts | Toggle Summary | **n** | +| <leader>tS | Stop | **n** | +| <leader>tt | Run File | **n** | +| <leader>tT | Run All Test Files | **n** | ## [nvim-dap](https://github.com/mfussenegger/nvim-dap.git) + Part of [lazyvim.plugins.extras.test.core](/extras/test/core) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | ------------- | ----- | | <leader>td | Debug Nearest | **n** | ## [edgy.nvim](https://github.com/folke/edgy.nvim.git) + Part of [lazyvim.plugins.extras.ui.edgy](/extras/ui/edgy) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>ue | Edgy Toggle | **n** | +| Key | Description | Mode | +| ----------------------------- | ------------------ | ----- | +| <leader>ue | Edgy Toggle | **n** | | <leader>uE | Edgy Select Window | **n** | ## [mason.nvim](https://github.com/williamboman/mason.nvim.git) + Part of [lazyvim.plugins.extras.util.gitui](/extras/util/gitui) -| Key | Description | Mode | -| --- | --- | --- | +| Key | Description | Mode | +| ----------------------------- | ---------------- | ----- | | <leader>gg | GitUi (Root Dir) | **n** | -| <leader>gG | GitUi (cwd) | **n** | +| <leader>gG | GitUi (cwd) | **n** | ## [project.nvim](https://github.com/ahmedkhalf/project.nvim.git) + Part of [lazyvim.plugins.extras.util.project](/extras/util/project) -| Key | Description | Mode | -| --- | --- | --- | -| <leader>fp | Projects | **n** | +| Key | Description | Mode | +| ----------------------------- | ----------- | ----- | +| <leader>fp | Projects | **n** | + +## [xcodebuild.nvim](https://github.com/wojciech-kulik/xcodebuild.nvim) + +Part of [lazyvim.plugins.extras.lang.swift](/extras/lang/swift) + +| Key | Description | Mode | +| ----------------------------- | --------------------------- | ----- | +| <leader>xl | Toggle Xcodebuild Logs | **n** | +| <leader>xb | Build Project | **n** | +| <leader>xr | Build & Run Project | **n** | +| <leader>xt | Run Tests | **n** | +| <leader>xT | Run This Test Class | **n** | +| <leader>X | Show All Xcodebuild Actions | **n** | +| <leader>xd | Select Device | **n** | +| <leader>xp | Select Test Plan | **n** | +| <leader>xc | Toggle Code Coverage | **n** | +| <leader>xC | Toggle Code Coverage Report | **n** | +| <leader>xq | Show QuickFix List | **n** |