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