v4.1.0 Mason.nvim, exposing more config, profiler
Doom nvim's first minor release since v4.0.0. This release comes with lots of improvements.
New Github Organisation
Doom-nvim is now contained within the doom-neovim github organisation. @NTBBloodbath has stepped back from maintaining this project but may still help out with the odd task. Thanks for the work you've done so far @NTBBloodbath.
Mason.nvim
We've switched over to mason.nvim and now null-ls sources will also be automatically installed! This is indicated in the status line which can be clicked to bring up the null-ls menu.
More config options for languages
All language modules are now fully configurable by accessing the settings
field of the module.
-- config.lua
local csharp_settings = doom.langs.c_sharp.settings
print(csharp_settings.lsp_name) -- "omnisharp"
csharp_settings.lsp_name = "omnisharp_mono"
print(csharp_settings.formatting_package) -- "csharpier"
csharp_settings.formatting_package = nil -- Do not install csharpier mason.nvim package
csharp_settings.formatting_provider = "builtins.formatting.uncrustify" -- Use globally installed uncrustify binary
Inspect the source of the language modules to see which settings can be tweaked (not all langs have an LSP or a formatting provider). The next release will focus on documentation of all doom-nvim modules and you will be able to see these options using :h doom.langs.c_sharp
or via a website.
Profiler
A new command :DoomProfile
has been added that can help diagnose issues with slow startup times. This profiling only watches the internals of doom-nvim and does not profile packages. For that you'll need to check :PackerProfile
. The profiler defers almost all computation until you run :DoomProfile
so the increase in start up time is trivial. We will use this to continue to make doom-nvim faster. (Side note it can also be a useful trace when debugging issues).
Minor tweaks and improvements
- Using the profiler we were able to identify that Neorg was not being lazy-loaded correctly. This has been resolved and that should improve startup time by 100ms. The next step will be to auto install and configure DAPs for applicable languages.
<leader>.
Browse files keybind is now working correctly.<leader>cs
Browse document symbols keybind is now working correctly.- Added an option to ignore gcc/clang warning messages.
- Add
doom.core.treesitter.settings.show_compiler_warning_message = false
inconfig.lua
- Add
- Errors during language startup are now more descriptive and human readable.
What's Changed
- fix(langs,vue): Reconfigured to use single LSP instance.
- feat(core): Added
:DoomProfile
command to profile/trace internal startup time. - tweak(modules,neorg): Lazy-load neorg (-100ms on startup)
- feat(modules, linter): Show null-ls source in error.
- fix(modules,telescope): Fix
<leader>cs
symbols view - feat(modules,lsp): Cleaner completion menu
- fix(modules,telescope): Fixed filebrowser
<leader>.
not opening files. - feat(core,treesitter): Add option to opt out of gcc/clang warning message
- feat(core,langs): Improved error messaging with null-ls package install failures.
- feat(langs): Add
lsp_config
option to configure lsp provider. - fix(comments): Update plugin call convention by @Fryuni in #404
- fix(dashboard): Fix shortcuts shown on dashboard by @Fryuni in #403
- Fixed backup dirs & added doom-nvim installed check by @Coloursplash in #401
- feat(auto_install): Switch from nvim-lsp-installer to mason.nvim + various other improvements. by @connorgmeehan in #405
New Contributors
- @Coloursplash made their first contribution in #401
Full Changelog: v4.0.5...v4.1.0