Major mode for PlantUML files.
Supports
- Xref navigation of component definitions & references within the same file
- Generating png preview files using the plantuml jar & java
Adds the following keybindings
Keybinding | Feature |
---|---|
C-c C-c | Compile diagram to check for errors |
C-c C-p | Generate diagram preview |
C-c C-o | Generate diagram preview & open in external image viewer |
C-c ! | Select diagram type when starting a diagram |
C-c i | Insert a deployment diagram element with automatic alias generated |
C-u C-c i | Insert diagram element with prompt for alias |
C-c C-a t | Add title based on the file name |
C-c C-a h | Add Draft header |
C-c C-a f | Add footer based on the current date |
C-c r | Converts a selection to a set of component declarations with automatic alias generated by prompting for the component type (Use C-u to put alias after description eg. for sequence diagram participants) |
M-<up> | Move line up |
M-<down> | Move line down |
C-c c | Insert transparent rectangle container with dashed (Use C-u for dotted, C-u C-u for box) |
C-j | Expand special like emmet mode (Alternate C-<return>). Use C-u for dashed & C-u C-u for dotted |
C-c ' | Open included file when invoked from line with !include directive |
While there is already an excellent plantuml-mode available what is the reason of this package existing?
- Did not like
planutml-init
loading language keywords for each session - Did not like preview buffer popping up new window distracting the diagramming session
- Wanted errors in plantuml compilation to be easily accessible via the compilation-mode
- Wanted quick creation of plantuml diagram components
- Wanted jump-to-definition & list-references within the file
-
Imenu listings for component definitions
-
Simple emmet-mode like completions for relationships eg.
a->b,c<-d
expands toa --> b a --> c b <-- d c <-- d
Running
C-u C-j
on the same expression results ina ..> b a ..> c b <.. d c <.. d
Running
C-u C-u C-j
on the same expression results ina ~~> b a ~~> c b <~~ d c <~~ d
-
Convert region of text to component type declarations eg. selecting the following lines
Frontend API Data Base
And running
plantuml-convert-region
orC-c r
and selectingcomponent
for component type results incomponent fa as "Frontend API" component db as "Data Base"
While running
C-u C-c r
on the same selection and selectingparticipant
as the component type results inparticipant "Frontend API" as fa participant "Data Base" as db
-
Ensure a compatible Java Runtime Environment (JRE) is installed
-
Install the latest PlantUML jar file from https://github.com/plantuml/plantuml
-
Clone the repository into site-lisp in the emacs user directory
git clone https://github.com/xshyamx/simple-plantuml-mode \ $HOME/.emacs.d/site-lisp/simple-plantuml-mode
-
Add to
load-path
(add-to-list 'load-path (expand-file-name "site-lisp/simple-plantuml-mode" user-emacs-directory))
-
Load & configure
(require 'plantuml-mode) (setq plantuml-java-cmd "java" plantuml-jar-path (expand-file-name "~/.m2/repository/net/sourceforge/plantuml/plantuml/1.2022.12/plantuml-1.2022.12.jar"))