Select a color scheme for your Dotfyle experience

Better TypeScript errors, project wide search and replace, UI forms in Neovim, reimagined :intro

Issue #64
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

I'm back from vacation and this week we have a big update from the past 4 weeks.

Matt Pocock's ts-error-translator for VSCode was ported to Neovim, we have code examples for adding a VS Code like Search and Replace experience, reimagining the :intro command and building UI forms inside Neovim.

There are exciting updates from mini.nvim, Kickstart.nvim and grapple.nvim

We have several contributions to Neovim core and more interesting plugins to share!

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

Developing VS Code like Search and Replace using nvim-spectre

search-and-replace-nvim-spectre

In this Reddit post mobility shares how they added VS Code like search and replace using nvim-spectre and NuiComponents.

Reimagining :intro

image

In this Reddit post GnikDroy shares an implementation on how they added additional information & highlighting to the :intro command and the default startup screen.

Building UI forms with Nui

ui-forms-in-nui

In this Reddit post mobily shares an implementation on how to build forms in Neovim using Nui.

3 Vim commands for blazingly fast navigation between brackets

In this blog post Max Shen shares 3 tips on how to quickly and efficiently navigate between bracked in vim.


New plugins

dmmulroy/ts-error-translator.nvim

A port of Matt Pocock's ts-error-translator for VSCode for turning messy and confusing TypeScript errors into plain English.

ts-error-translator.nvim is a plugin for translating messy TypeScript errors into plain English. It can be easily installed and configured to improve error messages within Neovim.


nvimtools/hydra.nvim

Create custom submodes and menus

hydra.nvim implements the Emacs Hydra package concept in Vim, enabling a sequential execution of keybindings by activating a "head" with a single key press. The Hydra is interrupted by pressing a key that is not part of the sequence.


artemave/workspace-diagnostics.nvim

Populate diagnostics for all projects files, not just the opened ones.

workspace-diagnostics.nvim populates project-wide LSP diagnostics, regardless of the open files. It automatically fetches diagnostics for all project files and supports customizable project file configurations.


samharju/synthweave.nvim

Synthwave '84 colorscheme port for Neovim


Zeioth/heirline-components.nvim

Distro agnostic components for your Neovim heirline config

heirline-components.nvim is a collection of distro-agnostic components for configuring the Neovim heirline interface, offering tabline, winbar, statuscolumn, and statusline components along with customizable options for icons and colors.


backdround/global-note.nvim

Opens global note in a float window

global-note.nvim provides a simple way to create and toggle global and project local notes in Neovim. It offers float window functionality with customizable options for file locations, titles, and autosave features. Users can create additional presets for different types of notes.


allaman/emoji.nvim

A plugin to search for and insert emojis/kaomojis right from Neovim 😀

emoji.nvim allows easy search and insertion of emojis and kaomojis in Neovim, featuring automatic updates, integration with telescope.nvim and nvim-cmp, and no dependencies.


rasulomaroff/telepath.nvim

Actions at a distance using telepathy 🫢✨

telepath.nvim is a motion extension for Leap that enables remote operation on textobjects without creating new ones. It supports jump, cursor restoration, recursion, bidirectional search, and custom mappings, enhancing text manipulation in Neovim.


samharju/yeet.nvim

Plugin for running shell commands in terminal buffers or tmux panes.

yeet.nvim enables running shell commands in terminal buffers or tmux panes without feedback on success or failure. It simplifies command execution in Neovim without the need for configuration.


arjunmahishi/flow.nvim

A neovim plugin that lets you build custom commands to automate parts of your development workflow

flow.nvim enables running code snippets within the editor, enhancing productivity by automating tasks. It integrates with Telescope for advanced functionality.


massix/org-checkbox.nvim

Very simple plugin to convert lists into checkboxes in org-mode files

org-checkbox.nvim converts lists to checkboxes and back in org-mode files


deathbeam/autocomplete.nvim

