{"id":13895958,"url":"https://github.com/arsham/shark","last_synced_at":"2025-03-18T23:30:50.483Z","repository":{"id":44444492,"uuid":"446204592","full_name":"arsham/shark","owner":"arsham","description":"Neovim setup, all in Lua","archived":false,"fork":false,"pushed_at":"2024-06-22T19:36:32.000Z","size":10934,"stargazers_count":40,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-16T15:48:25.565Z","etag":null,"topics":["fzf","lsp","neovim","neovim-config","tree-sitter"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arsham.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-09T21:16:05.000Z","updated_at":"2024-10-16T15:58:02.000Z","dependencies_parsed_at":"2024-06-23T02:26:08.071Z","dependency_job_id":"c3271f7a-17d6-4776-a02f-038032c8ecbf","html_url":"https://github.com/arsham/shark","commit_stats":null,"previous_names":[],"tags_count":55,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arsham%2Fshark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arsham%2Fshark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arsham%2Fshark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arsham%2Fshark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arsham","download_url":"https://codeload.github.com/arsham/shark/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243960664,"owners_count":20375104,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fzf","lsp","neovim","neovim-config","tree-sitter"],"created_at":"2024-08-06T18:02:35.153Z","updated_at":"2025-03-18T23:30:50.056Z","avatar_url":"https://github.com/arsham.png","language":"Lua","funding_links":[],"categories":["Lua"],"sub_categories":[],"readme":"# NeoVim setup, fast as a shark\n\nThe goal of this project is to have a fast Neovim startup, provide mappings\nthat can be easily memorised, interact with the **Lua** API, and make\nprogramming fun.\n\nThis setup is mostly customised to for **Go** (**Golang**) and **Rust**\ndevelopment. There is also a few other **LSP** servers setup for other LSP\nservers to work with various file types.\n\nThis project supports Neovim version `0.10.0` and newer.\n\n## Highlights\n\n- Besides in a few places that Neovim doesn't provide an API in Lua, most\n  configuration is done in **Lua**.\n- **LSP**, **Treesitter**, and **FZF** are setup to work together.\n- Seamless navigation with **tmux**.\n- Completion with **nvim-cmp** plugin is setup.\n- It is optimised to handle very **large** files.\n- There are some handy **textobjects** such as **backticks** and **indents**.\n- You can add the current location of the cursor or make **notes** on the\n  current location in the **quickfix/local** lists with repeatable mappings.\n- You can **manipulate** quickfix/local lists.\n- It comes with integration with **git** and gist.\n- Has a lot of useful feedback in the gutter.\n- Statusline is configures with **feline**.\n- It is set to give a lot of useful information about the buffer.\n- Prettier quickfix buffer and quickfix tools.\n- The theme is setup with Lua to take advantage of its performance.\n\n1. [Setup](#setup)\n2. [Functionality](#functionality)\n   - [Plugins](#plugins)\n   - [Core Mappings](#core-mappings)\n   - [Text Objects](#text-objects)\n   - [Lists](#lists)\n   - [Highlight Matching](#highlight-matching)\n   - [FZF](#fzf)\n   - [LSP](#lsp)\n   - [Snippets](#snippets)\n   - [Utilities](#utilities)\n3. [Plugin Licence List](#plugin-license-list)\n\n![folds](https://user-images.githubusercontent.com/428611/148667078-25211d3c-116a-4c6f-938a-bb52b8bb1163.png)\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view another image\u003c/summary\u003e\n\n![go](https://user-images.githubusercontent.com/428611/148667079-f441fc97-4157-4ed3-b2bb-81a64d358107.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view advance snippets demo\u003c/summary\u003e\n\nSee [snippets](#snippets) section for more information.\n\n![queryrows](https://user-images.githubusercontent.com/428611/154764948-b620896d-3303-42db-ad09-dcde94a18764.gif)\n\n![ife](https://user-images.githubusercontent.com/428611/154764941-6398c245-01f8-4c5e-b226-302d10dc1fef.gif)\n\n\u003c/details\u003e\n\n## Setup\n\nJust clone this project:\n\n```bash\n$ git clone https://github.com/arsham/shark.git ~/.config/nvim\n```\n\nOnce you start `Neovim`, it will install the package manager and installs the\nlisted plugins.\n\n## Functionality\n\nSome default mappings/commands are augmented to **centre the buffer** after the\nexecution.\n\nSome mappings/commands are obvious, but I've left them here as a reminder. Some\nare left out either because they are not used too often, or they are defined\nafter writing this document and I've forgot to document.\n\nI would recommend you have a look at the code to see what is available to you.\n\n### Plugins\n\nThis list might change at any time depending on if there is a better\nreplacement or the requirement changes.\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view the plugin list\u003c/summary\u003e\n\nSome plugins are not listed here. You can find the complete list in the\n[plugins](./lua/plugins/) folder.\n\nLicenses for plugins can be found [here](#plugin-license-list).\n\n| Function   | Plugin                                           | Description                            |\n| :--------- | :----------------------------------------------- | :------------------------------------- |\n| 🔥 Core    | [folke/lazy.nvim][folke/lazy.nvim]               | Package manager                        |\n| 🔥 Visual  | [arsham/arshamiser.nvim][arshamiser.nvim]        | Status line, colour scheme and folds   |\n| 🔥 Lists   | [arsham/listish.nvim][listish.nvim]              | Supporting quickfix and local lists    |\n| 🧰 Lib     | [arsham/arshlib.nvim][arshlib.nvim]              | Library used in various plugins        |\n| ⚡ Visual  | [nvim-tree/nvim-web-devicons][nvim-web-devicons] |                                        |\n| 🔍 Finder  | [junegunn/fzf][fzf]                              | Fuzzy finder                           |\n| 🔍 Finder  | [junegunn/fzf.vim][fzf.vim]                      | fzf plugin for vim                     |\n| 🔥 Finder  | [arsham/fzfmania.nvim][fzfmania.nvim]            | Very powerful FZF setup in lua         |\n| 🔥 Finder  | [ibhagwan/fzf-lua][fzf-lua]                      | fzf :heart: lua - fzf frontend         |\n| 🧰 Core    | [nvim-lua/plenary.nvim][plenary.nvim]            |                                        |\n| ⏩ Core    | [tweekmonster/startuptime.vim][startuptime]      | Benchmarking startup                   |\n| 🔁 Core    | [tpope/vim-repeat][tpope/vim-repeat]             |                                        |\n| 🥇 Textobj | [arsham/archer.nvim][arsham/archer.nvim]         | Mappings and text objects for archers  |\n| 🧰 Visuals | [MunifTanjim/nui.nvim][muniftanjim/nui.nvim]     | UI component                           |\n| 🥇 Textobj | [arsham/indent-tools.nvim][indent-tools.nvim]    | Indent mappings and text object        |\n| 🔥 Visuals | [arsham/matchmaker.nvim][matchmaker.nvim]        | Creates highlight for user matches     |\n| 🛢️ Tool    | [stevearc/oil.nvim][oil.nvim]                    | File explorer                          |\n|  GIT      | [tpope/vim-fugitive][tpope/vim-fugitive]         | git integration                        |\n|  GIT      | [tpope/vim-rhubarb][tpope/vim-rhubarb]           | Go to selection's code Github page     |\n|  Core     | [tpope/vim-git][tpope/vim-git]                   |                                        |\n| 🌲 Visuals | [nvim-treesitter][nvim-treesitter]               | Highlighting engine                    |\n| 🔥 GIT     | [lewis6991/gitsigns.nvim][gitsigns.nvim]         | git signs in the gutter                |\n| 🥇 Textobj | [nvim-treesitter-textobjects][ts-textobjects]    | Treesitter Text Objects                |\n| 🔥 Visuals | [freddiehaddad/feline.nvim][feline.nvim]         | Statusline (default)                   |\n| 🗨️ Visuals | [rcarriga/nvim-notify][nvim-notify]              | Better notification UI                 |\n| 🌈 Visuals | [treesitter-refactor][treesitter-refactor]       | Treesitter plugin                      |\n| 🗒️ Visuals | [nvim-treesitter/playground][playground]         | Treesitter plugin                      |\n| 󰐣 Editing  | [context-commentstring][ctx-commentstring]       |                                        |\n| 🥊 Core    | [andymass/vim-matchup][vim-matchup]              |                                        |\n| 󰘜 Editing  | [monaqa/dial.nvim][monaqa/dial.nvim]             | Enhanced increment/decrement values    |\n| 👗 Visuals | [stevearc/dressing.nvim][dressing.nvim]          |                                        |\n|  GIT      | [mattn/vim-gist][mattn/vim-gist]                 | gist integration                       |\n| 󰛡 Core     | [RaafatTurki/hex.nvim][hex.nvim]                 | Hex viewer                             |\n|  Tool     | [iamcco/markdown-preview.nvim][mk-preview]       |                                        |\n| 🧭 Core    | [numToStr/Navigator.nvim][navigator.nvim]        | Seamless navigation with tmux          |\n| 📁 Tool    | [nvim-neo-tree/neo-tree.nvim][neo-tree]          | File explorer tree                     |\n| 🪟 Core    | [s1n7ax/nvim-window-picker][window-picker]       | Window picker                          |\n|  Tool     | [ralismark/opsort.vim][opsort.vim]               | Sort operator                          |\n|  Tool     | [sQVe/sort.nvim][sqve/sort.nvim]                 | Line-wise and delimiter sorting        |\n| 🔭 Tool    | [dhruvasagar/vim-zoom][vim-zoom]                 | Zoom windows                           |\n| 🥇 Textobj | [David-Kunz/treesitter-unit][ts-unit]            | Treesitter units                       |\n|  LSP      | [neovim/nvim-lspconfig][nvim-lspconfig]          | LSP configuration                      |\n|  LSP      | [mason.nvim][mason.nvim]                         | Package manager for LSP, DAP, etc.     |\n|  LSP      | [mason-lspconfig.nvim][mason-lspconfig]          | LSP config bridge for mason.nvim       |\n|  LSP      | [hrsh7th/nvim-cmp][hrsh7th/nvim-cmp]             | Completion with LSP                    |\n|  LSP      | [saadparwaiz1/cmp_luasnip][cmp_luasnip]          | Extension for nvim-cmp                 |\n|  LSP      | [L3MON4D3/LuaSnip][l3mon4d3/luasnip]             | Snippet engine                         |\n|  LSP      | [hrsh7th/cmp-cmdline][hrsh7th/cmp-cmdline]       | Extension for nvim-cmp                 |\n|  LSP      | [friendly-snippets][friendly-snippets]           |                                        |\n|  LSP      | [hrsh7th/cmp-buffer][cmp-buffer]                 | Extension for nvim-cmp                 |\n|  LSP      | [hrsh7th/cmp-calc][cmp-calc]                     | Extension for nvim-cmp                 |\n|  LSP      | [hrsh7th/cmp-nvim-lsp][cmp-nvim-lsp]             | Extension for nvim-cmp                 |\n|  LSP      | [hrsh7th/lsp-signature-help][sig-help]           | Extension for nvim-cmp                 |\n|  LSP      | [hrsh7th/cmp-nvim-lua][cmp-nvim-lua]             | Extension for nvim-cmp                 |\n|  LSP      | [hrsh7th/cmp-path][cmp-path]                     | Extension for nvim-cmp                 |\n|  LSP      | [lukas-reineke/cmp-rg][cmp-rg]                   | Extension for nvim-cmp                 |\n| 💡 LSP     | [j-hui/fidget.nvim][j-hui/fidget.nvim]           | Spinner for LSP status                 |\n| 📢 LSP     | [none-ls.nvim][none-ls.nvim]                     | External Tool to LSP bridge            |\n| 📢 LSP     | [mason-null-ls.nvim][mason-null-ls.nvim]         | Null LS and Mason bridge               |\n| 📢 LSP     | [mason-tool-installer][mason-tool-inst]          | LSP server installer                   |\n| 🗒️ Editing | [numToStr/Comment.nvim][comment.nvim]            | Comment string                         |\n| 🗒️ LSP     | [smjonas/inc-rename.nvim][inc-rename.nvim]       | Incremental renaming                   |\n| 🗒️ Editing | [windwp/nvim-autopairs][nvim-autopairs]          |                                        |\n|  Editing  | [arthurxavierx/vim-caser][vim-caser]             | Case conversion                        |\n| 🖌️ Visuals | [NvChad/nvim-colorizer.lua][nvim-colorizer]      | Colourise matched colours in buffer    |\n| 🦀 Tools   | [saecki/crates.nvim][saecki/crates.nvim]         | Crate.toml helper                      |\n| 💡 LSP     | [kosayoda/nvim-lightbulb][nvim-lightbulb]        | Code actions buln                      |\n|  Editing  | [gbprod/substitute.nvim][substitute.nvim]        | Text exchange operator                 |\n| 💡 LSP     | [lsp_lines.nvim][lsp_lines.nvim]                 | Show LSP diagnostics in extmarks       |\n| 👈 Core    | [milisims/nvim-luaref][nvim-luaref]              |                                        |\n| 🗒️ Editing | [echasnovski/mini.nvim][mini.nvim]               | For surround, alignments, etc.         |\n|  Core     | [folke/neodev.nvim][folke/neodev.nvim]           |                                        |\n| 📆 Tool    | [nvim-neorg/neorg][nvim-neorg/neorg]             | Note taking tool                       |\n|  Lists    | [kevinhwang91/nvim-bqf][nvim-bqf]                | Better quickfix list manager           |\n|  Tool     | [bfredl/nvim-luadev][bfredl/nvim-luadev]         | REPL/debug console for lua plugins     |\n| 💡 LSP     | [SmiteshP/nvim-navic][nvim-navic]                | Current code context with LSP          |\n|  Tool     | [kiran94/s3edit.nvim][s3edit.nvim]               | Edit files on S3 bucket                |\n| 🔍 Tool    | [woosaaahh/sj.nvim][woosaaahh/sj.nvim]           | Search and quickly jump                |\n|  Editing  | [mbbill/undotree][mbbill/undotree]               | Undo tree browser                      |\n|  GIT      | [rbong/vim-flog][rbong/vim-flog]                 | git log graph                          |\n| 🎡 Visual  | [towolf/vim-helm][towolf/vim-helm]               | Helm syntax highlighting               |\n|  Core     | [tmux-plugins/vim-tmux][vim-tmux]                |                                        |\n|  Editing  | [mg979/vim-visual-multi][vim-visual-multi]       | Multiple cursors                       |\n| 🔫 Core    | [svban/YankAssassin.vim][yankassassin.vim]       | Stay where you are after yanking       |\n|  Editing  | [zbirenbaum/copilot.lua][copilot.lua]            | Copilot                                |\n|  Editing  | [Exafunction/codeium.vim][codeium.vim]           | Codeium (opensource copilot)           |\n| 💡 LSP     | [utilyre/barbecue.nvim][barbecue.nvim]           | Complementary to navic                 |\n|  LSP      | [uga-rosa/cmp-dynamic][cmp-dynamic]              | Extension for nvim-cmp                 |\n|  Tool     | [stevearc/overseer.nvim][overseer.nvim]          | Task runner                            |\n| 🌈 Tool    | [ziontee113/color-picker.nvim][colorpicker]      | Colour picker and updater              |\n|  Editing  | [aduros/ai.vim][aduros/ai.vim]                   | OpenAI plugin                          |\n|  Tool     | [tamton-aquib/duck.nvim][duck.nvim]              | Fun little ducks                       |\n| 🕸️ Tool    | [rest-nvim/rest.nvim][rest.nvim]                 | Fast http client in lua                |\n| 🧰 Lib     | [vhyrro/luarocks.nvim][luarocks.nvim]            | Easily install luarocks with lazy.nvim |\n| 🔍 Tool    | [arsham/yanker.nvim][yanker.nvim]                | Yank history helper                    |\n| 🗒️ Editing | [jbyuki/venn.nvim][jbyuki/venn.nvim]             | Draw ASCII diagrams                    |\n|  Editing  | [jackMort/ChatGPT.nvim][ChatGPT.nvim]            | ChatGPT                                |\n| 🔍 Finder  | [nvim-telescope/telescope.nvim][telescope.nvim]  | Fuzzy finder/picker                    |\n|  Tool     | [tpope/vim-dadbod][vim-dadbod]                   | Database connection and query manager  |\n\nNote that if copilot is enabled, codeium will be disabled.\n\n\u003c/details\u003e\n\n### Core Mappings\n\nIn most mappings we are following this theme, unless there is an uncomfortable\nsituation or messes with a community-driven or Vim's very well known mapping:\n\n| Part of mapping | Description                                       |\n| :-------------- | :------------------------------------------------ |\n| **q**           | **Q**uickfix list mappings                        |\n| **w**           | **L**ocal list mappings (because it's near **q**) |\n| **w**           | **W**indow                                        |\n| **]**           | Jumps to the next item                            |\n| **[**           | Jumps to the previous item                        |\n| **b**           | **B**uffer                                        |\n| **f**           | **F**ile, **F**ind                                |\n| **a**           | **A**ll, or disabling certain constraints         |\n| **a**           | **A**rgument (parameter)                          |\n| **i**           | **I**ndent                                        |\n| **m**           | **M**atch highlighting                            |\n| **d**           | **D**iff, **D**iagnostics                         |\n| **h**           | **H**unk                                          |\n| **c**           | **C**hange, **C**opilot, **C**odium               |\n| **s**           | **S**tatement, **S**cope                          |\n| **o**           | L**o**op                                          |\n| **e**           | **E**lement                                       |\n| **y**           | **Y**ank                                          |\n| **t**           | **T**ab                                           |\n| **z**           | Folds, language/spelling                          |\n| **g**           | **G**o/Jump to, run something that goes/jumps to  |\n| **n**           | **N**eorg related                                 |\n| **r**           | **R**est                                          |\n\nThe `leader` key is `space`!\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view mappings\u003c/summary\u003e\n\n| Mapping           | Description                                                          |\n| :---------------- | :------------------------------------------------------------------- |\n| `\u003cAlt-,\u003e`         | Adds `,` at the end of current line without moving (repeatable)      |\n| `\u003cS-Alt-,\u003e`       | Removes `,` from the end of current line without moving (repeatable) |\n| `\u003cAlt-.\u003e`         | Adds `.` at the end of current line without moving (repeatable)      |\n| `\u003cS-Alt-.\u003e`       | Removes `.` from the end of current line without moving (repeatable) |\n| `\u003cAlt-;\u003e`         | Adds `;` at the end of current line without moving (repeatable)      |\n| `\u003cS-Alt-;\u003e`       | Removes `;` from the end of current line without moving (repeatable) |\n| `\u003cAlt-{\u003e`         | Adds curly brackets at the end of line into insert mode (repeatable) |\n| [count]`]\u003cspace\u003e` | Inserts [count] empty lines after (repeatable)                       |\n| [count]`[\u003cspace\u003e` | Inserts [count] empty lines before (repeatable)                      |\n| `]i`              | Jump down along the **i**ndents                                      |\n| `[i`              | Jump up along the **i**ndents                                        |\n| `\u003cleader\u003eoo`      | **O**pen the **O**il buffer.                                         |\n| `\u003cleader\u003egg`      | Fu**g**itive git buffer                                              |\n| `\u003cleader\u003egd`      | Fu**g**itive git **D**iff                                            |\n| `]c`              | Jump to the next **c**hange                                          |\n| `[c`              | Jump to the previous **c**hange                                      |\n| `\u003cleader\u003egs`      | (gitsigns) Toggle **S**igns                                          |\n| `\u003cleader\u003ehb`      | (gitsigns) **B**lame line                                            |\n| `\u003cleader\u003ehs`      | (gitsigns) **S**tage **h**unk                                        |\n| `\u003cleader\u003ehl`      | (gitsigns) **S**tage **l**ine                                        |\n| `\u003cleader\u003ehu`      | (gitsigns) **U**nstage **h**unk                                      |\n| `\u003cleader\u003ehr`      | (gitsigns) **R**eset **h**unk                                        |\n| `\u003cleader\u003ehR`      | (gitsigns) **R**eset buffer                                          |\n| `\u003cleader\u003ehp`      | (gitsigns) **P**review **h**unk                                      |\n| `]f`              | Go to start of the next function                                     |\n| `[f`              | Go to start of the previous function                                 |\n| `]F`              | Go to end of the next function                                       |\n| `[F`              | Go to end of the previous function                                   |\n| `]b`              | Go to start of the next block                                        |\n| `[b`              | Go to start of the previous block                                    |\n| `]B`              | Go to end of the next block                                          |\n| `[B`              | Go to end of the previous block                                      |\n| `]gc`             | Go to start of the next comment                                      |\n| `[gc`             | Go to start of the previous comment                                  |\n| `]a`              | Go to start of the next parameter                                    |\n| `[a`              | Go to start of the previous parameter                                |\n| `]A`              | Go to end of the next parameter                                      |\n| `[A`              | Go to end of the previous parameter                                  |\n| `]o`              | Go to the next loop                                                  |\n| `[o`              | Go to the previous loop                                              |\n| `]s`              | Go to the next scope                                                 |\n| `[s`              | Go to the previous scope                                             |\n| `\u003cleader\u003e.f`      | Swap around with the next function                                   |\n| `\u003cleader\u003e,f`      | Swap around with the previous function                               |\n| `\u003cleader\u003e.e`      | Swap with the next element                                           |\n| `\u003cleader\u003e,e`      | Swap with the previous element                                       |\n| `\u003cleader\u003e.a`      | Swap with the next parameter                                         |\n| `\u003cleader\u003e,a`      | Swap with the previous parameter                                     |\n| `\u003cleader\u003edf`      | Peek function definition                                             |\n| [count]`\u003cAlt-j\u003e`  | Shifts line(s) down and format                                       |\n| [count]`\u003cAlt-k\u003e`  | Shifts line(s) up and format                                         |\n| `g=`              | Re-indents the hole buffer                                           |\n| `\u003cLeft\u003e`          | Reduce vertical size                                                 |\n| `\u003cRight\u003e`         | Increase vertical size                                               |\n| `\u003cUp\u003e`            | Reduce horizontal size                                               |\n| `\u003cDown\u003e`          | Increase horizontal size                                             |\n| `\u003cEsc\u003e\u003cEsc\u003e`      | Clear hlsearch                                                       |\n| `\u003cleader\u003egw`      | **G**rep current **W**ord in buffer. Populates the locallist.        |\n| `\u003cleader\u003esp`      | Toggle **Sp**elling for buffer                                       |\n| `\u003cleader\u003esf`      | Auto **f**ixes previous misspelled word                              |\n| [i]`\u003cC-s\u003e`        | Auto **f**ixes previous misspelled word                              |\n| `\u003cleader\u003ehh`      | Opens the **help** for current word                                  |\n| `\u003cC-w\u003eb`          | Delete current buffer                                                |\n| `\u003cC-w\u003e\u003cC-b\u003e`      | Delete current buffer                                                |\n| `\u003cC-w\u003et`          | Open current buffer in new tab                                       |\n| `\u003cC-w\u003e\u003cC-t\u003e`      | Open current buffer in new tab                                       |\n| `cn`              | Initiate a `cgn` on current `word`                                   |\n| [V]`cn`           | Initiate a `cgn` on current visually                                 |\n|                   | selected string                                                      |\n| `g.`              | Use last change (anything) as the                                    |\n|                   | initiate a `cgn` on current `word`                                   |\n| `\u003cleader\u003ezm`      | Set folding method to **M**anual                                     |\n| `\u003cleader\u003eze`      | Set folding method to **E**xpression                                 |\n| `\u003cleader\u003ezi`      | Set folding method to **I**ndent                                     |\n| `\u003cleader\u003ezk`      | Set folding method to Mar**k**er                                     |\n| `\u003cleader\u003ezs`      | Set folding method to **S**yntax                                     |\n| [c]`\u003cAlt-a\u003e`      | Go to begging of the line                                            |\n| [c]`\u003cAlt-e\u003e`      | Go to end of the line                                                |\n| [c]`\u003cC-r\u003e\u003cC-l\u003e`   | Copy current line in the buffer                                      |\n| `\u003cTab\u003e\u003cTab\u003e`      | Switch to the alternative buffer                                     |\n| `gso`             | Sort objects                                                         |\n| `gsoo`            | Sort lines                                                           |\n| [s][i]`\u003cCtrl-l\u003e`  | Next snippet choice                                                  |\n| [s][i]`\u003cCtrl-h\u003e`  | Previous snippet choice                                              |\n| [n,v]`gc`         | Comment operator                                                     |\n| `\u003cleader\u003enr`      | **R**eturn from **N**eorg buffer                                     |\n| `\u003cleader\u003enm`      | **M**odify code block with **N**eorg looking-glass                   |\n| `\u003cleader\u003enh`      | **N**eorg workspace **H**me                                          |\n| `\u003cleader\u003enw`      | **N**eorg **W**orkspace                                              |\n| `\u003cleader\u003enj`      | **N**eorg **J**ournal                                                |\n| [Neorg]`]]`       | **N**eorg buffer next heading                                        |\n| [Neorg]`[[`       | **N**eorg buffer previous heading                                    |\n| `\u003cleader\u003eus`      | Unlink all open snippet sessions                                     |\n| `\u003cleader\u003ece`      | **E**nable **Copilot**                                               |\n| `\u003cleader\u003ecd`      | **D**isable **Copilot**                                              |\n| `\u003cleader\u003ecp`      | **Copilot** **P**anel                                                |\n| `]]`              | (copilot panel) Jump to the next suggestion                          |\n| `[[`              | (copilot panel) Jump to the previous suggestion                      |\n| `\u003cCR\u003e`            | (copilot panel) Accept suggestion                                    |\n| `gr`              | (copilot panel) Refresh                                              |\n| `\u003cAlt-CR\u003e`        | (copilot panel) Open                                                 |\n| `\u003cAlt-]\u003e`         | (copilot suggestion) Next suggestion                                 |\n| `\u003cAlt-[\u003e`         | (copilot suggestion) Previous suggestion                             |\n| `\u003cC-y\u003e\u003cC-y\u003e`      | (copilot suggestion) Accept whole suggestion                         |\n| `\u003cC-y\u003e\u003cC-w\u003e`      | (copilot suggestion) Accept a word of suggestion                     |\n| `\u003cC-y\u003e\u003cC-l\u003e`      | (copilot suggestion) Accept a line of suggestion                     |\n| `\u003cCtrl-]\u003e`        | (copilot suggestion) Dismiss                                         |\n| `\u003cLeader\u003ece`      | **E**nable **C**odeium                                               |\n| `\u003cLeader\u003ecd`      | **D**isable **C**odeium                                              |\n| `\u003cLeader\u003eor`      | Run overseer task                                                    |\n| `\u003cLeader\u003eot`      | Toggle overseer tasks panel                                          |\n| `\u003cLeader\u003efl`      | **L**ocate **F**iles (neess mlocate)                                 |\n| `\u003cLeader\u003err`      | **R**un **R**est **R**equest under cursor                            |\n| `\u003cLeader\u003erp`      | **P**review **R**est **R**equest under cursor in cURL command        |\n| `\u003cLeader\u003eR`       | **R**review the last **R**est **R**equest                            |\n| `\u003cLeader\u003ev`       | Enable/Disable **V**enn                                              |\n| [v]`\u003cleader\u003ebd`   | **B**ase64 **d**ecode visually selected text                         |\n| [v]`\u003cleader\u003ebe`   | **B**ase64 **e**ncode visually selected text                         |\n\nNote that if copilot is enabled, codeium will be disabled.\n\n\u003c/details\u003e\n\nThere are more specialised mappings provided, keep reading please!\n\n### Text Objects\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view the text objects\u003c/summary\u003e\n\n| Text Object | Description                                 |\n| :---------- | :------------------------------------------ |\n| `` i` ``    | **I**n backtick pairs (multi-line)          |\n| `` a` ``    | **A**round backtick pairs (multi-line)      |\n| `an`        | **A**round **N**ext pairs (current lint)    |\n| `in`        | **I**n **N**ext pairs (current line)        |\n| `iN`        | **I**n **N**umeric value (can be float too) |\n| `aN`        | **A**round **N**umeric value                |\n| `az`        | **A**round folds                            |\n| `iz`        | **I**n folds                                |\n| `ai`        | **A**round **I**ndentation block            |\n| `ii`        | **I**n **I**ndentation block                |\n| `ah`        | **A**round **H**unk                         |\n| `ih`        | **I**n **H**unk                             |\n| `af`        | Select around a function                    |\n| `if`        | Select inside a function                    |\n| `am`        | Select around a method                      |\n| `im`        | Select inside a method                      |\n| `ab`        | Select around a block                       |\n| `ib`        | Select inside a block                       |\n| `aa`        | Select around a parameter                   |\n| `ia`        | Select inside a parameter                   |\n| `as`        | Select around a statement                   |\n| `H`         | To the beginning of line                    |\n| `L`         | To the end of line                          |\n| `au`        | Select around a unit                        |\n| `iu`        | Select inside a unit                        |\n| `il`        | **I**n line                                 |\n| `al`        | **A**round line                             |\n\nThere are sets of **i\\*** and **a\\*** text objects, where `*` can be any of:\n**\\_ . : , ; | / \\ \\* + - #**\n\n\u003c/details\u003e\n\n### Lists\n\nThere are a few tools for interacting with **quickfix** and **local** lists.\nFollowing mappings can be used for either cases, all you need to do it to\nsubstitute `w` for `q` or vice versa. Generally **q** is for **quickfix** list\nand **w** is for **local list**. I chose **w** because it's beside **q** and it\nmakes it easy to think about these two types of lists.\n\n`\u003cleader\u003eqq`, `\u003cleader\u003eww`, `\u003cleader\u003eqn` and `\u003cleader\u003ewn` are repeatable with\n**.**!\n\nAfter adding an item to the list, an indicator in the **statusline** will show\nyou how many items you have in a list.\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view mappings for lists\u003c/summary\u003e\n\n| Mapping      | Description                                                              |\n| :----------- | :----------------------------------------------------------------------- |\n| `\u003cleader\u003ecc` | Close both quickfix and local list windows                               |\n| `\u003cleader\u003eqq` | Add current line and column to the **q**uickfix list.                    |\n| `\u003cleader\u003eqn` | Add current line and column with your **n**ote to the **q**uickfix list. |\n| `\u003cleader\u003eqo` | **O**pen the **q**uickfix list.                                          |\n| `\u003cleader\u003eqd` | **D**rop the **q**uickfix list.                                          |\n| `\u003cleader\u003eqc` | **C**lose the **q**uickfix list.                                         |\n| `]q`         | Go to the next item in the **q**uickfix list and centre.                 |\n| `[q`         | Go to the previous item in the **q**uickfix list and centre.             |\n| `\u003cleader\u003ewq` | Add current line and column to the locallist.                            |\n| `\u003cleader\u003ewn` | Add current line and column with your **n**ote to the locallist.         |\n| `\u003cleader\u003ewo` | **O**pen the locallist.                                                  |\n| `\u003cleader\u003ewd` | **D**rop the locallist.                                                  |\n| `\u003cleader\u003ewc` | **C**lose the locallist.                                                 |\n| `]w`         | Go to the next item in the locallist and centre.                         |\n| `[w`         | Go to the previous item in the locallist and centre.                     |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view commands for lists\u003c/summary\u003e\n\n| Command         | Description                                 |\n| :-------------- | :------------------------------------------ |\n| `Clearquickfix` | **Clear** the quickfix list.                |\n| `Clearloclist`  | **Clear** the local list of current buffer. |\n\n\u003c/details\u003e\n\nAdditional to [nvim-bqf](https://github.com/kevinhwang91/nvim-bqf) bindings,\nyou can do `\u003ccount\u003edd` in the quickfix/local list buffers to delete `\u003ccount\u003e`\nrows from quickfix/local list buffer.\n\n### Highlight Matching\n\nYou can **highlight** words with random colours.\n\n`\u003cleader\u003ema` and `\u003cleader\u003eme` are repeatable with **.**!\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view the mappings\u003c/summary\u003e\n\nNote that all these mappings are bound to the current window.\n\n| Mapping      | Description                                              |\n| :----------- | :------------------------------------------------------- |\n| `\u003cleader\u003ema` | **A**dd current word as a sub-pattern to the highlights. |\n| `\u003cleader\u003eme` | Add an **e**xact match on current term.                  |\n| `\u003cleader\u003emp` | Add an match by asking for a **p**attern.                |\n| `\u003cleader\u003eml` | Add current **l**ine                                     |\n| `\u003cleader\u003emd` | **D**elete **M**atches with fzf search.                  |\n| `\u003cleader\u003emc` | **C**lear all **m**atched patterns on current window.    |\n\n\u003c/details\u003e\n\n### Fzf\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view the mappings\u003c/summary\u003e\n\nMost actions can apply to multiple selected items if possible.\n\n| Mapping            | Description                                            |\n| :----------------- | :----------------------------------------------------- |\n| `\u003cCtrl-p\u003e`         | File list in current folder.                           |\n| `\u003cAlt-p\u003e`          | File list in home folder.                              |\n| `\u003cCtrl-b\u003e`         | **B**uffer list.                                       |\n| `\u003cAlt-b\u003e`          | Delete **b**uffers from the buffer list.               |\n| `\u003cCtrl-/\u003e`         | Search in lines on current buffer.                     |\n| `\u003cAlt-/\u003e`          | Search in lines of **all open buffers**.               |\n| `\u003cleader\u003e@`        | Search in **ctags** or **LSP** symbols (see below).    |\n| `\u003cleader\u003e:`        | Commands                                               |\n| `\u003cleader\u003eff`       | **F**ind in contents of all files in current folder.   |\n| `\u003cleader\u003efF`       | Like `\u003cleader\u003eff`, but you can filter filenames too    |\n| `\u003cleader\u003efa`       | **F**ind **A**ll disabling `.gitignore` handling.      |\n| `\u003cleader\u003efA`       | Like `\u003cleader\u003efA`, but you can filter filenames too    |\n| `\u003cleader\u003efi`       | **I**ncrementally **F**ind.                            |\n| `\u003cleader\u003erg`       | Search (**rg**) with current word.                     |\n| `\u003cleader\u003efG`       | Like `\u003cleader\u003efG`, but you can filter filenames too    |\n| `\u003cleader\u003era`       | Search (**rg**) disabling `.gitignore` handling.       |\n| `\u003cleader\u003erA`       | Like `\u003cleader\u003erA`, but you can filter filenames too    |\n| `\u003cleader\u003eri`       | **I**ncrementally search (**rg**) with current word.   |\n| `\u003cleader\u003efh`       | **F**ile **H**istory                                   |\n| `\u003cleader\u003efl`       | **F**ile **l**ocate (requires mlocate)                 |\n| `\u003cleader\u003egf`       | **GFiles**                                             |\n| `\u003cleader\u003emm`       | **Marks**                                              |\n| `\u003cCtrl-x\u003e\u003cCtrl-k\u003e` | Search in **dictionaries** (requires **words-insane**) |\n| `\u003cCtrl-x\u003e\u003cCtrl-f\u003e` | Search in **f**iles                                    |\n| `\u003cCtrl-x\u003e\u003cCtrl-l\u003e` | Search in **l**ines                                    |\n| `\u003cleader\u003ekk`       | Toggles file tree                                      |\n| `\u003cleader\u003ekf`       | **F**inds current file in the file tree                |\n\nIf you keep hitting `\u003cCtrl-/\u003e` the preview window will change width. With\n`Shift-/` you can show and hide the preview window.\n\nWhen a file is selected, additional to what **fzf** provides out of the box,\nyou can invoke one of these secondary actions:\n\n| Mapping | Description                        |\n| :------ | :--------------------------------- |\n| `alt-/` | To search in the lines.            |\n| `alt-@` | To search in ctags or lsp symbols. |\n| `alt-:` | To go to a specific line.          |\n| `alt-q` | Add items to the quickfix list.    |\n| `alt-w` | Add items to the local list.       |\n\nNote that if a `LSP` server is not attached to the buffer, it will fall back to\n`ctags`.\n\nSometimes when you list files and `sink` with **@**, the `LSP` might not be\nready yet, therefore it falls back to `ctags` immediately. In this case you can\ncancel, which will land you to the file, and you can invoke `\u003cleader\u003e@` for\n**LSP** symbols.\n\n\u003c/details\u003e\n\nThere are a few added commands to what fzf provides.\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view the commands\u003c/summary\u003e\n\n| Command       | Description                                |\n| :------------ | :----------------------------------------- |\n| `GGrep`       | Run **git grep**                           |\n| `GTree`       | Browse **git** commits                     |\n| `Marks`       | Show **marks** with preview                |\n| `MarksDelete` | Delete **marks**                           |\n| `Todo`        | List **todo**/**fixme** lines              |\n| `ArgsAdd`     | Select and add files to the args list      |\n| `ArgsDelete`  | Select and delete files from the args list |\n| `Worktree`    | Switch between git worktrees               |\n| `BLines`      | Search in current buffer                   |\n| `History`     | Show open file history                     |\n| `Checkout`    | Checkout a branch                          |\n| `GitStatus`   | Show git status                            |\n| `Jumps`       | Choose from jump list                      |\n| `Autocmds`    | Show autocmds                              |\n| `Changes`     | Show change list                           |\n| `Registers`   | Show register contents                     |\n\n\u003c/details\u003e\n\n| Yank Mappings | Description                                       |\n| :------------ | :------------------------------------------------ |\n| `\u003cleader\u003eyh`  | List **Y**ank **H**istory)                        |\n| `\u003cleader\u003ey`   | **Y**ank to the `+` register (external clipboard) |\n| `\u003cleader\u003ep`   | **P**aste from the `+` register                   |\n| `\u003cleader\u003eP`   | **P**aste from the `+` register (before/above)    |\n| (v) `p`       | **P**aste on selected text without changing \"reg  |\n\n### LSP\n\nWhen a **LSP** server is attached to a buffer, a series of mappings will be\ndefined for that buffer based on the server's capabilities. When possible,\n**fzf** will take over the results of the **LSP** mappings results.\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view the mappings\u003c/summary\u003e\n\n| Mapping      | Description                                  |\n| :----------- | :------------------------------------------- |\n| `\u003cleader\u003edd` | Show line **D**iagnostics                    |\n| `\u003cleader\u003edq` | Fill the **Q**uicklist with **D**iagnostics  |\n| `\u003cleader\u003edw` | Fill the local list with **D**iagnostics     |\n| `]d`         | Go to next **d**iagnostic issue **(R)**      |\n| `[d`         | Go to previous **d**iagnostic issue **(R)**  |\n| `H`          | **H**over popup                              |\n| [i]`\u003cAlt-h\u003e` | **H**over popup                              |\n| `gd`         | **G**o to **D**efinition                     |\n| `2gd`        | **G**o to **D**efinition in vertical split   |\n| `3gd`        | **G**o to **D**efinition in horizontal split |\n| `4gd`        | **G**o to **D**efinition in new tab          |\n| `K`          | Show **S**ignature help                      |\n| [i]`\u003cM-l\u003e`   | Show **S**ignature help                      |\n| [i]`\u003cAlt-l\u003e` | Show **S**ignature help                      |\n| `\u003cleader\u003egq` | Format the buffer with LSP                   |\n| [x]`gq`      | Format the selection with LSP                |\n| `gq`         | Format operator with LSP                     |\n| `\u003cleader\u003ei`  | Organise imports                             |\n| `grn`        | Incrementally rename symbol                  |\n| `grr`        | Go to references                             |\n| `\u003cleader\u003egi` | **G**o to **I**mplementation                 |\n| `gD`         | **G**o to **D**eclaration                    |\n| `\u003cleader\u003ecr` | **C**ode lens **R**un                        |\n| `gra`        | **C**ode **A**ctions (also in visual mode)   |\n| `\u003cleader\u003egc` | **Go** to **C**aller                         |\n| `\u003cleader\u003edr` | **R**estart the LSP server (see below)       |\n\n### Notes\n\n- Mappings marked with `(R)` are repeatable with `;` and `,`.\nPlease see the code for all available mappings.\n\n\u003c/details\u003e\n\n#### CMP\n\n| Mapping         | Description                                |\n| :-------------- | :----------------------------------------- |\n| [i]`\u003cC-j\u003e`      | Select next item                           |\n| [i]`\u003cC-k\u003e`      | Select previous item                       |\n| [i]`\u003cC-b\u003e`      | Scroll documents up                        |\n| [i]`\u003cC-f\u003e`      | Scroll documents down                      |\n| [i]`\u003cC-Space\u003e`  | Initiate completion menu (main one)        |\n| [i]`\u003cC-x\u003e\u003cC-o\u003e` | Initiate completion menu (lsp, buffer, rg) |\n| [i]`\u003cC-x\u003e\u003cC-r\u003e` | Initiate completion menu (rg)              |\n| [i]`\u003cC-x\u003e\u003cC-s\u003e` | Initiate completion menu (luasnip)         |\n| [i]`\u003cC-x\u003e\u003cC-g\u003e` | Initiate completion menu (git)             |\n| [i,c]`\u003cC-e\u003e`    | Abort completion and close                 |\n| [i,s]`\u003cTab\u003e`    | Next placeholder                           |\n| [i,s]`\u003cS-Tab\u003e`  | Previous placeholder                       |\n\n**LSP** defines its own set of commands, however I have added a few interesting\nadditions.\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view the commands\u003c/summary\u003e\n\n| Command              | Description                             |\n| :------------------- | :-------------------------------------- |\n| `Diagnostics`        | Alternative `Diag`                      |\n| `DiagnosticsAll`     | Alternative `DiagAll`                   |\n| `DiagnosticsDisable` |                                         |\n| `DiagnosticsEnable`  |                                         |\n| `Definition`         | Go to the definition                    |\n| `WorkspaceList`      |                                         |\n| `WorkspaceRemove`    |                                         |\n| `WorkspaceAdd`       |                                         |\n| `WorkspaceSymbols`   |                                         |\n| `DocumentSymbol`     |                                         |\n| `References`         |                                         |\n| `Implementation`     |                                         |\n| `TypeDefinition`     |                                         |\n| `CodeLensRefresh`    |                                         |\n| `CodeLensRun`        |                                         |\n| `CodeAction`         | Also works on a visually selected text. |\n| `Callers`            | Show callers and go to one              |\n| `Callees`            | Show callees and go to one              |\n| `RestartLsp`         |                                         |\n| `UnlinkSnippets`     | Unlink all open snippet sessions        |\n| `ListWorkspace`      | List attached LSP workspace folders     |\n\n\u003c/details\u003e\n\nThe `RestartLsp` fixes an issue when the `LspRestart` does not have any\neffects.\n\n### Commands\n\nThe following list of commands do not fit into any specific categories.\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view the commands\u003c/summary\u003e\n\n| Command                 | Description                            |\n| :---------------------- | :------------------------------------- |\n| `Filename`              | View the filename                      |\n| `YankFilename`          | Yank the filename to `\"` register      |\n| `YankFilenameC`         | Yank the filename to `+` register      |\n| `YankFilepath`          | Yank the file path to `\"` register     |\n| `YankFilepathC`         | Yank the file path to `+` register     |\n| `Nowrap`                | Stop wrapping current buffer           |\n| `ToggleRelativeNumbers` | Start/Stop relative number switching   |\n| `ToggleTrimWhitespaces` | Toggles trimming whitespaces on buffer |\n| `Scratch`               | Create a scratch buffer                |\n| {range}`Duck` [args]    | Show some ducks                        |\n|                         | Give an icon for something else        |\n| {range}`Cook`           | Cook some ducks                        |\n| `FoldComments`          | Fold comments (sets folding to expr)   |\n| `EditConfig`            | Edit configuration files in a new tab  |\n| `LspCaps`               | Show short LSP capabilities            |\n| `LspCapsFull`           | Show sull LSP capabilities             |\n| `GoModTidy`             | Run go mod tidy on go and mod files    |\n| `Tmux`                  | Start a tmux project (using tmuxp)     |\n| `LazyLoadAll`           | Load all lazy-loaded plugins           |\n| `CC`                    | Close all floating windows             |\n| `ChatGPT`               | Open interactive window                |\n| `ChatGPTActAs`          | Suggest an actor                       |\n\n\u003c/details\u003e\n\n### Snippets\n\nI never was a fan of snippets, until I discovered the\n[LuaSnip](https://github.com/L3MON4D3/LuaSnip) plugin and it changed my mind.\nHere is a demo of a couple of snippets shipped with this setup:\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view advance snippets demo\u003c/summary\u003e\n\nQueryrows snippet creates a useful code in Go that uses the\n[Retry](https://github.com/arsham/retry) library for querying postgres.\n\n![queryrows](https://user-images.githubusercontent.com/428611/154764948-b620896d-3303-42db-ad09-dcde94a18764.gif)\n\nIfe snippet is an improvement over a snippet by\n[tjdevries](https://github.com/tjdevries/config_manager/blob/6e48802a9c6acc9f8f2c9768fcb57d6ce1f05e00/xdg_config/nvim/lua/tj/snips/ft/go.lua)\nthat tries to work better with return values.\n\n![ife](https://user-images.githubusercontent.com/428611/154764941-6398c245-01f8-4c5e-b226-302d10dc1fef.gif)\n\n\u003c/details\u003e\n\n### Utilities\n\nThese are commands you can use in **Lua** land. Assign the required module to a\nvariable and re-use.\n\n```lua\nlocal quick = require(\"arshlib.quick\")\n```\n\n#### Normal\n\nExecutes a normal command. For example:\n\n```lua\nquick.normal(\"n\", \"y2k\")\n```\n\nSee `:h feedkeys()` for values of the mode.\n\n#### Highlight\n\nCreate `highlight` groups:\n\n```lua\nquick.highlight(\"LspReferenceRead\", { ctermbg = 180, guibg = \"#43464F\", style = \"bold\" })\n```\n\n#### Call and Centre\n\nThese functions will call your function/command and then centres the buffer:\n\n```lua\nquick.call_and_centre(function()\n  print(\"Yolo!\")\nend)\nquick.cmd_and_centre(\"SomeCommand\")\n```\n\n## Plugin License List\n\n\u003cdetails\u003e\n    \u003csummary\u003eClick to view the plugin list\u003c/summary\u003e\n\n| Plugin                                      | License                                                                    |\n| ------------------------------------------- | -------------------------------------------------------------------------- |\n| [folke/lazy.nvim][folke/lazy.nvim]          | [Apache-2.0](https://github.com/folke/lazy.nvim/blob/main/LICENSE)         |\n| [arsham/arshamiser.nvim][arshamiser.nvim]   | [MIT](https://github.com/arsham/arshamiser.nvim/blob/master/LICENSE)       |\n| [arsham/arshlib.nvim][arshlib.nvim]         | [MIT](https://github.com/arsham/arshlib.nvim/blob/master/LICENSE)          |\n| [arsham/listish.nvim][listish.nvim]         | [MIT](https://github.com/arsham/listish.nvim/blob/master/LICENSE)          |\n| [nvim-web-devicons][nvim-web-devicons]      | [MIT](https://github.com/nvim-tree/nvim-web-devicons/blob/master/LICENSE)  |\n| [nvim-lua/plenary.nvim][plenary.nvim]       | [MIT](https://github.com/nvim-lua/plenary.nvim/blob/master/LICENSE)        |\n| [junegunn/fzf][fzf]                         | [MIT](https://github.com/junegunn/fzf/blob/master/LICENSE)                 |\n| [junegunn/fzf.vim][fzf.vim]                 | [MIT](https://github.com/junegunn/fzf.vim/blob/master/LICENSE)             |\n| [arsham/fzfmania.nvim][fzfmania.nvim]       | [MIT](https://github.com/arsham/fzfmania.nvim/blob/master/LICENSE)         |\n| [ibhagwan/fzf-lua][fzf-lua]                 | [AGPL-3.0](https://github.com/ibhagwan/fzf-lua/blob/main/LICENSE)          |\n| [tweekmonster/startuptime.vim][startuptime] | [MIT](https://github.com/tweekmonster/startuptime.vim/blob/master/LICENSE) |\n| [tpope/vim-repeat][tpope/vim-repeat]        | [N/A][tpope/vim-repeat]                                                    |\n| [arsham/archer.nvim][arsham/archer.nvim]    | [MIT](https://github.com/arsham/archer.nvim/blob/master/LICENSE)           |\n| [nui.nvim][muniftanjim/nui.nvim]            | [MIT](https://github.com/MunifTanjim/nui.nvim/blob/main/LICENSE)           |\n| [indent-tools.nvim][indent-tools.nvim]      | [MIT](https://github.com/arsham/indent-tools.nvim/blob/master/LICENSE)     |\n| [matchmaker.nvim][matchmaker.nvim]          | [MIT](https://github.com/arsham/matchmaker.nvim/blob/master/LICENSE)       |\n| [stevearc/oil.nvim][oil.nvim]               | [MIT](https://github.com/stevearc/oil.nvim/blob/master/LICENSE)            |\n| [stevearc/oil.nvim][oil.nvim]               | [MIT](https://github.com/stevearc/oil.nvim/blob/master/LICENSE)            |\n| [tpope/vim-fugitive][tpope/vim-fugitive]    | [N/A][tpope/vim-fugitive]                                                  |\n| [tpope/vim-rhubarb][tpope/vim-rhubarb]      | [MIT](https://github.com/tpope/vim-rhubarb/blob/master/LICENSE)            |\n| [tpope/vim-git][tpope/vim-git]              | [N/A][tpope/vim-git]                                                       |\n| [nvim-treesitter][nvim-treesitter]          | [Apache-2.0][nvim-treesitter-license]                                      |\n| [lewis6991/gitsigns.nvim][gitsigns.nvim]    | [MIT](https://github.com/lewis6991/gitsigns.nvim/blob/main/LICENSE)        |\n| [treesitter-textobjects][ts-textobjects]    | [Apache-2.0][treesitter-textobjects-license]                               |\n| [freddiehaddad/feline.nvim][feline.nvim]    | [GPL-3.0][feline.nvim-license]                                             |\n| [rcarriga/nvim-notify][nvim-notify]         | [MIT](https://github.com/rcarriga/nvim-notify/blob/master/LICENSE)         |\n| [treesitter-refactor][treesitter-refactor]  | [Apache-2.0][treesitter-refactor-license]                                  |\n| [nvim-treesitter/playground][playground]    | [Apache-2.0][treesitter-playground-license]                                |\n| [context-commentstring][ctx-commentstring]  | [MIT][ctx-commentstring-license]                                           |\n| [andymass/vim-matchup][vim-matchup]         | [MIT](https://github.com/andymass/vim-matchup/blob/master/LICENSE.md)      |\n| [monaqa/dial.nvim][monaqa/dial.nvim]        | [MIT](https://github.com/monaqa/dial.nvim/blob/master/LICENSE)             |\n| [stevearc/dressing.nvim][dressing.nvim]     | [MIT](https://github.com/stevearc/dressing.nvim/blob/master/LICENSE)       |\n| [mattn/vim-gist][mattn/vim-gist]            | [N/A][mattn/vim-gist]                                                      |\n| [RaafatTurki/hex.nvim][hex.nvim]            | [MIT](https://github.com/RaafatTurki/hex.nvim/blob/master/LICENSE)         |\n| [iamcco/markdown-preview.nvim][mk-preview]  | [MIT][mk-preview-license]                                                  |\n| [numToStr/Navigator.nvim][navigator.nvim]   | [MIT](https://github.com/numToStr/Navigator.nvim/blob/master/LICENSE)      |\n| [nvim-neo-tree/neo-tree.nvim][neo-tree]     | [MIT][neo-tree-license]                                                    |\n| [s1n7ax/nvim-window-picker][window-picker]  | [MIT](https://github.com/s1n7ax/nvim-window-picker/blob/main/LICENSE)      |\n| [ralismark/opsort.vim][opsort.vim]          | [MIT](https://github.com/ralismark/opsort.vim/blob/main/LICENSE)           |\n| [sQVe/sort.nvim][sqve/sort.nvim]            | [MIT](https://github.com/sQVe/sort.nvim/blob/main/LICENSE)                 |\n| [dhruvasagar/vim-zoom][vim-zoom]            | [N/A][vim-zoom]                                                            |\n| [David-Kunz/treesitter-unit][ts-unit]       | [Unlicense][ts-unit-license]                                               |\n| [neovim/nvim-lspconfig][nvim-lspconfig]     | [Apache-2.0][lspconfig-license]                                            |\n| [mason.nvim][mason.nvim]                    | [Apache-2.0][mason.nvim-license]                                           |\n| [mason-lspconfig.nvim][mason-lspconfig]     | [Apache-2.0][mason-lspconfig-license]                                      |\n| [hrsh7th/nvim-cmp][hrsh7th/nvim-cmp]        | [MIT](https://github.com/hrsh7th/nvim-cmp/blob/main/LICENSE)               |\n| [saadparwaiz1/cmp_luasnip][cmp_luasnip]     | [Apache-2.0][cmp_luasnip-license]                                          |\n| [L3MON4D3/LuaSnip][l3mon4d3/luasnip]        | [Apache-2.0](https://github.com/L3MON4D3/LuaSnip/blob/master/LICENSE)      |\n| [hrsh7th/cmp-cmdline][hrsh7th/cmp-cmdline]  | [N/A][hrsh7th/cmp-cmdline]                                                 |\n| [friendly-snippets][friendly-snippets]      | [MIT][friendly-snippets-license]                                           |\n| [hrsh7th/cmp-buffer][cmp-buffer]            | [MIT](https://github.com/hrsh7th/cmp-buffer/blob/main/LICENSE)             |\n| [hrsh7th/cmp-calc][cmp-calc]                | [N/A][cmp-calc]                                                            |\n| [hrsh7th/cmp-nvim-lsp][cmp-nvim-lsp]        | [MIT](https://github.com/hrsh7th/cmp-nvim-lsp/blob/main/LICENSE)           |\n| [hrsh7th/lsp-signature-help][sig-help]      | [N/A][sig-help]                                                            |\n| [hrsh7th/cmp-nvim-lua][cmp-nvim-lua]        | [N/A][cmp-nvim-lua]                                                        |\n| [hrsh7th/cmp-path][cmp-path]                | [MIT](https://github.com/hrsh7th/cmp-path/blob/main/LICENSE)               |\n| [lukas-reineke/cmp-rg][cmp-rg]              | [MIT](https://github.com/lukas-reineke/cmp-rg/blob/master/LICENSE.md)      |\n| [j-hui/fidget.nvim][j-hui/fidget.nvim]      | [MIT](https://github.com/j-hui/fidget.nvim/blob/main/LICENSE)              |\n| [none-ls.nvim][none-ls.nvim]                | [Unlicense][none-ls.nvim-license]                                          |\n| [mason-null-ls.nvim][mason-null-ls.nvim]    | [AGPL-3.0][mason-null-ls.nvim-license]                                     |\n| [mason-tool-installer][mason-tool-inst]     | [MIT][mason-tool-inst-license]                                             |\n| [numToStr/Comment.nvim][comment.nvim]       | [MIT](https://github.com/numToStr/Comment.nvim/blob/master/LICENSE)        |\n| [smjonas/inc-rename.nvim][inc-rename.nvim]  | [MIT](https://github.com/smjonas/inc-rename.nvim/blob/main/LICENSE)        |\n| [windwp/nvim-autopairs][nvim-autopairs]     | [MIT](https://github.com/windwp/nvim-autopairs/blob/master/LICENSE)        |\n| [arthurxavierx/vim-caser][vim-caser]        | [View](https://github.com/arthurxavierx/vim-caser/blob/master/LICENSE)     |\n| [NvChad/nvim-colorizer.lua][nvim-colorizer] | [View][nvim-colorizer-license]                                             |\n| [saecki/crates.nvim][saecki/crates.nvim]    | [MIT](https://github.com/Saecki/crates.nvim/blob/main/LICENSE)             |\n| [kosayoda/nvim-lightbulb][nvim-lightbulb]   | [MIT](https://github.com/kosayoda/nvim-lightbulb/blob/master/LICENSE)      |\n| [gbprod/substitute.nvim][substitute.nvim]   | [WTFPL](https://github.com/gbprod/substitute.nvim/blob/main/LICENCE)       |\n| [lsp_lines.nvim][lsp_lines.nvim]            | [ISC][lsp_lines.nvim]                                                      |\n| [milisims/nvim-luaref][nvim-luaref]         | [MIT](https://github.com/milisims/nvim-luaref/blob/main/LICENSE)           |\n| [echasnovski/mini.nvim][mini.nvim]          | [MIT](https://github.com/echasnovski/mini.nvim/blob/main/LICENSE)          |\n| [folke/neodev.nvim][folke/neodev.nvim]      | [Apache-2.0](https://github.com/folke/neodev.nvim/blob/main/LICENSE)       |\n| [nvim-neorg/neorg][nvim-neorg/neorg]        | [GPL-3.0](https://github.com/nvim-neorg/neorg/blob/main/LICENSE)           |\n| [kevinhwang91/nvim-bqf][nvim-bqf]           | [BSD-3-Clause][nvim-bqf-license]                                           |\n| [bfredl/nvim-luadev][bfredl/nvim-luadev]    | [MIT](https://github.com/bfredl/nvim-luadev/blob/master/LICENSE)           |\n| [SmiteshP/nvim-navic][nvim-navic]           | [Apache-2.0][nvim-navic-license]                                           |\n| [kiran94/s3edit.nvim][s3edit.nvim]          | [MIT](https://github.com/kiran94/s3edit.nvim/blob/main/LICENSE)            |\n| [woosaaahh/sj.nvim][woosaaahh/sj.nvim]      | [MIT](https://github.com/woosaaahh/sj.nvim/blob/main/LICENSE)              |\n| [mbbill/undotree][mbbill/undotree]          | [N/A][mbbill/undotree]                                                     |\n| [towolf/vim-helm][towolf/vim-helm]          | [View](https://github.com/towolf/vim-helm/blob/master/LICENSE)             |\n| [tmux-plugins/vim-tmux][vim-tmux]           | [N/A][vim-tmux]                                                            |\n| [mg979/vim-visual-multi][vim-visual-multi]  | [MIT](https://github.com/mg979/vim-visual-multi/blob/master/LICENSE)       |\n| [svban/YankAssassin.vim][yankassassin.vim]  | [N/A][yankassassin.vim]                                                    |\n| [zbirenbaum/copilot.lua][copilot.lua]       | [MIT](https://github.com/zbirenbaum/copilot.lua/blob/master/LICENSE)       |\n| [Exafunction/codeium.vim][codeium.vim]      | [MIT](https://github.com/Exafunction/codeium.vim/blob/main/LICENSE)        |\n| [utilyre/barbecue.nvim][barbecue.nvim]      | [MIT](https://github.com/utilyre/barbecue.nvim/blob/main/LICENSE)          |\n| [uga-rosa/cmp-dynamic][cmp-dynamic]         | [MIT](https://github.com/uga-rosa/cmp-dynamic/blob/main/LICENSE)           |\n| [stevearc/overseer.nvim][overseer.nvim]     | [MIT](https://github.com/stevearc/overseer.nvim/blob/master/LICENSE)       |\n| [ziontee113/color-picker.nvim][colorpicker] | [MIT][colorpicker-license]                                                 |\n| [aduros/ai.vim][aduros/ai.vim]              | [ISC](https://github.com/aduros/ai.vim/blob/main/LICENSE.txt)              |\n| [tamton-aquib/duck.nvim][duck.nvim]         | [MIT](https://github.com/tamton-aquib/duck.nvim/blob/main/LICENSE)         |\n| [nvim-rest/rest.nvim][rest.nvim]            | [MIT](https://github.com/rest-nvim/rest.nvim/blob/main/LICENSE)            |\n| [vhyrro/luarocks.nvim][luarocks.nvim]       | [Unlicense](https://github.com/vhyrro/luarocks.nvim/blob/main/UNLICENSE)   |\n| [arsham/yanker.nvim][yanker.nvim]           | [MIT](https://github.com/arsham/yanker.nvim/blob/master/LICENSE)           |\n| [jbyuki/venn.nvim][jbyuki/venn.nvim]        | [MIT](https://github.com/jbyuki/venn.nvim/blob/master/LICENSE)             |\n| [jackMort/ChatGPT.nvim][ChatGPT.nvim]       | [Apache-2.0](https://github.com/jackMort/ChatGPT.nvim/blob/main/LICENSE)   |\n| [telescope.nvim][telescope.nvim]            | [MIT][telescope.nvim-license]                                              |\n| [tpope/vim-dadbod][vim-dadbod]              | [VIM](https://github.com/tpope/vim-dadbod?tab=readme-ov-file#license)      |\n\n\u003c/details\u003e\n\n[folke/lazy.nvim]: https://github.com/folke/lazy.nvim\n[arshamiser.nvim]: https://github.com/arsham/arshamiser.nvim\n[arshlib.nvim]: https://github.com/arsham/arshlib.nvim\n[listish.nvim]: https://github.com/arsham/listish.nvim\n[nvim-web-devicons]: https://github.com/nvim-tree/nvim-web-devicons\n[plenary.nvim]: https://github.com/nvim-lua/plenary.nvim\n[fzf]: https://github.com/junegunn/fzf\n[fzf.vim]: https://github.com/junegunn/fzf.vim\n[fzfmania.nvim]: https://github.com/arsham/fzfmania.nvim\n[fzf-lua]: https://github.com/ibhagwan/fzf-lua\n[startuptime]: https://github.com/tweekmonster/startuptime.vim\n[tpope/vim-repeat]: https://github.com/tpope/vim-repeat\n[arsham/archer.nvim]: https://github.com/arsham/archer.nvim\n[muniftanjim/nui.nvim]: https://github.com/MunifTanjim/nui.nvim\n[indent-tools.nvim]: https://github.com/arsham/indent-tools.nvim\n[matchmaker.nvim]: https://github.com/arsham/matchmaker.nvim\n[oil.nvim]: https://github.com/stevearc/oil.nvim\n[tpope/vim-fugitive]: https://github.com/tpope/vim-fugitive\n[tpope/vim-rhubarb]: https://github.com/tpope/vim-rhubarb\n[tpope/vim-git]: https://github.com/tpope/vim-git\n[nvim-treesitter]: https://github.com/nvim-treesitter/nvim-treesitter\n[nvim-treesitter-license]: https://github.com/nvim-treesitter/nvim-treesitter/blob/master/LICENSE\n[gitsigns.nvim]: https://github.com/lewis6991/gitsigns.nvim\n[ts-textobjects]: https://github.com/nvim-treesitter/nvim-treesitter-textobjects\n[treesitter-textobjects-license]: https://github.com/nvim-treesitter/nvim-treesitter-textobjects/blob/master/LICENSE\n[feline.nvim]: https://github.com/freddiehaddad/feline.nvim\n[feline.nvim-license]: https://github.com/freddiehaddad/feline.nvim/blob/master/LICENSE.md\n[nvim-notify]: https://github.com/rcarriga/nvim-notify\n[treesitter-refactor]: https://github.com/nvim-treesitter/nvim-treesitter-refactor\n[treesitter-refactor-license]: https://github.com/nvim-treesitter/nvim-treesitter-refactor/blob/master/LICENSE\n[playground]: https://github.com/nvim-treesitter/playground\n[treesitter-playground-license]: https://github.com/nvim-treesitter/playground/blob/master/LICENSE\n[ctx-commentstring]: https://github.com/JoosepAlviste/nvim-ts-context-commentstring\n[ctx-commentstring-license]: https://github.com/JoosepAlviste/nvim-ts-context-commentstring/blob/main/LICENSE\n[vim-matchup]: https://github.com/andymass/vim-matchup\n[monaqa/dial.nvim]: https://github.com/monaqa/dial.nvim\n[dressing.nvim]: https://github.com/stevearc/dressing.nvim\n[mattn/vim-gist]: https://github.com/mattn/vim-gist\n[hex.nvim]: https://github.com/RaafatTurki/hex.nvim\n[mk-preview]: https://github.com/iamcco/markdown-preview.nvim\n[mk-preview-license]: https://github.com/iamcco/markdown-preview.nvim/blob/master/LICENSE\n[navigator.nvim]: https://github.com/numToStr/Navigator.nvim\n[neo-tree]: https://github.com/nvim-neo-tree/neo-tree.nvim\n[neo-tree-license]: https://github.com/nvim-neo-tree/neo-tree.nvim/blob/v2.x/LICENSE\n[window-picker]: https://github.com/s1n7ax/nvim-window-picker\n[opsort.vim]: https://github.com/ralismark/opsort.vim\n[sqve/sort.nvim]: https://github.com/sQVe/sort.nvim\n[vim-zoom]: https://github.com/dhruvasagar/vim-zoom\n[ts-unit]: https://github.com/David-Kunz/treesitter-unit\n[ts-unit-license]: https://github.com/David-Kunz/treesitter-unit/blob/main/LICENSE\n[nvim-lspconfig]: https://github.com/neovim/nvim-lspconfig\n[mason-lspconfig]: https://github.com/williamboman/mason-lspconfig.nvim\n[mason-lspconfig-license]: https://github.com/williamboman/mason-lspconfig.nvim/blob/main/LICENSE\n[mason.nvim]: https://github.com/williamboman/mason.nvim\n[mason.nvim-license]: https://github.com/williamboman/mason.nvim/blob/main/LICENSE\n[lspconfig-license]: https://github.com/neovim/nvim-lspconfig/blob/master/LICENSE.md\n[hrsh7th/nvim-cmp]: https://github.com/hrsh7th/nvim-cmp\n[cmp_luasnip]: https://github.com/saadparwaiz1/cmp_luasnip\n[cmp_luasnip-license]: https://github.com/saadparwaiz1/cmp_luasnip/blob/master/LICENSE\n[l3mon4d3/luasnip]: https://github.com/L3MON4D3/LuaSnip\n[hrsh7th/cmp-cmdline]: https://github.com/hrsh7th/cmp-cmdline\n[friendly-snippets]: https://github.com/rafamadriz/friendly-snippets\n[friendly-snippets-license]: https://github.com/rafamadriz/friendly-snippets/blob/main/LICENSE\n[cmp-buffer]: https://github.com/hrsh7th/cmp-buffer\n[cmp-calc]: https://github.com/hrsh7th/cmp-calc\n[cmp-nvim-lsp]: https://github.com/hrsh7th/cmp-nvim-lsp\n[sig-help]: https://github.com/hrsh7th/cmp-nvim-lsp-signature-help\n[cmp-nvim-lua]: https://github.com/hrsh7th/cmp-nvim-lua\n[cmp-path]: https://github.com/hrsh7th/cmp-path\n[cmp-rg]: https://github.com/lukas-reineke/cmp-rg\n[j-hui/fidget.nvim]: https://github.com/j-hui/fidget.nvim\n[none-ls.nvim]: https://github.com/nvimtools/none-ls.nvim\n[none-ls.nvim-license]: https://github.com/nvimtools/none-ls.nvim/blob/main/LICENSE\n[mason-null-ls.nvim]: https://github.com/jay-babu/mason-null-ls.nvim\n[mason-null-ls.nvim-license]: https://github.com/jay-babu/mason-null-ls.nvim/blob/main/LICENSE\n[mason-tool-inst]: https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim\n[mason-tool-inst-license]: https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim/blob/main/LICENSE\n[comment.nvim]: https://github.com/numToStr/Comment.nvim\n[inc-rename.nvim]: https://github.com/smjonas/inc-rename.nvim\n[nvim-autopairs]: https://github.com/windwp/nvim-autopairs\n[vim-caser]: https://github.com/arthurxavierx/vim-caser\n[nvim-colorizer]: https://github.com/NvChad/nvim-colorizer.lua\n[nvim-colorizer-license]: https://github.com/NvChad/nvim-colorizer.lua/blob/master/LICENSE\n[saecki/crates.nvim]: https://github.com/saecki/crates.nvim\n[nvim-lightbulb]: https://github.com/kosayoda/nvim-lightbulb\n[substitute.nvim]: https://github.com/gbprod/substitute.nvim\n[lsp_lines.nvim]: https://git.sr.ht/~whynothugo/lsp_lines.nvim\n[nvim-luaref]: https://github.com/milisims/nvim-luaref\n[mini.nvim]: https://github.com/echasnovski/mini.nvim\n[folke/neodev.nvim]: https://github.com/folke/neodev.nvim\n[nvim-neorg/neorg]: https://github.com/nvim-neorg/neorg\n[nvim-bqf]: https://github.com/kevinhwang91/nvim-bqf\n[nvim-bqf-license]: https://github.com/kevinhwang91/nvim-bqf/blob/main/LICENSE\n[bfredl/nvim-luadev]: https://github.com/bfredl/nvim-luadev\n[nvim-navic]: https://github.com/SmiteshP/nvim-navic\n[nvim-navic-license]: https://github.com/SmiteshP/nvim-navic/blob/master/LICENSE.md\n[s3edit.nvim]: https://github.com/kiran94/s3edit.nvim\n[woosaaahh/sj.nvim]: https://github.com/woosaaahh/sj.nvim\n[mbbill/undotree]: https://github.com/mbbill/undotree\n[rbong/vim-flog]: https://github.com/rbong/vim-flog\n[towolf/vim-helm]: https://github.com/towolf/vim-helm\n[vim-tmux]: https://github.com/tmux-plugins/vim-tmux\n[vim-visual-multi]: https://github.com/mg979/vim-visual-multi\n[yankassassin.vim]: https://github.com/svban/YankAssassin.vim\n[copilot.lua]: https://github.com/zbirenbaum/copilot.lua\n[codeium.vim]: https://github.com/Exafunction/codeium.vim\n[barbecue.nvim]: https://github.com/utilyre/barbecue.nvim\n[cmp-dynamic]: https://github.com/uga-rosa/cmp-dynamic\n[overseer.nvim]: https://github.com/stevearc/overseer.nvim\n[colorpicker]: https://github.com/ziontee113/color-picker.nvim\n[colorpicker-license]: https://github.com/ziontee113/color-picker.nvim/blob/master/LICENSE\n[aduros/ai.vim]: https://github.com/aduros/ai.vim\n[duck.nvim]: https://github.com/tamton-aquib/duck.nvim\n[rest.nvim]: https://github.com/rest-nvim/rest.nvim\n[luarocks.nvim]: https://github.com/vhyrro/luarocks.nvim\n[yanker.nvim]: https://github.com/arsham/yanker.nvim\n[jbyuki/venn.nvim]: https://github.com/jbyuki/venn.nvim\n[ChatGPT.nvim]: https://github.com/jackMort/ChatGPT.nvim\n[telescope.nvim]: https://github.com/nvim-telescope/telescope.nvim\n[telescope.nvim-license]: https://github.com/nvim-telescope/telescope.nvim/blob/master/LICENSE\n[vim-dadbod]: https://github.com/tpope/vim-dadbod\n\n\u003c!--\nvim: foldlevel=2 conceallevel=0\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farsham%2Fshark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farsham%2Fshark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farsham%2Fshark/lists"}