Compatibility
- 0.2.1 and main5.35.25.15.04.2
- 0.2.1 and mainiOSmacOS(Intel)macOS(ARM)LinuxtvOSwatchOS
A command-line tool and Swift Package for generating class diagrams powered by PlantUML
Generate UML class diagrams from swift code with this Command Line Interface (CLI) and Swift Package.
Use one or more Swift files as input for a diagram to visualize class
, struct
, protocol
, enum
and extension
types
with their instance and static members as well as their inheritance and implementation relationships
Example to generate and render diagram, based on a single Swift file, in your browser:
swiftplantuml ./Tests/SwiftPlantUMLFrameworkTests/TestData/basics.txt
Run swiftplantuml
in the directory containing the Swift files to be considered for diagram generation. Directories
will be searched recursively.
$ swiftplantuml classdiagram --help
OVERVIEW: Generate PlantUML script and view it and diagram in browser
USAGE: swift-plant-uml classdiagram [<paths> ...] [--output <format>]
ARGUMENTS:
<paths> List of paths to the files or directories containing
swift sources
OPTIONS:
--output <format> Defines output format. Options: browser,
browserImageOnly, consoleOnly (default: browser)
--version Show the version.
-h, --help Show help information.
As classdiagram
is the default subcommand you can omit it.
dependencies: [
.package(url: "https://github.com/MarcoEidinger/SwiftPlantUML.git", .upToNextMajor(from: "0.2.0"))
]
See MarcoEidinger/SwiftPlantUML-Xcode-Extension for more details
brew install MarcoEidinger/formulae/swiftplantuml
$ mint install MarcoEidinger/SwiftPlantUML
You can also build and install from source by cloning this project and running
make install
(Xcode 12 or later).
Manually Run the following commands to build and install manually:
$ git clone https://github.com/MarcoEidinger/SwiftPlantUML.git
$ cd SwiftPlantUML
$ make install
var count = 0
)
--textonly
option and adjust/use it with PlantUML tools directlyThis project was inspired by https://github.com/palaniraja and its various predecessors. Out of personal preference I chose to start a new project. I wanted to provide a tool for Swift developers written in Swift! This will hopefully allow me and potential contributors to work on planned improvements faster and more efficient.
Last but not least a big shoutout to the great developers of PlantUML and the people who operate the related online servers / tools available on http://plantuml.com/ and https://www.planttext.com/