Select a color scheme for your Dotfyle experience

Neovim configuration without plugins, color picker in Neovim, AI completion source for cmp, chezmoi for Neovim, whichkey.nvim release

Issue #76
comments

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 Core Commits

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

image

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

image

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:

  • File issues and submit pull requests on GitHub
  • Discuss ideas on Discord