Neovim configuration without plugins, color picker in Neovim, AI completion source for cmp, chezmoi for Neovim, whichkey.nvim release
Email Newsletter
Sign up with your email address to receive an email when a new issue of This Week in Neovim is available
Introduction
This week we have several exciting updates, including a Neovim configuration without any plugins, a color picker in Neovim, a Git Graph plugin for Neovim under development, AI completion source for cmp with support for various remote API's and many more new plugins. We have ongoing development updates from Neovim core, and updated plugin announcements from whichkey.nvim, better-escape and markview.nvim
Hope you enjoy this weeks issue!
Neovim core
Updates of Neovim itself, which are available on Neovim nightly.
- @neovim on Twitter
- Neovim news
:h news.txt
updates in Neovim directly- PR's on GitHub
Neovim Core Commits
- fix(lua)!: do not use typed table for empty dict
- vim-patch:9.1.0557: moving in the buffer list doesn't work as documented (#29653)
Neovim Plugin Community
Neovim is full of active plugins. This section is about the community and what is going on.
Resources & articles
Color picker in Neovim
This script by OXY2DEV generates and previews gradients to facilitate tinkering with highlight groups within Neovim without needing other programs. It allows users to:
- Choose red, green, and blue channels of a color.
- Automatically convert colors to hex codes for easy copy-pasting.
- Create gradients using two colors.
- Select the number of steps in the gradients.
- Add colors (or all gradient colors) under the cursor position.
The script has no external dependencies and addresses a specific, niche problem effectively.
Links:
Git Graph Neovim plugin in progress
u/Popular-Income-9399 is currently developing a clone of the Git Graph VSCode plugin. Progress has been made on displaying the graph, inspired by commit graph drawing algorithms from this article.
Upcoming tasks include:
- Adding highlight groups for branch coloring.
- Replacing POC letters with a symbol.
- Displaying log information on the right-hand side.
- Performance optimization.
Links
New plugins
tzachar/cmp-ai
This is a general purpose AI source for nvim-cmp, easily adapted to any restapi supporting remote code completion.
cmp-ai is an AI source for nvim-cmp, offering integration with HuggingFace, OpenAI, Codestral, Google Bard, and Ollama for remote code completion.
boltlessengineer/NativeVim
Neovim config WITHOUT plugins
NativeVim is a Neovim configuration without external plugins, showcasing basic LSP features, TreeSitter highlighting, completions, and snippets. It aims to offer a plugin-free alternative for users to understand the Neovim ecosystem better.
xvzc/chezmoi.nvim
Chezmoi plugin for neovim
chezmoi.nvim assists in editing and applying chezmoi-managed files using neovim's functions, supporting multiple file editing simultaneously.
Isrothy/neominimap.nvim
Yet another minimap plugin for Neovim
Neominimap.nvim provides a visual code structure representation on the side of windows, with LSP and TreeSitter integration.
roodolv/markdown-toggle.nvim
A Neovim plugin that provides a simple and useful set of toggle commands for Markdown.
markdown-toggle.nvim provides toggle commands for Markdown, including quotes, headings, lists, and checkboxes. It offers cycle functionality, automatic continuation, on-the-fly configuration changes, and customization options. Keymaps for dot-repeating actions, autolist, and config-switching are provided, along with an API for various actions.
p5quared/apple-music.nvim
Apple Music + Neovim. Ugly duckling music player meets chad text editor.
apple-music.nvim allows you to control Apple Music from within Neovim using Lua and Telescope, enabling playback control and selection of tracks, playlists, and albums.
gh-liu/fold_line.nvim
Lines indicating code folds.
fold_line.nvim uses lines to indicate code folding areas and highlights the current fold in Neovim. It allows customization of line appearance and supports showing lines for the current fold only.
pogyomo/cppguard.nvim
A neovim plugin which generates proper include guard for C++
cppguard.nvim automatically generates include guards for C++ files and provides a guard string function for unique guard naming. It offers a snippet functionality for creating include guards utilizing the google C++ Style Guide.
iamyoki/buffer-reopen.nvim
Reopen buffer ⌨️ Ctrl+Shift+T or bt
buffer-reopen.nvim facilitates reopening closed buffers in Neovim with customizable keybindings and commands.
Kicamon/markdown-table-mode.nvim
A neovim markdown format plugin like vim-table-mode but write in lua
markdown-table-mode.nvim formats Markdown tables under the cursor when leaving insert mode or entering |.
fouladi/ccrypt-wrapper.nvim
A Neovim plugin to encrypt and decrypt buffers with ccrypt.
ccrypt-wrapper.nvim allows encryption and decryption of buffers using ccrypt in Neovim. It provides commands like :Encrypt and :Decrypt, key mappings for quick encryption and decryption, with a prerequisite of having ccrypt installed and in the system's path.
lsig/messenger.nvim
Reveal the commit message under the cursor - Written in Lua
messenger.nvim displays commit messages in a popup window while coding. It aims to improve code understanding and encourage better commit messages.
fouladi/toggle-overlength.nvim
A NeoVim Plugin to toggle the highlithing of text exceeding the column length.
toggle-overlength.nvim provides a command and key mappings to toggle the highlighting of text exceeding a specified column length in the editor.
stevearc/resession.nvim
A replacement for mksession with a better API
resession.nvim is a session manager with a customizable API for Neovim, enabling tab-scoped sessions and extensions for saving custom data.
psjay/buffer-closer.nvim
Close Neovim buffers, windows, or exit Vim with the same single keypress.
buffer-closer.nvim simplifies buffer, window, and Neovim exit actions with single keypress convenience.
domharries/foldnav.nvim
Fast vertical navigation in Neovim using folds
foldnav.nvim enhances vertical navigation in Vim based on code folding and Treesitter queries, addressing limitations in built-in fold commands. It provides more intuitive navigation through folds and offers customizable settings for highlighting and motion behavior. The plugin simplifies navigation within the buffer's semantic structure.
Updated plugins
which-key.nvim v3 release
This major update includes a complete rewrite with new features, improved performance and functionality.
- Mode Integration: Uses ModeChanged for visual and operator pending modes.
- Simplified Mappings: Removed obscure secret mappings.
- Safer Auto Triggers: Only for 'g' and 'z' keys.
- Delay Setting: Independent of timeoutlen.
- Layout Options: New presets, sorting options, and group expansions.
- Icon Support: Auto-detects icons using lazy.nvim and custom rules.
- Non-intrusive Design: Avoids cursor overlap.
- New Mapping Spec: Aligns with vim.keymap.set and lazy.nvim.
Links:
better-escape 2.0: map everything you want in all the modes
better-escape.nvimenables creating mappings without the visible delay when inputting characters.
In normal mappings, Neovim waits before inserting the first character to check if the second character of the mapping will be typed. Better-escape.nvim inserts the character instantly, eliminating the delay, which is beneficial when typing or filtering results in Telescope.
The plugin has been completely rewritten to allow creating mappings for various modes, not just escaping from insert mode.
Features
- Create mappings for insert, command, terminal, visual, and select modes.
- Map to anything, including key sequences or Lua functions.
- Remains small and fast (<170 LOC).
Links
markview.nvim updates
There has recently bee
- Added Lists: Support for lists and description lists.
- Improved Callouts/Block Quotes: Proper handling, including inside lists.
- Enhanced Code Block Display: Code blocks in block quotes and lists now display correctly without background overflow.
- Updated Inline Code Concealment: Reduces visual bugs.
- Added Tables: Tables now preserve structure in both normal and insert modes, preventing glitches and cursor jumps.
- List Padding: Lists now have padding (equal to shiftwidth or a provided number).
- Updated Event Handling: Moved from BufEnter & ModeChanged to BufWinEnter, InsertEnter, & InsertLeave.
Links:
Contributing
Add your plugin to Dotfyle through this form to be featured in This Week in Neovim
Contribute to the development of Dotfyle: