Skip to content

dirkgroot/structurizr-dsl-intellij-plugin

Repository files navigation

Build JetBrains Plugins

IntelliJ plugin for the Structurizr DSL

Adds Structurizr DSL language support to IntelliJ.

Structurizr DSL is a domain specific language for creating architecture models and diagrams using Simon Brown's C4 model.

Note

This plugin is a work in progress! There may be bugs, and features that you might expect from a language plugin are missing. I'd love to get your feedback! You can leave feedback by writing a review, by filing an issue, or by starting a discussion.

Features

  • Basic syntax highlighting for the Structurizr DSL language. Files with the .dsl extension are considered to be Structurizr DSL files.
  • Automatically indent and normalize spacing with IntelliJ's "Reformat Code" command.
  • Automatically indent new code while typing
  • Comment code using the "Comment with line/block comment" commands
  • More to come! Please refer to the TODO section of the README for a list of features that will likely be added.

Decisions / limitations

  • For now, arguments of statements are all treated as (un)quoted strings, so "true", "false", integers, (un)quoted text will all get the same syntax highlighting.
  • The following blocks are treated as property blocks, containing (un)quoted string pairs:
    • perspectives
    • properties
    • users
  • All arguments of view declarations are highlighted as (un)quoted strings. Correct highlighting of these arguments will most likely be implemented using an annotator, instead of via lexer based highlighting.

Installation

Search for "Structurizr" in the marketplace, and install the plugin. Please refer to IntelliJ's documentation for instructions on how to install plugins.

TODO

Legend

  • 🔳 = todo
  • ☑️ = partially done
  • ✅ = done

Features

  • ✅ syntax highlighting
    • ✅ token based
    • ✅ annotator based
  • ✅ reformat code
  • ✅ auto indentation
  • 🔳 go to definition
  • 🔳 rename refactoring for identifiers
  • 🔳 code validation
  • 🔳 code completion
  • 🔳 quick documentation
  • 🔳 diagram preview
  • ...