Skip to content

Commit 9673c71

Browse files
committed
Fix js/ts cross code block intellisense
We need to register support for the backing copilot scheme too, not just the panel scheme in core
1 parent 81e568c commit 9673c71

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

extensions/typescript-language-features/src/configuration/fileSchemes.ts

+11
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,13 @@ export const vsls = 'vsls';
1717
export const walkThroughSnippet = 'walkThroughSnippet';
1818
export const vscodeNotebookCell = 'vscode-notebook-cell';
1919
export const officeScript = 'office-script';
20+
21+
/** Used for code blocks in chat by vs code core */
2022
export const chatCodeBlock = 'vscode-chat-code-block';
2123

24+
/** Used for code blocks in chat by copilot. */
25+
export const chatBackingCodeBlock = 'vscode-copilot-chat-code-block';
26+
2227
export function getSemanticSupportedSchemes() {
2328
if (isWeb() && vscode.workspace.workspaceFolders) {
2429
return vscode.workspace.workspaceFolders.map(folder => folder.uri.scheme);
@@ -30,6 +35,7 @@ export function getSemanticSupportedSchemes() {
3035
walkThroughSnippet,
3136
vscodeNotebookCell,
3237
chatCodeBlock,
38+
chatBackingCodeBlock,
3339
];
3440
}
3541

@@ -42,3 +48,8 @@ export const disabledSchemes = new Set([
4248
github,
4349
azurerepos,
4450
]);
51+
52+
export function isOfScheme(uri: vscode.Uri, ...schemes: string[]): boolean {
53+
const normalizedUriScheme = uri.scheme.toLowerCase();
54+
return schemes.some(scheme => normalizedUriScheme === scheme);
55+
}

extensions/typescript-language-features/src/languageFeatures/workspaceSymbols.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ class TypeScriptWorkspaceSymbolProvider implements vscode.WorkspaceSymbolProvide
9494
}
9595

9696
const uri = this.client.toResource(item.file);
97-
if (uri.scheme === fileSchemes.chatCodeBlock) {
97+
if (fileSchemes.isOfScheme(uri, fileSchemes.chatCodeBlock, fileSchemes.chatBackingCodeBlock)) {
9898
return;
9999
}
100100

extensions/typescript-language-features/src/tsServer/bufferSyncSupport.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ class SyncedBuffer {
227227
return tsRoot?.startsWith(inMemoryResourcePrefix) ? undefined : tsRoot;
228228
}
229229

230-
return resource.scheme === fileSchemes.officeScript || resource.scheme === fileSchemes.chatCodeBlock ? '/' : undefined;
230+
return fileSchemes.isOfScheme(resource, fileSchemes.officeScript, fileSchemes.chatCodeBlock, fileSchemes.chatBackingCodeBlock) ? '/' : undefined;
231231
}
232232

233233
public get resource(): vscode.Uri {
@@ -752,7 +752,7 @@ export default class BufferSyncSupport extends Disposable {
752752
}
753753

754754
private shouldValidate(buffer: SyncedBuffer): boolean {
755-
if (buffer.resource.scheme === fileSchemes.chatCodeBlock) {
755+
if (fileSchemes.isOfScheme(buffer.resource, fileSchemes.chatCodeBlock, fileSchemes.chatBackingCodeBlock)) {
756756
return false;
757757
}
758758

0 commit comments

Comments
 (0)