All Projects → kiebor → PlantUml-Language-Service

kiebor / PlantUml-Language-Service

Licence: MIT license
PlantUml Language Service extension for Visual Studio 2017 and 2019

Programming Languages

C#
18002 projects
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to PlantUml-Language-Service

Aws Plantuml
PlantUML sprites, macros, and other includes for AWS components.
Stars: ✭ 565 (+2254.17%)
Mutual labels:  graphviz, diagram, uml, plantuml
C4 Plantuml
C4-PlantUML combines the benefits of PlantUML and the C4 model for providing a simple way of describing and communicate software architectures
Stars: ✭ 3,522 (+14575%)
Mutual labels:  graphviz, diagram, uml, plantuml
Asciidoctor Kroki
Asciidoctor.js extension to convert diagrams to images using Kroki!
Stars: ✭ 55 (+129.17%)
Mutual labels:  graphviz, diagram, uml, plantuml
Azure Plantuml
PlantUML sprites, macros, and other includes for Azure services
Stars: ✭ 247 (+929.17%)
Mutual labels:  graphviz, diagram, uml, plantuml
swagger2puml
Generate Class Diagrams (UML) for Given Swagger Definition
Stars: ✭ 43 (+79.17%)
Mutual labels:  graphviz, uml, plantuml, uml-diagram
Arkit
JavaScript architecture diagrams and dependency graphs
Stars: ✭ 671 (+2695.83%)
Mutual labels:  diagram, uml, plantuml
Umldoclet
Automatically generate PlantUML diagrams in javadoc
Stars: ✭ 138 (+475%)
Mutual labels:  diagram, uml, plantuml
Plantuml Icon Font Sprites
plantuml-font-icon-sprites
Stars: ✭ 242 (+908.33%)
Mutual labels:  diagram, uml, plantuml
Kroki
Creates diagrams from textual descriptions!
Stars: ✭ 774 (+3125%)
Mutual labels:  graphviz, uml, plantuml
Asm Dude
Visual Studio extension for assembly syntax highlighting and code completion in assembly files and the disassembly window
Stars: ✭ 3,898 (+16141.67%)
Mutual labels:  syntax-highlighting, visual-studio, visual-studio-extension
IPlantUML
A Python package which defines a PlantUML cell magic for IPython.
Stars: ✭ 85 (+254.17%)
Mutual labels:  uml, plantuml, uml-diagram
ecto erd
A mix task for generating Entity Relationship Diagram from Ecto schemas available in your project.
Stars: ✭ 173 (+620.83%)
Mutual labels:  graphviz, uml, plantuml
idle
parse source code(objective-c, java) generate uml(class diagram)
Stars: ✭ 44 (+83.33%)
Mutual labels:  diagram, uml, plantuml
C4-PlantumlSkin
This library provides skinning to create C4 diagrams using PlantUml
Stars: ✭ 74 (+208.33%)
Mutual labels:  diagram, uml, plantuml
dcdg.dart
Dart Class Diagram Generator
Stars: ✭ 98 (+308.33%)
Mutual labels:  uml, plantuml, uml-diagram
PlantUML-colors
This script is to show all named color suggested by PlantUML
Stars: ✭ 52 (+116.67%)
Mutual labels:  uml, plantuml, uml-diagram
Protobuf Uml Diagram
Create UML diagrams from Protobuf compiled .proto files using Python
Stars: ✭ 17 (-29.17%)
Mutual labels:  graphviz, diagram, uml
plantuml2mysql
This utility parses PlantUML class diagram and generates SQL DDL for MySQL
Stars: ✭ 110 (+358.33%)
Mutual labels:  diagram, plantuml, uml-diagram
Nineties
💾 Colors for World Wide Web pioneers
Stars: ✭ 16 (-33.33%)
Mutual labels:  syntax-highlighting, visual-studio, textmate
Processing Vscode
A Visual Studio Code extension for the programming language Processing
Stars: ✭ 141 (+487.5%)
Mutual labels:  syntax-highlighting, visual-studio-extension

PlantUml Language Service

PlantUml

Available from Visual Studio Marketplace

Description

PlantUML is an open-source tool allowing users to create UML diagrams from a plain text language.

Wikipedia

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.

In versions 1.1.6 and later, the PlantUML server used to generate diagrams can be configured by setting the BaseUrl under Tools > Options > PlantUML. If not configured, the default of https://www.plantuml.com/plantuml/ will be used.

Credit

Features

More to be added over time ...


 

Syntax Highlighting & File Recognition

Syntax elements recognised in the PlantUml grammar definition are highlighted accordingly for any of the following file types:

  • .plantuml
  • .plant
  • .uml
  • .iuml
  • .puml
  • .pu

syntax

These files are indicated in the Solution Explorer with the following icon: UmlModel

 

Auto Complete

autocomplete

Rudimentary 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 Diagrams

A context menu option has been added to the code window and solution explorer allowing for diagram generation of the selected/active PlantUml file.

Feedback

The preview window will render the diagram and provide feedback in a panel composed of 3 areas:

  • Top Panel ~ collapsible holds the generated diagram url
  • Canvas ~ the rendered diagram
  • Badge ~ the error state indicator

preview

Badges
OK warn error unknown
OK Warning Error Unknown
Urls

If 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.

To ensure high quality, scalable diagrams, the default url route will resolve to svg format. To use png instead, modify the generated url at this section "http://www.plantuml.com/plantuml/<svg | png>/"

 

Language Reference

A dockable Tool Window available under "View > Other Windows > PlantUml Language Reference" links to the latest PlantUml Reference Guide.

 

Preprocessor

The PlantUml Language Service respects all common preprocessor commands, and can use them even if they are nested.

!include

While !include is usable within the language service, there are caveats:

  • makes use of files located inside the active solution directory
  • file to include should be specified [NAME].[EXTENSION]:

!include somefile.extension

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).

!include -p full/path/to/file

 

Embedded Macros

Several macros have been embedded for simplicity. They can be imported into your diagram using the !import command.

-- Happy to receive/include more --

- SysML (!import SysML)

Provides short hand commands to create and associate requirements, tests, and expectations:

Function Purpose
Requirement(name,definition) creates a requirement object with detail
BusinessNeed(name,definition) creates a business requirement with detail
Generic(name,definition) creates a generic entry with detail
TestWithScenario(name,testable) (where testable = existing requirement) creates a linked test
VerifyWithTest(testable) generates a linked test without scenario against a requirement
Option(requirement,name) creates an Options entry and associates with named requirement

all functions above accept a 3rd parameter for arrow direction and placement

Function Purpose
Test(name) create an unlinked test entry
Scenario(test,testable) associate a test with a requirement via scenario
Verify(requirement,testable) define acceptance as test verified for requirement
Associate(firstrequirement,secondrequirement) create association between 2 requirements
Derive(firstrequirement,secondrequirement) indicates requirement is derived from existing need
Expectation(requirement, detail) outlines the expectation of a requirement
Criticality(requirement, detail) describes the criticality of a requirement
Describe(requirement, detail) provides a simple description of a requirement

requirements

- Entities (!import Entities)

Provides stereotypes for Entity Relationship Mapping (see examples)

data_tables

- UseCase (!import UseCase)

Provides stereotypes for UseCase diagrams (see examples)

usecase

 

Embedded Skins

Several skins/themes have been embedded for simplicity. They can be imported into your diagram using the !theme command.

-- Happy to receive/include more -- please see resource for a base to work with

  • blue (!theme blue)
  • napkin (!theme napkin)
  • trans [transparent] (!theme trans)

 

Future

  • Reverse Dll to PlantUml Class diagrams
  • Document Generator
  • Code Generator
  • Simple Intellisense / Auto Complete for core keywords

To help realize these or to contribute please contact me.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].