This project uses a Tree-Sitter based parser library to define and (quickly) parse grammar for OpenFOAM files in an error-tolerant manner.
You're encouraged to run testOFFiles against your custom case files and report any failing files (or even significant drops in performance) on that repository.
PRs to improve the grammar and fix bugs are most welcome (It's a mixed C-Javascript project).
This project is written entirely in TypeScript. Please refer to CONTRIBUTING.md for best practices when wanting to PR to this repo.
This project is using jest unit testing framework to write tests for the critical functionalities (currently, only the core language server functionality is tested). You can add (Javascript code) unit tests yourself.
We're running CI for Ubuntu, MacOS and Windows to make sure everything runs smoothly everywhere, but you never know when things will fail. If you experience annoying/strange behavior, please open issues here. The CONTRIBUTING.md file also might help.
VS-Code does not have generic LSP client extensions, so each server must have a matching client.
Note that I don't indent to build an extensive VS-Code extension for OpenFOAM, as all of its features will be implemented on the server side. But, PRs to the client, which provide VS-Code specific functionality are still encouraged.
Language clients for your favorite text editor
Please note that NeoVim is the main text editor we're supporting. But the server will work on all editors which support the language server protocol and implement generic clients. If there is no client for your favorite one, please open an issue.
There are a few places where help is needed and much appreciated; This issue lists some:
The parser library
This project uses a Tree-Sitter based parser library to define and (quickly) parse grammar for OpenFOAM files in an error-tolerant manner.
The language server
The language server is the core project which provides intelliSense-like features to text editors.
jest
unit testing framework to write tests for the critical functionalities (currently, only the core language server functionality is tested). You can add (Javascript code) unit tests yourself.The language client for VS-Code
VS-Code does not have generic LSP client extensions, so each server must have a matching client. Note that I don't indent to build an extensive VS-Code extension for OpenFOAM, as all of its features will be implemented on the server side. But, PRs to the client, which provide VS-Code specific functionality are still encouraged.
Language clients for your favorite text editor
Please note that NeoVim is the main text editor we're supporting. But the server will work on all editors which support the language server protocol and implement generic clients. If there is no client for your favorite one, please open an issue.