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** |