Skip to content

specdd/intellij-plugin

Repository files navigation

SpecDD Language Support

SpecDD Language Support is an IntelliJ Platform plugin for working with SpecDD .sdd specification files.

SpecDD is an SDD framework for Specification-Driven Development: source-adjacent specifications that describe structure, behavior, constraints, and implementation authority next to the code they govern. Learn more at specdd.ai.

This plugin makes .sdd files more useful inside IntelliJ-based IDEs by adding language-aware editor support:

  • Syntax highlighting for SpecDD sections, tasks, key-value lines, comments, paths, symbols, and continuation text.
  • Validation for known section names, duplicate sections, invalid task states, indentation rules, and unsupported body text.
  • Structure view entries for sections in a SpecDD file.
  • Hover documentation for known SpecDD sections.
  • Completion for section names, project files, relative paths, and local symbols.
  • Clickable navigation for existing file and glob references.
  • Warnings and create-file quick fixes for unresolved exact file references inside the project.

Plugin structure

The project follows the standard IntelliJ Platform Gradle plugin layout:

.
├── build/                  Output build directory
├── fixtures/               Local SpecDD fixture files
├── gradle
│   ├── wrapper/            Gradle Wrapper
│   ├── libs.versions.toml  Version catalog
├── src                     Plugin sources and tests
│   ├── main
│   │   ├── kotlin/         Kotlin production sources
│   │   └── resources/      Resources - plugin.xml, icons, documentation
│   └── test
│       └── kotlin/         Kotest BehaviorSpec tests
├── app.sdd                 Repository-level SpecDD contract
├── .gitignore              Git ignoring rules
├── build.gradle.kts        Gradle build configuration
├── gradle.properties       Gradle configuration properties
├── gradlew                 *nix Gradle Wrapper script
├── gradlew.bat             Windows Gradle Wrapper script
├── README.md               README
└── settings.gradle.kts     Gradle project settings

The src directory contains the plugin implementation, packaged resources, tests, and local .sdd contracts. The plugin manifest is plugin.xml.

Note

Production plugin code lives under the ai.specdd.idea Kotlin package.

Plugin configuration file

The plugin configuration file is a plugin.xml file located in the src/main/resources/META-INF directory. It provides general information about the plugin, its dependencies, extensions, and listeners.

You can read more about this file in the Plugin Configuration File section of our documentation.

If you're still not quite sure what this is all about, read Introduction to IntelliJ Platform.

Predefined Run/Debug configurations

When run configurations are present, they expose the corresponding Gradle tasks:

Configuration name Description
Run Plugin Runs :runIde IntelliJ Platform Gradle Plugin task. Use the Debug icon for plugin debugging.
Run Tests Runs :test Gradle task.
Run Verifications Runs :verifyPlugin IntelliJ Platform Gradle Plugin task to check the plugin compatibility against the specified IntelliJ IDEs.

Note

You can find the logs from the running task in the idea.log tab.

Publishing the plugin

Tip

Make sure to follow all guidelines listed in Publishing a Plugin to follow all recommended and required steps.

Releasing a plugin to JetBrains Marketplace is a straightforward operation that uses the publishPlugin Gradle task provided by the intellij-platform-gradle-plugin.

You can also upload the plugin to the JetBrains Plugin Repository manually via UI.

Useful links

About

IntelliJ support for SpecDD `.sdd` specification files

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages