JetBrains IDE integration for SurrealQL (.surql / .surrealql files).
- Syntax highlighting via a TextMate grammar sourced from surrealdb/surrealql-vsx
- Grammar version picker: always stay on the latest release or pin to any older version
On startup the plugin fetches the list of published grammar versions from GitHub Releases and automatically downloads and activates the latest one.
To pin to an older version (or roll back when a regression is introduced):
- Open Settings → Tools → SurrealQL
- Select the desired version from the Version dropdown
- Click Apply — the grammar is swapped out immediately without restarting the IDE
If the IDE is offline at startup, the grammar bundled inside the plugin JAR is used as a fallback and the dropdown shows only "Latest (bundled)".
Requirements: JDK 17+, Gradle (or use ./gradlew).
./gradlew buildPluginThe distributable ZIP is produced at build/distributions/surql-jetbrains-<version>.zip.
To run the plugin in a sandboxed IDE instance:
./gradlew runIdeThe plugin ships a copy of the grammar inside the JAR so it works offline. Before cutting a
new plugin release, update this copy from the upstream main branch:
./gradlew updateGrammarCommit the changes in src/main/resources/textmate/surql/ as part of the release commit.
.surql file opened
└── SurQLTextMateBundleProvider.getBundles()
├── SurQLGrammarService.getCurrentPath() → downloaded version from GitHub
│ └── cached at $SYSTEM/surql-grammar-cache/{tag}/
└── fallback: built-in grammar from plugin JAR
→ TextMate syntax coloring applied to editor
- Documentation URL: https://surrealdb.com/docs/reference/query-language
- Source URL: https://github.com/surrealdb-dev/surql-jetbrains
- Bug tracker URL: https://github.com/surrealdb-dev/surql-jetbrains/issues
- License: Apache-2.0
Note: the
descriptionHTML inbuild.gradle.ktsis what gets uploaded with each new plugin version, but if you have manually edited the description on the publisher page the marketplace will keep its manual override and not auto-replace it on the next upload. Re-paste the generated description into the publisher page if you want HTML edits to take effect.
Apache-2.0 — see LICENSE.