Very simple and minimal autocompletion for cmdline and buffer using LSP and Tree-sitter with signature help

autocomplete.nvim provides minimal autocompletion for the command line and buffers using LSP and Tree-sitter with signature help.


polirritmico/telescope-lazy-plugins.nvim

A Telescope picker to quickly access plugins configurations from the lazy.nvim spec.

telescope-lazy-plugins.nvim enables quick access to plugin configuration files for Lazy configurations using a Telescope picker. It allows easy navigation and opening of plugin repository webpages or local clone directories. The plugin simplifies managing plugin configurations spread across multiple files or grouped separately.


yanskun/gotests.nvim

that runs gotests with Neovim

gotests.nvim is a plugin for generating tests in Go using gotests. It provides commands to generate tests for specific functions and methods within a Go file.


echasnovski/mini.deps

Plugin manager. Part of 'mini.nvim' library.

mini.deps is a minimal plugin manager that enables managing plugins using Git and built-in packages in Neovim. It allows adding, updating, deleting plugins, handling dependencies, snapshots, and offers lazy loading functionality.


massix/termux.nvim

Neovim plugin to interact with the Termux APIs, useful for displaying various information in the statusline


dwrdx/mywords.nvim

Highlight words with different colors in neovim

mywords.nvim highlights words with different colors in Vim, automatically clearing old highlights when no available colors remain.


mvllow/matcha.nvim

Match and toggle augroups and options

matcha.nvim helps manage augroups and toggle options in Neovim. Keymaps can be configured with a shared prefix, and complex types can be toggled.


icholy/lsplinks.nvim

LSP textDocument/documentLink support for neovim

lsplinks.nvim extends the default gx behavior in Neovim to support LSP document links. It enables jumping to references in swagger/openapi files and opening URLs like https://pkg.go.dev from go.mod or import statements.


mimikun/human-rights.nvim

A neovim plugin to check and display whether your machine have human rights.

human-rights.nvim displays system information like CPU, GPU, Memory, Parallelism, and Disk, with commands to show specific details.


S1M0N38/love2d.nvim

A simple Neovim plugin to build game with LÖVE 👾

love2d.nvim is a plugin that simplifies working with LÖVE 2D game development in Neovim. It provides configurations for LSP integration with LÖVE, as well as keybindings to start and stop the game directly from Neovim.


Myzel394/easytables.nvim

Easily insert and edit markdown tables using Neovim with a live preview and useful helpers

easytables.nvim allows users to create and edit Markdown tables seamlessly. The plugin features real-time table previews, functionalities to add/remove rows and columns, and options to move cells, rows, and columns within the table.


bartman/history-select.nvim

nvim lua dialog box with a history file, based on telescope UI

history-select.nvim provides a dialog storing new input into history files, and enables selecting previous inputs using a Telescope interface.


deathbeam/lspecho.nvim

Just echo the LSP progress, its that simple

lspecho.nvim echoes LSP progress messages on the command line with a simple status display that does not need additional interface elements.


Zeioth/distroupdate.nvim

Neovim plugin to update your current distro from its github remote

distroupdate.nvim is a tool to update your Neovim configuration from the GitHub repository, offering commands like :NvimDistroUpdate to fetch the latest changes.


drop-stones/im-switch.nvim

Neovim plugin to switch IMs automatically.

im-switch.nvim automatically switches input methods in response to Neovim events, effectively managing input method settings without requiring external tools.


KDesp73/project-starter.nvim

A neovim plugin for creating template project structures for various languages

project-starter.nvim facilitates creating template project structures for various programming languages. It offers commands to generate projects in languages such as C, C++, Java, Python, Ruby, and Android using Kotlin, along with options to customize default project paths.


LukasPietzschmann/boo.nvim

Quickly pop-up lsp-powered infos of the thing your cursor is on

boo.nvim provides a popup window with LSP information for the current cursor location. It offers customizable configurations, including window size limits, escape mappings for closing, and automatic closure when switching buffers.


