A Prettier plugin for formatting Modelica code.
Uses the tree-sitter-modelica grammar for parsing, which generates an abstract syntax tree (AST) that Prettier then formats back into consistently styled source code.
HTML annotations are formatted using Prettier's built-in HTML formatter.
Certain tags are excluded from formatting to preserve their original integration into the document:
see DEFAULT_PRESERVED_TAGS in src/print/html-formatter.ts.
From source:
git clone https://github.com/AntoineGautier/prettier-plugin-modelica.git
cd prettier-plugin-modelica
git submodule update --init
npm run setup
npm install && npm run build# Directly with prettier
prettier --plugin ./dist/index.js path/to/file.mo
# CLI equivalent
npm run format -- path/to/file.mo# Directly with prettier
prettier --plugin ./dist/index.js path/to/file.mo --write
# CLI equivalent
npm run format -- path/to/file.mo --write# Directly with prettier
prettier --plugin ./dist/index.js path/to/file.mo > formatted.mo
# CLI equivalent
npm run format -- path/to/file.mo --output formatted.monpm run format -- path/to/file.mo --checkTip
The --check option can be combined with --write or --output options.
If the correctness check fails, the formatting will not produce any output.
npm run parse -- path/to/file.moThe following constructs are currently not supported due to tree-sitter-modelica bugs.
type Logic = enumeration(
'U' "U Uninitialized",
'0' "0 Forcing 0",
'1' "1 Forcing 1",
'-' "- Do not care");model Demo
replaceable model Medium = Modelica.Media.Interfaces.PartialMedium
"Medium model" annotation (choicesAllMatching=true);
equation
end Demo;See CONTRIBUTING.md for commit message conventions and the release process.
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
See the LICENSE file for the full license text and copyright notice.