See the Development Guide for setup instructions.
Quick start:
pnpm install
pnpm watchThen press F5 in VS Code → Launch VS Code extension.
- Plugin System — Extension architecture
- Testing — Test patterns and helpers
- Common Tasks — Adding features
- CI/CD — Automated workflows
- Set
"prisma.trace.server": "messages"or"verbose"in VS Code settings to trace communication between VS Code and the language server. - Use the Language Server Protocol Inspector to visualize and filter LSP traffic (save logs from the output channel to a file).
Manual testing: see TESTING.md.
E2E tests:
pnpm test:e2e # from repository rootWhen you open a PR, the PR Build extension workflow automatically builds
and uploads a pr<NUMBER>-prisma.vsix file linked in a comment.
Via UI:
- In Extensions, filter with
@installed prisma - Disable Prisma and Prisma Insider extensions
- Extensions → ... → Install from VSIX...
Via command line:
# Download the artifact (replace <NUMBER> with PR number)
wget --content-disposition \
"https://github.com/prisma/language-tools/blob/artifacts/pull-request-artifacts/pr<NUMBER>-prisma.vsix?raw=true"
# Install it
code --install-extension pr<NUMBER>-prisma.vsix
# Launch with marketplace extensions disabled
code --disable-extension Prisma.prisma --disable-extension Prisma.prisma-insiderrm pr<NUMBER>-prisma.vsix
code --uninstall-extension Prisma.prisma-insider-pr-buildThe extension is automatically published via GitHub Actions using an Azure DevOps Personal Access Token.
Note: The token expires yearly and must be renewed manually.
Upon any Prisma dev release a new insiders release of the extension is automatically performed.
Upon any Prisma latest release a new stable release of the extension is automatically performed.
For releases that don't coincide with a Prisma ORM release:
Insider release:
- Push to
mainor a patch branch (e.g.,35.0.x) - Automatically triggers
1/2. Bump versions for extension only
Stable release:
- Manually trigger
1/2. Bump and release a stable version - Select release type:
patch,minor, ormajor
The @types/vscode version must be ≤ the engines.vscode version in
package.json, otherwise the extension cannot be packaged.