Neovim 0.8
Release notes
Highlights
Tree-sitter and highlights
Highlight names now support @
and .
in names, so you can prefix your plugin
and segment your names by .
and @
.
highlight @boo.normal guifg=#000000 guibg=#ffffff
highlight link Normal @boo.normal
With Tree-sitter now setting these variables.
@tag
@text
@keyword
@function
See others with :hi @<Tab>
set cmdheight=0
New option, allows you to collapse your vim cmd line to 0 when not used. Considered experimental.
See :help cmdheight
.
set mouse
enabled by default
The mouse is now enabled by default. Added a right-click context UI. Configure
with set mouse
. See :help mouse
.
Options I landed on. Can temporarily disable the mouse by holding the shift button down.
vim.opt.mouse = "nv"
set mousescroll
Tree-sitter now supports spellchecking
Tree-sitter now supports better spell checking by only checking areas tagged as
@spell
and/or @comment
through Tree-sitter. You can now enable spell in more
places. See :help spell
.
- The
spellsitter.nvim
plugin has now been upstreamed into Neovim. - Reddit post
Lua require’s listed in –startuptime
nvim --startuptime startup.log
now shows lua requires. Good luck on your
startup journey.
013.494 000.009 000.009: require('vim.F')
013.553 002.464 002.455: require('vim.diagnostic')
014.156 000.595 000.595: require('plugins')
019.902 000.720 000.720: require('packer.util')
019.957 005.150 004.430: require('packer')
023.469 001.379 001.379: require('packer.log')
023.479 002.606 001.228: require('packer.async')
024.816 000.571 000.571: require('packer.result')
024.823 001.341 000.769: require('packer.jobs')
024.835 004.842 000.895: require('packer.plugin_utils')
025.618 000.764 000.764: require('packer.snapshot')
026.975 000.224 000.224: require('rockerboo.typescript')
More Tree-sitter injections
Injections allow other languages that can be injected (like inline CSS/JavaScript for HTML files). Or Lua inside Markdown files.
filetype.lua
enabled by default
New filetype
detection in Lua is now enabled by default.
vim.lsp.buf.format()
Much better integration than the raw vim.lsp.buf.formatting()
. Now has support
for filtering your clients due for formatting (like disabling tsserver
formatting for example), and selectively working on certain buffers.
See :help vim.lsp.buf.format
.
Bundled Lua, viml tree-sitter parsers into Neovim
Out of the box Lua and viml Tree-sitter should improve baseline support for internal languages.
Conclusion
Tree-sitter making a big step in integrating Lua and viml languages by default.
Finalizing filetype.lua to help streamline future improvements.
Mouse support by default allows some expected behavior in terms of scrolling and selecting text. Helps to smoothen the approach for those who are comfortable using a mouse to browse around.
Full release notes:
Note: Make sure you update your parsers if you are running the lastest version of nvim-treesitter. These queries as well as the new ones being bundled might need those to be updated with this new release. If you see nvim-treesitter/highlight bugs this would be recommended.