{"id":27384946,"url":"https://github.com/cassin01/wf.nvim","last_synced_at":"2025-04-13T16:37:02.799Z","repository":{"id":65701437,"uuid":"591489871","full_name":"Cassin01/wf.nvim","owner":"Cassin01","description":"A modern which-key for neovim","archived":false,"fork":false,"pushed_at":"2024-11-23T11:09:48.000Z","size":6126,"stargazers_count":214,"open_issues_count":4,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-27T05:34:52.296Z","etag":null,"topics":["neovim","neovim-lua","neovim-plugin","nvim","nvim-plugin"],"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/Cassin01.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"Cassin01","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2023-01-20T22:10:22.000Z","updated_at":"2025-03-18T17:31:02.000Z","dependencies_parsed_at":"2023-10-16T06:28:19.309Z","dependency_job_id":"53faf6cc-d843-44e9-9a62-8d2261256eb4","html_url":"https://github.com/Cassin01/wf.nvim","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cassin01%2Fwf.nvim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cassin01%2Fwf.nvim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cassin01%2Fwf.nvim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cassin01%2Fwf.nvim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cassin01","download_url":"https://codeload.github.com/Cassin01/wf.nvim/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248745376,"owners_count":21155053,"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":["neovim","neovim-lua","neovim-plugin","nvim","nvim-plugin"],"created_at":"2025-04-13T16:37:02.286Z","updated_at":"2025-04-13T16:37:02.766Z","avatar_url":"https://github.com/Cassin01.png","language":"Lua","funding_links":["https://github.com/sponsors/Cassin01"],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n[![Build Status][ci-shield]][ci-url]\n\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Cassin01/wf.nvim\"\u003e\n    \u003c!-- \u003cimg src=\".github/images/logo.png\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e --\u003e\n    \u003cimg src=\".github/images/logo_white.png\" alt=\"Logo\" width=\"200\" height=\"200\"\u003e\n  \u003c/a\u003e\n\n  \u003c!-- \u003ch3 align=\"center\"\u003ewf.nvim\u003c/h3\u003e --\u003e\n\n  \u003cp align=\"center\"\u003e\n    \u003c!-- A which-key with a fuzzy-find. --\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/Cassin01/wf.nvim/blob/main/doc/wf.txt\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://youtu.be/S3aKshSPyiQ\"\u003eView Demo\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/Cassin01/wf.nvim/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/Cassin01/wf.nvim/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003c!-- \u003cdetails\u003e --\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#getting-started\"\u003eGetting started\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#configuration\"\u003eConfiguration\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#key-bindings-assignments\"\u003eDefault Shortcut / Key\n    Bindings Assignments\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#how-to-use-as-a-picker\"\u003eHow to use as a picker\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#credits\"\u003eCredits\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c!-- \u003c/details\u003e --\u003e\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\n\u003cdiv align=\"center\"\u003e\n    \u003c!-- \u003e Drag your video (\u003c10MB) here to host it for free on GitHub. --\u003e\n\n\u003c!-- [![Product Name Screen Shot][product-screenshot]](https://github.com/Cassin01/wf.nvim) --\u003e\n\nhttps://user-images.githubusercontent.com/42632201/219690019-a5615bac-6747-41d8-a10e-ddae151af5c2.mp4\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003c!-- \u003e Videos don't work on GitHub mobile, so a GIF alternative can help users. --\u003e\n\n[The video link for mobile users](https://youtu.be/S3aKshSPyiQ)\n\n\u003c/div\u003e\n\n`wf.nvim` is a new which-key like plugin for Neovim.\n\n### ✨ Features\n- Built-in fuzzy-finder\n- Does not provide a default global keymap\n- Using `nvim_set_keymap`'s \"desc\" feature (see `:help nvim_set_keymap`)\n- for Neovim 0.7 and higher, it uses the desc as key description\n- Skip duplicate characters (`skip_front_duplication`, `skip_back_duplication`)\n- Builtin pickers:\n  * `which-key`: displays key mappings to invoke\n  * `mark`: displays marks to move\n  * `bookmark`: displays file paths to open\n  * `buffer`: displays buffers to focus\n  * `register`: displays the contents of registers\n\n### The difference with [which-key.nvim](https://github.com/folke/which-key.nvim)\n\nThe display of `wf.nvim` is displayed in a row at the bottom right like [helix](https://helix-editor.com/). Instead of displaying multiple columns at the bottom like [spacemacs](https://www.spacemacs.org/) style. This has improved the display speed of multibyte characters in particular.\n\n#### Pros\n- The layout does not collapse even if multibyte characters are included.\n- You can use the builtin fuzzy finder to find forgotten shortcuts.\n- Three themes(default, space, chad) are offered.\n- Fits any color scheme.\n    - The colors change to match the color scheme.\n- Stress-free selection even when long letters are available as options.\n    - See `skip_front_duplication` and `skip_back_duplication` at the document.\n- Modal selection is made possible by adopting an event-driven architecture instead of waiting for a key with a while loop.\n\n#### Cons\n- Slower processing speed for larger number of runtime process\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Installation\n\n\u003c!-- \u003cdiv align=\"center\"\u003e --\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ePackage manager\u003c/th\u003e\n\u003cth\u003eSnippet\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n[wbthomason/packer.nvim](https://github.com/wbthomason/packer.nvim)\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```lua\n-- stable version\nuse {\"Cassin01/wf.nvim\", tag = \"*\", config = function() require(\"wf\").setup() end}\n-- dev version\nuse {\"Cassin01/wf.nvim\", config = function() require(\"wf\").setup() end}\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n[junegunn/vim-plug](https://github.com/junegunn/vim-plug)\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```vim\ncall plug#begin()\n-- stable version\nPlug \"Cassin01/wf.nvim\", { \"tag\": \"*\" }\n-- dev version\nPlug \"Cassin01/wf.nvim\"\ncall plug#end()\n\nlua \u003c\u003c EOF\nrequire(\"wf\").setup()\nEOF\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\n[folke/lazy.nvim](https://github.com/folke/lazy.nvim)\n\n\u003c/td\u003e\n\u003ctd\u003e\n\n```lua\n-- stable version\nrequire(\"lazy\").setup({{\"Cassin01/wf.nvim\", version = \"*\", config = function() require(\"wf\").setup() end}})\n-- dev version\nrequire(\"lazy\").setup({{\"Cassin01/wf.nvim\", config = function() require(\"wf\").setup() end}})\n```\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- \u003c/div\u003e --\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Getting started\n\n\u003c!-- There is no required dependencies on `wf.nvim` but --\u003e \nNeovim \u003e= 0.9.0 and\n[nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons) is recommended\nfor enjoying all the features of `wf.nvim`.\n\n\n\u003c!-- \u003cdetails\u003e --\u003e\n  \u003csummary\u003eMinimal Setup\u003c/summary\u003e\n\n```lua\nlocal which_key = require(\"wf.builtin.which_key\")\nlocal register = require(\"wf.builtin.register\")\nlocal bookmark = require(\"wf.builtin.bookmark\")\nlocal buffer = require(\"wf.builtin.buffer\")\nlocal mark = require(\"wf.builtin.mark\")\n\n-- Register\nvim.keymap.set(\n  \"n\",\n  \"\u003cSpace\u003ewr\",\n  -- register(opts?: table) -\u003e function\n  -- opts?: option\n  register(),\n  { noremap = true, silent = true, desc = \"[wf.nvim] register\" }\n)\n\n-- Bookmark\nvim.keymap.set(\n  \"n\",\n  \"\u003cSpace\u003ewbo\",\n  -- bookmark(bookmark_dirs: table, opts?: table) -\u003e function\n  -- bookmark_dirs: directory or file paths\n  -- opts?: option\n  bookmark({\n    nvim = \"~/.config/nvim\",\n    zsh = \"~/.zshrc\",\n  }),\n  { noremap = true, silent = true, desc = \"[wf.nvim] bookmark\" }\n)\n\n-- Buffer\nvim.keymap.set(\n  \"n\",\n  \"\u003cSpace\u003ewbu\",\n  -- buffer(opts?: table) -\u003e function\n  -- opts?: option\n  buffer(),\n  {noremap = true, silent = true, desc = \"[wf.nvim] buffer\"}\n)\n\n-- Mark\nvim.keymap.set(\n  \"n\",\n  \"'\",\n  -- mark(opts?: table) -\u003e function\n  -- opts?: option\n  mark(),\n  { nowait = true, noremap = true, silent = true, desc = \"[wf.nvim] mark\"}\n)\n\n-- Which Key\nvim.keymap.set(\n  \"n\",\n  \"\u003cLeader\u003e\",\n   -- mark(opts?: table) -\u003e function\n   -- opts?: option\n  which_key({ text_insert_in_advance = \"\u003cLeader\u003e\" }),\n  { noremap = true, silent = true, desc = \"[wf.nvim] which-key /\", }\n)\n```\n\nIf you are concerned about the lag between pressing the shortcut that activates `which-key` and the actual activation of `which-key`, you can put the `nowait` option in the keymap. (Not recommended.)\n\nHowever, in order for the key to be invoked nowait, the shortcut to invoke `which-key` must be at the end of the `init.lua` file.\nBelow is an example of using `timeout` to delay the registration of the shortcut that activates `which-key`.\n\n```lua\n-- set keymaps with `nowait`\n-- see `:h :map-nowait`\n\n-- a timer to call a callback after a specified number of milliseconds.\nlocal function timeout(ms, callback)\n  local uv = vim.loop\n  local timer = uv.new_timer()\n  local _callback = vim.schedule_wrap(function()\n    uv.timer_stop(timer)\n    uv.close(timer)\n    callback()\n  end)\n  uv.timer_start(timer, ms, 0, _callback)\nend\ntimeout(100, function()\n  vim.keymap.set(\n    \"n\",\n    \"\u003cLeader\u003e\",\n    which_key({ text_insert_in_advance = \"\u003cLeader\u003e\" }),\n    { noremap = true, silent = true, desc = \"[wf.nvim] which-key /\", }\n  )\nend)\nvim.api.nvim_create_autocmd({\"BufEnter\", \"BufAdd\"}, {\n  group = vim.api.nvim_create_augroup(\"my_wf\", { clear = true }),\n  callback = function()\n    timeout(100, function()\n      vim.keymap.set(\n        \"n\",\n        \"\u003cLeader\u003e\",\n        which_key({ text_insert_in_advance = \"\u003cLeader\u003e\" }),\n        { noremap = true, silent = true, desc = \"[wf.nvim] which-key /\", buffer = true })\n    end)\n  end\n})\n```\n\n\u003c!-- \u003c/details\u003e --\u003e\n\n\u003c!-- \u003e Describe how to use the plugin the simplest way --\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Configuration\n\n\u003c!-- \u003e The configuration list sometimes become cumbersome, making it folded by default reduce the noise of the README file. --\u003e\n\n\u003c!-- \u003cdetails\u003e --\u003e\n\u003c!-- \u003csummary\u003eClick to unfold the full list of options with their default values\u003c/summary\u003e --\u003e\n\n\u003c!-- \u003e **Note**: The options are also available in Neovim by calling `:h wf.options` --\u003e\n\n```lua\nrequire(\"wf\").setup({\n  theme = \"default\",\n    -- you can copy the full list from lua/wf/setup/init.lua\n})\n```\n\n\u003c!-- \u003c/details\u003e --\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Key Bindings Assignments\n\nThe default key assignments are shown in the table below.\n\n| Mode | Key | Action |\n| - | - | - |\n| Normal, Insert | `\u003cc-t\u003e` | Toggle the which-key with the fuzzy-find |\n| Normal | `\u003cesc\u003e` | Close wf.nvim |\n| Normal | `\u003cc-c\u003e` | Close wf.nvim |\n\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## How to use as a picker\n\nThe core concept of `wf.nvim` is to extend the functionality of which-key so that it can be used as a picker rather than just a shortcut completion.\n\nTo realize this concept, `wf.nvim` can be used as a picker to select an item from arbitrary items like `vim.ui.select({items}, {opts}, {on_choice})`, i.e. `wf.select({items}, {opts}, {on_choice})`.\n\n\nExample:\n```lua\nrequire(\"wf\").select({happy = \"😊\", sad = \"😥\"}, {\n        title = \"Select your feelings:\", behavior = {\n            skip_front_duplication = true,\n            skip_back_duplication = true,\n        },\n    }, function(text, key)\n        -- You feel happy😊.\n        vim.notify(\"You feel \" .. key .. text .. \".\")\n    end)\nend\n```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Documentation\n\nYou can find guides for the plugin on [the document](https://github.com/Cassin01/wf.nvim/blob/main/doc/wf.txt).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Tips\n\n### Holding specific key pattern on which_key\n\n\u003c!-- It may be a bit arrogant to call it tips, but here is my init.lua setup. --\u003e\nBelow is an example of using `keys_group_dict`. `keys_group_dict` is a list of prefix patterns.\nKeys with that pattern can be grouped together when displayed.\n\n```lua\n-- setup table for prefixes\n---------------------------------------\nif _G.__key_prefixes == nil then\n  _G.__key_prefixes = {\n    n = {},\n    i = {},\n  }\nend\n\n\n-- utility function for setting keymaps\n---------------------------------------\nlocal function nmaps(prefix, group, tbl)\n  local sign = \"[\" .. group .. \"] \"\n  table.insert(_G.__key_prefixes[\"n\"], prefix, sign)\n  local set = function(key, cmd, desc, opt)\n    local _opt = opt or {}\n    _opt[\"desc\"] = sign .. desc\n    _opt[\"noremap\"] = true\n    vim.keymap.set(\"n\", prefix .. key, cmd, _opt)\n  end\n  for _, v in ipairs(tbl)  do\n    set(unpack(v))\n  end\nend\n\n\n-- set keymap for each plugins\n---------------------------------------\n-- lambdalisue/fern.vim\nnmaps(\"\u003cspace\u003en\", \"fern\",\n{{\"p\", \"\u003ccmd\u003eFern . -drawer -toggle\u003ccr\u003e\", \"open fern on a current working directory\"},\n {\"d\", \"\u003ccmd\u003eFern %:h -drawer -toggle\u003ccr\u003e\", \"open fern on a parent directory of a current buffer\"}})\n\n-- nvim-telescope/telescope.nvim\nnmaps(\"\u003cspace\u003et\", \"telescope\"\n{{\"f\", \"\u003ccmd\u003eTelescope find_files\u003ccr\u003e\", \"find files\"},\n {\"g\", \"\u003ccmd\u003eTelescope live_grep\u003ccr\u003e\", \"live grep\"},\n {\"b\", \"\u003ccmd\u003eTelescope buffers\u003ccr\u003e\", \"buffers\"},\n {\"h\", \"\u003ccmd\u003eTelescope help_tags\u003ccr\u003e\", \"help tags\"},\n {\"t\", \"\u003ccmd\u003eTelescope\u003ccr\u003e\", \"telescope\"},\n {\"o\", \"\u003ccmd\u003eTelescope oldfiles\u003ccr\u003e\", \"old files\"},\n {\"r\", \"\u003ccmd\u003eTelescope file_browser\u003ccr\u003e\", \"file_browser\"}})\n\n\n-- set keymap for calling which-key\n---------------------------------------\nvim.set.keymap(\"n\", \"\u003cSpace\u003e\",\nwhich_key({text_insert_in_advance=\"\u003cspace\u003e\", key_group_dict=_G.__key_prefixes[\"n\"]}),\n{noremap = true, silent = tre, desc = \"which-key space\", nowait = true})\n```\n\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\n\nAny contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star! Thanks again!\n\nDevelopment flow basically follows [git-flow](https://nvie.com/posts/a-successful-git-branching-model/).\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Generate document, format codes and test codes (`make push`)\n4. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n5. Push to the Branch (`git push origin feature/AmazingFeature`)\n6. Open a Pull Request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under the MIT License. See `LICENSE.txt` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Credits\n\n### CI, README\n- [shortcuts/neovim-plugin-boilerplate](https://github.com/shortcuts/neovim-plugin-boilerplate)\n- [echasnovski/mini.nvim](https://github.com/echasnovski/mini.nvim)\n- [othneildrew/Best-README-Template](https://github.com/othneildrew/Best-README-Template)\n### Picker\n- [nvim-telescope/telescope.nvim](https://github.com/nvim-telescope/telescope.nvim)\n- [folke/which-key.nvim](https://github.com/folke/which-key.nvim)\n- [liuchengxu/vim-which-key](https://github.com/liuchengxu/vim-which-key)\n### Which-key\n- [justbuf/emacs-which-key](https://github.com/justbur/emacs-which-key)\n- [helix-editor/helix](https://github.com/helix-editor/helix)\n- [syl20bnr/spacemacs](https://github.com/syl20bnr/spacemacs)\n### Theme\n- [NvChad/NvChad](https://github.com/NvChad/NvChad)\n\n### buffer-switcher\n\n- [matbme/JABS.nvim](https://github.com/matbme/JABS.nvim)\n\n\u003c!-- \u003e If alternatives of your plugin exist, you can provide some pros/cons of using yours over the others. --\u003e\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- MARKDOWN LNIKS \u0026 IMAGES --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/Cassin01/wf.nvim.svg?style=for-the-badge\n[contributors-url]: https://github.com/Cassin01/wf.nvim/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/Cassin01/wf.nvim.svg?style=for-the-badge\n[forks-url]: https://github.com/Cassin01/wf.nvim/network/members\n[stars-shield]: https://img.shields.io/github/stars/Cassin01/wf.nvim.svg?style=for-the-badge\n[stars-url]: https://github.com/Cassin01/wf.nvim/stargazers\n[issues-shield]: https://img.shields.io/github/issues/Cassin01/wf.nvim.svg?style=for-the-badge\n[issues-url]: https://github.com/Cassin01/wf.nvim/issues\n[license-shield]: https://img.shields.io/github/license/Cassin01/wf.nvim.svg?style=for-the-badge\n[license-url]: https://github.com/Cassin01/wf.nvim/blob/main/LICENSE.txt\n[ci-shield]: https://img.shields.io/github/actions/workflow/status/Cassin01/wf.nvim/main.yml?style=for-the-badge\n[ci-url]: https://github.com/Cassin01/wf.nvim/actions/workflows/main.yml\n[document-shield]: https://img.shields.io/github/actions/workflow/status/Cassin01/wf.nvim/main.yml?style=for-the-badge\n[document-url]: https://github.com/Cassin01/wf.nvim/actions/workflows/main.yml\n[product-screenshot]: https://user-images.githubusercontent.com/42632201/213849418-3cddb8bb-7323-4af7-b201-1ce2de07d3b9.png\n[product-video]: .github/images/theme.mp4\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcassin01%2Fwf.nvim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcassin01%2Fwf.nvim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcassin01%2Fwf.nvim/lists"}