-
Notifications
You must be signed in to change notification settings - Fork 51
Add exclusive routing to workspace-local Prisma Next language servers #1989
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
43 commits
Select commit
Hold shift + click to select a range
d3fae8d
test(vscode): add real multi-root integration workspace
StevenMcClankerton 997db88
feat(vscode): add document ownership coordinator
StevenMcClankerton e21d76c
fix(vscode): guard ownership commit effects
StevenMcClankerton a459ee2
fix(vscode): align ownership after async commits
StevenMcClankerton bb24c24
feat(vscode): gate bundled client by document owner
StevenMcClankerton d10f54b
fix(vscode): balance bundled document synchronization
StevenMcClankerton a75f6bb
fix(vscode): reset bundled state on restart
StevenMcClankerton bcefc7e
feat(vscode): start root-local Prisma Next clients
StevenMcClankerton 15e27dd
fix(vscode): launch local Prisma CLI with exact args
StevenMcClankerton 5a26332
feat(vscode): transfer Prisma document ownership
StevenMcClankerton a2a44d2
fix(vscode): cancel routing for closed documents
StevenMcClankerton 038dc7e
test(vscode): prove local Prisma Next routing
StevenMcClankerton 426e6a1
test(vscode): restore integration fixtures
StevenMcClankerton eee2aa6
test(vscode): make routing e2e setup deterministic
StevenMcClankerton 4d2f4ff
test(vscode): opt into bundled routing readiness
StevenMcClankerton a1d73fe
fix(vscode): await bundled client before routing
StevenMcClankerton deba8b4
fix(vscode): stabilize bundled client startup
StevenMcClankerton 379d007
fix(vscode): contain bundled client stop failures
StevenMcClankerton 9c89155
test(vscode): align routing diagnostics with local CLI
StevenMcClankerton bfb0210
test(vscode): preserve document EOL in routing E2E
StevenMcClankerton 6dee7f7
test(vscode): support renamed macOS executable
StevenMcClankerton fb1701c
ci: run extension e2e harness on Node 22
StevenMcClankerton ff84827
fix(vscode): make studio asset copy repeatable
StevenMcClankerton 89f6f7b
test(vscode): isolate Playwright Electron attempts
StevenMcClankerton cea546b
fix(vscode): shorten Playwright IPC paths on macOS
StevenMcClankerton 91fb3dc
test(vscode): verify side-by-side Prisma completions
StevenMcClankerton a81ac7e
docs(vscode): document completion routing oracle
StevenMcClankerton a0a2fb8
test(vscode): load Prisma 8 ORM config
StevenMcClankerton 4af47be
chore(vscode): type-check integration fixture lint
StevenMcClankerton f3b9117
fix(vscode): register local Prisma providers cross-platform
StevenMcClankerton d2544a0
fix(vscode): gate local semantic providers by owner
StevenMcClankerton 2603c15
fix(vscode): fork local Prisma language server
StevenMcClankerton 1a9070a
fix(vscode): use fixed Prisma 8 ORM stack
StevenMcClankerton d0285aa
test(vscode): use coherent Prisma 8 LSP build
StevenMcClankerton 0d18a36
refactor(vscode): clarify language server ownership
StevenMcClankerton 0d21c20
fix(vscode): preserve ownership through restart failures
StevenMcClankerton 04c1c98
fix(vscode): serialize legacy server restarts
StevenMcClankerton bcaa22a
fix(vscode): serialize language server disposal
StevenMcClankerton 8a7a933
fix(vscode): await plugin deactivation
StevenMcClankerton 907fb2a
docs: simplify Prisma Next routing guidance
StevenMcClankerton 6cde503
refactor(vscode): share document owner equality
StevenMcClankerton 8571037
fix(vscode): clean up failed Prisma Next clients
StevenMcClankerton 5280f73
fix(vscode): escape workspace glob roots
StevenMcClankerton File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,15 @@ | ||
| # Integration tests for the Language Server | ||
|
|
||
| Only one test per feature is done here. | ||
| The goal is to check that the integration is working between the VS Code extension and the Language Server. | ||
| Only one test per feature is done here. The goal is to check that the integration is working between the VS Code extension and the Language Server. | ||
|
|
||
| The integration runner opens `tests/fixtures/integration-workspace.code-workspace`. Its single root is a pnpm workspace importer containing the lockfile-resolved real `prisma@8.0.0-rc.10-dev.82` CLI with `@prisma/cli-engine@0.2.3` and `@prisma/orm-postgres@8.0.0-rc.7-dev.1` (resolving `@prisma/orm-toolchain@8.0.0-rc.7-dev.1`), plus a valid `prisma.config.ts` whose contract is only the marked `next.prisma` fixture. | ||
|
|
||
| Run the full minimum-and-latest integration suite with `pnpm test:integration`. Run the focused side-by-side completion suite on the minimum supported VS Code runtime with: | ||
|
|
||
| ```bash | ||
| pnpm --filter prisma test:integration:workspace | ||
| ``` | ||
|
|
||
| The focused suite opens an empty, unmarked `legacy.prisma` and a marked `next.prisma` in separate editor columns. It polls only the public `vscode.executeCompletionItemProvider` command with a fixed timeout. The legacy Prisma 7 language server must offer `datasource`, `generator`, and `model`, classify `datasource` as `CompletionItemKind.Class`, and omit `namespace`. The real Prisma Next server launched from the workspace-local Prisma 8 CLI must offer `namespace` as `CompletionItemKind.Keyword` with detail `PSL declaration keyword`, and omit `datasource`. | ||
|
|
||
| No mock language server or extension-private routing state is used. The test asserts observable editor behavior rather than owners, routing events, document synchronization bookkeeping, or process start counts. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.