From a637321374a8fc356aac76bab04158d916a02e2f Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Tue, 22 Jul 2025 22:23:47 -0400 Subject: [PATCH 01/10] Fix the description of debugServerPath (#13778) This mentions the non-existent miDebugServerAddress, but the correct name is actually miDebuggerServerAddress. --- Extension/package.nls.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Extension/package.nls.json b/Extension/package.nls.json index 2b729a732..34295589f 100644 --- a/Extension/package.nls.json +++ b/Extension/package.nls.json @@ -895,7 +895,7 @@ "{Locked=\"`true`\"} {Locked=\"`processId`\"}" ] }, - "c_cpp.debuggers.debugServerPath.description": "Optional full path to the debug server to launch. Defaults to null. It is used in conjunction with either \"miDebugServerAddress\" or your own server with a \"customSetupCommand\" that runs \"-target-select remote \".", + "c_cpp.debuggers.debugServerPath.description": "Optional full path to the debug server to launch. Defaults to null. It is used in conjunction with either \"miDebuggerServerAddress\" or your own server with a \"customSetupCommand\" that runs \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Optional debug server args. Defaults to null.", "c_cpp.debuggers.serverStarted.description": "Optional server-started pattern to look for in the debug server output. Defaults to null.", "c_cpp.debuggers.filterStdout.description": "Search stdout stream for server-started pattern and log stdout to debug output. Defaults to true.", @@ -1084,4 +1084,4 @@ "c_cpp.configuration.refactoring.includeHeader.never.description": "Never include the header file.", "c_cpp.languageModelTools.configuration.displayName": "C/C++ configuration", "c_cpp.languageModelTools.configuration.userDescription": "Configuration of the active C or C++ file, like language standard version and target platform." -} \ No newline at end of file +} From 79fe240863bc6dba2af690b6351ee94a48dfe63c Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Tue, 29 Jul 2025 11:52:55 -0700 Subject: [PATCH 02/10] Enable string length encoding fix in cpptools (#13769) --- Extension/src/LanguageServer/client.ts | 21 +++++++++++++++---- .../src/LanguageServer/protocolFilter.ts | 4 ++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 1b33615b0..0f14b8fd7 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -28,7 +28,7 @@ import * as fs from 'fs'; import * as os from 'os'; import { SourceFileConfiguration, SourceFileConfigurationItem, Version, WorkspaceBrowseConfiguration } from 'vscode-cpptools'; import { IntelliSenseStatus, Status } from 'vscode-cpptools/out/testApi'; -import { CloseAction, DidOpenTextDocumentParams, ErrorAction, LanguageClientOptions, NotificationType, Position, Range, RequestType, ResponseError, TextDocumentIdentifier, TextDocumentPositionParams } from 'vscode-languageclient'; +import { CloseAction, ErrorAction, LanguageClientOptions, NotificationType, Position, Range, RequestType, ResponseError, TextDocumentIdentifier, TextDocumentPositionParams } from 'vscode-languageclient'; import { LanguageClient, ServerOptions } from 'vscode-languageclient/node'; import * as nls from 'vscode-nls'; import { DebugConfigurationProvider } from '../Debugger/configurationProvider'; @@ -590,6 +590,18 @@ export interface CopilotCompletionContextParams { doAggregateSnippets: boolean; } +export interface TextDocumentItemWithOriginalEncoding { + uri: string; + languageId: string; + version: number; + text: string; + originalEncoding: string; +} + +export interface DidOpenTextDocumentParamsWithOriginalEncoding { + textDocument: TextDocumentItemWithOriginalEncoding; +} + // Requests const PreInitializationRequest: RequestType = new RequestType('cpptools/preinitialize'); const InitializationRequest: RequestType = new RequestType('cpptools/initialize'); @@ -614,7 +626,7 @@ const CppContextRequest: RequestType = new RequestType('cpptools/getCompletionContext'); // Notifications to the server -const DidOpenNotification: NotificationType = new NotificationType('textDocument/didOpen'); +const DidOpenNotification: NotificationType = new NotificationType('cpptools/didOpen'); const FileCreatedNotification: NotificationType = new NotificationType('cpptools/fileCreated'); const FileChangedNotification: NotificationType = new NotificationType('cpptools/fileChanged'); const FileDeletedNotification: NotificationType = new NotificationType('cpptools/fileDeleted'); @@ -2327,12 +2339,13 @@ export class DefaultClient implements Client { // Only used in crash recovery. Otherwise, VS Code sends didOpen directly to native process (through the protocolFilter). public async sendDidOpen(document: vscode.TextDocument): Promise { - const params: DidOpenTextDocumentParams = { + const params: DidOpenTextDocumentParamsWithOriginalEncoding = { textDocument: { uri: document.uri.toString(), languageId: document.languageId, version: document.version, - text: document.getText() + text: document.getText(), + originalEncoding: document.encoding } }; await this.ready; diff --git a/Extension/src/LanguageServer/protocolFilter.ts b/Extension/src/LanguageServer/protocolFilter.ts index d6462072e..f87eee070 100644 --- a/Extension/src/LanguageServer/protocolFilter.ts +++ b/Extension/src/LanguageServer/protocolFilter.ts @@ -19,7 +19,7 @@ export const ServerCancelled: number = -32802; export function createProtocolFilter(): Middleware { return { - didOpen: async (document, sendMessage) => { + didOpen: async (document, _sendMessage) => { if (!util.isCpp(document)) { return; } @@ -44,8 +44,8 @@ export function createProtocolFilter(): Middleware { } // client.takeOwnership() will call client.TrackedDocuments.add() again, but that's ok. It's a Set. client.takeOwnership(document); - void sendMessage(document); client.ready.then(() => { + client.sendDidOpen(document).catch(logAndReturn.undefined); const cppEditors: vscode.TextEditor[] = vscode.window.visibleTextEditors.filter(e => util.isCpp(e.document)); client.onDidChangeVisibleTextEditors(cppEditors).catch(logAndReturn.undefined); }).catch(logAndReturn.undefined); From 19e68d1f8d52a674b52e7ebe78bd7116e6463b81 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Wed, 30 Jul 2025 04:23:40 -0700 Subject: [PATCH 03/10] Try to fix the Windows builds. (#13788) --- Build/cg/cg.yml | 4 ++-- Build/loc/TranslationsImportExport.yml | 4 ++-- Build/package/cpptools_extension_pack.yml | 4 ++-- Build/package/cpptools_themes.yml | 4 ++-- Build/publish/cpptools_extension_pack.yml | 4 ++-- Build/publish/cpptools_themes.yml | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Build/cg/cg.yml b/Build/cg/cg.yml index 61d2fbec1..d1fb39cc9 100644 --- a/Build/cg/cg.yml +++ b/Build/cg/cg.yml @@ -30,12 +30,12 @@ extends: parameters: pool: name: AzurePipelines-EO - image: AzurePipelinesWindows2022compliantGPT + image: 1ESPT-Windows2022 os: windows sdl: sourceAnalysisPool: name: AzurePipelines-EO - image: AzurePipelinesWindows2022compliantGPT + image: 1ESPT-Windows2022 os: windows binskim: preReleaseVersion: '4.3.1' diff --git a/Build/loc/TranslationsImportExport.yml b/Build/loc/TranslationsImportExport.yml index 861916252..78e33955b 100644 --- a/Build/loc/TranslationsImportExport.yml +++ b/Build/loc/TranslationsImportExport.yml @@ -30,12 +30,12 @@ extends: parameters: pool: name: AzurePipelines-EO - image: AzurePipelinesWindows2022compliantGPT + image: 1ESPT-Windows2022 os: windows sdl: sourceAnalysisPool: name: AzurePipelines-EO - image: AzurePipelinesWindows2022compliantGPT + image: 1ESPT-Windows2022 os: windows stages: - stage: stage diff --git a/Build/package/cpptools_extension_pack.yml b/Build/package/cpptools_extension_pack.yml index ef49f2128..a2f1e8820 100644 --- a/Build/package/cpptools_extension_pack.yml +++ b/Build/package/cpptools_extension_pack.yml @@ -24,12 +24,12 @@ extends: parameters: pool: name: AzurePipelines-EO - image: AzurePipelinesWindows2022compliantGPT + image: 1ESPT-Windows2022 os: windows sdl: sourceAnalysisPool: name: AzurePipelines-EO - image: AzurePipelinesWindows2022compliantGPT + image: 1ESPT-Windows2022 os: windows stages: diff --git a/Build/package/cpptools_themes.yml b/Build/package/cpptools_themes.yml index eec1ac9f2..f15eb25fa 100644 --- a/Build/package/cpptools_themes.yml +++ b/Build/package/cpptools_themes.yml @@ -24,12 +24,12 @@ extends: parameters: pool: name: AzurePipelines-EO - image: AzurePipelinesWindows2022compliantGPT + image: 1ESPT-Windows2022 os: windows sdl: sourceAnalysisPool: name: AzurePipelines-EO - image: AzurePipelinesWindows2022compliantGPT + image: 1ESPT-Windows2022 os: windows stages: diff --git a/Build/publish/cpptools_extension_pack.yml b/Build/publish/cpptools_extension_pack.yml index 9e93ee5c3..e78aba160 100644 --- a/Build/publish/cpptools_extension_pack.yml +++ b/Build/publish/cpptools_extension_pack.yml @@ -18,12 +18,12 @@ extends: parameters: pool: name: AzurePipelines-EO - image: AzurePipelinesWindows2022compliantGPT + image: 1ESPT-Windows2022 os: windows sdl: sourceAnalysisPool: name: AzurePipelines-EO - image: AzurePipelinesWindows2022compliantGPT + image: 1ESPT-Windows2022 os: windows stages: diff --git a/Build/publish/cpptools_themes.yml b/Build/publish/cpptools_themes.yml index b9b167a08..4e35a50c3 100644 --- a/Build/publish/cpptools_themes.yml +++ b/Build/publish/cpptools_themes.yml @@ -18,12 +18,12 @@ extends: parameters: pool: name: AzurePipelines-EO - image: AzurePipelinesWindows2022compliantGPT + image: 1ESPT-Windows2022 os: windows sdl: sourceAnalysisPool: name: AzurePipelines-EO - image: AzurePipelinesWindows2022compliantGPT + image: 1ESPT-Windows2022 os: windows stages: From 33bdfeb2e1077054104a06ec7aa60585cfbf9389 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Wed, 30 Jul 2025 12:08:46 -0700 Subject: [PATCH 04/10] Update IntelliSense loc strings. (#13793) --- Extension/bin/messages/cs/messages.json | 30 ++++++++++---------- Extension/bin/messages/de/messages.json | 32 +++++++++++----------- Extension/bin/messages/es/messages.json | 32 +++++++++++----------- Extension/bin/messages/fr/messages.json | 30 ++++++++++---------- Extension/bin/messages/it/messages.json | 30 ++++++++++---------- Extension/bin/messages/ja/messages.json | 30 ++++++++++---------- Extension/bin/messages/ko/messages.json | 30 ++++++++++---------- Extension/bin/messages/pl/messages.json | 30 ++++++++++---------- Extension/bin/messages/pt-br/messages.json | 30 ++++++++++---------- Extension/bin/messages/ru/messages.json | 30 ++++++++++---------- Extension/bin/messages/tr/messages.json | 30 ++++++++++---------- Extension/bin/messages/zh-cn/messages.json | 30 ++++++++++---------- Extension/bin/messages/zh-tw/messages.json | 30 ++++++++++---------- 13 files changed, 197 insertions(+), 197 deletions(-) diff --git a/Extension/bin/messages/cs/messages.json b/Extension/bin/messages/cs/messages.json index 8c3f4d5f6..f13f435d7 100644 --- a/Extension/bin/messages/cs/messages.json +++ b/Extension/bin/messages/cs/messages.json @@ -3657,19 +3657,19 @@ "řetězec mantissa neobsahuje platné číslo", "chyba v pohyblivé desetinné čárce při vyhodnocování konstanty", "ignorován dědičný konstruktor %n pro operace podobné kopírování/přesouvání", - "cannot determine size of file %s", - "cannot read %s", - "embed", - "unrecognized parameter name", - "parameter specified more than once", - "__has_embed cannot appear outside #if", - "could not set LC_NUMERIC locale to C", - "elifdef and elifndef are not enabled in this mode and are ignored in text being skipped", - "an alias declaration is nonstandard in this context", - "the target ABI may allocate nonstatic members in an order not matching their declaration order, which is nonstandard in C++23 and later", - "EDG IFC module interface unit", - "EDG IFC module partition unit", - "the module declaration cannot be exported from this translation unit unless creating a module interface file", - "the module declaration must be exported from this translation unit to create a module interface file", - "module file generation was requested but no module was declared in the translation unit" + "Nelze určit velikost souboru %s.", + "%s nejde přečíst.", + "vložit", + "Nerozpoznaný název parametru", + "Parametr byl zadán více než jednou.", + "__has_embed se nemůže objevit mimo #if", + "Národní prostředí LC_NUMERIC nelze nastavit na C.", + "Direktivy elifdef a elifndef nejsou v tomto režimu povolené a v textu, který se přeskočí, se ignorují.", + "Deklarace aliasu je v tomto kontextu nestandardní.", + "Cílová sada instrukcí ABI může přidělit nestatické členy v pořadí, které neodpovídá jejich pořadí deklarací, což není v jazyce C++23 a novějších standardní.", + "Jednotka rozhraní modulu EDG IFC", + "Jednotka oddílu modulu EDG IFC", + "Deklaraci modulu nelze z této jednotky překladu exportovat, pokud není vytvořen soubor rozhraní modulu.", + "Deklarace modulu se musí exportovat z této jednotky překladu, aby se vytvořil soubor rozhraní modulu.", + "Bylo požadováno generování souboru modulu, ale v jednotce překladu nebyl deklarován žádný modul." ] diff --git a/Extension/bin/messages/de/messages.json b/Extension/bin/messages/de/messages.json index 117e7d93f..9849ced48 100644 --- a/Extension/bin/messages/de/messages.json +++ b/Extension/bin/messages/de/messages.json @@ -3657,19 +3657,19 @@ "Die Zeichenfolge der Mantisse enthält keine gültige Zahl", "Gleitkommafehler während der Konstantenauswertung", "Der vererbende Konstruktor %n wird bei einem Vorgang wie Kopieren/Verschieben ignoriert", - "cannot determine size of file %s", - "cannot read %s", - "embed", - "unrecognized parameter name", - "parameter specified more than once", - "__has_embed cannot appear outside #if", - "could not set LC_NUMERIC locale to C", - "elifdef and elifndef are not enabled in this mode and are ignored in text being skipped", - "an alias declaration is nonstandard in this context", - "the target ABI may allocate nonstatic members in an order not matching their declaration order, which is nonstandard in C++23 and later", - "EDG IFC module interface unit", - "EDG IFC module partition unit", - "the module declaration cannot be exported from this translation unit unless creating a module interface file", - "the module declaration must be exported from this translation unit to create a module interface file", - "module file generation was requested but no module was declared in the translation unit" -] + "Die Größe der Datei \"%s\" kann nicht bestimmt werden.", + "\"%s\" kann nicht gelesen werden.", + "Einbetten", + "Unbekannter Parametername", + "Der Parameter wurde mehrfach angegeben.", + "__has_embed kann nicht außerhalb von \"#if\" vorkommen.", + "Das LC_NUMERIC-Gebietsschema konnte nicht auf C festgelegt werden.", + "\"elifdef\" und \"elifndef\" sind in diesem Modus nicht aktiviert und werden ignoriert, wenn Text übersprungen wird.", + "Eine Alias-Deklaration entspricht in diesem Kontext nicht dem Standard.", + "Die Ziel-ABI kann nicht-statische Mitglieder in einer Reihenfolge zuweisen, die nicht mit ihrer Deklarationsreihenfolge übereinstimmt, was in C++23 und später nicht standardkonform ist.", + "EDG-IFC-Modulschnittstelleneinheit", + "EDG-IFC-Modulpartitionseinheit", + "Die Moduldeklaration kann aus dieser Übersetzungseinheit exportiert werden, wenn eine Modulschnittstellendatei erstellt werden.", + "Die Moduldeklaration muss aus dieser Übersetzungseinheit exportiert werden, um eine Modulschnittstellendatei zu erstellen.", + "Die Moduldateigenerierung wurde angefordert, aber in der Übersetzungseinheit wurde kein Modul deklariert." +] \ No newline at end of file diff --git a/Extension/bin/messages/es/messages.json b/Extension/bin/messages/es/messages.json index c3d1b940d..9f7d4d13c 100644 --- a/Extension/bin/messages/es/messages.json +++ b/Extension/bin/messages/es/messages.json @@ -3657,19 +3657,19 @@ "La cadena de mantisa no contiene un número válido", "error de punto flotante durante la evaluación constante", "constructor heredado %n omitido para la operación de copia o movimiento", - "cannot determine size of file %s", - "cannot read %s", - "embed", - "unrecognized parameter name", - "parameter specified more than once", - "__has_embed cannot appear outside #if", - "could not set LC_NUMERIC locale to C", - "elifdef and elifndef are not enabled in this mode and are ignored in text being skipped", - "an alias declaration is nonstandard in this context", - "the target ABI may allocate nonstatic members in an order not matching their declaration order, which is nonstandard in C++23 and later", - "EDG IFC module interface unit", - "EDG IFC module partition unit", - "the module declaration cannot be exported from this translation unit unless creating a module interface file", - "the module declaration must be exported from this translation unit to create a module interface file", - "module file generation was requested but no module was declared in the translation unit" -] + "no se puede determinar el tamaño del archivo %s", + "no se puede leer %s", + "insertar", + "nombre de parámetro no reconocido", + "parámetro especificado más de una vez", + "__has_embed no puede aparecer fuera del #if", + "no se pudo establecer la configuración regional LC_NUMERIC en C", + "elifdef y elifndef no están habilitados en este modo y se omiten en el texto que se omite", + "una declaración de alias no es estándar en este contexto", + "la ABI de destino puede asignar miembros no estáticos en un orden que no coincida con su orden de declaración, que no es estándar en C++23 y versiones posteriores", + "Unidad de interfaz del módulo EDG IFC", + "Unidad de partición del módulo EDG IFC", + "la declaración de módulo no se puede exportar desde esta unidad de traducción a menos que se cree un archivo de interfaz de módulo", + "la declaración de módulo debe exportarse desde esta unidad de traducción para crear un archivo de interfaz de módulo", + "se solicitó la generación de archivos de módulo, pero no se declaró ningún módulo en la unidad de traducción" +] \ No newline at end of file diff --git a/Extension/bin/messages/fr/messages.json b/Extension/bin/messages/fr/messages.json index 4a8af0a2e..abaec876e 100644 --- a/Extension/bin/messages/fr/messages.json +++ b/Extension/bin/messages/fr/messages.json @@ -3657,19 +3657,19 @@ "la chaîne de mantisse ne contient pas de nombre valide", "erreur de point flottant lors de l’évaluation constante", "le constructeur d’héritage %n a été ignoré pour l’opération qui ressemble à copier/déplacer", - "cannot determine size of file %s", - "cannot read %s", - "embed", - "unrecognized parameter name", - "parameter specified more than once", - "__has_embed cannot appear outside #if", - "could not set LC_NUMERIC locale to C", - "elifdef and elifndef are not enabled in this mode and are ignored in text being skipped", - "an alias declaration is nonstandard in this context", - "the target ABI may allocate nonstatic members in an order not matching their declaration order, which is nonstandard in C++23 and later", - "EDG IFC module interface unit", - "EDG IFC module partition unit", - "the module declaration cannot be exported from this translation unit unless creating a module interface file", - "the module declaration must be exported from this translation unit to create a module interface file", - "module file generation was requested but no module was declared in the translation unit" + "impossible de déterminer la taille du fichier %s", + "impossible de lire %s", + "incorporer", + "nom de paramètre non reconnu", + "paramètre spécifié plusieurs fois", + "__has_embed ne peut pas apparaître en dehors de #if", + "impossible de définir la locale LC_NUMERIC sur C", + "elifdef et elifndef ne sont pas activés dans ce mode et sont ignorés dans le texte qui est omis", + "une déclaration d’alias n’est pas standard dans ce contexte", + "l’ABI cible peut allouer des membres non statiques dans un ordre qui ne correspond pas à leur ordre de déclaration, ce qui n’est pas standard dans C++23 et versions ultérieures", + "Unité d’interface de module IFC EDG", + "Unité de partition de module IFC EDG", + "la déclaration de module ne peut pas être exportée à partir de cette unité de traduction, sauf si vous créez un fichier d’interface de module", + "la déclaration de module doit être exportée depuis cette unité de traduction pour créer un fichier d’interface de module", + "la génération du fichier de module a été demandée, mais aucun module n’a été déclaré dans l’unité de traduction" ] diff --git a/Extension/bin/messages/it/messages.json b/Extension/bin/messages/it/messages.json index ca2a9ced5..2bf534593 100644 --- a/Extension/bin/messages/it/messages.json +++ b/Extension/bin/messages/it/messages.json @@ -3657,19 +3657,19 @@ "la stringa mantissa non contiene un numero valido", "errore di virgola mobile durante la valutazione costante", "eredità del costruttore %n ignorata per l'operazione analoga a copia/spostamento", - "cannot determine size of file %s", - "cannot read %s", - "embed", - "unrecognized parameter name", - "parameter specified more than once", - "__has_embed cannot appear outside #if", - "could not set LC_NUMERIC locale to C", - "elifdef and elifndef are not enabled in this mode and are ignored in text being skipped", - "an alias declaration is nonstandard in this context", - "the target ABI may allocate nonstatic members in an order not matching their declaration order, which is nonstandard in C++23 and later", - "EDG IFC module interface unit", - "EDG IFC module partition unit", - "the module declaration cannot be exported from this translation unit unless creating a module interface file", - "the module declaration must be exported from this translation unit to create a module interface file", - "module file generation was requested but no module was declared in the translation unit" + "impossibile determinare le dimensioni del file %s", + "impossibile leggere %s", + "incorporare", + "nome del parametro non riconosciuto", + "parametro specificato più di una volta", + "non è possibile specificare __has_embed all'esterno di #if", + "impossibile impostare le impostazioni locali LC_NUMERIC su C", + "elifdef e elifndef non sono abilitati in questa modalità e vengono ignorati nel testo saltato", + "una dichiarazione alias non è standard in questo contesto", + "l'ABI di destinazione può allocare membri non statici in un ordine non corrispondente all'ordine di dichiarazione, il che non è conforme allo standard in C++23 e versioni successive", + "unità di interfaccia del modulo EDG IFC", + "unità di partizione del modulo IFC EDG", + "la dichiarazione del modulo non può essere esportata da questa unità di conversione a meno che non si crei un file di interfaccia del modulo", + "la dichiarazione del modulo deve essere esportata da questa unità di conversione per creare un file di interfaccia del modulo", + "è stata richiesta la generazione di file di modulo, ma non è stato dichiarato alcun modulo nell'unità di conversione" ] diff --git a/Extension/bin/messages/ja/messages.json b/Extension/bin/messages/ja/messages.json index 839d31c5f..8017c2499 100644 --- a/Extension/bin/messages/ja/messages.json +++ b/Extension/bin/messages/ja/messages.json @@ -3657,19 +3657,19 @@ "仮数の文字列に有効な数値が含まれていません", "定数の評価中に浮動小数点エラーが発生しました", "コンストラクターの継承 %n は、コピーや移動と似た操作では無視されます", - "cannot determine size of file %s", - "cannot read %s", - "embed", - "unrecognized parameter name", - "parameter specified more than once", - "__has_embed cannot appear outside #if", - "could not set LC_NUMERIC locale to C", - "elifdef and elifndef are not enabled in this mode and are ignored in text being skipped", - "an alias declaration is nonstandard in this context", - "the target ABI may allocate nonstatic members in an order not matching their declaration order, which is nonstandard in C++23 and later", - "EDG IFC module interface unit", - "EDG IFC module partition unit", - "the module declaration cannot be exported from this translation unit unless creating a module interface file", - "the module declaration must be exported from this translation unit to create a module interface file", - "module file generation was requested but no module was declared in the translation unit" + "ファイル %s のサイズを特定できません", + "%s を読み取れません", + "埋め込み", + "認識されないパラメーター名", + "パラメーターが複数回指定されました", + "__has_embed は #if の外側には出現できません", + "LC_NUMERIC ロケールを C に設定できませんでした", + "elifdef と elifndef はこのモードでは有効になっておらず、スキップされるテキストでは無視されます", + "エイリアス宣言は、このコンテキストでは非標準です", + "ターゲット ABI は、宣言順序と一致しない順序で非静的メンバーを割り当てる可能性があります。これは、C++23 以降では非標準です", + "EDG IFC モジュール インターフェイス ユニット", + "EDG IFC モジュール パーティション ユニット", + "モジュール インターフェイス ファイルを作成しない限り、モジュール宣言をこの翻訳単位からエクスポートすることはできません", + "モジュール インターフェイス ファイルを作成するには、この翻訳単位からモジュール宣言をエクスポートする必要があります", + "モジュール ファイルの生成が要求されましたが、翻訳単位でモジュールが宣言されていません" ] diff --git a/Extension/bin/messages/ko/messages.json b/Extension/bin/messages/ko/messages.json index 0bd4b8416..8ec93910a 100644 --- a/Extension/bin/messages/ko/messages.json +++ b/Extension/bin/messages/ko/messages.json @@ -3657,19 +3657,19 @@ "mantissa 문자열에 올바른 숫자가 없습니다.", "상수 평가 중 부동 소수점 오류", "복사/이동과 유사한 작업에 대해 상속 생성자 %n이(가) 무시됨", - "cannot determine size of file %s", - "cannot read %s", - "embed", - "unrecognized parameter name", - "parameter specified more than once", - "__has_embed cannot appear outside #if", - "could not set LC_NUMERIC locale to C", - "elifdef and elifndef are not enabled in this mode and are ignored in text being skipped", - "an alias declaration is nonstandard in this context", - "the target ABI may allocate nonstatic members in an order not matching their declaration order, which is nonstandard in C++23 and later", - "EDG IFC module interface unit", - "EDG IFC module partition unit", - "the module declaration cannot be exported from this translation unit unless creating a module interface file", - "the module declaration must be exported from this translation unit to create a module interface file", - "module file generation was requested but no module was declared in the translation unit" + "파일 %s의 크기를 확인할 수 없습니다.", + "%s을(를) 읽을 수 없습니다.", + "포함", + "인식할 수 없는 매개 변수 이름입니다.", + "매개 변수가 두 번 이상 지정되었습니다.", + "__has_embed는 #if 외부에 사용할 수 없습니다.", + "LC_NUMERIC 로캘을 C로 설정할 수 없습니다.", + "elifdef와 elifndef는 이 모드에서 사용할 수 없으며 건너뛰는 텍스트에서 무시됩니다.", + "별칭 선언은 이 컨텍스트에서 비표준입니다.", + "대상 ABI는 선언 순서와 일치하지 않는 순서로 비정적 멤버를 할당할 수 있습니다. 이는 C++23 이상에서 비표준입니다.", + "EDG IFC 모듈 인터페이스 단위", + "EDG IFC 모듈 파티션 단위", + "모듈 인터페이스 파일을 만들지 않으면 이 변환 단위에서 모듈 선언을 내보낼 수 없습니다.", + "모듈 인터페이스 파일을 만들려면 이 변환 단위에서 모듈 선언을 내보내야 합니다.", + "모듈 파일 생성이 요청되었지만 변환 단위에 모듈이 선언되지 않았습니다." ] diff --git a/Extension/bin/messages/pl/messages.json b/Extension/bin/messages/pl/messages.json index 286042b0a..5cdebc2cd 100644 --- a/Extension/bin/messages/pl/messages.json +++ b/Extension/bin/messages/pl/messages.json @@ -3657,19 +3657,19 @@ "ciąg mantysy nie zawiera prawidłowej liczby", "błąd zmiennoprzecinkowy podczas obliczania stałej", "dziedziczenie konstruktora %n zostało zignorowane dla operacji kopiowania/przenoszenia", - "cannot determine size of file %s", - "cannot read %s", - "embed", - "unrecognized parameter name", - "parameter specified more than once", - "__has_embed cannot appear outside #if", - "could not set LC_NUMERIC locale to C", - "elifdef and elifndef are not enabled in this mode and are ignored in text being skipped", - "an alias declaration is nonstandard in this context", - "the target ABI may allocate nonstatic members in an order not matching their declaration order, which is nonstandard in C++23 and later", - "EDG IFC module interface unit", - "EDG IFC module partition unit", - "the module declaration cannot be exported from this translation unit unless creating a module interface file", - "the module declaration must be exported from this translation unit to create a module interface file", - "module file generation was requested but no module was declared in the translation unit" + "nie można określić rozmiaru pliku %s", + "nie można odczytać %s", + "osadź", + "nierozpoznana nazwa parametru", + "parametr określony co najmniej raz", + "element __has_embed nie może występować poza wyrażeniem #if", + "nie można ustawić parametru C dla ustawień regionalnych z parametrem LC_NUMERIC", + "dyrektywy elifdef i elifndef nie są włączone w tym trybie i są ignorowane w pomijanym tekście", + "deklaracja aliasu jest niestandardowa w tym kontekście", + "docelowy zestaw instrukcji ABI może przydzielać niestatyczne składowe w kolejności, która nie odpowiada ich kolejności w deklaracji, co jest niestandardowe w wersji języka C++23 i nowszych wersjach", + "jednostka interfejsu modułu EDG IFC", + "jednostka partycji modułu EDG IFC", + "deklaracja modułu nie może być wyeksportowana z tej jednostki translacji, chyba że zostanie utworzony plik interfejsu modułu", + "deklaracja modułu musi być wyeksportowana z tej jednostki translacji, aby utworzyć plik interfejsu modułu", + "zażądano wygenerowania pliku modułu, ale w jednostce translacji nie zadeklarowano żadnego modułu" ] diff --git a/Extension/bin/messages/pt-br/messages.json b/Extension/bin/messages/pt-br/messages.json index d1a3f8703..4ada72d0b 100644 --- a/Extension/bin/messages/pt-br/messages.json +++ b/Extension/bin/messages/pt-br/messages.json @@ -3657,19 +3657,19 @@ "cadeia de mantissa não contém um número válido", "erro de ponto flutuante durante a avaliação da constante", "construtor herdado %n ignorado para operação do tipo cópia/movimento", - "cannot determine size of file %s", - "cannot read %s", - "embed", - "unrecognized parameter name", - "parameter specified more than once", - "__has_embed cannot appear outside #if", - "could not set LC_NUMERIC locale to C", - "elifdef and elifndef are not enabled in this mode and are ignored in text being skipped", - "an alias declaration is nonstandard in this context", - "the target ABI may allocate nonstatic members in an order not matching their declaration order, which is nonstandard in C++23 and later", - "EDG IFC module interface unit", - "EDG IFC module partition unit", - "the module declaration cannot be exported from this translation unit unless creating a module interface file", - "the module declaration must be exported from this translation unit to create a module interface file", - "module file generation was requested but no module was declared in the translation unit" + "não é possível determinar o tamanho do arquivo %s", + "não é possível ler %s", + "inserir", + "nome do parâmetro não reconhecido", + "parâmetro especificado mais de uma vez", + "__has_embed não pode aparecer fora de #if", + "não foi possível definir a localidade LC_NUMERIC como C", + "elifdef e elifndef não estão habilitados neste modo e são ignorados no texto que está sendo pulado", + "uma declaração de alias não é padrão neste contexto", + "a ABI de destino pode alocar membros não estáticos em uma ordem que não corresponde à ordem de declaração, que não é padrão no C++23 e posterior", + "Unidade de interface do módulo EDG IFC", + "Unidade de partição do módulo EDG IFC", + "a declaração de módulo não pode ser exportada desta unidade de tradução, a menos que crie um arquivo de interface de módulo", + "a declaração do módulo deve ser exportada desta unidade de tradução para criar um arquivo de interface de módulo", + "a geração de arquivo de módulo foi solicitada, mas nenhum módulo foi declarado na unidade de tradução" ] diff --git a/Extension/bin/messages/ru/messages.json b/Extension/bin/messages/ru/messages.json index 5bbd56c7f..230610ab4 100644 --- a/Extension/bin/messages/ru/messages.json +++ b/Extension/bin/messages/ru/messages.json @@ -3657,19 +3657,19 @@ "строка мантиссы не содержит допустимого числа", "ошибка с плавающей запятой во время вычисления константы", "наследование конструктора %n игнорируется для операций, подобных копированию и перемещению", - "cannot determine size of file %s", - "cannot read %s", - "embed", - "unrecognized parameter name", - "parameter specified more than once", - "__has_embed cannot appear outside #if", - "could not set LC_NUMERIC locale to C", - "elifdef and elifndef are not enabled in this mode and are ignored in text being skipped", - "an alias declaration is nonstandard in this context", - "the target ABI may allocate nonstatic members in an order not matching their declaration order, which is nonstandard in C++23 and later", - "EDG IFC module interface unit", - "EDG IFC module partition unit", - "the module declaration cannot be exported from this translation unit unless creating a module interface file", - "the module declaration must be exported from this translation unit to create a module interface file", - "module file generation was requested but no module was declared in the translation unit" + "не удается определить размер файла %s", + "не удается прочитать %s", + "внедрить", + "нераспознанное имя параметра", + "параметр указан несколько раз", + "__has_embed запрещено указывать за пределами #if", + "не удалось установить для языкового стандарта LC_NUMERIC значение C", + "параметры elifdef и elifndef не включены в этом режиме и игнорируются в пропускаемом тексте", + "объявление псевдонима является нестандартным в этом контексте", + "целевой ABI может выделять нестатические элементы в порядке, не соответствующем их порядку объявления, что является нестандартным в C++23 и более поздних версиях", + "единица интерфейса модуля EDG IFC", + "единица раздела модуля EDG IFC", + "объявление модуля невозможно экспортировать из этой единицы трансляции, если не создается файл интерфейса модуля", + "объявление модуля должно быть экспортировано из этой единицы трансляции для создания файла интерфейса модуля", + "запрошено создание файла модуля, но в единице трансляции не объявлен модуль" ] diff --git a/Extension/bin/messages/tr/messages.json b/Extension/bin/messages/tr/messages.json index 8478a0bab..5cf1e1114 100644 --- a/Extension/bin/messages/tr/messages.json +++ b/Extension/bin/messages/tr/messages.json @@ -3657,19 +3657,19 @@ "mantissa dizesi geçerli bir sayı içermiyor", "sabit değerlendirme sırasında kayan nokta hatası", "kopyalama/taşıma benzeri işlem için %n oluşturucusunu devralma yoksayıldı", - "cannot determine size of file %s", - "cannot read %s", - "embed", - "unrecognized parameter name", - "parameter specified more than once", - "__has_embed cannot appear outside #if", - "could not set LC_NUMERIC locale to C", - "elifdef and elifndef are not enabled in this mode and are ignored in text being skipped", - "an alias declaration is nonstandard in this context", - "the target ABI may allocate nonstatic members in an order not matching their declaration order, which is nonstandard in C++23 and later", - "EDG IFC module interface unit", - "EDG IFC module partition unit", - "the module declaration cannot be exported from this translation unit unless creating a module interface file", - "the module declaration must be exported from this translation unit to create a module interface file", - "module file generation was requested but no module was declared in the translation unit" + "%s dosyasının boyutu belirlenemiyor", + "%s okunamıyor", + "ekle", + "tanınmayan parametre adı", + "parametre birden fazla kez belirtildi", + "__has_embed, #if dışında görünemez.", + "LC_NUMERIC yerel ayarı C olarak ayarlanamadı.", + "elifdef ve elifndef bu modda etkin değildir ve atlanan metinde yok sayılır.", + "Bu bağlamda bir takma ad bildirimi standart değildir.", + "Hedef ABI, statik olmayan üyeleri, C++23 ve sonraki sürümlerde standart olmayan, bildirim sırasına uymayan bir sırayla tahsis edebilir.", + "EDG IFC modülü arabirim ünitesi", + "EDG IFC modül bölme ünitesi", + "modül arabirimi dosyası oluşturulmadıkça, modül bildirimi bu çeviri biriminden dışa aktarılamaz", + "modül arabirim dosyası oluşturmak için modül bildirimi bu çeviri biriminden dışa aktarılmalıdır", + "modül dosyası oluşturulması istendi, ancak çeviri biriminde hiçbir modül bildirilmedi" ] diff --git a/Extension/bin/messages/zh-cn/messages.json b/Extension/bin/messages/zh-cn/messages.json index 5f10c692e..4b9b3e3e3 100644 --- a/Extension/bin/messages/zh-cn/messages.json +++ b/Extension/bin/messages/zh-cn/messages.json @@ -3657,19 +3657,19 @@ "mantissa 字符串不包含有效的数字", "常量计算期间出现浮点错误", "对于复制/移动类操作,已忽略继承构造函数 %n", - "cannot determine size of file %s", - "cannot read %s", - "embed", - "unrecognized parameter name", - "parameter specified more than once", - "__has_embed cannot appear outside #if", - "could not set LC_NUMERIC locale to C", - "elifdef and elifndef are not enabled in this mode and are ignored in text being skipped", - "an alias declaration is nonstandard in this context", - "the target ABI may allocate nonstatic members in an order not matching their declaration order, which is nonstandard in C++23 and later", - "EDG IFC module interface unit", - "EDG IFC module partition unit", - "the module declaration cannot be exported from this translation unit unless creating a module interface file", - "the module declaration must be exported from this translation unit to create a module interface file", - "module file generation was requested but no module was declared in the translation unit" + "无法确定文件 %s 的大小", + "无法读取 %s", + "嵌入", + "无法识别的参数名称", + "多次指定参数", + "__has_embed 不能出现在 #if 外部", + "无法将 LC_NUMERIC 区域设置设为 C", + "elifdef 和 elifndef 在此模式下未启用,并且在跳过的文本中将被忽略", + "别名声明在此上下文中是非标准的", + "目标 ABI 可以按与其声明顺序不匹配的顺序分配非静态成员,这在 C++23 及更高版本中是非标准的", + "EDG IFC 模块接口单元", + "EDG IFC 模块分区单元", + "除非创建模块接口文件,否则无法从此翻译单元导出模块声明", + "模块声明必须从此翻译单元导出,以创建模块接口文件", + "已请求生成模块文件,但在翻译单元中未声明任何模块" ] diff --git a/Extension/bin/messages/zh-tw/messages.json b/Extension/bin/messages/zh-tw/messages.json index fa871f7e5..39cd0563a 100644 --- a/Extension/bin/messages/zh-tw/messages.json +++ b/Extension/bin/messages/zh-tw/messages.json @@ -3657,19 +3657,19 @@ "Mantissa 字串未包含有效的數字", "常數評估期間發生浮點錯誤", "繼承建構函式 %n 已略過複製/移動之類作業", - "cannot determine size of file %s", - "cannot read %s", - "embed", - "unrecognized parameter name", - "parameter specified more than once", - "__has_embed cannot appear outside #if", - "could not set LC_NUMERIC locale to C", - "elifdef and elifndef are not enabled in this mode and are ignored in text being skipped", - "an alias declaration is nonstandard in this context", - "the target ABI may allocate nonstatic members in an order not matching their declaration order, which is nonstandard in C++23 and later", - "EDG IFC module interface unit", - "EDG IFC module partition unit", - "the module declaration cannot be exported from this translation unit unless creating a module interface file", - "the module declaration must be exported from this translation unit to create a module interface file", - "module file generation was requested but no module was declared in the translation unit" + "無法判斷檔案 %s 的大小", + "無法讀取 %s", + "內嵌", + "無法辨識的參數名稱", + "參數已指定一次以上", + "__has_embed 無法出現在外部 #if", + "無法將 LC_NUMERIC 地區設定設為 C", + "elifdef 和 elifndef 未在此模式中啟用,而且會在略過的文字中遭到忽略", + "別名宣告在此內容中並非標準用法", + "目標 ABI 可能會以不符合宣告順序的順序配置非靜態成員,此順序在 C++23 和更高版本中並非標準用法", + "EDG IFC 模組介面單元", + "EDG IFC 模組分割單元", + "除非建立模組介面檔案,否則無法從此翻譯單元匯出模組宣告", + "必須從此翻譯單元匯出模組宣告,以建立模組介面檔案", + "已要求模組檔案產生,但未在翻譯單元中宣告任何模組" ] From 83ba41606c5d5cc58327445ccb1a466e757e3e36 Mon Sep 17 00:00:00 2001 From: Matt <59707001+mjrist@users.noreply.github.com> Date: Wed, 30 Jul 2025 17:13:35 -0700 Subject: [PATCH 05/10] =?UTF-8?q?Makes=20remote=20attach=20picker=20respec?= =?UTF-8?q?t=20the=20pipeTransport.quoteArgs=20config=E2=80=A6=20(#13794)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Makes remote attach picker respect the pipeTransport.quoteArgs configuration * fixes linter error - don't compare boolean value to a boolean --- Extension/src/Debugger/attachToProcess.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Extension/src/Debugger/attachToProcess.ts b/Extension/src/Debugger/attachToProcess.ts index 4ff3ce0c2..169c99218 100644 --- a/Extension/src/Debugger/attachToProcess.ts +++ b/Extension/src/Debugger/attachToProcess.ts @@ -81,7 +81,10 @@ export class RemoteAttachPicker { const pipeCmd: string = `"${pipeProgram}" ${argList}`; - processes = await this.getRemoteOSAndProcesses(pipeCmd); + // If unspecified quoteArgs defaults to true. + const quoteArgs: boolean = pipeTransport.quoteArgs ?? true; + + processes = await this.getRemoteOSAndProcesses(pipeCmd, quoteArgs); } else if (!pipeTransport && useExtendedRemote) { if (!miDebuggerPath || !miDebuggerServerAddress) { throw new Error(localize("debugger.path.and.server.address.required", "{0} in debug configuration requires {1} and {2}", "useExtendedRemote", "miDebuggerPath", "miDebuggerServerAddress")); @@ -106,7 +109,7 @@ export class RemoteAttachPicker { } // Creates a string to run on the host machine which will execute a shell script on the remote machine to retrieve OS and processes - private getRemoteProcessCommand(): string { + private getRemoteProcessCommand(quoteArgs: boolean): string { let innerQuote: string = `'`; let outerQuote: string = `"`; let parameterBegin: string = `$(`; @@ -127,6 +130,12 @@ export class RemoteAttachPicker { innerQuote = `"`; outerQuote = `'`; } + + // If the pipeTransport settings indicate "quoteArgs": "false", we need to skip the outer quotes. + if (!quoteArgs) { + outerQuote = ``; + } + // Also use a full path on Linux, so that we can use transports that need a full path such as 'machinectl' to connect to nspawn containers. if (os.platform() === "linux") { shPrefix = `/bin/`; @@ -138,9 +147,9 @@ export class RemoteAttachPicker { `then ${PsProcessParser.psDarwinCommand}; fi${innerQuote}${outerQuote}`; } - private async getRemoteOSAndProcesses(pipeCmd: string): Promise { + private async getRemoteOSAndProcesses(pipeCmd: string, quoteArgs: boolean): Promise { // Do not add any quoting in execCommand. - const execCommand: string = `${pipeCmd} ${this.getRemoteProcessCommand()}`; + const execCommand: string = `${pipeCmd} ${this.getRemoteProcessCommand(quoteArgs)}`; const output: string = await util.execChildProcess(execCommand, undefined, this._channel); // OS will be on first line From 59747206012fd2e55401ebc0d374dbb8d9598894 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Wed, 30 Jul 2025 17:18:34 -0700 Subject: [PATCH 06/10] Remove "exceptions" from quoteArgs. (#13796) --- Extension/package.json | 16 ++++++---------- Extension/tools/OptionsSchema.json | 8 +++----- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/Extension/package.json b/Extension/package.json index 6622bf6b2..8e48ac24a 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -4055,11 +4055,9 @@ "default": {} }, "quoteArgs": { - "exceptions": { - "type": "boolean", - "description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%", - "default": true - } + "type": "boolean", + "description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%", + "default": true } } }, @@ -4841,11 +4839,9 @@ "default": {} }, "quoteArgs": { - "exceptions": { - "type": "boolean", - "description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%", - "default": true - } + "type": "boolean", + "description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%", + "default": true } } }, diff --git a/Extension/tools/OptionsSchema.json b/Extension/tools/OptionsSchema.json index 816b0800d..29ad6476a 100644 --- a/Extension/tools/OptionsSchema.json +++ b/Extension/tools/OptionsSchema.json @@ -47,11 +47,9 @@ "default": {} }, "quoteArgs": { - "exceptions": { - "type": "boolean", - "description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%", - "default": true - } + "type": "boolean", + "description": "%c_cpp.debuggers.pipeTransport.quoteArgs.description%", + "default": true } } }, From 809e06407549ae7a7fbaacd9f6d7b8e1e95c4df0 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Thu, 31 Jul 2025 16:56:50 -0700 Subject: [PATCH 07/10] Fix loc for the miDebuggerServerAddress change. (#13797) --- Extension/i18n/chs/package.i18n.json | 2 +- Extension/i18n/cht/package.i18n.json | 2 +- Extension/i18n/csy/package.i18n.json | 2 +- Extension/i18n/deu/package.i18n.json | 2 +- Extension/i18n/esn/package.i18n.json | 2 +- Extension/i18n/fra/package.i18n.json | 2 +- Extension/i18n/ita/package.i18n.json | 2 +- Extension/i18n/jpn/package.i18n.json | 2 +- Extension/i18n/kor/package.i18n.json | 2 +- Extension/i18n/plk/package.i18n.json | 2 +- Extension/i18n/ptb/package.i18n.json | 2 +- Extension/i18n/rus/package.i18n.json | 2 +- Extension/i18n/trk/package.i18n.json | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Extension/i18n/chs/package.i18n.json b/Extension/i18n/chs/package.i18n.json index cd47a2691..234a9f89a 100644 --- a/Extension/i18n/chs/package.i18n.json +++ b/Extension/i18n/chs/package.i18n.json @@ -310,7 +310,7 @@ "c_cpp.debuggers.miDebuggerServerAddress.description": "要连接到的 MI 调试程序服务器的网络地址(示例: localhost:1234)。", "c_cpp.debuggers.useExtendedRemote.description": "使用目标扩展远程模式连接到 MI 调试器服务器。", "c_cpp.debuggers.stopAtEntry.markdownDescription": "可选参数。如果为 `true`,则调试程序应在目标的入口点处停止。如果传递了 `processId`,则不起任何作用。", - "c_cpp.debuggers.debugServerPath.description": "到要启动的调试服务器的可选完整路径。默认值为 null。该路径与 “miDebugServerAddress” 或带有运行 “-target-select remote ” 的 “customSetupCommand” 的自有服务器配合使用。", + "c_cpp.debuggers.debugServerPath.description": "到要启动的调试服务器的可选完整路径。默认值为 null。该路径与 “miDebuggerServerAddress” 或带有运行 “-target-select remote ” 的 “customSetupCommand” 的自有服务器配合使用。", "c_cpp.debuggers.debugServerArgs.description": "可选调试服务器参数。默认为 null。", "c_cpp.debuggers.serverStarted.description": "要在调试服务器输出中查找的可选服务器启动模式。默认为 null。", "c_cpp.debuggers.filterStdout.description": "在 stdout 流中搜索服务器启动模式,并将 stdout 记录到默认输出。默认为 true。", diff --git a/Extension/i18n/cht/package.i18n.json b/Extension/i18n/cht/package.i18n.json index b5041cded..74cdb393e 100644 --- a/Extension/i18n/cht/package.i18n.json +++ b/Extension/i18n/cht/package.i18n.json @@ -310,7 +310,7 @@ "c_cpp.debuggers.miDebuggerServerAddress.description": "MI 偵錯工具伺服器要連線至的網路位址 (範例: localhost:1234)。", "c_cpp.debuggers.useExtendedRemote.description": "使用目標延伸的遠端模式連線到 MI 偵錯工具伺服器。", "c_cpp.debuggers.stopAtEntry.markdownDescription": "選擇性參數。若為 `true`,則偵錯工具應該在目標的進入點停止。如果已傳遞 `processId`,則這就無效。", - "c_cpp.debuggers.debugServerPath.description": "要啟動的偵錯伺服器選用完整路徑。預設為 Null。使用時,會將 \"miDebugServerAddress\" 或您自己的伺服器與 \"customSetupCommand\" 連接,以執行 \"-target-select remote <伺服器:連接埠>\"。", + "c_cpp.debuggers.debugServerPath.description": "要啟動的偵錯伺服器選用完整路徑。預設為 Null。使用時,會將 \"miDebuggerServerAddress\" 或您自己的伺服器與 \"customSetupCommand\" 連接,以執行 \"-target-select remote <伺服器:連接埠>\"。", "c_cpp.debuggers.debugServerArgs.description": "選擇性偵錯伺服器引數。預設為 null。", "c_cpp.debuggers.serverStarted.description": "要在偵錯伺服器輸出中尋找的選擇性伺服器啟動模式。預設為 null。", "c_cpp.debuggers.filterStdout.description": "搜尋 stdout 資料流以取得伺服器啟動的模式,並將 stdout 記錄到偵錯輸出。預設為 true。", diff --git a/Extension/i18n/csy/package.i18n.json b/Extension/i18n/csy/package.i18n.json index 230b58340..c4cf3c40c 100644 --- a/Extension/i18n/csy/package.i18n.json +++ b/Extension/i18n/csy/package.i18n.json @@ -310,7 +310,7 @@ "c_cpp.debuggers.miDebuggerServerAddress.description": "Síťová adresa MI Debugger Serveru, ke kterému se má připojit (příklad: localhost:1234)", "c_cpp.debuggers.useExtendedRemote.description": "Připojení k serveru ladicího programu MI přes cílový rozšířený vzdálený režim.", "c_cpp.debuggers.stopAtEntry.markdownDescription": "Nepovinný parametr. Pokud je `true`, ladicí program by se měl zastavit na vstupním bodu cíle. Pokud je předán parametr `processId`, nemá to žádný vliv.", - "c_cpp.debuggers.debugServerPath.description": "Volitelná úplná cesta k ladicímu serveru, který se má spustit. Výchozí hodnota je null. Používá se ve spojení buď s miDebugServerAddress, nebo s vlastním serverem s customSetupCommand, na kterém běží \"-target-select remote \".", + "c_cpp.debuggers.debugServerPath.description": "Volitelná úplná cesta k ladicímu serveru, který se má spustit. Výchozí hodnota je null. Používá se ve spojení buď s miDebuggerServerAddress, nebo s vlastním serverem s customSetupCommand, na kterém běží \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Volitelné argumenty ladicího serveru. Výchozí hodnota je null.", "c_cpp.debuggers.serverStarted.description": "Volitelný vzorek spuštěný na serveru, který se má vyhledat ve výstupu ladicího serveru. Výchozí hodnota je null.", "c_cpp.debuggers.filterStdout.description": "Vyhledá ve vzorku spuštěném na serveru stream stdout a zaznamená stdout do výstupu ladění. Výchozí hodnota je true.", diff --git a/Extension/i18n/deu/package.i18n.json b/Extension/i18n/deu/package.i18n.json index 8d6f20e7e..d6667dad1 100644 --- a/Extension/i18n/deu/package.i18n.json +++ b/Extension/i18n/deu/package.i18n.json @@ -310,7 +310,7 @@ "c_cpp.debuggers.miDebuggerServerAddress.description": "Netzwerkadresse des MI-Debugger-Servers, mit dem eine Verbindung hergestellt werden soll (Beispiel: localhost:1234).", "c_cpp.debuggers.useExtendedRemote.description": "Stellen Sie eine Verbindung mit dem MI-Debuggerserver mit dem erweiterten Remotemodus des Ziels her.", "c_cpp.debuggers.stopAtEntry.markdownDescription": "Optionaler Parameter. Wenn dieser Wert auf `true` festgelegt ist, sollte der Debugger am Einstiegspunkt des Ziels anhalten. Wenn die `processId` übergeben wird, hat dies keine Auswirkungen.", - "c_cpp.debuggers.debugServerPath.description": "Optionaler vollständiger Pfad zum Debugserver, der gestartet werden soll. Der Standardwert ist NULL. Dies wird in Verbindung mit \"miDebugServerAddress\" oder Ihrem eigenen Server mit \"customSetupCommand\" verwendet, auf dem \"-target-select remote \" ausgeführt wird.", + "c_cpp.debuggers.debugServerPath.description": "Optionaler vollständiger Pfad zum Debugserver, der gestartet werden soll. Der Standardwert ist NULL. Dies wird in Verbindung mit \"miDebuggerServerAddress\" oder Ihrem eigenen Server mit \"customSetupCommand\" verwendet, auf dem \"-target-select remote \" ausgeführt wird.", "c_cpp.debuggers.debugServerArgs.description": "Optionale Debugserverargumente. Der Standardwert ist \"null\".", "c_cpp.debuggers.serverStarted.description": "Optionales vom Server gestartetes Muster, nach dem in der Ausgabe des Debugservers gesucht wird. Der Standardwert ist \"null\".", "c_cpp.debuggers.filterStdout.description": "stdout-Stream für ein vom Server gestartetes Muster suchen und stdout in der Debugausgabe protokollieren. Der Standardwert ist \"true\".", diff --git a/Extension/i18n/esn/package.i18n.json b/Extension/i18n/esn/package.i18n.json index 555aeeecb..aa3d233d3 100644 --- a/Extension/i18n/esn/package.i18n.json +++ b/Extension/i18n/esn/package.i18n.json @@ -310,7 +310,7 @@ "c_cpp.debuggers.miDebuggerServerAddress.description": "Dirección de red del servidor del depurador MI al que debe conectarse (ejemplo: localhost:1234).", "c_cpp.debuggers.useExtendedRemote.description": "Conéctese al servidor del depurador de Instancia administrada con el modo extendido-remoto de destino.", "c_cpp.debuggers.stopAtEntry.markdownDescription": "Parámetro opcional. Si se establece en `true`, el depurador debe detenerse en el punto de entrada del destino. Si se pasa `processId`, esto no tiene efecto.", - "c_cpp.debuggers.debugServerPath.description": "Ruta de acceso completa opcional al servidor de depuración que se va a iniciar. El valor predeterminado es null. Se usa junto con \"miDebugServerAddress\" o su servidor propio con un comando \"customSetupCommand\" que ejecuta \"-target-select remote \".", + "c_cpp.debuggers.debugServerPath.description": "Ruta de acceso completa opcional al servidor de depuración que se va a iniciar. El valor predeterminado es null. Se usa junto con \"miDebuggerServerAddress\" o su servidor propio con un comando \"customSetupCommand\" que ejecuta \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Argumentos opcionales del servidor de depuración. El valor predeterminado es NULL.", "c_cpp.debuggers.serverStarted.description": "Patrón opcional iniciado por el servidor que debe buscarse en la salida del servidor de depuración. El valor predeterminado es NULL.", "c_cpp.debuggers.filterStdout.description": "Busca la secuencia stdout para el patrón iniciado por el servidor y registra stdout en la salida de depuración. El valor predeterminado es true.", diff --git a/Extension/i18n/fra/package.i18n.json b/Extension/i18n/fra/package.i18n.json index 5639bcc5f..882df138f 100644 --- a/Extension/i18n/fra/package.i18n.json +++ b/Extension/i18n/fra/package.i18n.json @@ -310,7 +310,7 @@ "c_cpp.debuggers.miDebuggerServerAddress.description": "Adresse réseau du serveur du débogueur MI auquel se connecter (par exemple : localhost:1234).", "c_cpp.debuggers.useExtendedRemote.description": "Connectez-vous au serveur débogueur MI avec le mode étendu-distant cible.", "c_cpp.debuggers.stopAtEntry.markdownDescription": "Paramètre facultatif. Si la valeur est `true`, le débogueur doit s'arrêter au point d'entrée de la cible. Si `processId` est passé, cela n'a aucun effet.", - "c_cpp.debuggers.debugServerPath.description": "Chemin complet facultatif au serveur de débogage à lancer (valeur par défaut : null). Utilisé conjointement avec \"miDebugServerAddress\" ou votre propre serveur avec \"customSetupCommand\" qui exécute \"-target-select remote \".", + "c_cpp.debuggers.debugServerPath.description": "Chemin complet facultatif au serveur de débogage à lancer (valeur par défaut : null). Utilisé conjointement avec \"miDebuggerServerAddress\" ou votre propre serveur avec \"customSetupCommand\" qui exécute \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Arguments facultatifs du serveur de débogage. La valeur par défaut est null.", "c_cpp.debuggers.serverStarted.description": "Modèle facultatif de démarrage du serveur à rechercher dans la sortie du serveur de débogage. La valeur par défaut est null.", "c_cpp.debuggers.filterStdout.description": "Permet de rechercher dans le flux stdout le modèle correspondant au démarrage du serveur, et de journaliser stdout dans la sortie de débogage. La valeur par défaut est true.", diff --git a/Extension/i18n/ita/package.i18n.json b/Extension/i18n/ita/package.i18n.json index 6a27cbb3a..21b7d8bd5 100644 --- a/Extension/i18n/ita/package.i18n.json +++ b/Extension/i18n/ita/package.i18n.json @@ -310,7 +310,7 @@ "c_cpp.debuggers.miDebuggerServerAddress.description": "Indirizzo di rete del server del debugger MI a cui connettersi. Esempio: localhost:1234.", "c_cpp.debuggers.useExtendedRemote.description": "Connettersi al server del debugger MI con la modalità estesa-remota di destinazione.", "c_cpp.debuggers.stopAtEntry.markdownDescription": "Parametro facoltativo. Se è `true`, il debugger deve arrestarsi in corrispondenza del punto di ingresso della destinazione. Se viene passato `processId`, non ha alcun effetto.", - "c_cpp.debuggers.debugServerPath.description": "Percorso completo facoltativo del server di debug da avviare. L'impostazione predefinita è Null. Viene usata insieme a \"miDebugServerAddress\" o al proprio server con un comando \"customSetupCommand\" che esegue \"-target-select remote \".", + "c_cpp.debuggers.debugServerPath.description": "Percorso completo facoltativo del server di debug da avviare. L'impostazione predefinita è Null. Viene usata insieme a \"miDebuggerServerAddress\" o al proprio server con un comando \"customSetupCommand\" che esegue \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Argomenti facoltativi del server di debug. L'impostazione predefinita è null.", "c_cpp.debuggers.serverStarted.description": "Criterio facoltativo avviato dal server per cercare nell'output del server di debug. L'impostazione predefinita è null.", "c_cpp.debuggers.filterStdout.description": "Cerca il criterio avviato dal server nel flusso stdout e registra stdout nell'output di debug. L'impostazione predefinita è true.", diff --git a/Extension/i18n/jpn/package.i18n.json b/Extension/i18n/jpn/package.i18n.json index 200dab647..79ce9deb9 100644 --- a/Extension/i18n/jpn/package.i18n.json +++ b/Extension/i18n/jpn/package.i18n.json @@ -310,7 +310,7 @@ "c_cpp.debuggers.miDebuggerServerAddress.description": "接続先の MI デバッガー サーバーのネットワークアドレスです (例: localhost: 1234)。", "c_cpp.debuggers.useExtendedRemote.description": "ターゲットの拡張リモート モードで MI デバッガー サーバーに接続します。", "c_cpp.debuggers.stopAtEntry.markdownDescription": "オプションのパラメーターです。`true` の場合、デバッガーはターゲットのエントリポイントで停止します。`processId` が渡された場合、この効果はありません。", - "c_cpp.debuggers.debugServerPath.description": "起動するデバッグ サーバーの完全なパス (省略可能)。既定値は null です。これは、\"miDebugServerAddress\"、または \"-target-select remote \" を実行する \"customSetupCommand\" を含む独自のサーバーのいずれかと接合して使用されます。", + "c_cpp.debuggers.debugServerPath.description": "起動するデバッグ サーバーの完全なパス (省略可能)。既定値は null です。これは、\"miDebuggerServerAddress\"、または \"-target-select remote \" を実行する \"customSetupCommand\" を含む独自のサーバーのいずれかと接合して使用されます。", "c_cpp.debuggers.debugServerArgs.description": "デバッグ サーバー引数 (省略可能)。既定値は null です。", "c_cpp.debuggers.serverStarted.description": "デバッグ サーバー出力から検索する、サーバー開始のパターン (省略可能)。既定値は null です。", "c_cpp.debuggers.filterStdout.description": "サーバー開始のパターンを stdout ストリームから検索し、stdout をデバッグ出力にログ記録します。既定値は true です。", diff --git a/Extension/i18n/kor/package.i18n.json b/Extension/i18n/kor/package.i18n.json index 39b34bf80..f8ef1ded0 100644 --- a/Extension/i18n/kor/package.i18n.json +++ b/Extension/i18n/kor/package.i18n.json @@ -310,7 +310,7 @@ "c_cpp.debuggers.miDebuggerServerAddress.description": "연결할 MI 디버거 서버의 네트워크 주소입니다(예: localhost:1234).", "c_cpp.debuggers.useExtendedRemote.description": "대상 확장 원격 모드를 사용하여 MI 디버거 서버에 연결합니다.", "c_cpp.debuggers.stopAtEntry.markdownDescription": "선택적 매개 변수입니다. `true`이면 디버거가 대상의 진입점에서 중지됩니다. `processId`가 전달되는 경우 영향을 주지 않습니다.", - "c_cpp.debuggers.debugServerPath.description": "시작할 디버그 서버의 전체 경로입니다(선택 사항). 기본값은 null입니다. 이 옵션은 \"miDebugServerAddress\"와 함께 사용되거나 \"-target-select remote \"를 실행하는 \"customSetupCommand\"와 자체 서버와 함께 사용됩니다.", + "c_cpp.debuggers.debugServerPath.description": "시작할 디버그 서버의 전체 경로입니다(선택 사항). 기본값은 null입니다. 이 옵션은 \"miDebuggerServerAddress\"와 함께 사용되거나 \"-target-select remote \"를 실행하는 \"customSetupCommand\"와 자체 서버와 함께 사용됩니다.", "c_cpp.debuggers.debugServerArgs.description": "선택적 디버그 서버 인수입니다. 기본값은 null입니다.", "c_cpp.debuggers.serverStarted.description": "디버그 서버 출력에서 찾을 서버에서 시작한 패턴(선택 사항)입니다. 기본값은 null입니다.", "c_cpp.debuggers.filterStdout.description": "서버에서 시작한 패턴을 stdout 스트림에서 검색하고, stdout를 디버그 출력에 기록합니다. 기본값은 true입니다.", diff --git a/Extension/i18n/plk/package.i18n.json b/Extension/i18n/plk/package.i18n.json index fe3ea3b1a..2041b7db1 100644 --- a/Extension/i18n/plk/package.i18n.json +++ b/Extension/i18n/plk/package.i18n.json @@ -310,7 +310,7 @@ "c_cpp.debuggers.miDebuggerServerAddress.description": "Adres sieciowy serwera debugera MI, z którym ma zostać nawiązane połączenie (przykład: localhost:1234).", "c_cpp.debuggers.useExtendedRemote.description": "Połącz się z wystąpieniem zarządzanym serwera debugera za pomocą docelowego rozszerzonego trybu zdalnego.", "c_cpp.debuggers.stopAtEntry.markdownDescription": "Parametr opcjonalny. Jeśli wartość to `true`, debuger powinien zostać zatrzymany w punkcie wejścia miejsca docelowego. W przypadku przekazania `processId` nie ma to żadnego efektu.", - "c_cpp.debuggers.debugServerPath.description": "Opcjonalna pełna ścieżka do serwera debugowania, który ma zostać uruchomiony. Wartość domyślna to null. Jest ona używana w połączeniu z właściwością \"miDebugServerAddress\" lub Twoim własnym serwerem wraz z poleceniem \"customSetupCommand\", które uruchamia polecenie \"-target-select remote \".", + "c_cpp.debuggers.debugServerPath.description": "Opcjonalna pełna ścieżka do serwera debugowania, który ma zostać uruchomiony. Wartość domyślna to null. Jest ona używana w połączeniu z właściwością \"miDebuggerServerAddress\" lub Twoim własnym serwerem wraz z poleceniem \"customSetupCommand\", które uruchamia polecenie \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Opcjonalne argumenty serwera debugowania. Wartość domyślna to null.", "c_cpp.debuggers.serverStarted.description": "Opcjonalny wzorzec uruchomiony przez serwer do wyszukania w danych wyjściowych serwera debugowania. Wartością domyślną jest null.", "c_cpp.debuggers.filterStdout.description": "Wyszukiwanie strumienia stdout dla wzorca uruchomionego przez serwer i rejestrowanie strumienia stdout w danych wyjściowych debugowania. Wartością domyślną jest true.", diff --git a/Extension/i18n/ptb/package.i18n.json b/Extension/i18n/ptb/package.i18n.json index d1d758fa4..ed44185c0 100644 --- a/Extension/i18n/ptb/package.i18n.json +++ b/Extension/i18n/ptb/package.i18n.json @@ -310,7 +310,7 @@ "c_cpp.debuggers.miDebuggerServerAddress.description": "Endereço de rede do Servidor de Depurador MI ao qual se conectar (exemplo: localhost:1234).", "c_cpp.debuggers.useExtendedRemote.description": "Conecte-se ao MI Debugger Server com o modo remoto estendido de destino.", "c_cpp.debuggers.stopAtEntry.markdownDescription": "Parâmetro opcional. Se for `true`, o depurador deverá parar no ponto de entrada do destino. Se `processId` for passado, isso não terá efeito.", - "c_cpp.debuggers.debugServerPath.description": "Caminho completo opcional para o servidor de depuração a ser lançado. O padrão é nulo. É usado em conjunto com \"miDebugServerAddress\" ou seu próprio servidor com um \"customSetupCommand\" que executa \"-target-select remote \".", + "c_cpp.debuggers.debugServerPath.description": "Caminho completo opcional para o servidor de depuração a ser lançado. O padrão é nulo. É usado em conjunto com \"miDebuggerServerAddress\" ou seu próprio servidor com um \"customSetupCommand\" que executa \"-target-select remote \".", "c_cpp.debuggers.debugServerArgs.description": "Args opcionais do servidor de depuração. O padrão é null.", "c_cpp.debuggers.serverStarted.description": "Padrão iniciado pelo servidor opcional para procurar na saída do servidor de depuração. O padrão é null.", "c_cpp.debuggers.filterStdout.description": "Pesquise o fluxo stdout para o padrão iniciado pelo servidor e log stdout para depurar a saída. O padrão é true.", diff --git a/Extension/i18n/rus/package.i18n.json b/Extension/i18n/rus/package.i18n.json index fcd50cc6d..7e62935b9 100644 --- a/Extension/i18n/rus/package.i18n.json +++ b/Extension/i18n/rus/package.i18n.json @@ -310,7 +310,7 @@ "c_cpp.debuggers.miDebuggerServerAddress.description": "Сетевой адрес сервера отладчика MI, к которому требуется подключиться (пример: localhost:1234).", "c_cpp.debuggers.useExtendedRemote.description": "Подключение к серверу отладчика MI в целевом расширенном удаленном режиме.", "c_cpp.debuggers.stopAtEntry.markdownDescription": "Необязательный параметр. Если задано значение `true`, отладчик должен остановиться в точке входа целевого объекта.. Если передается идентификатор процесса `processId`, этот параметр не действует.", - "c_cpp.debuggers.debugServerPath.description": "Необязательный полный путь к запускаемому серверу отладки. Значение по умолчанию — NULL. Применяется с параметром miDebugServerAddress или с вашим собственным сервером через команду customSetupCommand, использующую -target-select remote .", + "c_cpp.debuggers.debugServerPath.description": "Необязательный полный путь к запускаемому серверу отладки. Значение по умолчанию — NULL. Применяется с параметром miDebuggerServerAddress или с вашим собственным сервером через команду customSetupCommand, использующую -target-select remote .", "c_cpp.debuggers.debugServerArgs.description": "Необязательные аргументы сервера отладки. Значение по умолчанию: null.", "c_cpp.debuggers.serverStarted.description": "Дополнительный запускаемый сервером шаблон для поиска в выходных данных сервера отладки. Значение по умолчанию: null.", "c_cpp.debuggers.filterStdout.description": "Поиск запущенного сервером шаблона в потоке stdout и регистрация stdout в выходных данных отладки. Значение по умолчанию: true.", diff --git a/Extension/i18n/trk/package.i18n.json b/Extension/i18n/trk/package.i18n.json index 8d33102db..e78861af3 100644 --- a/Extension/i18n/trk/package.i18n.json +++ b/Extension/i18n/trk/package.i18n.json @@ -310,7 +310,7 @@ "c_cpp.debuggers.miDebuggerServerAddress.description": "Bağlanılacak MI Hata Ayıklayıcısı Sunucusunun ağ adresi (örnek: localhost:1234).", "c_cpp.debuggers.useExtendedRemote.description": "Hedef genişletilmiş uzak modundayken MI Hata Ayıklayıcısı Sunucusuna bağlanın.", "c_cpp.debuggers.stopAtEntry.markdownDescription": "İsteğe bağlı parametre. Değeri `true` ise, hata ayıklayıcısının hedefin giriş noktasında durması gerekir. `processId` geçirilirse bunun hiçbir etkisi olmaz.", - "c_cpp.debuggers.debugServerPath.description": "Başlatılacak sunucuda hata ayıklama için isteğe bağlı tam yol. Varsayılan değeri null. \"miDebugServerAddress\" veya kendi sunucunuzun \"-target-select remote \" çalıştıran bir \"customSetupCommand\" ile birlikte kullanılır.", + "c_cpp.debuggers.debugServerPath.description": "Başlatılacak sunucuda hata ayıklama için isteğe bağlı tam yol. Varsayılan değeri null. \"miDebuggerServerAddress\" veya kendi sunucunuzun \"-target-select remote \" çalıştıran bir \"customSetupCommand\" ile birlikte kullanılır.", "c_cpp.debuggers.debugServerArgs.description": "İsteğe bağlı hata ayıklama sunucusu bağımsız değişkenleri. Varsayılan olarak şu değeri alır: null.", "c_cpp.debuggers.serverStarted.description": "Hata ayıklama sunucusu çıktısında aranacak, sunucu tarafından başlatılan isteğe bağlı model. Varsayılan olarak şu değeri alır: null.", "c_cpp.debuggers.filterStdout.description": "Sunucu tarafından başlatılan model için stdout akışını arar ve çıktıda hata ayıklamak için stdout'u günlüğe kaydeder. Varsayılan olarak şu değeri alır: true.", From f94a744108ede57732e7f18e54c887e248af58e7 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Thu, 31 Jul 2025 17:51:46 -0700 Subject: [PATCH 08/10] Update changelog for 1.27.0 (2nd time). (#13795) * Update changelog for 1.27.0 (2nd time). --- Extension/CHANGELOG.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Extension/CHANGELOG.md b/Extension/CHANGELOG.md index e11443042..399904f93 100644 --- a/Extension/CHANGELOG.md +++ b/Extension/CHANGELOG.md @@ -1,12 +1,21 @@ # C/C++ for Visual Studio Code Changelog -## Version 1.27.0: July 15, 2025 +## Version 1.27.0: August 4, 2025 ### Bug Fixes -* Fix IntelliSense crash in `find_subobject_for_interpreter_address`. [#12464](https://github.com/microsoft/vscode-cpptools/issues/12464) +* Fix an IntelliSense crash in `add_cached_tokens_to_string`. [#11900](https://github.com/microsoft/vscode-cpptools/issues/11900) +* Fix an IntelliSense crash in `find_subobject_for_interpreter_address`. [#12464](https://github.com/microsoft/vscode-cpptools/issues/12464) * Fix changes to the active field being lost in the configuration UI when navigating away. [#13636](https://github.com/microsoft/vscode-cpptools/issues/13636) * Fix compiler query failing on Windows if optional job-related API calls fail. [#13679](https://github.com/microsoft/vscode-cpptools/issues/13679) * Fix bugs with Doxygen comments. [#13725](https://github.com/microsoft/vscode-cpptools/issues/13725), [#13726](https://github.com/microsoft/vscode-cpptools/issues/13726), [#13745](https://github.com/microsoft/vscode-cpptools/issues/13745) -* Fix a bug with 'Create Definition'. [#13741](https://github.com/microsoft/vscode-cpptools/issues/13741) +* Fix bugs with 'Create Definition'. [#13741](https://github.com/microsoft/vscode-cpptools/issues/13741), [#13773](https://github.com/microsoft/vscode-cpptools/issues/13773) +* Fix IntelliSense crashes when there are duplicate constexpr template functions in a TU. [#13775](https://github.com/microsoft/vscode-cpptools/issues/13775) +* Fix the description of `debugServerPath`. [PR #13778](https://github.com/microsoft/vscode-cpptools/pull/13778) + * Thank you for the contribution. [@redstrate (Joshua Goins)](https://github.com/redstrate) +* Remove `-fmodule-mapper`, `-fdeps-format`, and some additional unnecessary args from compiler queries. [#13782](https://github.com/microsoft/vscode-cpptools/issues/13782) +* Fix `-imacro` not configuring IntelliSense correctly. [#13785](https://github.com/microsoft/vscode-cpptools/issues/13785) +* Fix `pipeTransport.quoteArgs` not being handled correctly. [#13791](https://github.com/microsoft/vscode-cpptools/issues/13791) + * Thank you for the contribution. [@mrjist (Matt)](https://github.com/mrjist) [PR #13794](https://github.com/microsoft/vscode-cpptools/pull/13794) +* Fix an IntelliSense bug that could cause incorrect string lengths to be reported for string literals in files that use certain file encodings. ## Version 1.26.3: June 24, 2025 ### New Feature From 2eb2c422d1ddb90fde37aadb63cf4fdad8fa6797 Mon Sep 17 00:00:00 2001 From: Sean McManus Date: Fri, 1 Aug 2025 12:04:29 -0700 Subject: [PATCH 09/10] Update form-data. (#13800) * Update form-data. --- .github/actions/package-lock.json | 179 ++++++++++++++++++++++++++++-- Extension/package.json | 4 +- Extension/yarn.lock | 19 ++-- 3 files changed, 182 insertions(+), 20 deletions(-) diff --git a/.github/actions/package-lock.json b/.github/actions/package-lock.json index d214d006f..52978aa24 100644 --- a/.github/actions/package-lock.json +++ b/.github/actions/package-lock.json @@ -2971,13 +2971,15 @@ } }, "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha1-k5Gdrq82HuUpWEubMWZNwSyfpFI=", + "version": "4.0.4", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha1-eEzczgZpqdaOlNEaxO6pgIjt0sQ=", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -3108,6 +3110,19 @@ "ieee754": "^1.1.13" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha1-S1QowiK+mF15w9gmV0edvgtZstY=", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/callsites/-/callsites-3.1.0.tgz", @@ -3452,6 +3467,20 @@ "node": ">=6.0.0" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha1-165mfh3INIL4tw/Q9u78UNow9Yo=", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/emitter-listener": { "version": "1.1.2", "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/emitter-listener/-/emitter-listener-1.1.2.tgz", @@ -3468,6 +3497,51 @@ "dev": true, "license": "MIT" }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha1-mD6y+aZyTpMD9hrd8BHHLgngsPo=", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha1-BfdaJdq5jk+x3NXhRywFRtUFfI8=", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha1-HE8sSDcydZfOadLKGQp/3RcjOME=", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha1-8x274MGDsAptJutjJcgQwP0YvU0=", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/escalade/-/escalade-3.2.0.tgz", @@ -3939,14 +4013,17 @@ } }, "node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha1-8svsV7XlniNxbhKP5E1OXdI4lfQ=", + "version": "2.5.5", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-2.5.5.tgz", + "integrity": "sha1-pfY2Stfk5n6VtKB+LYxvcRx09iQ=", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.35", + "safe-buffer": "^5.2.1" }, "engines": { "node": ">= 0.12" @@ -4002,6 +4079,43 @@ "node": "*" } }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha1-dD8OO2lkqTpUke0b/6rgVNf5jQE=", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha1-FQs/J0OGnvPoUewMSdFbHRTQDuE=", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/glob": { "version": "8.1.0", "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/glob/-/glob-8.1.0.tgz", @@ -4095,6 +4209,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha1-ifVrghe9vIgCvSmd9tfxCB1+UaE=", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/graphemer/-/graphemer-1.4.0.tgz", @@ -4112,6 +4238,33 @@ "node": ">=8" } }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha1-/JxqeDoISVHQuXH+EBjegTcHozg=", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha1-LNxC1AvvLltO6rfAGnPFTOerWrw=", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/hasown/-/hasown-2.0.2.tgz", @@ -4533,6 +4686,15 @@ "dev": true, "license": "ISC" }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha1-oN10voHiqlwvJ+Zc4oNgXuTit/k=", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/memory-pager": { "version": "1.5.0", "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/memory-pager/-/memory-pager-1.5.0.tgz", @@ -5228,7 +5390,6 @@ "version": "5.2.1", "resolved": "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", - "dev": true, "funding": [ { "type": "github", diff --git a/Extension/package.json b/Extension/package.json index 8e48ac24a..182dffaf1 100644 --- a/Extension/package.json +++ b/Extension/package.json @@ -6556,7 +6556,7 @@ "@types/glob": "^7.2.0", "@types/mocha": "^10.0.6", "@types/node": "^20.14.2", - "@types/node-fetch": "^2.6.11", + "@types/node-fetch": "^2.6.13", "@types/plist": "^3.0.5", "@types/proxyquire": "^1.3.31", "@types/semver": "^7.5.8", @@ -6625,4 +6625,4 @@ "postcss": "^8.4.31", "gulp-typescript/**/glob-parent": "^5.1.2" } -} \ No newline at end of file +} diff --git a/Extension/yarn.lock b/Extension/yarn.lock index 3dfa78188..9885e92db 100644 --- a/Extension/yarn.lock +++ b/Extension/yarn.lock @@ -480,13 +480,13 @@ resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/mocha/-/mocha-10.0.10.tgz#91f62905e8d23cbd66225312f239454a23bebfa0" integrity sha1-kfYpBejSPL1mIlMS8jlFSiO+v6A= -"@types/node-fetch@^2.6.11": - version "2.6.12" - resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/@types/node-fetch/-/node-fetch-2.6.12.tgz#8ab5c3ef8330f13100a7479e2cd56d3386830a03" - integrity sha1-irXD74Mw8TEAp0eeLNVtM4aDCgM= +"@types/node-fetch@^2.6.13": + version "2.6.13" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.13.tgz#e0c9b7b5edbdb1b50ce32c127e85e880872d56ee" + integrity sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw== dependencies: "@types/node" "*" - form-data "^4.0.0" + form-data "^4.0.4" "@types/node@*": version "22.13.4" @@ -2320,14 +2320,15 @@ for-own@^1.0.0: dependencies: for-in "^1.0.1" -form-data@^4.0.0: - version "4.0.2" - resolved "https://pkgs.dev.azure.com/azure-public/VisualCpp/_packaging/cpp_PublicPackages/npm/registry/form-data/-/form-data-4.0.2.tgz#35cabbdd30c3ce73deb2c42d3c8d3ed9ca51794c" - integrity sha1-Ncq73TDDznPessQtPI0+2cpReUw= +form-data@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" + integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" es-set-tostringtag "^2.1.0" + hasown "^2.0.2" mime-types "^2.1.12" from@^0.1.7: From 7c4bc0772ba998a3d337747371f8f7e4815f21e6 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson <49173979+Colengms@users.noreply.github.com> Date: Fri, 1 Aug 2025 16:37:19 -0700 Subject: [PATCH 10/10] Revert didOpen changes in favor of adding encoding to didChangeVisibleTextEditors (#13802) --- Extension/src/LanguageServer/client.ts | 57 +++++++++++-------- .../src/LanguageServer/protocolFilter.ts | 4 +- 2 files changed, 34 insertions(+), 27 deletions(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 0f14b8fd7..c6f07d95e 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -28,7 +28,7 @@ import * as fs from 'fs'; import * as os from 'os'; import { SourceFileConfiguration, SourceFileConfigurationItem, Version, WorkspaceBrowseConfiguration } from 'vscode-cpptools'; import { IntelliSenseStatus, Status } from 'vscode-cpptools/out/testApi'; -import { CloseAction, ErrorAction, LanguageClientOptions, NotificationType, Position, Range, RequestType, ResponseError, TextDocumentIdentifier, TextDocumentPositionParams } from 'vscode-languageclient'; +import { CloseAction, DidOpenTextDocumentParams, ErrorAction, LanguageClientOptions, NotificationType, Position, Range, RequestType, ResponseError, TextDocumentIdentifier, TextDocumentPositionParams } from 'vscode-languageclient'; import { LanguageClient, ServerOptions } from 'vscode-languageclient/node'; import * as nls from 'vscode-nls'; import { DebugConfigurationProvider } from '../Debugger/configurationProvider'; @@ -517,10 +517,15 @@ interface TagParseStatus { isPaused: boolean; } +interface VisibleEditorInfo { + visibleRanges: Range[]; + originalEncoding: string; +} + interface DidChangeVisibleTextEditorsParams { activeUri?: string; activeSelection?: Range; - visibleRanges?: { [uri: string]: Range[] }; + visibleEditorInfo?: { [uri: string]: VisibleEditorInfo }; } interface DidChangeTextEditorVisibleRangesParams { @@ -590,18 +595,11 @@ export interface CopilotCompletionContextParams { doAggregateSnippets: boolean; } -export interface TextDocumentItemWithOriginalEncoding { +export interface SetOpenFileOriginalEncodingParams { uri: string; - languageId: string; - version: number; - text: string; originalEncoding: string; } -export interface DidOpenTextDocumentParamsWithOriginalEncoding { - textDocument: TextDocumentItemWithOriginalEncoding; -} - // Requests const PreInitializationRequest: RequestType = new RequestType('cpptools/preinitialize'); const InitializationRequest: RequestType = new RequestType('cpptools/initialize'); @@ -626,8 +624,7 @@ const CppContextRequest: RequestType = new RequestType('cpptools/getCompletionContext'); // Notifications to the server -const DidOpenNotification: NotificationType = new NotificationType('cpptools/didOpen'); -const FileCreatedNotification: NotificationType = new NotificationType('cpptools/fileCreated'); +const DidOpenNotification: NotificationType = new NotificationType('textDocument/didOpen'); const FileCreatedNotification: NotificationType = new NotificationType('cpptools/fileCreated'); const FileChangedNotification: NotificationType = new NotificationType('cpptools/fileChanged'); const FileDeletedNotification: NotificationType = new NotificationType('cpptools/fileDeleted'); const ResetDatabaseNotification: NotificationType = new NotificationType('cpptools/resetDatabase'); @@ -650,6 +647,7 @@ const FinishedRequestCustomConfig: NotificationType = new NotificationType('cpptools/didChangeSettings'); const DidChangeVisibleTextEditorsNotification: NotificationType = new NotificationType('cpptools/didChangeVisibleTextEditors'); const DidChangeTextEditorVisibleRangesNotification: NotificationType = new NotificationType('cpptools/didChangeTextEditorVisibleRanges'); +const SetOpenFileOriginalEncodingNotification: NotificationType = new NotificationType('cpptools/setOpenFileOriginalEncoding'); const CodeAnalysisNotification: NotificationType = new NotificationType('cpptools/runCodeAnalysis'); const PauseCodeAnalysisNotification: NotificationType = new NotificationType('cpptools/pauseCodeAnalysis'); @@ -1831,32 +1829,35 @@ export class DefaultClient implements Client { return changedSettings; } - private prepareVisibleRanges(editors: readonly vscode.TextEditor[]): { [uri: string]: Range[] } { - const visibleRanges: { [uri: string]: Range[] } = {}; + private prepareVisibleEditorInfo(editors: readonly vscode.TextEditor[]): { [uri: string]: VisibleEditorInfo } { + const visibileEditorInfo: { [uri: string]: VisibleEditorInfo } = {}; editors.forEach(editor => { // Use a map, to account for multiple editors for the same file. // First, we just concat all ranges for the same file. const uri: string = editor.document.uri.toString(); - if (!visibleRanges[uri]) { - visibleRanges[uri] = []; + if (!visibileEditorInfo[uri]) { + visibileEditorInfo[uri] = { + visibleRanges: [], + originalEncoding: editor.document.encoding + }; } - visibleRanges[uri] = visibleRanges[uri].concat(editor.visibleRanges.map(makeLspRange)); + visibileEditorInfo[uri].visibleRanges = visibileEditorInfo[uri].visibleRanges.concat(editor.visibleRanges.map(makeLspRange)); }); // We may need to merge visible ranges, if there are multiple editors for the same file, // and some of the ranges overlap. - Object.keys(visibleRanges).forEach(uri => { - visibleRanges[uri] = util.mergeOverlappingRanges(visibleRanges[uri]); + Object.keys(visibileEditorInfo).forEach(uri => { + visibileEditorInfo[uri].visibleRanges = util.mergeOverlappingRanges(visibileEditorInfo[uri].visibleRanges); }); - return visibleRanges; + return visibileEditorInfo; } // Handles changes to visible files/ranges, changes to current selection/position, // and changes to the active text editor. Should only be called on the primary client. public async onDidChangeVisibleTextEditors(editors: readonly vscode.TextEditor[]): Promise { const params: DidChangeVisibleTextEditorsParams = { - visibleRanges: this.prepareVisibleRanges(editors) + visibleEditorInfo: this.prepareVisibleEditorInfo(editors) }; if (vscode.window.activeTextEditor) { if (util.isCpp(vscode.window.activeTextEditor.document)) { @@ -2339,19 +2340,25 @@ export class DefaultClient implements Client { // Only used in crash recovery. Otherwise, VS Code sends didOpen directly to native process (through the protocolFilter). public async sendDidOpen(document: vscode.TextDocument): Promise { - const params: DidOpenTextDocumentParamsWithOriginalEncoding = { + const params: DidOpenTextDocumentParams = { textDocument: { uri: document.uri.toString(), languageId: document.languageId, version: document.version, - text: document.getText(), - originalEncoding: document.encoding + text: document.getText() } }; - await this.ready; await this.languageClient.sendNotification(DidOpenNotification, params); } + public async sendOpenFileOriginalEncoding(document: vscode.TextDocument): Promise { + const params: SetOpenFileOriginalEncodingParams = { + uri: document.uri.toString(), + originalEncoding: document.encoding + }; + await this.languageClient.sendNotification(SetOpenFileOriginalEncodingNotification, params); + } + /** * Copilot completion-related requests (e.g. getIncludes and getProjectContext) will have their cancellation tokens cancelled * if the current request times out (showing the user completion results without context info), diff --git a/Extension/src/LanguageServer/protocolFilter.ts b/Extension/src/LanguageServer/protocolFilter.ts index f87eee070..d6462072e 100644 --- a/Extension/src/LanguageServer/protocolFilter.ts +++ b/Extension/src/LanguageServer/protocolFilter.ts @@ -19,7 +19,7 @@ export const ServerCancelled: number = -32802; export function createProtocolFilter(): Middleware { return { - didOpen: async (document, _sendMessage) => { + didOpen: async (document, sendMessage) => { if (!util.isCpp(document)) { return; } @@ -44,8 +44,8 @@ export function createProtocolFilter(): Middleware { } // client.takeOwnership() will call client.TrackedDocuments.add() again, but that's ok. It's a Set. client.takeOwnership(document); + void sendMessage(document); client.ready.then(() => { - client.sendDidOpen(document).catch(logAndReturn.undefined); const cppEditors: vscode.TextEditor[] = vscode.window.visibleTextEditors.filter(e => util.isCpp(e.document)); client.onDidChangeVisibleTextEditors(cppEditors).catch(logAndReturn.undefined); }).catch(logAndReturn.undefined);