prettier-plugin-modelica
v0.1.1
Published
Prettier plugin for Modelica code formatting using tree-sitter
Downloads
351
Maintainers
Readme
prettier-plugin-modelica
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.
Installation
From npm:
npm install --save-dev prettier-plugin-modelica prettierFrom source (for contributing or testing unreleased changes):
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 buildUsage
[!NOTE] The examples below use
--plugin prettier-plugin-modelicaandnpx modelica-format, which apply when installed from npm. If you built from source instead, use--plugin ./dist/index.jsandnpm run format/npm run parse.
Format a file (preview to stdout)
# Directly with prettier
prettier --plugin prettier-plugin-modelica path/to/file.mo
# CLI equivalent
npx modelica-format path/to/file.moFormat and write back to the same file
# Directly with prettier
prettier --plugin prettier-plugin-modelica path/to/file.mo --write
# CLI equivalent
npx modelica-format path/to/file.mo --writeFormat and save to a different file
# Directly with prettier
prettier --plugin prettier-plugin-modelica path/to/file.mo > formatted.mo
# CLI equivalent
npx modelica-format path/to/file.mo -o formatted.moCheck correctness (the formatter doesn't break code)
npx modelica-format path/to/file.mo --check[!TIP] The
--checkoption can be combined with--writeor--outputoptions. If the correctness check fails, the formatting will not produce any output.
Simply parse (preview to stdout)
npm run parse -- path/to/file.moContributing
See CONTRIBUTING.md for commit message conventions and the release process.
License
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.