fbuchlak/cmp-symfony-router

Source of symfony routes for nvim-cmp

cmp-symfony-router is a source plugin for nvim-cmp that provides autocompletion for symfony routes.


mvllow/stand.nvim

Time to stand reminders

stand.nvim provides time to stand reminders. Installation and setup are simple, with options to customize the reminder interval. Commands allow users to display time remaining, stand immediately, set stand intervals, disable or enable the timer.


Rentib/cliff.nvim

jk until falling

cliff.nvim moves the cursor up/down until it almost falls off the cliff. If the cursor is positioned at position (row, column), then after calling cliff.go_down or cliff.go_up the cursor will move to the furthest row such that every line in between either is of length greater than column or every line is shorter than column.


IsWladi/Gittory

Gittory is a NeoVim plugin written in Lua that changes your working directory to the root of your project if you use Git. It is useful to use with Telescope and Harpoon, depending on your needs and workflow.

Gittory simplifies utilizing Telescope and Harpoon within your Git projects by setting the working directory to the root folder automatically.


Sam-programs/expand.nvim

Write if statements / functions quickly by expanding their pairs with a single keymap.

expand.nvim allows for quick expansion of statements in various programming languages by defining pairs of opening and closing symbols.


2KAbhishek/termim.nvim

Neovim Terminal, Improved 🦾💻

termim.nvim simplifies and enhances the Neovim terminal experience by offering features like automatic insertion into insert mode, minimizing clutter, auto-closing terminals, maintaining buffer list integrity, and providing commands for fullscreen and split terminals. Installation is simple, and it supports customizable commands and mappings for improved usability.


marcosantos98/clang-format.nvim

Use clang-format on :w on .c/.h files

clang-format.nvim is a tool that utilizes the clang-format to format the current buffer using a specified style file path.


gczcn/antonym.nvim

The neovim plug-in can replace the word under the cursor with its antonym

antonym.nvim replaces words with their antonyms in Neovim, utilizing a command to swap the word under the cursor with a defined antonym list. Configuration options are available for custom antonym matches and keybindings.


fnune/recall.nvim

Recall refines the use of Neovim marks by focusing on global marks, streamlining their usage and enhancing their visibility and navigability.

recall.nvim enhances the functionality of Neovim marks by focusing on global marks, providing consistent visual indicators, and simplifying mark navigation and management through command shortcuts.


kilavila/nvim-bufferlist

Simple Neovim plugin for listing, navigating and deleting buffers. Written in Lua

nvim-bufferlist is a plugin for improved buffer management and quick navigation between pinned files. It enhances the :ls command and provides features like listing open buffers, navigating to buffers, closing buffers, and pinning files for quick access. It includes commands for opening and managing buffer lists, as well as keymaps for easy navigation.


kilavila/nvim-yoink

Simple Neovim plugin to copy and paste text

nvim-yoink is a simple text storage plugin for easy copy-pasting and editing within Neovim, with features like storing, copying, and pasting text.


desdic/marlin.nvim

Smooth sailing through buffers of interest in neovim

marlin.nvim enhances navigation in Neovim by enabling easy jumps between project buffers with customizable settings and integration with status line plugins.


altermo/iedit.nvim

Edit one occurrence of text and simultaneously have other selected occurrences edited in the same way.

iedit.nvim is a Lua rewrite of Emacs's iedit, allowing users to edit multiple instances of selected text simultaneously. It provides functions for starting and stopping selection, with customizable keymaps and highlighting.


2KAbhishek/tdo.nvim

Fast and Simple Note Taking in Neovim! 📃🚀

tdo.nvim integrates tdo commands for simple and fast note taking, including features like creating notes, managing todos, and navigating notes. The plugin integrates with telescope for efficient note searching in Neovim.


Mr-LLLLL/treesitter-outer

jump outer node with smart way

treesitter-outer allows jumping to outer nodes in various filetypes using smart navigation based on nvim-treesitter.


Sam-programs/cmdline-hl.nvim

Highlight the default neovim cmdline

cmdline-hl.nvim enhances Neovim's command-line by highlighting and customizing command types and text, making it more visually appealing and functional.


snehlsen/pomo.nvim

Pomodoro-like task management in nvim

pomo.nvim adds pomodoro-style task management to your workflow in Neovim, allowing you to create daily task lists, assign time slots, mark tasks as complete, and track interruptions.


hiphish/neotest-busted

Neotest adapter for running busted tests.

Neotest-Busted is a Neotest adapter for Busted, a Lua test framework. It requires Busted and Neotest installed and offers easy configuration.


raphaelladinig/nvim-projectmanager

Project Management tool for Neovim

nvim-projectmanager helps you manage projects in Neovim, enabling project creation, template loading, and integration with Telescope for easy project navigation. It offers commands to create projects, view projects in a Telescope window, manage templates, and clear recent projects. The plugin requires setting default project and template directories in the configuration for proper functionality. It also provides an API to access pinned projects, recent projects, and templates.


shellheim/ashaar.nvim

A neovim plugin to display random urdu couplets on startup.

ashaar.nvim facilitates displaying random Urdu couplets (written in the Roman script) as part of the alpha-nvim's startup screen, with a collection of couplets from various Urdu poets stored in ashaar_list.lua


RAprogramm/nekifoch

Neovim Kitty Font Changer

nekifoch manages Kitty terminal font settings with commands for checking, setting font size/family, and listing available fonts.


rushjs1/nuxt-goto-alias.nvim

'Go to Definition' on a vue component from within a nuxt project to the correct definition source.

nuxt-goto-alias.nvim is designed to redirect Go to Definition in Nuxt Vue components to the correct source, avoiding unnecessary navigation to declaration files.


Zeioth/makeit.nvim

Neovim Makefile plugin

makeit.nvim makes it easier to interact with Makefiles in your project, allowing you to list and select options for building and running tasks.


nihancj/plugin-switcher.nvim

A useful neovim plugin to use with lazy.nvim

plugin-switcher.nvim integrates with lazy.nvim and organizes your installed plugins into profiles, enabling you to switch between them based on your needs. It remembers your previous session and loads specified plugins automatically.


Updated plugins

mini.nvim - release 0.12.0

Three new modules coming out of beta-testing.

  • mini.visits - module to track and reuse file system visits. This is a mini.nvim version of nvim-telescope/telescope-frecency.nvim. Persistently track file visits and select from them, in combined with 'ThePrimeagen/harpoon' like functionality to persistently add/remove labels to paths and select based on them.
  • mini.notify - module to show notifications. It provides custom vim.notify maker so that users can have pretty and less intrusive plugin notifications.
  • mini.deps - plugin manager module. mini.deps helps installing/updating/cleaning/snapshotting other plugins with minimal yet sufficient user experience (in my opinion it ended up somewhere near 'junegunn/vim-plug' in that regard).

Links:

Kickstart.nvim updated, testers & feedback appreciated

Kickstart.nvim recently had an udpate, removing ~1/3 of the code compared to the previous version and adding additional documentation. There's now less than 300 lines of code, and just over 400 lines of comments attempting to explain what's happening and point to relevant documentation.

Grapple.nvim - plugin rewrite and new features

Grapple is a plugin that aims to provide immediate navigation to important files (and their last known cursor location). Grapple supports tag "scopes" which help keep tags scoped to the project, repo, or branch that you are working on. In addition, the navigation window can be edited like a normal buffer (think, oil.nvim) to make editing and selecting tags a breeze.

0.10 updates

  • Rewrite plugin
  • New Breaking changes
  • New File icon support
  • New Support for file URIs (i.e. "oil://")
  • New Single user command ("Grapple")
  • Improved Reworked Scopes API
  • Improved Better support for statusline components
  • Fixed Many bug fixes, and more

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