Description
Please note that PlantUml is not a functional programming language but a static design DSL specifically for creating diagrams. PlantUml Language Service provides editor features for the PlantUml Language to Visual Studio (2017 / 2019). These features are listed and elaborated on below. In its default state the language service currently posts your markup to the PlantUml server for rendering in the same manner most PlantUml services provide. Client side rendering via GraphViz will be implemented in a future release. Credit
Features
Syntax Highlighting & File RecognitionSyntax elements recognised in the PlantUml grammar definition are highlighted accordingly for any of the following file types:
These files are indicated in the Solution Explorer with the following icon:
Auto CompleteRudimentary auto completion against symbols in the same file is provided. Because no cross-file symbols can be loaded, the language service assumes some user knowledge of the basic PlantUml syntax.
Preview DiagramsA context menu option has been added to the code window and solution explorer allowing for diagram generation of the selected/active PlantUml file. FeedbackThe preview window will render the diagram and provide feedback in a panel composed of 3 areas:
Badges
UrlsIf valid, the generated diagram url will be printed to the Output window. For ease of re-use in your documentation it will be printed in both standard html and markdown formats.
Language ReferenceA dockable Tool Window available under "View > Other Windows > PlantUml Language Reference" links to the latest PlantUml Reference Guide.
PreprocessorThe PlantUml Language Service respects all common preprocessor commands, and can use them even if they are nested. !includeWhile
If the file is not in the solution directory, or can otherwsie not be found or loaded, the diagram will render with warnings. To avoid warnings, or to use files located elsewhere on your computer, a custom flag has been created: -P (provide the full path).
Embedded MacrosSeveral macros have been embedded for simplicity. They can be imported into your diagram using the Please refer to the Full Readme on GitHub for more details. |