Floating LSP windows now use Treesitter highlighting, VimConf 2023, better template strings, inline LSP references, Kitty integration, and Neovim config for Python development
Email Newsletter
Sign up with your email address to receive an email when a new issue of This Week in Neovim is available
Introduction
There are several updates from Neovim Core this week, guides and new plugins from the community. Plugins include enabling easier template string conversions, inline LSP references, a Kitty terminal integration, Kickstarter for Python Development, and more.
Hope you enjoy todays 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
- Updates for incorrect documentation
shm-f
is removed from shortmess flags. Always uses "(3 of 5)", never "(file 3 of 5)"- Deprecate
trim_empty_lines
- Support virtual text format for foldtext
- Change
vim.treesitter.preview_query()
tovim.treesitter.query.edit()
- Deprecate for_each_child in TreeSitter
- Support proper multiline ranges in extmark
Pretty LSP floating windows, now part of Neovim core
Floating windows for LSP hover and signature help will now use Treesitter highlighting!
VimConf 2023 Tiny [Tokyo, Japan]
VimConf returns after a 4 year break! VimConf is the world's first and only one conference about Vim regularly held by a community. This year it will be hosted November 18th in Tokyo, Japan.
Neovim Plugin Community
Neovim is full of active plugins. This section is about the community and what is going on.
Resources & articles
Using Neovim for C#
Moaid Hathot was invited by the .NET team to discuss how and why they use Neovim with C#, and how it led to the creation of Dumpify!
How to get started contributing to Neovim
Famiu recently made a very informative post on Reddit to act as a guide on how to get started contributing to Neovim.
New plugins
chrisgrieser/nvim-puppeteer
Automatically convert strings to f-strings or template strings and back.
- When typing {} in a python string, automatically convert it to an f-string.
- When typing ${} in a javascript or typescript string, automatically convert it to a template string.
- When removing the {} or ${}, automatically convert it back to a regular string.
- Also works with multi-line strings.
- No configuration needed, just install and you are ready to go.
Links:
Wansmer/symbol-usage.nvim
Display references, definitions and implementations of document symbols
Features:
- Shows references, definitions, and implementations as virtual text;
- Three options for display virtual text: above the line, end of line or near with textwidth;
- Works with LSP servers even client do not support textDocument/codeLens feature;
- Fully customizable: can be customized for different languages or use with default config for all;
- Ignores unnecessary requests to LSP;
Links:
chrisgrieser/nvim-tinygit
Lightweight and nimble git client for nvim.
Features:
- Smart-Commit: Open a popup to enter a commit message. If there are no staged changed, stages all changes before doing so (git add -A).
- Commit Messages have syntax highlighting, indicators for commit message overlength, and optionally enforce conventional commits keywords.
- Option to run git push in a non-blocking manner after committing.
- Quick amends.
- Search issues & PRs. Open the selected issue or PR in the browser.
- Open the GitHub URL of the current file or selection.
Links:
chrisgrieser/nvim-rulebook
Add inline-comments to ignore rules, or lookup rule documentation online.
Some LSPs provide code actions for inline-comments to ignore rules, or looking up rule documentation online. – this plugin adds commands for linters and LSPs that don't.
jonboh/nvim-dap-rr
Dap configuration for the record and replay debugger. Supports Rust, C++ and C.
The rr debugger allows you to record an execution and later replay it. In replay mode you get deterministic execution, and the ability to "time travel" in your debugging, going backwards and forwards tracking the state of your program.
With this plugin you can connect to a replay session and debug it as any other DAP compatible debugger.
chrisgrieser/nvim-kickstart-python
A launch point for your nvim configuration for Python
Features:
- Not a nvim-distro, but a nvim-starter-config like kickstart.nvim. It's meant as a launch point for creating your own neovim config.
- ~20 plugins, ~400 lines (including lots of comments explaining what the config does)
- fully bootstrapped: all plugins and tools are automatically installed via lazy & mason
- the setup includes some common tooling for python development: pyright, ruff, black, debugpy, iypthon-REPL
- state-of-the-art plugins of the nvim-ecosystem (e.g., conform.nvim & nvim-lint instead of null-ls) & some python-specific plugins
Links
judaew/ronny.nvim
Neovim/Vim color scheme inspired by Monokai theme
cryptomilk/nightcity.nvim
🏙 Night City - A dark colorscheme for Neovim with LSP support
coffebar/neovim-project
Neovim project manager maintains your recent project history and uses Telescope to select from autosaved sessions.
Features:
- Starts where you left off last time.
- Switch from project to project in second.
- Sessions and history can be synced across your devices (rsync, Syncthing, Nextcloud, Dropbox, etc.)
- Find all your projects by glob patterns defined in config.
- Autosave neo-tree.nvim expanded directories and buffers order in barbar.nvim.
Links:
sontungexpt/url-open
Minimal plugin allow you to open url under cursor in neovim without netrw with default browser of your system and highlight url
This plugin enables you to effortlessly open the URL under the cursor in Neovim, bypassing the need for netrw, and instead utilizing the default browser of your system. It provides the convenience of automatically detecting and highlighting all URLs within the text content.
sontungexpt/stcursorword
A minimal plugin to highlight the word under the cursor
mikesmithgh/kitty-scrollback.nvim
Navigate your Kitty scrollback buffer to quickly search, copy, or execute commands in Neovim.
Features:
- Navigate Kitty's scrollback buffer with Neovim
- Copy contents from Neovim to system clipboard
- Send contents from Neovim to Kitty shell
- Execute shell command from Neovim to Kitty shell
Links:
polirritmico/monokai-nightasty.nvim
A dark/light theme for Neovim based on the Monokai color palette writen in Lua, support for lsp, treesitter and lots of plugins.
Contributing
Add your the plugin in either of the following to be featured in This Week in Neovim and Dotfyle:
Contribute to the development of Dotfyle: