Issue #32
Email Newsletter
Sign up with your email address to receive an email when a new issue of This Week in Neovim is available
Neovim Core updates {#core}
Updates of Neovim itself, which are available on Neovim nightly.
Important: if you are a plugin author, you are strongly advised to follow the #14090 breaking changes on master GitHub thread, as it contains important breaking changes information.
#22257 removed the (undocumented)
vim.g.ts_highlight_lua
variable that enabled treesitter highlighting for Lua files.This variable was only meant for easier testing during the last development cycle. To enable treesitter highlighting for Lua files (or any of the file types with a bundled parser), either put
vim.treesitter.start()
in a.config/nvim/ftplugin/lua.lua
(and/orhelp.lua
,c.lua
,vim.lua
) or in an autocommand like:vim.api.nvim_create_autocmd('FileType', { pattern = 'lua', -- or { 'lua', 'help' }, callback = function() vim.treesitter.start() end, })
Neovim Plugin Community updates {#plugins}
guides,-tours,-articles,-etc-{#guides}">Neovim is full of active plugins. This section is about the community and what is going on.
Guides, tours, articles, etc. {#guides}
How to migrate from Packer.nvim to Lazy.nvim
Elijah Manor published a new YouTube video
LazyVim: Tailwind CSS Support where he builds upon the base
LazyVim configuration to add support for Tailwind CSS. He leverages the
tailwindcss-language-server
LSP, and NvChad/nvim-colorizer.lua
for buffer colorization , and
roobert/tailwindcss-colorizer-cmp.nvim
for color swatches in the auto-completion. You can find his final configuration
from the video in a GitHub repository.
New plugins {#new-plugins}
floating-input.nvim
If you already use Telescope or FZF-Lua for a nice vim.ui.select
, and want a nice vim.ui.input
(e.g.
handling LSP rename), then this simple plugin might work.
It is only about ~50 lines of code, so you could either include the plugin or just copy the code to your config.
splitjoin.nvim
splitjoin.nvim
handles a common task when editing code: splitting and joining lists. The plugin is inspired by the
venerable old vim-mode-plus and is similar to the older, more
established, but envimscriptened SplitJoin.vim by Andrew Radev.
smartcolumn.nvim
Hide your colorcolumn
when unneeded.
bluloco.nvim
Bluloco is a fancy and sophisticated light and dark designer Neovim theme made with lush.nvim by @uloco.
It features a comprehensive usage of syntax scopes and color consistency, with due regards to aesthetics, contrast and readability. There is a light and dark variant, it's customizeable and most popular plugins are also supported!
This is a port of the popular Visual Studio Code Themes Bluloco Light and Bluloco Dark (~500k downloads together).
pets.nvim
A VS Code pets like plugin to show little pets in your editor. Currently only supports the kitty
terminal. Written by
@giusgad.
haxe-neovim
Do you dislike writing Neovim plugins in Lua? Imagine writing your plugins in a strictly typed language. It has been
possible to write Neovim plugins in different languages, transpiling them to Lua (example with
Fennel for emacs
aficionados). This new plugin written by
@danielo515 is more of a Haxe library than a real Neovim plugin.
It allows you to write your plugins in Haxe, which is pretty cool!
Good job!
panvimdoc
panvimdoc
contains a bash script that calls pandoc to use Pandoc's custom writer functionality
to convert a Markdown file to a vimdoc
file. A nice plugin by @kdheepak.
Updates {#updates}
nvim-jqx
If only one could easily browse and preview json files in neovim. Oh wait, nvim-jqx
does just that! nvim-jqx
is your
Neovim interface to json and yaml files: in the last release, the author has fixed a few bugs introduced by the latest
changes in yq
grammar and have added treesitter syntax highlight to the floating buffer.
bob
A version manager for neovim.
The Neovim version manager was released in version v2.0.0
. See the
release notes for further details about what has changed.
feline.nvim
A minimal, stylish and customizable statusline for Neovim written in Lua.
The plugin author made a public announcement regarding the maintainance status of the plugin. feline.nvim
is no
longer maintained and the GitHub repository has been archived. This is a
sad news and we wish the author, @Famiu, a good amount of rest and not to let go of making
their projects open-source and public. FOSS is hard, more often than we think, and this kind of dilemma happens all
the time. Don’t formalize too much and get well!
If you were using feline.nvim
as a statusline, several alternatives exist:
- You can make yours on your own if you don’t want to be too fancy. See the Did you know? section for more.
- rockerBOO/awesome-neovim has sections about this very topic:
Links:
mason-nvim-dap.nvim
A bridge between
mason.nvim
andnvim-dap
.
Major changes have happened lately in the Mason ecosystem. Non exhaustive list:
ensure_installed
accepts whatnull-ls
andnvim-dap
accept and not the name inmason
.mason-null-ls
is able to install new sources automatically as long as the casing followsSOURCE_NAME
, this would look for SOURCE-NAME
inmason.nvim
.- This allows less maintenance gith the introduction of new tools in both plugins.
setup_handler
has been ported over frommason-lspconfig
.mason-nvim-dap
is able to setup adapters and its configurations with sensible and overridable defaults.- Both adhere to SemVer.
- Several adapters have been added
mason-nvim-dap
. - Automatic_setup sets up the resource for you!
Links:
did-you-know?-{#tips}">Did you know? {#tips}
You can setup your own statusline without having to rely on a plugin. Even though the operation is slightly more complex than just customizing a statusline plugin, it’s not really rocket science. You have two options:
- Set your statusline to a simple string, using the various out-of-the-box interpolation variables.
- Set your statusline to a string starting with
%!
to execute a function that will be run everytime the statusline needs to be rerendered.
The builtin variables are pretty symbol to figure out and include things like:
- Path to the file in the buffer.
- The modified / readonly / etc. flags.
- Type of the buffer.
- Buffer number.
- Line / column / window number.
- Percentage in the file the vertical position is at.
- Various grouping mechanisms.
For more information, have a look at :help stl
.
Special thanks {#special-thanks}
These people help contributing various updates about Neovim and its ecosystem! Thanks for your contributions! ❤️
want-to-contribute?-{#contribute}">Want to contribute? {#contribute}
You have noticed something missing that you saw lately? Do not keep the candies for yourself and please feel free to share with us! You can open a PR at This Week In Neovim Contents.
Feel free to read how to contribute to get started.