# aliquote

## < a quantity that can be divided into another a whole number of time />

I think I reinstalled VS Code on my laptop one or two years ago. Since then, I never used it, and I found myself only updating the application and the limited set of extensions I installed alongside for one year long without even touching it. In fact, I was mostly interested in Language Server add-ons, but now that Neovim builtin LSP is quite stabilized, I believe I no longer need to check whether it works as expected (i.e., as it is expected to behave in VS Code or IntelliJ). In fact, I have everything at hand under Neovim, and it sparks joy.

I have a long series of posts about how I configured Neovim during last summer. Most of those settings are still relevant today, but I added a few packages, including debugging capabilities, $\TeX$ (see Texing in Vim) and Org (see Org in Vim) stuff, etc. Regarding LSP, I added specifically the following packages:

• nvim-lightbulb, because I wanted to have some idea of where code action were available. Since I don’t like intrusive help or notification, I choose to show them only for the current line thanks to an autocommand.
• lsp_extensions.nvim, only to display inlay for Rust code.
• lsp_codelens_extensions.nvim, to get pretty code lens actions right to a Rust test fn or for inline Haskell snippets.
• nvim-dap, nvim-dap-ui, nvim-dap-virtual-text, for debugging. I only trigger dap UI on demand, but I have virtual text activated automagically when I started a debugging session. I use it mostly for Python scripts. As an update to a previous micro-post, I even get this working for Haskell.
• neogen, because everyone likes docstrings.

Below are some demos (Python, Rust, Haskell) of what’s available in a modern Vim world nowadays.

• Left: highlight dap debugging with virtual text and LSP error/warning highlights in the status line (syntax and formatting errors deliberately added);
• Middle: Rust with inlay hints and code lens for test cases;
• Right: Haskell with Wingman code action.
[2021-03-08]
See also Neovim LSP to replace VSCode, or Neovim and Rust, which was featured on the Rust blog this month.

Happy coding in Neovim!

♪ Memory Cassett • Asleep at a Party