No IDE no headache;
(Neo)VIM for the lazy Foamer
The stable stuff!
We’ll walk you through setting up your NeoVIM to work more effectively
with OpenFOAM case files!
- Here is an example NeoVim config.
- There is also a
foamscience/foam-language-server:latest
Docker image which has all required software.
Stable features
- Fast and fault-tolerant syntax highlighting using TreeSitter grammar
- Native handling of C++ code blocks
- Hustle-free folding
- Syntax-aware text objects
- Smart syntax-aware text subjects
- Context display
Notes to remember
-
Every feature has a demo, make sure to scroll down to view it
-
NeoVIM-specific technology is used here but everything
is easy to replicate in other editors, or even with (Neo)VIM using other plugins
-
You need at least NeoVim 0.6.0+
Highlighting C++ code blocks
Syntax-aware text objects
The UNstable stuff!
LSP features are still under development; but kind of useful already.
- Expect frequent changes
- Here, we’re using NeoVim’s native LSP client
- The following works also with VS-Code through this extension
Get the language server working!
Before showing you the features
- Please file bug reports if any unwanted behavior is observed.
- Or even better, solve the issues, and PR!
- You’re also welcome to discuss
any suggestions or feature requests you/others might have.
- You probably have all the following commands mapped to some keys, find them with
:map
- Better parsing performance
- Eventually, switch to native node bindings (using WASM bindings for now).
- Goal: No waiting time for full-case workspace symbols.
- Better server performance