diff --git a/CHANGELOG.md b/CHANGELOG.md index ff374e679..64b306c62 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,47 @@ - Diagnostics related feature requests and improvements [#5951](https://github.com/dotnet/vscode-csharp/issues/5951) - Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876) +# 2.60.x +* Improve performance of razor/blazor component discovery (PR: [#7826](https://github.com/dotnet/vscode-csharp/pull/7826)) +* Update Razor to 9.0.0-preview.24605.1 (PR: [#7826](https://github.com/dotnet/vscode-csharp/pull/7826)) + * New Code Action! Add a code action to promote a using directive (#11241) (PR: [#11241](https://github.com/dotnet/razor/pull/11241)) + * Add more information to dynamic file publish (#11267) (PR: [#11267](https://github.com/dotnet/razor/pull/11267)) + * Remove C#s using snippet from completion (#11272) (PR: [#11272](https://github.com/dotnet/razor/pull/11272)) + * Fix extract component whitespace handling (#11262) (PR: [#11262](https://github.com/dotnet/razor/pull/11262)) + * Handle aliased usings in RazorEditHelper (#11208) (PR: [#11208](https://github.com/dotnet/razor/pull/11208)) +* Update Debugger Packages and move macOS requirement to macOS 13 (PR: [#7854](https://github.com/dotnet/vscode-csharp/pull/7854)) +* Fix spelling of successfully (PR: [#7853](https://github.com/dotnet/vscode-csharp/pull/7853)) +* Update Roslyn to 4.13.0-3.24605.12 (PR: [#7826](https://github.com/dotnet/vscode-csharp/pull/7826)) + * Fix go-to-def on an abstract explicit impl of an interface method (PR: [#76238](https://github.com/dotnet/roslyn/pull/76238)) + * Fix parameter completion item icon (PR: [#76292](https://github.com/dotnet/roslyn/pull/76292)) + * Enable LSP go to definition on string literals (PR: [#76291](https://github.com/dotnet/roslyn/pull/76291)) + * Use named pipes to connect to the BuildHost process. (PR: [#76259](https://github.com/dotnet/roslyn/pull/76259)) + * Improve Razor DynamicFile Provider (PR: [#76050](https://github.com/dotnet/roslyn/pull/76050)) + * Add option to disable LSP-based auto insert (PR: [#75224](https://github.com/dotnet/roslyn/pull/75224)) + * Report errors processing messages in the build host (PR: [#76252](https://github.com/dotnet/roslyn/pull/76252)) + * Update FAR and Go to Def to work on indexers (PR: [#76220](https://github.com/dotnet/roslyn/pull/76220)) + * Fix NFW thrown when refreshing source generated files (PR: [#76240](https://github.com/dotnet/roslyn/pull/76240)) + * Update find-refs to find references to Dispose in a using-statement (PR: [#76221](https://github.com/dotnet/roslyn/pull/76221)) + * Add support for 'find refs' finding references to 'dynamic' (PR: [#76118](https://github.com/dotnet/roslyn/pull/76118)) + * Support implementing protected members in implement interface (PR: [#76178](https://github.com/dotnet/roslyn/pull/76178)) + * Do not treat Task.Run methods as 'apparent' for 'use var' (PR: [#76229](https://github.com/dotnet/roslyn/pull/76229)) + * Support introduce variable at the top level (PR: [#76218](https://github.com/dotnet/roslyn/pull/76218)) + * Fix switch indentation for list patterns (PR: [#75953](https://github.com/dotnet/roslyn/pull/75953)) + * Keep member bodies when converting DIM property to method (PR: [#76186](https://github.com/dotnet/roslyn/pull/76186)) + * Have go-to-def flip between partial definition and implementation (PR: [#76187](https://github.com/dotnet/roslyn/pull/76187)) + * Disable 'use coalesce expression' when statements cross a PP boundary (PR: [#76173](https://github.com/dotnet/roslyn/pull/76173)) + * Support name completion on generic types (PR: [#76170](https://github.com/dotnet/roslyn/pull/76170)) + * Improve extract-local-function in the presence of pp directives (PR: [#76169](https://github.com/dotnet/roslyn/pull/76169)) + * Fix issue trying to generate fields/properties from a top level program (PR: [#76161](https://github.com/dotnet/roslyn/pull/76161)) + * Update 'introduce using' to support expression statements (PR: [#76147](https://github.com/dotnet/roslyn/pull/76147)) + * Use implicit initializer if present to generate type properties (PR: [#76162](https://github.com/dotnet/roslyn/pull/76162)) + * Fix issue with explicit interface completion and static interface members (PR: [#76150](https://github.com/dotnet/roslyn/pull/76150)) + * When converting to raw strings, do not change \r\n sequences if not explicitly requested by the user (PR: [#76120](https://github.com/dotnet/roslyn/pull/76120)) + * Exclude starting symbol when going to implementations if we find implementations (PR: [#76125](https://github.com/dotnet/roslyn/pull/76125)) +* Add option to disable auto insertion of documentation comments (PR: [#7381](https://github.com/dotnet/vscode-csharp/pull/7381)) +* Bump xamltools to 17.13.35606.23 (PR: [#7856](https://github.com/dotnet/vscode-csharp/pull/7856)) +* Restore WASM debug hook (#7843) (PR: [#7844](https://github.com/dotnet/vscode-csharp/pull/7844)) + # 2.59.x * Update Roslyn to 4.13.0-3.24577.4 (PR: [#7833](https://github.com/dotnet/vscode-csharp/pull/7833)) * Fix issue where suppressors could not correctly suppress built in analyzers (PR: [#75684](https://github.com/dotnet/roslyn/pull/75684)) diff --git a/l10n/bundle.l10n.cs.json b/l10n/bundle.l10n.cs.json index bdc9c02c4..c8eec8995 100644 --- a/l10n/bundle.l10n.cs.json +++ b/l10n/bundle.l10n.cs.json @@ -144,7 +144,7 @@ "Select project": "Vybrat projekt", "Select the process to attach to": "Vyberte proces, ke kterému se má program připojit.", "Select the project to launch": "Vyberte projekt, který se má spustit.", - "Self-signed certificate sucessfully {0}": "Certifikát podepsaný svým držitelem se úspěšně {0}", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Sending request": "Posílá se žádost", "Server failed to start after retrying 5 times.": "Server se nepovedlo spustit ani po pěti pokusech.", "Server stopped": "Server byl zastaven.", @@ -204,7 +204,7 @@ "You must first start the data collection before stopping.": "Před zastavením je zapotřebí nejdříve spustit shromažďování dat.", "Your workspace has multiple Visual Studio Solution files; please select one to get full IntelliSense.": "Váš pracovní prostor má více souborů řešení Visual Studio. Vyberte prosím jednu, abyste získali úplnou technologii IntelliSense.", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[CHYBA] Ladicí program nelze nainstalovat. Ladicí program není pro {0} podporován.", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[CHYBA] Ladicí program nelze nainstalovat. Ladicí program vyžaduje macOS 12 (Monterey) nebo novější.", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[CHYBA] Ladicí program nelze nainstalovat. Neznámá platforma.", "[ERROR]: C# Extension failed to install the debugger package.": "[CHYBA]: Rozšíření jazyka C# se nepodařilo nainstalovat balíček ladicího programu.", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[UPOZORNĚNÍ]: Ladicí program .NET nepodporuje systém Windows pro platformu x86. Ladění nebude k dispozici.", diff --git a/l10n/bundle.l10n.de.json b/l10n/bundle.l10n.de.json index a052bea44..f1915f9b6 100644 --- a/l10n/bundle.l10n.de.json +++ b/l10n/bundle.l10n.de.json @@ -144,7 +144,7 @@ "Select project": "Projekt auswählen", "Select the process to attach to": "Prozess auswählen, an den angefügt werden soll", "Select the project to launch": "Wählen Sie das Projekt aus, das gestartet werden soll.", - "Self-signed certificate sucessfully {0}": "Selbstsigniertes Zertifikat erfolgreich {0}", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Sending request": "Anforderung wird gesendet", "Server failed to start after retrying 5 times.": "Der Server konnte nach fünf Wiederholungsversuchen nicht gestartet werden.", "Server stopped": "Der Server wurde beendet.", @@ -204,7 +204,7 @@ "You must first start the data collection before stopping.": "Sie müssen zuerst die Datensammlung starten, bevor Sie sie beenden.", "Your workspace has multiple Visual Studio Solution files; please select one to get full IntelliSense.": "Ihr Arbeitsbereich umfasst mehrere Visual Studio-Projektmappendateien. Wählen Sie eine aus, um vollständiges IntelliSense zu erhalten.", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[FEHLER] Der Debugger kann nicht installiert werden. Der Debugger wird für „{0}“ nicht unterstützt.", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[FEHLER] Der Debugger kann nicht installiert werden. Der Debugger erfordert macOS 12 (Monterey) oder höher.", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[FEHLER] Der Debugger kann nicht installiert werden. Unbekannte Plattform.", "[ERROR]: C# Extension failed to install the debugger package.": "[FEHLER]: Fehler beim Installieren des Debuggerpakets durch die C#-Erweiterung.", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[WARNUNG]: x86 Windows wird vom .NET-Debugger nicht unterstützt. Debuggen ist nicht verfügbar.", diff --git a/l10n/bundle.l10n.es.json b/l10n/bundle.l10n.es.json index 993d8dc4f..d8d925dda 100644 --- a/l10n/bundle.l10n.es.json +++ b/l10n/bundle.l10n.es.json @@ -144,7 +144,7 @@ "Select project": "Seleccionar proyecto", "Select the process to attach to": "Seleccione el proceso al que debe asociarse", "Select the project to launch": "Seleccione el proyecto que desea iniciar", - "Self-signed certificate sucessfully {0}": "El certificado autofirmado {0} correctamente", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Sending request": "Enviando la solicitud", "Server failed to start after retrying 5 times.": "El servidor no se pudo iniciar después de reintentar 5 veces.", "Server stopped": "Servidor detenido", @@ -204,7 +204,7 @@ "You must first start the data collection before stopping.": "Primero debe iniciar la recopilación de datos antes de detenerse.", "Your workspace has multiple Visual Studio Solution files; please select one to get full IntelliSense.": "El área de trabajo tiene varios archivos de solución de Visual Studio; seleccione uno para obtener IntelliSense completo.", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[ERROR] No se puede instalar el depurador. El depurador no se admite en '{0}'", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[ERROR] No se puede instalar el depurador. El depurador requiere macOS 12 (Monterey) o una versión más reciente.", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[ERROR] No se puede instalar el depurador. Plataforma desconocida.", "[ERROR]: C# Extension failed to install the debugger package.": "[ERROR]: la extensión de C# no pudo instalar el paquete del depurador.", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[ADVERTENCIA]: El depurador de .NET no admite Windows x86. La depuración no estará disponible.", diff --git a/l10n/bundle.l10n.fr.json b/l10n/bundle.l10n.fr.json index caf5cf817..7342f585e 100644 --- a/l10n/bundle.l10n.fr.json +++ b/l10n/bundle.l10n.fr.json @@ -144,7 +144,7 @@ "Select project": "Sélectionner un projet", "Select the process to attach to": "Sélectionner le processus à attacher", "Select the project to launch": "Sélectionner le projet à lancer", - "Self-signed certificate sucessfully {0}": "Certificat auto-signé {0}", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Sending request": "Envoi de la demande", "Server failed to start after retrying 5 times.": "Le serveur n’a pas pu démarrer après 5 tentatives.", "Server stopped": "Serveur arrêté", @@ -204,7 +204,7 @@ "You must first start the data collection before stopping.": "Vous devez commencer par démarrer la collecte de données avant de l’arrêter.", "Your workspace has multiple Visual Studio Solution files; please select one to get full IntelliSense.": "Votre espace de travail comporte plusieurs fichiers solution Visual Studio ; sélectionnez-en un pour obtenir intelliSense complet.", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[ERREUR] Impossible d’installer le débogueur. Le débogueur n’est pas pris en charge sur « {0} »", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[ERREUR] Impossible d’installer le débogueur. Le débogueur nécessite macOS 12 (Monterey) ou une version plus récente.", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[ERREUR] Impossible d’installer le débogueur. Plateforme inconnue.", "[ERROR]: C# Extension failed to install the debugger package.": "[ERREUR] : l’extension C# n’a pas pu installer le package du débogueur.", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[AVERTISSEMENT] : Windows x86 n'est pas pris en charge par le débogueur .NET. Le débogage ne sera pas disponible.", diff --git a/l10n/bundle.l10n.it.json b/l10n/bundle.l10n.it.json index dae29b750..1a82a8175 100644 --- a/l10n/bundle.l10n.it.json +++ b/l10n/bundle.l10n.it.json @@ -144,7 +144,7 @@ "Select project": "Seleziona progetto", "Select the process to attach to": "Selezionare il processo a cui collegarsi", "Select the project to launch": "Selezionare il progetto da avviare", - "Self-signed certificate sucessfully {0}": "Certificato autofirmato {0}", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Sending request": "Invio della richiesta", "Server failed to start after retrying 5 times.": "Non è possibile avviare il server dopo 5 tentativi.", "Server stopped": "Server arrestato", @@ -204,7 +204,7 @@ "You must first start the data collection before stopping.": "Prima di arrestare è necessario avviare la raccolta dati prima.", "Your workspace has multiple Visual Studio Solution files; please select one to get full IntelliSense.": "L'area di lavoro contiene più file di soluzione Visual Studio; selezionarne uno per ottenere IntelliSense completo.", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[ERROR] Impossibile installare il debugger. Il debugger non è supportato in '{0}'", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[ERROR] Impossibile installare il debugger. Il debugger richiede macOS 12 (Monterey) o una versione successiva.", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[ERROR] Impossibile installare il debugger. Piattaforma sconosciuta.", "[ERROR]: C# Extension failed to install the debugger package.": "[ERROR]: l'estensione C# non è riuscita a installare il pacchetto del debugger.", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[AVVISO]: x86 Windows non è supportato dal debugger .NET. Il debug non sarà disponibile.", diff --git a/l10n/bundle.l10n.ja.json b/l10n/bundle.l10n.ja.json index 999876e4b..44a4902ea 100644 --- a/l10n/bundle.l10n.ja.json +++ b/l10n/bundle.l10n.ja.json @@ -144,7 +144,7 @@ "Select project": "プロジェクトの選択", "Select the process to attach to": "アタッチするプロセスを選択する", "Select the project to launch": "開始するプロジェクトを選択する", - "Self-signed certificate sucessfully {0}": "自己署名証明書が正常に {0} されました", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Sending request": "要求を送信しています", "Server failed to start after retrying 5 times.": "5 回再試行した後、サーバーを起動できませんでした。", "Server stopped": "サーバーが停止しました", @@ -204,7 +204,7 @@ "You must first start the data collection before stopping.": "停止する前に、まずデータ収集を開始する必要があります。", "Your workspace has multiple Visual Studio Solution files; please select one to get full IntelliSense.": "ワークスペースに複数の Visual Studio ソリューション ファイルがあります。完全な IntelliSense を入手するには、ファイルを 1 つ選択してください。", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[エラー] デバッガーをインストールできません。デバッガーは '{0}' でサポートされていません", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[エラー] デバッガーをインストールできません。デバッガーには macOS 12 (Monterey) 以降が必要です。", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[エラー] デバッガーをインストールできません。不明なプラットフォームです。", "[ERROR]: C# Extension failed to install the debugger package.": "[エラー]: C# 拡張機能でデバッガー パッケージをインストールできませんでした。", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[警告]: x86 Windows は .NET デバッガーではサポートされていません。デバッグは使用できません。", diff --git a/l10n/bundle.l10n.json b/l10n/bundle.l10n.json index 69fa39650..6ad19dccd 100644 --- a/l10n/bundle.l10n.json +++ b/l10n/bundle.l10n.json @@ -38,7 +38,7 @@ "More Information": "More Information", "Security Warning": "Security Warning", "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?": "The selected launch configuration is configured to launch a web browser but no trusted development certificate was found. Create a trusted self-signed certificate?", - "Self-signed certificate sucessfully {0}": "Self-signed certificate sucessfully {0}", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Couldn't create self-signed certificate. {0}\ncode: {1}\nstdout: {2}": "Couldn't create self-signed certificate. {0}\ncode: {1}\nstdout: {2}", "Show Output": "Show Output", "Couldn't create self-signed certificate. See output for more information.": "Couldn't create self-signed certificate. See output for more information.", @@ -205,7 +205,7 @@ "Could not find a process id to attach.": "Could not find a process id to attach.", "Unable to launch Attach to Process dialog: ": "Unable to launch Attach to Process dialog: ", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[ERROR] The debugger cannot be installed. Unknown platform.", "Failed to complete the installation of the C# extension. Please see the error in the output window below.": "Failed to complete the installation of the C# extension. Please see the error in the output window below.", diff --git a/l10n/bundle.l10n.ko.json b/l10n/bundle.l10n.ko.json index b9f335121..751519925 100644 --- a/l10n/bundle.l10n.ko.json +++ b/l10n/bundle.l10n.ko.json @@ -144,7 +144,7 @@ "Select project": "프로젝트 선택", "Select the process to attach to": "연결할 프로세스 선택", "Select the project to launch": "시작할 프로젝트 선택", - "Self-signed certificate sucessfully {0}": "자체 서명된 인증서 성공적으로 {0}", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Sending request": "요청을 보내는 중", "Server failed to start after retrying 5 times.": "5번 다시 시도했지만 서버를 시작하지 못했습니다.", "Server stopped": "서버가 중지됨", @@ -204,7 +204,7 @@ "You must first start the data collection before stopping.": "중지하기 전에 먼저 데이터 수집을 시작해야 합니다.", "Your workspace has multiple Visual Studio Solution files; please select one to get full IntelliSense.": "작업 영역에 여러 Visual Studio 솔루션 파일이 있습니다. IntelliSense 전체를 가져오려면 하나를 선택하세요.", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[ERROR] 디버거를 설치할 수 없습니다. '{0}'에서 디버거가 지원되지 않습니다.", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[ERROR] 디버거를 설치할 수 없습니다. 디버거를 사용하려면 macOS 12(Monterey) 이상이 필요합니다.", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[ERROR] 디버거를 설치할 수 없습니다. 알 수 없는 플랫폼입니다..", "[ERROR]: C# Extension failed to install the debugger package.": "[오류]: C# 확장이 디버거 패키지를 설치하지 못했습니다.", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[경고]: x86 Windows는 .NET 디버거에서 지원되지 않습니다. 디버깅을 사용할 수 없습니다.", diff --git a/l10n/bundle.l10n.pl.json b/l10n/bundle.l10n.pl.json index 31789cd32..b68aa2b2e 100644 --- a/l10n/bundle.l10n.pl.json +++ b/l10n/bundle.l10n.pl.json @@ -144,7 +144,7 @@ "Select project": "Wybierz projekt", "Select the process to attach to": "Wybierz docelowy proces dołączania", "Select the project to launch": "Wybierz projekt do uruchomienia", - "Self-signed certificate sucessfully {0}": "Pomyślnie {0} certyfikat z podpisem własnym", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Sending request": "Wysyłanie żądania", "Server failed to start after retrying 5 times.": "Nie można uruchomić serwera po ponowieniu próby 5 razy.", "Server stopped": "Serwer został zatrzymany.", @@ -204,7 +204,7 @@ "You must first start the data collection before stopping.": "Przed zatrzymaniem należy najpierw uruchomić zbieranie danych.", "Your workspace has multiple Visual Studio Solution files; please select one to get full IntelliSense.": "Obszar roboczy ma wiele plików rozwiązania Visual Studio; wybierz jedną, aby uzyskać pełną funkcję IntelliSense.", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[BŁĄD] Nie można zainstalować debugera. Debuger nie jest obsługiwany w „{0}”", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[BŁĄD] Nie można zainstalować debugera. Debuger wymaga systemu macOS 12 (Monterey) lub nowszego.", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[BŁĄD] Nie można zainstalować debugera. Nieznana platforma.", "[ERROR]: C# Extension failed to install the debugger package.": "[BŁĄD]: Rozszerzenie języka C# nie może zainstalować pakietu debugera.", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[OSTRZEŻENIE]: Debuger platformy .NET nie obsługuje systemu Windows x86. Debugowanie nie będzie dostępne.", diff --git a/l10n/bundle.l10n.pt-br.json b/l10n/bundle.l10n.pt-br.json index 4f05fabfd..a35cf4678 100644 --- a/l10n/bundle.l10n.pt-br.json +++ b/l10n/bundle.l10n.pt-br.json @@ -144,7 +144,7 @@ "Select project": "Selecionar projeto", "Select the process to attach to": "Selecione o processo ao qual anexar", "Select the project to launch": "Selecione o projeto a ser iniciado", - "Self-signed certificate sucessfully {0}": "Certificado autoassinado com sucesso {0}", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Sending request": "Enviando a solicitação", "Server failed to start after retrying 5 times.": "O servidor falhou ao iniciar depois de tentar 5 vezes.", "Server stopped": "Servidor parado", @@ -204,7 +204,7 @@ "You must first start the data collection before stopping.": "Você deve primeiro iniciar a coleta de dados antes de parar.", "Your workspace has multiple Visual Studio Solution files; please select one to get full IntelliSense.": "Seu workspace tem vários arquivos do Visual Studio de Solução; selecione um para obter o IntelliSense completo.", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[ERRO] O depurador não pode ser instalado. O depurador não é compatível com “{0}”", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[ERRO] O depurador não pode ser instalado. O depurador requer macOS 12 (Monterey) ou mais recente.", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[ERRO] O depurador não pôde ser instalado. Plataforma desconhecida.", "[ERROR]: C# Extension failed to install the debugger package.": "[ERRO]: a extensão C# falhou ao instalar o pacote do depurador.", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[AVISO]: Windows x86 não dá suporte ao depurador .NET. A depuração não estará disponível.", diff --git a/l10n/bundle.l10n.ru.json b/l10n/bundle.l10n.ru.json index 425ddb40a..6102c4e4b 100644 --- a/l10n/bundle.l10n.ru.json +++ b/l10n/bundle.l10n.ru.json @@ -144,7 +144,7 @@ "Select project": "Выбрать проект", "Select the process to attach to": "Выберите процесс, к которому нужно выполнить подключение", "Select the project to launch": "Выберите проект для запуска", - "Self-signed certificate sucessfully {0}": "Самозаверяющий сертификат успешно {0}", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Sending request": "Отправка запроса", "Server failed to start after retrying 5 times.": "Не удалось запустить сервер после 5 попыток.", "Server stopped": "Сервер остановлен", @@ -204,7 +204,7 @@ "You must first start the data collection before stopping.": "Перед остановкой необходимо запустить сбор данных.", "Your workspace has multiple Visual Studio Solution files; please select one to get full IntelliSense.": "Ваша рабочая область содержит несколько файлов решения Visual Studio. Выберите один из них для получения полного IntelliSense.", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[ОШИБКА] Невозможно установить отладчик. Отладчик не поддерживается в \"{0}\"", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[ОШИБКА] Невозможно установить отладчик. Для отладчика требуется macOS 12 (Monterey) или более новая версия.", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[ОШИБКА] Невозможно установить отладчик. Неизвестная платформа.", "[ERROR]: C# Extension failed to install the debugger package.": "[ОШИБКА]: расширению C# не удалось установить пакет отладчика.", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[ВНИМАНИЕ!] x86 Windows не поддерживается отладчиком .NET. Отладка будет недоступна.", diff --git a/l10n/bundle.l10n.tr.json b/l10n/bundle.l10n.tr.json index cefdfa38e..40c348f89 100644 --- a/l10n/bundle.l10n.tr.json +++ b/l10n/bundle.l10n.tr.json @@ -144,7 +144,7 @@ "Select project": "Proje seçin", "Select the process to attach to": "Eklenilecek işlemi seçin", "Select the project to launch": "Başlatılacak projeyi seçin", - "Self-signed certificate sucessfully {0}": "Otomatik olarak imzalanan sertifika başarıyla {0}", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Sending request": "İstek gönderiliyor", "Server failed to start after retrying 5 times.": "Sunucu 5 kez yeniden denendikten sonra başlatılamadı.", "Server stopped": "Sunucu durduruldu", @@ -204,7 +204,7 @@ "You must first start the data collection before stopping.": "Durdurmadan önce veri toplamayı başlatmalısınız.", "Your workspace has multiple Visual Studio Solution files; please select one to get full IntelliSense.": "Çalışma alanınızda birden çok Visual Studio Çözüm dosyası var; tam IntelliSense almak için birini seçin.", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[HATA] Hata ayıklayıcısı yüklenemiyor. Hata ayıklayıcısı '{0}' üzerinde desteklenmiyor", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[HATA] Hata ayıklayıcısı yüklenemiyor. Hata ayıklayıcı macOS 12 (Monterey) veya daha yeni bir sürüm gerektiriyor.", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[HATA] Hata ayıklayıcısı yüklenemiyor. Bilinmeyen platform.", "[ERROR]: C# Extension failed to install the debugger package.": "[HATA]: C# Uzantısı hata ayıklayıcı paketini yükleyemedi.", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[UYARI]: x86 Windows, .NET hata ayıklayıcısı tarafından desteklenmiyor. Hata ayıklama kullanılamayacak.", diff --git a/l10n/bundle.l10n.zh-cn.json b/l10n/bundle.l10n.zh-cn.json index b2a6e23d5..3d99c0983 100644 --- a/l10n/bundle.l10n.zh-cn.json +++ b/l10n/bundle.l10n.zh-cn.json @@ -144,7 +144,7 @@ "Select project": "选择项目", "Select the process to attach to": "选择要附加到的进程", "Select the project to launch": "选择要启动的项目", - "Self-signed certificate sucessfully {0}": "自签名证书成功 {0}", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Sending request": "正在发送请求", "Server failed to start after retrying 5 times.": "重试 5 次后服务器启动失败。", "Server stopped": "已停止服务器", @@ -204,7 +204,7 @@ "You must first start the data collection before stopping.": "必须先启动数据收集,然后才能停止。", "Your workspace has multiple Visual Studio Solution files; please select one to get full IntelliSense.": "你的工作区具有多个 Visual Studio 解决方案文件;请选择一个文件打开,以获取完整 Intellisense。", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[错误] 无法安装调试程序。“{0}”不支持调试程序", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[错误] 无法安装调试程序。调试程序需要 macOS 12 (Monterey) 或更高版本。", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[错误] 无法安装调试器。未知平台。", "[ERROR]: C# Extension failed to install the debugger package.": "[错误]: C# 扩展无法安装调试器包。", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[WARNING]:.NET 调试程序不支持 x86 Windows。调试将不可用。", diff --git a/l10n/bundle.l10n.zh-tw.json b/l10n/bundle.l10n.zh-tw.json index 8ea55caf9..e89ae36cf 100644 --- a/l10n/bundle.l10n.zh-tw.json +++ b/l10n/bundle.l10n.zh-tw.json @@ -144,7 +144,7 @@ "Select project": "選取專案", "Select the process to attach to": "選取要附加至的目標處理序", "Select the project to launch": "選取要啟動的專案", - "Self-signed certificate sucessfully {0}": "自我簽署憑證已成功 {0}", + "Self-signed certificate successfully {0}": "Self-signed certificate successfully {0}", "Sending request": "正在傳送要求", "Server failed to start after retrying 5 times.": "伺服器在重試 5 次之後無法啟動。", "Server stopped": "伺服器已停止", @@ -204,7 +204,7 @@ "You must first start the data collection before stopping.": "您必須先啟動資料收集,才能停止。", "Your workspace has multiple Visual Studio Solution files; please select one to get full IntelliSense.": "您的工作區有多個 Visual Studio 解決方案檔案;請選取一個檔案以取得完整的 IntelliSense。", "[ERROR] The debugger cannot be installed. The debugger is not supported on '{0}'": "[ERROR] 無法安裝偵錯工具。'{0}' 不支援偵錯工具", - "[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.": "[ERROR] 無法安裝偵錯工具。偵錯工具需要 macOS 12 (Monterey) 或更新版本。", + "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.": "[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.", "[ERROR] The debugger cannot be installed. Unknown platform.": "[錯誤] 無法安裝偵錯工具。未知的平台。", "[ERROR]: C# Extension failed to install the debugger package.": "[錯誤]: C# 延伸模組無法安裝偵錯工具套件。", "[WARNING]: x86 Windows is not supported by the .NET debugger. Debugging will not be available.": "[警告]: .NET 偵錯工具不支援 x86 Windows。偵錯將無法使用。", diff --git a/package.json b/package.json index 872b217e4..563e1cadc 100644 --- a/package.json +++ b/package.json @@ -37,11 +37,11 @@ } }, "defaults": { - "roslyn": "4.13.0-3.24577.4", + "roslyn": "4.13.0-3.24605.12", "omniSharp": "1.39.11", - "razor": "9.0.0-preview.24569.4", + "razor": "9.0.0-preview.24605.1", "razorOmnisharp": "7.0.0-preview.23363.1", - "xamlTools": "17.13.35527.19" + "xamlTools": "17.13.35606.23" }, "main": "./dist/extension", "l10n": "./l10n", @@ -421,7 +421,7 @@ { "id": "Debugger", "description": ".NET Core Debugger (Windows / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-win7-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-60-0/coreclr-debug-win7-x64.zip", "installPath": ".debugger/x86_64", "platforms": [ "win32" @@ -431,12 +431,12 @@ "arm64" ], "installTestPath": "./.debugger/x86_64/vsdbg-ui.exe", - "integrity": "E3368B212113568D7371A007D27917ED50B848D253AD3FA371AEE708A901F9E4" + "integrity": "BFA8E3298DAFE59213BA2FD9938031B7A41A354415274E8238BB49D9E9381E66" }, { "id": "Debugger", "description": ".NET Core Debugger (Windows / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-win10-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-60-0/coreclr-debug-win10-arm64.zip", "installPath": ".debugger/arm64", "platforms": [ "win32" @@ -445,12 +445,12 @@ "arm64" ], "installTestPath": "./.debugger/arm64/vsdbg-ui.exe", - "integrity": "668E48B411BFA7F23770896C08E73E812E48F846265DDC57FB4EE13AA3124DA0" + "integrity": "299DA0ABD00CD61AA1A6293A3C103CCF3070844E4B667C2811A3AAC16D7E6E44" }, { "id": "Debugger", "description": ".NET Core Debugger (macOS / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-osx-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-60-0/coreclr-debug-osx-x64.zip", "installPath": ".debugger/x86_64", "platforms": [ "darwin" @@ -464,12 +464,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/x86_64/vsdbg-ui", - "integrity": "02A9DB05F7017A8610C6BED0CFF696294ECF8C16F6706B9AD8E40032B9E24C3B" + "integrity": "5DF02935DFFD453E8C947AFC7567F4199D4BD83F582EBB20ECD23C054F8A43E2" }, { "id": "Debugger", "description": ".NET Core Debugger (macOS / arm64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-osx-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-60-0/coreclr-debug-osx-arm64.zip", "installPath": ".debugger/arm64", "platforms": [ "darwin" @@ -482,12 +482,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/arm64/vsdbg-ui", - "integrity": "058C2A63DB74AFD9C56964CE149F8D003AFF3C6AEF2A6C1EB24F3FAD51D6C489" + "integrity": "1CBC75E00B7CE32DBD2617AC59EE10A4FE1DBB5AEA6E6A94224F50DEC3C96D3E" }, { "id": "Debugger", "description": ".NET Core Debugger (linux / ARM)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-linux-arm.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-60-0/coreclr-debug-linux-arm.zip", "installPath": ".debugger", "platforms": [ "linux" @@ -500,12 +500,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "B236CD072B7A0E962FECBF0DCF14B5BDBC590723D30D9C84815BD27B906874D0" + "integrity": "AE7B3967783B87448BAC4C78074B1D6F6AD4B70981FBB202CC9150A46405D287" }, { "id": "Debugger", "description": ".NET Core Debugger (linux / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-linux-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-60-0/coreclr-debug-linux-arm64.zip", "installPath": ".debugger", "platforms": [ "linux" @@ -518,12 +518,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "3A18166E6166E46E3731949F8AE9168CAC856D93F331FECD09ABB3FCD843B550" + "integrity": "468C4577B8E131E47CE83C7A290DA41580C6D327B43308CA8B206D068057CCD0" }, { "id": "Debugger", "description": ".NET Core Debugger (linux musl / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-linux-musl-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-60-0/coreclr-debug-linux-musl-x64.zip", "installPath": ".debugger", "platforms": [ "linux-musl" @@ -536,12 +536,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "4CE30A8F2BC7738BEF02D7E28FC8B67F14740A9A1A05E3CC260597675858C9FE" + "integrity": "B097E8D5C87B445399829DCDC32C387121E81F6F79001715645B620FC8EFD087" }, { "id": "Debugger", "description": ".NET Core Debugger (linux musl / ARM64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-linux-musl-arm64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-60-0/coreclr-debug-linux-musl-arm64.zip", "installPath": ".debugger", "platforms": [ "linux-musl" @@ -554,12 +554,12 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "F9D8686A32D27FA85546A2326F96E08D2CC90C0CBA03CD81B2C280C0F67793C5" + "integrity": "02CBCBD53377ECDFD68671D216A7CD2631CF22C60CFA66F5361A919F915D0B19" }, { "id": "Debugger", "description": ".NET Core Debugger (linux / x64)", - "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-55-0/coreclr-debug-linux-x64.zip", + "url": "https://vsdebugger.azureedge.net/coreclr-debug-2-60-0/coreclr-debug-linux-x64.zip", "installPath": ".debugger", "platforms": [ "linux" @@ -572,7 +572,7 @@ "./vsdbg" ], "installTestPath": "./.debugger/vsdbg-ui", - "integrity": "7F3DBA584BF243251154642CC789347CA4C1DFBF6EB7B7B9A44F278545128039" + "integrity": "1710E20F9A7BD4F10A126B86D8F3F9F6C2859B7A7EA2E6BACCE7029ACDA57DFB" }, { "id": "RazorOmnisharp", @@ -733,6 +733,11 @@ "title": "Text Editor", "order": 1, "properties": { + "dotnet.autoInsert.enableAutoInsert": { + "type": "boolean", + "default": true, + "description": "%configuration.dotnet.autoInsert.enableAutoInsert%" + }, "dotnet.typeMembers.memberInsertionLocation": { "type": "string", "enum": [ @@ -5579,4 +5584,4 @@ } } } -} +} \ No newline at end of file diff --git a/package.nls.cs.json b/package.nls.cs.json index cad3e1182..16ba6a264 100644 --- a/package.nls.cs.json +++ b/package.nls.cs.json @@ -28,6 +28,7 @@ "configuration.csharp.inlayHints.enableInlayHintsForIndexerParameters": "Zobrazit tipy pro indexery", "configuration.csharp.inlayHints.enableInlayHintsForLambdaParameterTypes": "Zobrazit nápovědy pro typy parametrů lambda", "configuration.csharp.inlayHints.enableInlayHintsForTypes": "Zobrazovat vložené nápovědy k typům", + "configuration.dotnet.autoInsert.enableAutoInsert": "Povolí automatické vkládání komentářů k dokumentaci.", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "Spustit analýzu kódu na pozadí pro: (Dříve omnisharp.enableRoslynAnalyzers)", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.fullSolution": "Celé řešení", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.none": "Žádné", @@ -93,7 +94,7 @@ "configuration.omnisharp.disableMSBuildDiagnosticWarning": "Určuje, jestli se mají zobrazovat oznámení, pokud při načítání projektu dojde k upozorněním nebo chybám na serveru OmniSharp. Upozornění/chyby tohoto typu jsou vždy generovány do protokolu serveru OmniSharp.", "configuration.omnisharp.dotNetCliPaths": "Cesty k místně staženému rozhraní .NET CLI, které se použije pro spuštění jakéhokoli uživatelského kódu", "configuration.omnisharp.dotnet.server.useOmnisharp": "Přepne na používání serveru Omnisharp pro jazykové funkce, pokud je to povoleno (vyžaduje restartování). Tato možnost se nebude s nainstalovanou sadou C# Dev Kit respektovat.", - "configuration.omnisharp.dotnetPath": "Specifies the path to a dotnet installation directory to use instead of the default system one. This only influences the dotnet installation to use for hosting the OmniSharp server itself. Example: \"/home/username/mycustomdotnetdirectory\".", + "configuration.omnisharp.dotnetPath": "Zadává cestu k adresáři instalace dotnet, která se má použít místo výchozí systémové instalace. To má vliv pouze na instalaci dotnet, která se má použít k hostování samotného serveru OmniSharp. Příklad: /home/username/mycustomdotnetdirectory", "configuration.omnisharp.enableAsyncCompletion": "(EXPERIMENTÁLNÍ) Povolí podporu pro asynchronní řešení úprav doplňování. Může to urychlit zobrazení seznamu pro doplňování, zejména seznamů pro doplňování metod přepsání a částečných metod, za cenu mírného zpoždění po vložení položky pro doplnění. Většina položek por doplnění nebude mít při použití této funkce žádný znatelný dopad, ale zadání bezprostředně po vložení doplnění metody přepsání nebo částečné metody před doplněním vložení může mít nepředvídatelné výsledky.", "configuration.omnisharp.enableDecompilationSupport": "Povolí podporu pro dekompilaci externích odkazů namísto zobrazování metadat.", "configuration.omnisharp.enableEditorConfigSupport": "Povolí podporu čtení stylu kódu, konvence pojmenování a nastavení analyzátoru z .editorconfig.", diff --git a/package.nls.de.json b/package.nls.de.json index a07e9d5fc..7a972ba79 100644 --- a/package.nls.de.json +++ b/package.nls.de.json @@ -28,6 +28,7 @@ "configuration.csharp.inlayHints.enableInlayHintsForIndexerParameters": "Hinweise für Indexer anzeigen", "configuration.csharp.inlayHints.enableInlayHintsForLambdaParameterTypes": "Hinweise für Lambda-Parametertypen anzeigen", "configuration.csharp.inlayHints.enableInlayHintsForTypes": "Inlinetyphinweise anzeigen", + "configuration.dotnet.autoInsert.enableAutoInsert": "Aktivieren Sie das automatische Einfügen von Dokumentationskommentaren.", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "Ausführen der Hintergrundcodeanalyse für: (Zuvor \"omnisharp.enableRoslynAnalyzers\")", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.fullSolution": "Gesamte Projektmappe", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.none": "Keine", @@ -93,7 +94,7 @@ "configuration.omnisharp.disableMSBuildDiagnosticWarning": "Gibt an, ob Benachrichtigungen angezeigt werden sollen, wenn in OmniSharp Warnungen oder Fehler beim Laden eines Projekts auftreten. Beachten Sie, dass diese Warnungen/Fehler immer in das OmniSharp-Protokoll ausgegeben werden.", "configuration.omnisharp.dotNetCliPaths": "Pfade zu einem lokalen Download der .NET-CLI, der zum Ausführen von Benutzercode verwendet werden soll.", "configuration.omnisharp.dotnet.server.useOmnisharp": "Wechselt bei Aktivierung zur Verwendung des Omnisharp-Servers für Sprachfeatures (Neustart erforderlich). Diese Option wird bei installiertem C#-Entwicklerkit nicht berücksichtigt.", - "configuration.omnisharp.dotnetPath": "Specifies the path to a dotnet installation directory to use instead of the default system one. This only influences the dotnet installation to use for hosting the OmniSharp server itself. Example: \"/home/username/mycustomdotnetdirectory\".", + "configuration.omnisharp.dotnetPath": "Gibt den Pfad zu einem dotnet-Installationsverzeichnis an, das anstelle des Standardsystems verwendet werden soll. Dies wirkt sich nur auf die dotnet-Installation aus, die zum Hosten des OmniSharp-Servers selbst verwendet werden soll. Beispiel: \"/home/username/mycustomdotnetdirectory\".", "configuration.omnisharp.enableAsyncCompletion": "(EXPERIMENTELL) Aktiviert die Unterstützung für das asynchrone Auflösen von Vervollständigungsbearbeitungen. Dies kann die Zeit bis zum Anzeigen der Vervollständigungsliste verkürzen, insbesondere bei Vervollständigungslisten für Überschreiben und partielle Methoden. Der Nachteil sind geringfügige Verzögerungen nach dem Einfügen eines Vervollständigungselements. Die meisten Vervollständigungselemente haben bei diesem Feature keine merklichen Auswirkungen, aber die Eingabe unmittelbar nach dem Einfügen einer Vervollständigung für eine Überschreibung oder partielle Methode kann unvorhersehbare Ergebnisse haben.", "configuration.omnisharp.enableDecompilationSupport": "Aktiviert die Unterstützung für das Dekompilieren externer Verweise, anstatt Metadaten anzuzeigen.", "configuration.omnisharp.enableEditorConfigSupport": "Aktiviert die Unterstützung für das Lesen von Einstellungen für Codestil, Namenskonventionen und Analyseeinstellungen aus „.editorconfig“.", diff --git a/package.nls.es.json b/package.nls.es.json index 8aa2e880d..17be748b9 100644 --- a/package.nls.es.json +++ b/package.nls.es.json @@ -28,6 +28,7 @@ "configuration.csharp.inlayHints.enableInlayHintsForIndexerParameters": "Mostrar sugerencias para indizadores", "configuration.csharp.inlayHints.enableInlayHintsForLambdaParameterTypes": "Mostrar sugerencias para los tipos de parámetros lambda", "configuration.csharp.inlayHints.enableInlayHintsForTypes": "Mostrar sugerencias de tipo insertado", + "configuration.dotnet.autoInsert.enableAutoInsert": "Habilite la inserción automática de comentarios de documentación.", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "Ejecutar análisis de código en segundo plano para: (anteriormente \"omnisharp.enableRoslynAnalyzers\")", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.fullSolution": "Toda la solución", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.none": "Ninguno", @@ -93,7 +94,7 @@ "configuration.omnisharp.disableMSBuildDiagnosticWarning": "Especifica si se deben mostrar las notificaciones si OmniSharp encuentra advertencias o errores al cargar un proyecto. Tenga en cuenta que estas advertencias o errores se emiten siempre en el registro de OmniSharp", "configuration.omnisharp.dotNetCliPaths": "Rutas de acceso a una descarga local de la CLI de .NET que se va a usar para ejecutar cualquier código de usuario.", "configuration.omnisharp.dotnet.server.useOmnisharp": "Cambia para usar el servidor Omnisharp para las características de idioma cuando está habilitado (requiere reiniciar). Esta opción no se usará con el Kit de desarrollo de C# instalado.", - "configuration.omnisharp.dotnetPath": "Specifies the path to a dotnet installation directory to use instead of the default system one. This only influences the dotnet installation to use for hosting the OmniSharp server itself. Example: \"/home/username/mycustomdotnetdirectory\".", + "configuration.omnisharp.dotnetPath": "Especifica la ruta de acceso a un directorio de instalación de dotnet que se va a usar en lugar del predeterminado del sistema. Esto solo influye en la instalación dotnet a utilizar para alojar el propio servidor OmniSharp. Ejemplo: \"/home/username/mycustomdotnetdirectory\".", "configuration.omnisharp.enableAsyncCompletion": "(EXPERIMENTAL) Habilita la compatibilidad para resolver ediciones de finalización de forma asincrónica. Esto puede acelerar el tiempo para mostrar la lista de finalización, especialmente las listas de finalización de métodos parciales y de invalidación, a costa de ligeros retrasos después de insertar un elemento de finalización. La mayoría de los elementos de finalización no tendrán ningún impacto notable con esta característica, pero escribir inmediatamente después de insertar una invalidación o finalización parcial del método antes de que se complete la inserción puede tener resultados impredecibles.", "configuration.omnisharp.enableDecompilationSupport": "Habilita la compatibilidad con la descompilación de referencias externas en lugar de ver metadatos.", "configuration.omnisharp.enableEditorConfigSupport": "Habilita la compatibilidad para leer el estilo de código, la convención de nomenclatura y la configuración del analizador desde .editorconfig.", diff --git a/package.nls.fr.json b/package.nls.fr.json index 087b283bd..056ae7fb5 100644 --- a/package.nls.fr.json +++ b/package.nls.fr.json @@ -28,6 +28,7 @@ "configuration.csharp.inlayHints.enableInlayHintsForIndexerParameters": "Afficher les indicateurs pour les indexeurs", "configuration.csharp.inlayHints.enableInlayHintsForLambdaParameterTypes": "Afficher les indicateurs pour les types de paramètre lambda", "configuration.csharp.inlayHints.enableInlayHintsForTypes": "Afficher les indicateurs de type inline", + "configuration.dotnet.autoInsert.enableAutoInsert": "Activez l’insertion automatique des commentaires de documentation.", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "Exécuter l’analyse du code en arrière-plan pour : (précédemment, « omnisharp.enableRoslynAnalyzers »)", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.fullSolution": "Solution complète", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.none": "Aucun", @@ -93,7 +94,7 @@ "configuration.omnisharp.disableMSBuildDiagnosticWarning": "Spécifie si les notifications doivent être affichées si OmniSharp rencontre des avertissements ou des erreurs lors du chargement d’un projet. Notez que ces avertissements/erreurs sont toujours émis dans le journal OmniSharp", "configuration.omnisharp.dotNetCliPaths": "Chemins d’accès à un téléchargement local de l’interface CLI .NET à utiliser pour exécuter n’importe quel code utilisateur.", "configuration.omnisharp.dotnet.server.useOmnisharp": "Bascule pour utiliser le serveur Omnisharp pour les fonctionnalités linguistiques lorsqu’il est activé (nécessite un redémarrage). Cette option ne sera pas respectée avec le Kit de développement C# installé.", - "configuration.omnisharp.dotnetPath": "Specifies the path to a dotnet installation directory to use instead of the default system one. This only influences the dotnet installation to use for hosting the OmniSharp server itself. Example: \"/home/username/mycustomdotnetdirectory\".", + "configuration.omnisharp.dotnetPath": "Spécifie le chemin d'accès vers un répertoire d'installation dotnet à utiliser à la place du répertoire système par défaut. Cela influence uniquement l'installation dotnet à utiliser pour héberger le serveur OmniSharp lui-même. Exemple : \"/home/username/mycustomdotnetdirectory\".", "configuration.omnisharp.enableAsyncCompletion": "(EXPÉRIMENTAL) Active la prise en charge de la résolution asynchrone des modifications de saisie semi-automatique. Cela peut accélérer l'affichage de la liste d'achèvement, en particulier les listes d'achèvement de méthodes de remplacement et partielles, au prix de légers retards après l'insertion d'un élément d'achèvement. La plupart des éléments de saisie semi-automatique n’auront aucun impact notable sur cette fonctionnalité, mais la saisie immédiatement après l’insertion d’un remplacement ou d’une saisie semi-automatique de méthode partielle, avant la fin de l’insertion, peut avoir des résultats imprévisibles.", "configuration.omnisharp.enableDecompilationSupport": "Active la prise en charge de la décompilation des références externes au lieu d’afficher les métadonnées.", "configuration.omnisharp.enableEditorConfigSupport": "Permet la prise en charge du style de lecture du code, de la convention de dénomination et des paramètres de l'analyseur à partir de .editorconfig.", diff --git a/package.nls.it.json b/package.nls.it.json index 94b50cda3..477ff927b 100644 --- a/package.nls.it.json +++ b/package.nls.it.json @@ -28,6 +28,7 @@ "configuration.csharp.inlayHints.enableInlayHintsForIndexerParameters": "Mostra suggerimenti per i valori letterali", "configuration.csharp.inlayHints.enableInlayHintsForLambdaParameterTypes": "Mostra suggerimenti per i tipi di parametro lambda", "configuration.csharp.inlayHints.enableInlayHintsForTypes": "Visualizza suggerimenti di tipo inline", + "configuration.dotnet.autoInsert.enableAutoInsert": "Abilita l'inserimento automatico dei commenti della documentazione.", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "Eseguire l'analisi del codice in background per: (In precedenza “omnisharp.enableRoslynAnalyzers”)", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.fullSolution": "Intera soluzione", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.none": "Nessuno", @@ -93,7 +94,7 @@ "configuration.omnisharp.disableMSBuildDiagnosticWarning": "Specifica se visualizzare le notifiche se OmniSharp rileva avvisi o errori durante il caricamento di un progetto. Si noti che questi avvisi/errori vengono sempre inviati al log OmniSharp", "configuration.omnisharp.dotNetCliPaths": "Percorsi di un download locale dell'interfaccia della riga di comando .NET da usare per l'esecuzione di qualsiasi codice utente.", "configuration.omnisharp.dotnet.server.useOmnisharp": "Passa all'utilizzo del server Omnisharp per le funzionalità del linguaggio se abilitato (richiede il riavvio). Questa opzione non verrà rispettata con il Kit di sviluppo C# installato.", - "configuration.omnisharp.dotnetPath": "Specifies the path to a dotnet installation directory to use instead of the default system one. This only influences the dotnet installation to use for hosting the OmniSharp server itself. Example: \"/home/username/mycustomdotnetdirectory\".", + "configuration.omnisharp.dotnetPath": "Specifica il percorso di una directory di installazione dotnet da usare al posto di quella predefinita del sistema. Ciò influisce solo sull'installazione di dotnet da usare per ospitare il server OmniSharp stesso. Esempio: \"/home/username/mycustomdotnetdirectory\".", "configuration.omnisharp.enableAsyncCompletion": "(SPERIMENTALE) Abilita il supporto per la risoluzione asincrona delle modifiche di completamento. In questo modo è possibile velocizzare il tempo necessario per visualizzare l'elenco di completamento, in particolare gli elenchi di override e di completamento di metodi parziali, a costo di lievi ritardi dopo l'inserimento di un elemento di completamento. La maggior parte degli elementi di completamento non avrà impatti evidenti su questa funzionalità, ma la digitazione subito dopo l'inserimento di un override o di un completamento parziale del metodo, prima del completamento dell'inserimento, può avere risultati imprevedibili.", "configuration.omnisharp.enableDecompilationSupport": "Abilita il supporto per la decompilazione dei riferimenti esterni anziché per la visualizzazione dei metadati.", "configuration.omnisharp.enableEditorConfigSupport": "Abilita il supporto per la lettura dello stile del codice, della convenzione di denominazione e delle impostazioni dell'analizzatore da .editorconfig.", diff --git a/package.nls.ja.json b/package.nls.ja.json index d59c1dade..6b2edc7b6 100644 --- a/package.nls.ja.json +++ b/package.nls.ja.json @@ -28,6 +28,7 @@ "configuration.csharp.inlayHints.enableInlayHintsForIndexerParameters": "インデクサーのヒントを表示する", "configuration.csharp.inlayHints.enableInlayHintsForLambdaParameterTypes": "ラムダ パラメーター型のヒントを表示する", "configuration.csharp.inlayHints.enableInlayHintsForTypes": "インライン型のヒントを表示する", + "configuration.dotnet.autoInsert.enableAutoInsert": "ドキュメント コメントの自動挿入を有効にします。", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "次のバックグラウンド コード分析を実行します: (以前の `omnisharp.enableRoslynAnalyzers`)", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.fullSolution": "ソリューション全体", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.none": "なし", @@ -93,7 +94,7 @@ "configuration.omnisharp.disableMSBuildDiagnosticWarning": "OmniSharp でプロジェクトの読み込み中に警告またはエラーが発生した場合に通知を表示するかどうかを指定します。これらの警告/エラーは常に OmniSharp ログに出力されることに注意してください", "configuration.omnisharp.dotNetCliPaths": "ユーザー コードの実行に使用する .NET CLI のローカル ダウンロードへのパス。", "configuration.omnisharp.dotnet.server.useOmnisharp": "言語機能を有効にすると Omnisharp サーバーを使用するように切り替えます (再起動が必要です)。このオプションは、C# 開発キットがインストールされている場合は適用されません。", - "configuration.omnisharp.dotnetPath": "Specifies the path to a dotnet installation directory to use instead of the default system one. This only influences the dotnet installation to use for hosting the OmniSharp server itself. Example: \"/home/username/mycustomdotnetdirectory\".", + "configuration.omnisharp.dotnetPath": "既定のシステム ディレクトリの代わりに使用する dotnet インストール ディレクトリへのパスを指定します。これは、OmniSharp サーバー自体をホストするために使用する dotnet インストールにのみ影響します。例: \"/home/username/mycustomdotnetdirectory\"。", "configuration.omnisharp.enableAsyncCompletion": "(試験段階) 完了編集を非同期的に解決するためのサポートを有効にします。これにより、完了項目の挿入後にわずかな遅延が発生する代わりに、完了リストを表示する時間を短縮できます。特に、メソッドの完了リストをオーバーライドして部分的に指定できます。ほとんどの完了項目は、この機能に顕著な影響を与えるわけではありませんが、オーバーライドまたは部分的なメソッドの完了を挿入した直後に入力すると、挿入が完了する前に予測できない結果になる可能性があります。", "configuration.omnisharp.enableDecompilationSupport": "メタデータを表示する代わりに、外部参照の逆コンパイルのサポートを有効にします。", "configuration.omnisharp.enableEditorConfigSupport": ".editorconfig からコード スタイル、名前付け規則、アナライザー設定を読み取りのサポートを有効にします。", diff --git a/package.nls.json b/package.nls.json index 92fbaaea5..42ebf7acf 100644 --- a/package.nls.json +++ b/package.nls.json @@ -23,6 +23,7 @@ "command.dotnet.test.runTestsInContext": "Run Tests in Context", "command.dotnet.test.debugTestsInContext": "Debug Tests in Context", "command.dotnet.restartServer": "Restart Language Server", + "configuration.dotnet.autoInsert.enableAutoInsert": "Enable automatic insertion of documentation comments.", "configuration.dotnet.defaultSolution.description": "The path of the default solution to be opened in the workspace, or set to 'disable' to skip it. (Previously `omnisharp.defaultLaunchSolution`)", "configuration.dotnet.server.path": "Specifies the absolute path to the server (LSP or O#) executable. When left empty the version pinned to the C# Extension is used. (Previously `omnisharp.path`)", "configuration.dotnet.server.componentPaths": "Allows overriding the folder path for built in components of the language server (for example, override the .roslynDevKit path in the extension directory to use locally built components)", diff --git a/package.nls.ko.json b/package.nls.ko.json index 2faeebb9d..c3e000e44 100644 --- a/package.nls.ko.json +++ b/package.nls.ko.json @@ -28,6 +28,7 @@ "configuration.csharp.inlayHints.enableInlayHintsForIndexerParameters": "인덱서에 대한 힌트 표시", "configuration.csharp.inlayHints.enableInlayHintsForLambdaParameterTypes": "람다 매개 변수 형식에 대한 힌트 표시", "configuration.csharp.inlayHints.enableInlayHintsForTypes": "인라인 유형 힌트 표시", + "configuration.dotnet.autoInsert.enableAutoInsert": "문서 주석 자동 삽입을 사용하도록 설정합니다.", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "다음에 대한 백그라운드 코드 분석 실행: (이전의 `omnisharp.enableRoslynAnalyzers`)", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.fullSolution": "전체 솔루션", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.none": "없음", @@ -93,7 +94,7 @@ "configuration.omnisharp.disableMSBuildDiagnosticWarning": "OmniSharp에서 프로젝트를 로드하는 동안 경고 또는 오류가 발생한 경우 알림을 표시할지 여부를 지정합니다. 이러한 경고/오류는 항상 OmniSharp 로그에 내보내집니다.", "configuration.omnisharp.dotNetCliPaths": "사용자 코드를 실행하는 데 사용할 .NET CLI의 로컬 다운로드 경로입니다.", "configuration.omnisharp.dotnet.server.useOmnisharp": "활성화된 경우 언어 기능에 Omnisharp 서버를 사용하도록 전환합니다(다시 시작 필요). 이 옵션은 C# 개발 키트가 설치된 경우 적용되지 않습니다.", - "configuration.omnisharp.dotnetPath": "Specifies the path to a dotnet installation directory to use instead of the default system one. This only influences the dotnet installation to use for hosting the OmniSharp server itself. Example: \"/home/username/mycustomdotnetdirectory\".", + "configuration.omnisharp.dotnetPath": "기본 시스템 디렉터리 대신 사용할 dotnet 설치 디렉터리의 경로를 지정합니다. 이는 OmniSharp 서버 자체를 호스트하는 데 사용할 dotnet 설치에만 영향을 줍니다. 예: \"/home/username/mycustomdotnetdirectory\".", "configuration.omnisharp.enableAsyncCompletion": "(실험적) 완성 편집을 비동기적으로 확인할 수 있도록 합니다. 이렇게 하면 완성 항목을 삽입한 후 약간의 지연이 발생하지만 완성 목록, 특히 재정의 및 부분 메서드 완성 목록을 표시하는 시간이 단축될 수 있습니다. 이 기능을 사용하는 경우 대부분의 완성 항목은 눈에 띄는 영향을 받지 않지만 삽입이 완료되기 전, 재정의 또는 부분 메서드 완성을 삽입한 직후에 입력하면 예기치 않은 결과가 발생할 수 있습니다.", "configuration.omnisharp.enableDecompilationSupport": "메타데이터를 보는 대신 외부 참조를 디컴파일할 수 있도록 합니다.", "configuration.omnisharp.enableEditorConfigSupport": ".editorconfig에서 코드 스타일, 명명 규칙 및 분석기 설정을 읽을 수 있도록 합니다.", diff --git a/package.nls.pl.json b/package.nls.pl.json index e92183df3..d6b68dac6 100644 --- a/package.nls.pl.json +++ b/package.nls.pl.json @@ -28,6 +28,7 @@ "configuration.csharp.inlayHints.enableInlayHintsForIndexerParameters": "Pokaż wskazówki dla indeksatorów", "configuration.csharp.inlayHints.enableInlayHintsForLambdaParameterTypes": "Pokaż wskazówki dla typów parametrów funkcji lambda", "configuration.csharp.inlayHints.enableInlayHintsForTypes": "Wyświetl wskazówki w tekście dla typów", + "configuration.dotnet.autoInsert.enableAutoInsert": "Włącz automatyczne wstawianie komentarzy do dokumentacji.", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "Uruchom analizę kodu w tle dla: (Wcześniej „omnisharp.enableRoslynAnalyzers”)", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.fullSolution": "Całe rozwiązanie", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.none": "Brak", @@ -93,7 +94,7 @@ "configuration.omnisharp.disableMSBuildDiagnosticWarning": "Określa, czy powiadomienia powinny być wyświetlane, jeśli element OmniSharp napotka ostrzeżenia lub błędy podczas ładowania projektu. Pamiętaj, że te ostrzeżenia/błędy są zawsze emitowane do dziennika OmniSharp", "configuration.omnisharp.dotNetCliPaths": "Ścieżki do lokalnego pobierania interfejsu wiersza polecenia platformy .NET do użycia na potrzeby uruchamiania dowolnego kodu użytkownika.", "configuration.omnisharp.dotnet.server.useOmnisharp": "Przełącza do używania serwera Omnisharp na potrzeby funkcji językowych, gdy ta opcja jest włączona (wymaga ponownego uruchomienia). Ta opcja nie będzie honorowana przy zainstalowanym zestawie Dev Kit języka C#.", - "configuration.omnisharp.dotnetPath": "Specifies the path to a dotnet installation directory to use instead of the default system one. This only influences the dotnet installation to use for hosting the OmniSharp server itself. Example: \"/home/username/mycustomdotnetdirectory\".", + "configuration.omnisharp.dotnetPath": "Określa ścieżkę do katalogu instalacyjnego dotnet, który ma być używany zamiast domyślnego katalogu systemowego. Ma to wpływ tylko na instalację platformy dotnet używaną do hostowania samego serwera OmniSharp. Przykład: „/home/username/mycustomdotnetdirectory”.", "configuration.omnisharp.enableAsyncCompletion": "(EKSPERYMENTALNE) Włącza obsługę w zakresie asynchronicznego rozwiązywania problemów z ukończeniem edytowania. Może to przyspieszyć wyświetlanie listy uzupełniania, w szczególności list przesłonięć i częściowej listy uzupełniania metod, kosztem nieznacznych opóźnień po wstawieniu elementu uzupełniania. Większość elementów uzupełniania nie będzie mieć widocznego wpływu na tę funkcję, ale wpisanie tekstu bezpośrednio po wstawieniu przesłonięcia lub częściowego ukończenia metody przed ukończeniem wstawiania może dawać nieprzewidywalne wyniki.", "configuration.omnisharp.enableDecompilationSupport": "Umożliwia obsługę dekompilowania odwołań zewnętrznych zamiast wyświetlania metadanych.", "configuration.omnisharp.enableEditorConfigSupport": "Włącza obsługę odczytywania stylu kodu, konwencji nazewnictwa i ustawień analizatora z pliku .editorconfig.", diff --git a/package.nls.pt-br.json b/package.nls.pt-br.json index 200912b0a..f9bd14295 100644 --- a/package.nls.pt-br.json +++ b/package.nls.pt-br.json @@ -28,6 +28,7 @@ "configuration.csharp.inlayHints.enableInlayHintsForIndexerParameters": "Mostrar dicas para indexadores", "configuration.csharp.inlayHints.enableInlayHintsForLambdaParameterTypes": "Mostrar as dicas para os tipos de parâmetro lambda", "configuration.csharp.inlayHints.enableInlayHintsForTypes": "Exibir as dicas embutidas de tipo", + "configuration.dotnet.autoInsert.enableAutoInsert": "Habilitar a inserção automática de comentários de documentação.", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "Execute a análise de código em segundo plano para: (Anteriormente `omnisharp.enableRoslynAnalyzers`)", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.fullSolution": "Solução inteira", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.none": "Nenhum", @@ -93,7 +94,7 @@ "configuration.omnisharp.disableMSBuildDiagnosticWarning": "Especifica se as notificações devem ser mostradas se o OmniSharp encontrar avisos ou erros ao carregar um projeto. Observe que esses avisos/erros são sempre emitidos para o log do OmniSharp", "configuration.omnisharp.dotNetCliPaths": "Caminhos para um download local da CLI do .NET a ser usado para executar qualquer código de usuário.", "configuration.omnisharp.dotnet.server.useOmnisharp": "Alterna para usar o servidor Omnisharp para recursos de idioma quando habilitado (requer reinicialização). Essa opção não será respeitada com o Kit de Desenvolvimento em C# instalado.", - "configuration.omnisharp.dotnetPath": "Specifies the path to a dotnet installation directory to use instead of the default system one. This only influences the dotnet installation to use for hosting the OmniSharp server itself. Example: \"/home/username/mycustomdotnetdirectory\".", + "configuration.omnisharp.dotnetPath": "Especifica o caminho para um diretório de instalação do dotnet a ser usado em vez do padrão do sistema. Isso só influencia a instalação do dotnet a ser usada para hospedar o próprio servidor OmniSharp. Exemplo: \"/home/username/mycustomdotnetdirectory\".", "configuration.omnisharp.enableAsyncCompletion": "(EXPERIMENTAL) Habilita o suporte para resolver as edições de conclusão de forma assíncrona. Isso pode acelerar o tempo de atividade para mostrar a lista de conclusão, especialmente as listas de substituição e de conclusão de métodos parciais, ao custo de pequenos atrasos após a inserção de um item de conclusão. A maioria dos itens de conclusão não terá impacto perceptível com esse recurso, mas digitar imediatamente após a inserção de uma substituição ou conclusão de método parcial, antes que a inserção seja concluída, pode ter resultados imprevisíveis.", "configuration.omnisharp.enableDecompilationSupport": "Habilita o suporte para descompilar as referências externas em vez de exibir metadados.", "configuration.omnisharp.enableEditorConfigSupport": "Habilita o suporte para ler o estilo de código, a convenção de nomenclatura e as configurações do analisador do .editorconfig.", diff --git a/package.nls.ru.json b/package.nls.ru.json index d50084c19..b71b9c5e3 100644 --- a/package.nls.ru.json +++ b/package.nls.ru.json @@ -28,6 +28,7 @@ "configuration.csharp.inlayHints.enableInlayHintsForIndexerParameters": "Отображать подсказки для индексаторов", "configuration.csharp.inlayHints.enableInlayHintsForLambdaParameterTypes": "Отображать подсказки для типов лямбда-параметров", "configuration.csharp.inlayHints.enableInlayHintsForTypes": "Отображать подсказки для встроенных типов", + "configuration.dotnet.autoInsert.enableAutoInsert": "Включить автоматическую вставку комментариев к документации.", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "Выполнить анализ кода в фоновом режиме для: (ранее — \"omnisharp.enableRoslynAnalyzers\")", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.fullSolution": "Все решение", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.none": "Нет", @@ -93,7 +94,7 @@ "configuration.omnisharp.disableMSBuildDiagnosticWarning": "Указывает, должны ли отображаться уведомления, если OmniSharp обнаруживает предупреждения или ошибки при загрузке проекта. Обратите внимание, что эти предупреждения или ошибки всегда отображаются в журнале OmniSharp", "configuration.omnisharp.dotNetCliPaths": "Пути к локальному скачиванию CLI .NET, используемому для выполнения любого пользовательского кода.", "configuration.omnisharp.dotnet.server.useOmnisharp": "Переключение на использование сервера Omnisharp для языковых функций при включении (требуется перезапуск). Этот параметр не будет учитываться при установке комплекта разработки C#.", - "configuration.omnisharp.dotnetPath": "Specifies the path to a dotnet installation directory to use instead of the default system one. This only influences the dotnet installation to use for hosting the OmniSharp server itself. Example: \"/home/username/mycustomdotnetdirectory\".", + "configuration.omnisharp.dotnetPath": "Указывает путь к каталогу установки dotnet для использования вместо стандартного системного каталога. Это влияет только на установку dotnet, используемую для размещения самого сервера OmniSharp. Пример: \"/home/username/mycustomdotnetdirectory\".", "configuration.omnisharp.enableAsyncCompletion": "(ЭКСПЕРИМЕНТАЛЬНАЯ ФУНКЦИЯ) Включает поддержку асинхронного разрешения правок завершения. Это может ускорить отображение списка завершения, особенно списков завершения переопределения и частичного метода, ценой небольших задержек после вставки элемента завершения. Большинство элементов завершения не оказывают заметного влияния на эту функцию, но если выполнить ввод сразу после вставки завершения переопределения или частичного метода, не дождавшись окончания вставки, это может привести к непредсказуемым результатам.", "configuration.omnisharp.enableDecompilationSupport": "Включает поддержку декомпиляции внешних ссылок вместо просмотра метаданных.", "configuration.omnisharp.enableEditorConfigSupport": "Включает поддержку чтения стиля кода, соглашения об именовании и параметров анализатора из EDITORCONFIG.", diff --git a/package.nls.tr.json b/package.nls.tr.json index 3b75f64ea..d017c15bc 100644 --- a/package.nls.tr.json +++ b/package.nls.tr.json @@ -28,6 +28,7 @@ "configuration.csharp.inlayHints.enableInlayHintsForIndexerParameters": "Dizin oluşturucular için ipuçlarını göster", "configuration.csharp.inlayHints.enableInlayHintsForLambdaParameterTypes": "Lambda parametre türleri için ipuçlarını göster", "configuration.csharp.inlayHints.enableInlayHintsForTypes": "Satır içi tür ipuçlarını göster", + "configuration.dotnet.autoInsert.enableAutoInsert": "Belge açıklamalarının otomatik olarak eklenmesini etkinleştirin.", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "Şunun için arka plan kodu analizini çalıştırın: (Daha önce `omnisharp.enableRoslynAnalyzers`)", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.fullSolution": "Tüm çözüm", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.none": "Yok", @@ -93,7 +94,7 @@ "configuration.omnisharp.disableMSBuildDiagnosticWarning": "OmniSharp bir proje yüklerken uyarılarla veya hatalarla karşılaştığında bildirimlerin gösterilip gösterilmeyeceğini belirtir. Bu uyarıların/hataların her zaman OmniSharp günlüğüne yayımlanacağını unutmayın", "configuration.omnisharp.dotNetCliPaths": "Herhangi bir kullanıcı kodunu çalıştırmak için kullanılacak .NET CLI'nin yerel bir indirmesine giden yollar.", "configuration.omnisharp.dotnet.server.useOmnisharp": "Etkinleştirildiğinde dil özellikleri için Omnisharp sunucusunu kullanmaya geçer (yeniden başlatma gerekir). Bu seçenek C# Geliştirme Paketi yüklü olarak sunulmaz.", - "configuration.omnisharp.dotnetPath": "Specifies the path to a dotnet installation directory to use instead of the default system one. This only influences the dotnet installation to use for hosting the OmniSharp server itself. Example: \"/home/username/mycustomdotnetdirectory\".", + "configuration.omnisharp.dotnetPath": "Varsayılan sistem dizini yerine kullanılacak bir dotnet kurulum dizininin yolunu belirtir. Bu, yalnızca OmniSharp sunucusunun kendisini barındırmak için kullanılacak dotnet kurulumunu etkiler. Örnek: \"/home/username/mycustomdotnetdirectory\".", "configuration.omnisharp.enableAsyncCompletion": "(DENEYSEL) Tamamlama düzenlemelerini zaman uyumsuz olarak çözümleme desteğini etkinleştirir. Bu, bir tamamlama öğesi eklendikten sonra küçük gecikmeler pahasına tamamlama listesini, özellikle de geçersiz kılma ve kısmi yöntem tamamlama listelerini gösterme süresini hızlandırabilir. Çoğu tamamlama öğesinin bu özellik üzerinde belirgin bir etkisi olmayacaktır, ancak bir geçersiz kılma veya kısmi yöntem tamamlama eklendikten hemen sonra, ekleme işlemi tamamlanmadan önce yazmak öngörülemeyen sonuçlara yol açabilir.", "configuration.omnisharp.enableDecompilationSupport": "Meta verileri görüntülemek yerine harici referansların derlemesini açma desteğini etkinleştirir.", "configuration.omnisharp.enableEditorConfigSupport": "Kod stilini, adlandırma kurallarını ve analizör ayarlarını .editorconfig dosyasından okuma desteğini etkinleştirir.", diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json index e7a8955fa..98d5e1bb7 100644 --- a/package.nls.zh-cn.json +++ b/package.nls.zh-cn.json @@ -28,6 +28,7 @@ "configuration.csharp.inlayHints.enableInlayHintsForIndexerParameters": "显示索引器的提示", "configuration.csharp.inlayHints.enableInlayHintsForLambdaParameterTypes": "显示 lambda 参数类型的提示", "configuration.csharp.inlayHints.enableInlayHintsForTypes": "显示内联类型提示", + "configuration.dotnet.autoInsert.enableAutoInsert": "启用文档注释的自动插入。", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "运行以下项的后台代码分析: (之前为 \"omnisharp.enableRoslynAnalyzers\")", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.fullSolution": "整个解决方案", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.none": "无", @@ -93,7 +94,7 @@ "configuration.omnisharp.disableMSBuildDiagnosticWarning": "指定如果 OmniSharp 在加载项目时遇到警告或错误,是否应显示通知。请注意,这些警告/错误始终会发送到 OmniSharp 日志", "configuration.omnisharp.dotNetCliPaths": "用于运行任何用户代码的 .NET CLI 的本地下载路径。", "configuration.omnisharp.dotnet.server.useOmnisharp": "启用后切换为使用 Omnisharp 服务器实现语言功能(需要重启)。安装 C# 开发工具包后,将不支持此选项。", - "configuration.omnisharp.dotnetPath": "Specifies the path to a dotnet installation directory to use instead of the default system one. This only influences the dotnet installation to use for hosting the OmniSharp server itself. Example: \"/home/username/mycustomdotnetdirectory\".", + "configuration.omnisharp.dotnetPath": "指定要使用的 dotnet 安装目录的路径,而不是默认的系统目录。这仅影响用于承载 OmniSharp 服务器本身的 dotnet 安装。示例: \"/home/username/mycustomdotnetdirectory\"。", "configuration.omnisharp.enableAsyncCompletion": "(实验性)启用对异步解决完成编辑的支持。这可以加快显示完成列表的时间,特别是替代和部分方法完成列表,但代价是插入完成项后会有轻微的延迟。大多数完成项都不会对该功能产生明显的影响,但在插入替代或部分方法完成之后,且在插入完成之前立即输入,可能会产生不可预测的结果。", "configuration.omnisharp.enableDecompilationSupport": "启用对反编译外部引用而不是查看元数据的支持。", "configuration.omnisharp.enableEditorConfigSupport": "启用从 .editorconfig 读取代码样式、命名约定和分析器设置的支持。", diff --git a/package.nls.zh-tw.json b/package.nls.zh-tw.json index bfd9fb4df..c6739ca2b 100644 --- a/package.nls.zh-tw.json +++ b/package.nls.zh-tw.json @@ -28,6 +28,7 @@ "configuration.csharp.inlayHints.enableInlayHintsForIndexerParameters": "顯示索引子的提示", "configuration.csharp.inlayHints.enableInlayHintsForLambdaParameterTypes": "顯示 Lambda 參數類型的提示", "configuration.csharp.inlayHints.enableInlayHintsForTypes": "顯示內嵌類型提示", + "configuration.dotnet.autoInsert.enableAutoInsert": "啟用自動插入檔批注。", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope": "執行背景程式碼分析: (先前為 `omnisharp.enableRoslynAnalyzers`)", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.fullSolution": "整個解決方案", "configuration.dotnet.backgroundAnalysis.analyzerDiagnosticsScope.none": "無", @@ -93,7 +94,7 @@ "configuration.omnisharp.disableMSBuildDiagnosticWarning": "指定如果 OmniSharp 在載入專案時遇到警告或錯誤,是否應該顯示通知。請注意,這些警告/錯誤一律會發出至 OmniSharp 記錄", "configuration.omnisharp.dotNetCliPaths": "用於執行任何使用者程式碼的 .NET CLI 的本機下載路徑。", "configuration.omnisharp.dotnet.server.useOmnisharp": "啟用時,切換為使用 Omnisharp 伺服器的語言功能 (需要重新啟動)。安裝 C# 開發套件時,將不會使用此選項。", - "configuration.omnisharp.dotnetPath": "Specifies the path to a dotnet installation directory to use instead of the default system one. This only influences the dotnet installation to use for hosting the OmniSharp server itself. Example: \"/home/username/mycustomdotnetdirectory\".", + "configuration.omnisharp.dotnetPath": "指定要使用的 dotnet 安裝目錄路徑,而非系統預設的路徑。這只會影響用來裝載 OmniSharp 伺服器本身的 dotnet 安裝。範例: \"/home/username/mycustomdotnetdirectory”。", "configuration.omnisharp.enableAsyncCompletion": "(實驗性) 啟用解決非同步完成編輯的支援。這可加速顯示完成清單的時間,特別是覆寫和部分方法完成清單,但插入完成項目後會有稍微延遲。大部分的完成項目對此功能沒有明顯的影響,但在插入取代或部分方法完成之後,於插入完成之前立即輸入,可能會產生無法預期的結果。", "configuration.omnisharp.enableDecompilationSupport": "啟用針對外部參考的反向組譯支援,而不是檢視中繼資料。", "configuration.omnisharp.enableEditorConfigSupport": "啟用從 .editorconfig 讀取程式碼樣式、命名慣例及分析器設定的支援。", diff --git a/src/coreclrDebug/activate.ts b/src/coreclrDebug/activate.ts index cfc07d74a..b45034f4f 100644 --- a/src/coreclrDebug/activate.ts +++ b/src/coreclrDebug/activate.ts @@ -6,7 +6,7 @@ import * as path from 'path'; import * as vscode from 'vscode'; import * as common from '../common'; -import { CoreClrDebugUtil, getTargetArchitecture } from './util'; +import { CoreClrDebugUtil, getTargetArchitecture, MINIMUM_SUPPORT_MACOS_DISPLAY_NAME } from './util'; import { PlatformInformation } from '../shared/platform'; import { DebuggerPrerequisiteWarning, @@ -142,7 +142,8 @@ async function checkIsValidArchitecture( eventStream.post( new DebuggerPrerequisiteFailure( vscode.l10n.t( - '[ERROR] The debugger cannot be installed. The debugger requires macOS 12 (Monterey) or newer.' + '[ERROR] The debugger cannot be installed. The debugger requires {0} or newer.', + MINIMUM_SUPPORT_MACOS_DISPLAY_NAME ) ) ); diff --git a/src/coreclrDebug/util.ts b/src/coreclrDebug/util.ts index 07f43219c..9135e8ea3 100644 --- a/src/coreclrDebug/util.ts +++ b/src/coreclrDebug/util.ts @@ -14,6 +14,11 @@ import { DotnetInfo } from '../shared/utils/dotnetInfo'; const MINIMUM_SUPPORTED_DOTNET_CLI = '1.0.0'; +// .NET 8 requires macOS 12+, however the build machines are on macOS 13, which is Darwin 22.0+ +// Darwin version chart: https://en.wikipedia.org/wiki/Darwin_(operating_system) +const MINIMUM_SUPPORT_MACOS_VERSION = '22.0.0'; +export const MINIMUM_SUPPORT_MACOS_DISPLAY_NAME = 'macOS 13 (Ventura)'; + export class CoreClrDebugUtil { private _extensionDir = ''; private _debugAdapterDir = ''; @@ -83,9 +88,7 @@ export class CoreClrDebugUtil { } public static isMacOSSupported(): boolean { - // .NET 8 requires macOS 12 (Monterey), which is Darwin 21.0+ - // Darwin version chart: https://en.wikipedia.org/wiki/Darwin_(operating_system) - return semver.gte(os.release(), '21.0.0'); + return semver.gte(os.release(), MINIMUM_SUPPORT_MACOS_VERSION); } public static existsSync(path: string): boolean { diff --git a/src/lsptoolshost/roslynLanguageServer.ts b/src/lsptoolshost/roslynLanguageServer.ts index 3b43487dc..e391bdf2d 100644 --- a/src/lsptoolshost/roslynLanguageServer.ts +++ b/src/lsptoolshost/roslynLanguageServer.ts @@ -78,6 +78,7 @@ import { import { registerSourceGeneratedFilesContentProvider } from './sourceGeneratedFilesContentProvider'; import { registerMiscellaneousFileNotifier } from './miscellaneousFileNotifier'; import { TelemetryEventNames } from '../shared/telemetryEventNames'; +import { RazorDynamicFileChangedParams } from '../razor/src/dynamicFile/dynamicFileUpdatedParams'; let _channel: vscode.LogOutputChannel; let _traceChannel: vscode.OutputChannel; @@ -789,6 +790,11 @@ export class RoslynLanguageServer { async (notification) => vscode.commands.executeCommand(DynamicFileInfoHandler.removeDynamicFileInfoCommand, notification) ); + vscode.commands.registerCommand( + DynamicFileInfoHandler.dynamicFileUpdatedCommand, + async (notification: RazorDynamicFileChangedParams) => + this.sendNotification('razor/dynamicFileInfoChanged', notification) + ); } // eslint-disable-next-line @typescript-eslint/promise-function-async diff --git a/src/razor/src/csharp/csharpProjectedDocument.ts b/src/razor/src/csharp/csharpProjectedDocument.ts index d74c0bb25..e31ad27e6 100644 --- a/src/razor/src/csharp/csharpProjectedDocument.ts +++ b/src/razor/src/csharp/csharpProjectedDocument.ts @@ -19,6 +19,10 @@ export class CSharpProjectedDocument implements IProjectedDocument { private resolveProvisionalEditAt: number | undefined; private ProvisionalDotPosition: Position | undefined; private hostDocumentVersion: number | null = null; + private updates: CSharpDocumentUpdate[] | null = null; + private _checksum: string = ''; + private _checksumAlgorithm: number = 1; // Default to Sha1 + private _encodingCodePage: number | null = null; public constructor(public readonly uri: vscode.Uri) { this.path = getUriPath(uri); @@ -36,22 +40,78 @@ export class CSharpProjectedDocument implements IProjectedDocument { this.setContent(''); } - public update(edits: ServerTextChange[], hostDocumentVersion: number) { - this.removeProvisionalDot(); + public get checksum(): string { + return this._checksum; + } - this.hostDocumentVersion = hostDocumentVersion; + public get checksumAlgorithm(): number { + return this._checksumAlgorithm; + } - if (edits.length === 0) { - return; + public get encodingCodePage(): number | null { + return this._encodingCodePage; + } + + public update( + hostDocumentIsOpen: boolean, + edits: ServerTextChange[], + hostDocumentVersion: number, + checksum: string, + checksumAlgorithm: number, + encodingCodePage: number | null + ) { + if (hostDocumentIsOpen) { + this.removeProvisionalDot(); + + // Apply any stored edits if needed + if (this.updates) { + for (const update of this.updates) { + this.updateContent(update.changes); + } + + this.updates = null; + } + + this.updateContent(edits); + this._checksum = checksum; + this._checksumAlgorithm = checksumAlgorithm; + this._encodingCodePage = encodingCodePage; + } else { + const update = new CSharpDocumentUpdate(edits, checksum, checksumAlgorithm, encodingCodePage); + + if (this.updates) { + this.updates = this.updates.concat(update); + } else { + this.updates = [update]; + } } - let content = this.content; - for (const edit of edits.reverse()) { - // TODO: Use a better data structure to represent the content, string concatenation is slow. - content = this.getEditedContent(edit.newText, edit.span.start, edit.span.start + edit.span.length, content); + this.hostDocumentVersion = hostDocumentVersion; + } + + public applyEdits(): ApplyEditsResponse { + const updates = this.updates; + this.updates = null; + + const originalChecksum = this._checksum; + const originalChecksumAlgorithm = this._checksumAlgorithm; + const originalEncodingCodePage = this._encodingCodePage; + + if (updates) { + for (const update of updates) { + this.updateContent(update.changes); + this._checksum = update.checksum; + this._checksumAlgorithm = update.checksumAlgorithm; + this._encodingCodePage = update.encodingCodePage; + } } - this.setContent(content); + return { + edits: updates, + originalChecksum: originalChecksum, + originalChecksumAlgorithm: originalChecksumAlgorithm, + originalEncodingCodePage: originalEncodingCodePage, + }; } public getContent() { @@ -140,8 +200,8 @@ export class CSharpProjectedDocument implements IProjectedDocument { } private getEditedContent(newText: string, start: number, end: number, content: string) { - const before = content.substr(0, start); - const after = content.substr(end); + const before = content.substring(0, start); + const after = content.substring(end); content = `${before}${newText}${after}`; return content; @@ -150,4 +210,34 @@ export class CSharpProjectedDocument implements IProjectedDocument { private setContent(content: string) { this.content = content; } + + private updateContent(edits: ServerTextChange[]) { + if (edits.length === 0) { + return; + } + + let content = this.content; + for (const edit of edits.reverse()) { + // TODO: Use a better data structure to represent the content, string concatenation is slow. + content = this.getEditedContent(edit.newText, edit.span.start, edit.span.start + edit.span.length, content); + } + + this.setContent(content); + } +} + +export class CSharpDocumentUpdate { + constructor( + public readonly changes: ServerTextChange[], + public readonly checksum: string, + public readonly checksumAlgorithm: number, + public readonly encodingCodePage: number | null + ) {} +} + +export interface ApplyEditsResponse { + edits: CSharpDocumentUpdate[] | null; + originalChecksum: string; + originalChecksumAlgorithm: number; + originalEncodingCodePage: number | null; } diff --git a/src/razor/src/document/IRazorDocument.ts b/src/razor/src/document/IRazorDocument.ts index 95557df8f..6fcd07a26 100644 --- a/src/razor/src/document/IRazorDocument.ts +++ b/src/razor/src/document/IRazorDocument.ts @@ -11,4 +11,5 @@ export interface IRazorDocument { readonly uri: vscode.Uri; readonly csharpDocument: IProjectedDocument; readonly htmlDocument: IProjectedDocument; + readonly isOpen: boolean; } diff --git a/src/razor/src/document/razorDocument.ts b/src/razor/src/document/razorDocument.ts new file mode 100644 index 000000000..1c42dce6a --- /dev/null +++ b/src/razor/src/document/razorDocument.ts @@ -0,0 +1,32 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as vscode from 'vscode'; +import { CSharpProjectedDocument } from '../csharp/csharpProjectedDocument'; +import { HtmlProjectedDocument } from '../html/htmlProjectedDocument'; +import { getUriPath } from '../uriPaths'; +import { IRazorDocument } from './IRazorDocument'; + +export class RazorDocument implements IRazorDocument { + public readonly path: string; + + constructor( + readonly uri: vscode.Uri, + readonly csharpDocument: CSharpProjectedDocument, + readonly htmlDocument: HtmlProjectedDocument + ) { + this.path = getUriPath(uri); + } + + public get isOpen(): boolean { + for (const textDocument of vscode.workspace.textDocuments) { + if (textDocument.uri.fsPath == this.uri.fsPath) { + return true; + } + } + + return false; + } +} diff --git a/src/razor/src/document/razorDocumentFactory.ts b/src/razor/src/document/razorDocumentFactory.ts index 18b8b919f..1b3f2c5db 100644 --- a/src/razor/src/document/razorDocumentFactory.ts +++ b/src/razor/src/document/razorDocumentFactory.ts @@ -11,18 +11,12 @@ import { HtmlProjectedDocumentContentProvider } from '../html/htmlProjectedDocum import { virtualCSharpSuffix, virtualHtmlSuffix } from '../razorConventions'; import { getUriPath } from '../uriPaths'; import { IRazorDocument } from './IRazorDocument'; +import { RazorDocument } from './razorDocument'; -export function createDocument(uri: vscode.Uri) { +export function createDocument(uri: vscode.Uri): IRazorDocument { const csharpDocument = createProjectedCSharpDocument(uri); const htmlDocument = createProjectedHtmlDocument(uri); - const path = getUriPath(uri); - - const document: IRazorDocument = { - uri, - path, - csharpDocument, - htmlDocument, - }; + const document = new RazorDocument(uri, csharpDocument, htmlDocument); return document; } diff --git a/src/razor/src/document/razorDocumentManager.ts b/src/razor/src/document/razorDocumentManager.ts index 066073f40..b90e303fd 100644 --- a/src/razor/src/document/razorDocumentManager.ts +++ b/src/razor/src/document/razorDocumentManager.ts @@ -50,21 +50,12 @@ export class RazorDocumentManager implements IRazorDocumentManager { return Object.values(this.razorDocuments); } - public async getDocument(uri: vscode.Uri) { + public async getDocument(uri: vscode.Uri): Promise { const document = this._getDocument(uri); - - // VS Code closes virtual documents after some timeout if they are not open in the IDE. Since our generated C# and Html - // documents are never open in the IDE, we need to ensure that VS Code considers them open so that requests against them - // succeed. Without this, even a simple diagnostics request will fail in Roslyn if the user just opens a .razor document - // and leaves it open past the timeout. - if (this.razorDocumentGenerationInitialized) { - await this.ensureDocumentAndProjectedDocumentsOpen(document); - } - return document; } - public async getActiveDocument() { + public async getActiveDocument(): Promise { if (!vscode.window.activeTextEditor) { return null; } @@ -147,7 +138,7 @@ export class RazorDocumentManager implements IRazorDocumentManager { return vscode.Disposable.from(watcher, didCreateRegistration, didOpenRegistration, didCloseRegistration); } - private _getDocument(uri: vscode.Uri) { + private _getDocument(uri: vscode.Uri): IRazorDocument { const path = getUriPath(uri); let document = this.findDocument(path); @@ -159,7 +150,7 @@ export class RazorDocumentManager implements IRazorDocumentManager { document = this.addDocument(uri); } - return document; + return document!; } private async openDocument(uri: vscode.Uri) { @@ -182,10 +173,6 @@ export class RazorDocumentManager implements IRazorDocumentManager { await vscode.commands.executeCommand(razorInitializeCommand, pipeName); await this.serverClient.connectNamedPipe(pipeName); - for (const document of this.documents) { - await this.ensureDocumentAndProjectedDocumentsOpen(document); - } - this.onRazorInitializedEmitter.fire(); } } @@ -205,7 +192,7 @@ export class RazorDocumentManager implements IRazorDocumentManager { this.notifyDocumentChange(document, RazorDocumentChangeKind.closed); } - private addDocument(uri: vscode.Uri) { + private addDocument(uri: vscode.Uri): IRazorDocument { const path = getUriPath(uri); let document = this.findDocument(path); if (document) { @@ -261,10 +248,6 @@ export class RazorDocumentManager implements IRazorDocumentManager { ) { // We allow re-setting of the updated content from the same doc sync version in the case // of project or file import changes. - - // Make sure the document is open, because updating will cause a didChange event to fire. - await vscode.workspace.openTextDocument(document.csharpDocument.uri); - const csharpProjectedDocument = projectedDocument as CSharpProjectedDocument; // If the language server is telling us that the previous document was empty, then we should clear @@ -275,7 +258,14 @@ export class RazorDocumentManager implements IRazorDocumentManager { csharpProjectedDocument.clear(); } - csharpProjectedDocument.update(updateBufferRequest.changes, updateBufferRequest.hostDocumentVersion); + csharpProjectedDocument.update( + document.isOpen, + updateBufferRequest.changes, + updateBufferRequest.hostDocumentVersion, + updateBufferRequest.checksum, + updateBufferRequest.checksumAlgorithm, + updateBufferRequest.encodingCodePage + ); this.notifyDocumentChange(document, RazorDocumentChangeKind.csharpChanged); } else { @@ -342,22 +332,4 @@ export class RazorDocumentManager implements IRazorDocumentManager { this.onChangeEmitter.fire(args); } - - private async ensureDocumentAndProjectedDocumentsOpen(document: IRazorDocument) { - // vscode.workspace.openTextDocument may send a textDocument/didOpen - // request to the C# language server. We need to keep track of - // this to make sure we don't send a duplicate request later on. - const razorUri = vscode.Uri.file(document.path); - if (!this.isRazorDocumentOpenInCSharpWorkspace(razorUri)) { - this.didOpenRazorCSharpDocument(razorUri); - - // Need to tell the Razor server that the document is open, or it won't generate C# code - // for it, and our projected document will always be empty, until the user manually - // opens the razor file. - await vscode.workspace.openTextDocument(razorUri); - } - - await vscode.workspace.openTextDocument(document.csharpDocument.uri); - await vscode.workspace.openTextDocument(document.htmlDocument.uri); - } } diff --git a/src/razor/src/dynamicFile/dynamicFileInfoHandler.ts b/src/razor/src/dynamicFile/dynamicFileInfoHandler.ts index 9a91d1375..62300f0f5 100644 --- a/src/razor/src/dynamicFile/dynamicFileInfoHandler.ts +++ b/src/razor/src/dynamicFile/dynamicFileInfoHandler.ts @@ -4,19 +4,24 @@ *--------------------------------------------------------------------------------------------*/ import * as vscode from 'vscode'; -import { DocumentUri } from 'vscode-languageclient/node'; import { UriConverter } from '../../../lsptoolshost/uriConverter'; import { RazorDocumentManager } from '../document/razorDocumentManager'; import { RazorLogger } from '../razorLogger'; import { ProvideDynamicFileParams } from './provideDynamicFileParams'; -import { ProvideDynamicFileResponse } from './provideDynamicFileResponse'; +import { ProvideDynamicFileResponse, DynamicFileUpdate } from './provideDynamicFileResponse'; import { RemoveDynamicFileParams } from './removeDynamicFileParams'; +import { CSharpProjectedDocument } from '../csharp/csharpProjectedDocument'; +import { RazorDocumentChangeKind } from '../document/razorDocumentChangeKind'; +import { RazorDynamicFileChangedParams } from './dynamicFileUpdatedParams'; +import { TextDocumentIdentifier } from 'vscode-languageserver-protocol'; +import { ServerTextChange } from '../rpc/serverTextChange'; // Handles Razor generated doc communication between the Roslyn workspace and Razor. // didChange behavior for Razor generated docs is handled in the RazorDocumentManager. export class DynamicFileInfoHandler { public static readonly provideDynamicFileInfoCommand = 'razor.provideDynamicFileInfo'; public static readonly removeDynamicFileInfoCommand = 'razor.removeDynamicFileInfo'; + public static readonly dynamicFileUpdatedCommand = 'razor.dynamicFileUpdated'; constructor(private readonly documentManager: RazorDocumentManager, private readonly logger: RazorLogger) {} @@ -33,39 +38,92 @@ export class DynamicFileInfoHandler { await this.removeDynamicFileInfo(request); } ); + this.documentManager.onChange(async (e) => { + if (e.kind == RazorDocumentChangeKind.csharpChanged && !e.document.isOpen) { + const uriString = UriConverter.serialize(e.document.uri); + const identifier = TextDocumentIdentifier.create(uriString); + await vscode.commands.executeCommand( + DynamicFileInfoHandler.dynamicFileUpdatedCommand, + new RazorDynamicFileChangedParams(identifier) + ); + } + }); } // Given Razor document URIs, returns associated generated doc URIs private async provideDynamicFileInfo( request: ProvideDynamicFileParams ): Promise { - let virtualUri: DocumentUri | null = null; + this.documentManager.roslynActivated = true; + const vscodeUri = vscode.Uri.parse(request.razorDocument.uri, true); + + // Normally we start receiving dynamic info after Razor is initialized, but if the user had a .razor file open + // when they started VS Code, the order is the other way around. This no-ops if Razor is already initialized. + await this.documentManager.ensureRazorInitialized(); + + const razorDocument = await this.documentManager.getDocument(vscodeUri); try { - const vscodeUri = vscode.Uri.parse(request.razorDocument.uri, true); - const razorDocument = await this.documentManager.getDocument(vscodeUri); if (razorDocument === undefined) { this.logger.logWarning( `Could not find Razor document ${vscodeUri.fsPath}; adding null as a placeholder in URI array.` ); - } else { - // Retrieve generated doc URIs for each Razor URI we are given - const virtualCsharpUri = UriConverter.serialize(razorDocument.csharpDocument.uri); - virtualUri = virtualCsharpUri; + + return null; } - this.documentManager.roslynActivated = true; + const csharpDocument = razorDocument.csharpDocument as CSharpProjectedDocument; + if (request.fullText) { + // The server asked for a full replace so the newtext is the important + // thing here, the span doesn't matter. + const change: ServerTextChange = { + newText: razorDocument.csharpDocument.getContent(), + span: { + start: 0, + length: 0, + }, + }; + + const update = new DynamicFileUpdate([change]); + + return new ProvideDynamicFileResponse( + request.razorDocument, + [update], + csharpDocument.checksum, + csharpDocument.checksumAlgorithm, + csharpDocument.encodingCodePage + ); + } - // Normally we start receiving dynamic info after Razor is initialized, but if the user had a .razor file open - // when they started VS Code, the order is the other way around. This no-ops if Razor is already initialized. - await this.documentManager.ensureRazorInitialized(); + const virtualCsharpUri = UriConverter.serialize(razorDocument.csharpDocument.uri); + + if (this.documentManager.isRazorDocumentOpenInCSharpWorkspace(vscodeUri)) { + // Open documents have didOpen/didChange to update the csharp buffer. Razor + // does not send edits and instead lets vscode handle them. + return new ProvideDynamicFileResponse( + { uri: virtualCsharpUri }, + null, + csharpDocument.checksum, + csharpDocument.checksumAlgorithm, + csharpDocument.encodingCodePage + ); + } else { + // Closed documents provide edits since the last time they were requested since + // there is no open buffer in vscode corresponding to the csharp content. + const response = csharpDocument.applyEdits(); + const updates = response.edits?.map((e) => new DynamicFileUpdate(e.changes)) ?? null; + + return new ProvideDynamicFileResponse( + { uri: virtualCsharpUri }, + updates, + response.originalChecksum, + response.originalChecksumAlgorithm, + response.originalEncodingCodePage + ); + } } catch (error) { this.logger.logWarning(`${DynamicFileInfoHandler.provideDynamicFileInfoCommand} failed with ${error}`); } - if (virtualUri) { - return new ProvideDynamicFileResponse({ uri: virtualUri }); - } - return null; } diff --git a/src/razor/src/dynamicFile/dynamicFileUpdatedParams.ts b/src/razor/src/dynamicFile/dynamicFileUpdatedParams.ts new file mode 100644 index 000000000..3a5f4c397 --- /dev/null +++ b/src/razor/src/dynamicFile/dynamicFileUpdatedParams.ts @@ -0,0 +1,10 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { TextDocumentIdentifier } from 'vscode-languageserver-protocol'; + +export class RazorDynamicFileChangedParams { + constructor(public readonly razorDocument: TextDocumentIdentifier) {} +} diff --git a/src/razor/src/dynamicFile/provideDynamicFileParams.ts b/src/razor/src/dynamicFile/provideDynamicFileParams.ts index 58241b99b..1993f45e5 100644 --- a/src/razor/src/dynamicFile/provideDynamicFileParams.ts +++ b/src/razor/src/dynamicFile/provideDynamicFileParams.ts @@ -7,5 +7,5 @@ import { TextDocumentIdentifier } from 'vscode-languageserver-protocol'; // matches https://github.com/dotnet/roslyn/blob/9e91ca6590450e66e0041ee3135bbf044ac0687a/src/LanguageServer/Microsoft.CodeAnalysis.LanguageServer/HostWorkspace/RazorDynamicFileInfoProvider.cs#L22 export class ProvideDynamicFileParams { - constructor(public readonly razorDocument: TextDocumentIdentifier) {} + constructor(public readonly razorDocument: TextDocumentIdentifier, public readonly fullText: boolean) {} } diff --git a/src/razor/src/dynamicFile/provideDynamicFileResponse.ts b/src/razor/src/dynamicFile/provideDynamicFileResponse.ts index 7be8d1f01..d1ff807bc 100644 --- a/src/razor/src/dynamicFile/provideDynamicFileResponse.ts +++ b/src/razor/src/dynamicFile/provideDynamicFileResponse.ts @@ -4,8 +4,19 @@ *--------------------------------------------------------------------------------------------*/ import { TextDocumentIdentifier } from 'vscode-languageclient/node'; +import { ServerTextChange } from '../rpc/serverTextChange'; // matches https://github.com/dotnet/roslyn/blob/9e91ca6590450e66e0041ee3135bbf044ac0687a/src/LanguageServer/Microsoft.CodeAnalysis.LanguageServer/HostWorkspace/RazorDynamicFileInfoProvider.cs#L28 export class ProvideDynamicFileResponse { - constructor(public readonly csharpDocument: TextDocumentIdentifier | null) {} + constructor( + public readonly csharpDocument: TextDocumentIdentifier | null, + public readonly updates: DynamicFileUpdate[] | null, + public readonly checksum: string, + public readonly checksumAlgorithm: number, + public readonly encodingCodePage: number | null + ) {} +} + +export class DynamicFileUpdate { + constructor(public readonly edits: ServerTextChange[]) {} } diff --git a/src/razor/src/rpc/updateBufferRequest.ts b/src/razor/src/rpc/updateBufferRequest.ts index 619886720..2bf3ad74e 100644 --- a/src/razor/src/rpc/updateBufferRequest.ts +++ b/src/razor/src/rpc/updateBufferRequest.ts @@ -10,6 +10,9 @@ export class UpdateBufferRequest { public readonly hostDocumentVersion: number, public readonly hostDocumentFilePath: string, public readonly changes: ServerTextChange[], - public readonly previousWasEmpty: boolean + public readonly previousWasEmpty: boolean, + public readonly checksum: string, + public readonly checksumAlgorithm: number, + public readonly encodingCodePage: number | null ) {} } diff --git a/src/shared/configurationProvider.ts b/src/shared/configurationProvider.ts index e8556ab7a..a8b1c8625 100644 --- a/src/shared/configurationProvider.ts +++ b/src/shared/configurationProvider.ts @@ -266,7 +266,7 @@ export class BaseVsDbgConfigurationProvider implements vscode.DebugConfiguration const message = errorCode === CertToolStatusCodes.CertificateNotTrusted ? 'trusted' : 'created'; showInformationMessage( vscode, - vscode.l10n.t('Self-signed certificate sucessfully {0}', message) + vscode.l10n.t('Self-signed certificate successfully {0}', message) ); result = true; diff --git a/test/lsptoolshost/integrationTests/gotoImplementation.integration.test.ts b/test/lsptoolshost/integrationTests/gotoImplementation.integration.test.ts index f077b290b..a1bfa8d1f 100644 --- a/test/lsptoolshost/integrationTests/gotoImplementation.integration.test.ts +++ b/test/lsptoolshost/integrationTests/gotoImplementation.integration.test.ts @@ -35,16 +35,13 @@ describe(`Go To Implementation Tests`, () => { const requestPosition = new vscode.Position(4, 22); const implementationList = await getImplementations(requestPosition); - expect(implementationList).toHaveLength(3); + expect(implementationList).toHaveLength(2); expect(implementationList[0].uri.path).toContain('BaseClassImplementation.cs'); expect(implementationList[0].range).toStrictEqual(new vscode.Range(2, 17, 2, 40)); expect(implementationList[1].uri.path).toContain('implementation.cs'); - expect(implementationList[1].range).toStrictEqual(new vscode.Range(4, 17, 4, 26)); - - expect(implementationList[2].uri.path).toContain('implementation.cs'); - expect(implementationList[2].range).toStrictEqual(new vscode.Range(5, 17, 5, 26)); + expect(implementationList[1].range).toStrictEqual(new vscode.Range(5, 17, 5, 26)); }); }); diff --git a/test/lsptoolshost/unitTests/configurationMiddleware.test.ts b/test/lsptoolshost/unitTests/configurationMiddleware.test.ts index 587a863b7..d84d5d02a 100644 --- a/test/lsptoolshost/unitTests/configurationMiddleware.test.ts +++ b/test/lsptoolshost/unitTests/configurationMiddleware.test.ts @@ -261,6 +261,12 @@ const testData = [ vsCodeConfiguration: null, declareInPackageJson: false, }, + { + serverOption: 'csharp|auto_insert.dotnet_enable_auto_insert', + vsCodeConfiguration: 'dotnet.autoInsert.enableAutoInsert', + declareInPackageJson: true, + section: editorBehaviorSection, + }, ]; describe('Server option name to vscode configuration name test', () => { diff --git a/test/razor/razorIntegrationTests/completion.integration.test.ts b/test/razor/razorIntegrationTests/completion.integration.test.ts new file mode 100644 index 000000000..0760f1d60 --- /dev/null +++ b/test/razor/razorIntegrationTests/completion.integration.test.ts @@ -0,0 +1,106 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as path from 'path'; +import * as vscode from 'vscode'; +import { beforeAll, afterAll, test, expect, beforeEach } from '@jest/globals'; +import testAssetWorkspace from './testAssets/testAssetWorkspace'; +import * as integrationHelpers from '../../lsptoolshost/integrationTests/integrationHelpers'; + +integrationHelpers.describeIfWindows(`Razor Completion ${testAssetWorkspace.description}`, function () { + beforeAll(async function () { + if (!integrationHelpers.isRazorWorkspace(vscode.workspace)) { + return; + } + + await integrationHelpers.activateCSharpExtension(); + }); + + beforeEach(async function () { + await integrationHelpers.openFileInWorkspaceAsync(path.join('Pages', 'Completion.razor')); + }); + + afterAll(async () => { + await testAssetWorkspace.cleanupWorkspace(); + }); + + test('Text Tag', async () => { + if (!integrationHelpers.isRazorWorkspace(vscode.workspace)) { + return; + } + + const insertPosition = new vscode.Position(4, 4); + await insertText(insertPosition, ' item.label === 'text'); + + if (!textTagCompletionItem) { + throw new Error(completionList.items.reduce((acc, item) => acc + item.label + '\n', '')); + } + + expect(textTagCompletionItem).toBeDefined(); + expect(textTagCompletionItem!.kind).toEqual(vscode.CompletionItemKind.Text); + expect(textTagCompletionItem!.insertText).toBe('text'); + }); + + test('Div Tag', async () => { + if (!integrationHelpers.isRazorWorkspace(vscode.workspace)) { + return; + } + + const insertPosition = new vscode.Position(6, 0); + await insertText(insertPosition, ' item.label === 'div'); + + if (!divTagCompletionItem) { + throw new Error(completionList.items.reduce((acc, item) => acc + item.label + '\n', '')); + } + + expect(divTagCompletionItem).toBeDefined(); + + // Reader, you may be wondering why the kind is a Property. To that I say: I don't know. + // If you find out please add a detailed explanation. Thank you in advance. + expect(divTagCompletionItem!.kind).toEqual(vscode.CompletionItemKind.Property); + expect(divTagCompletionItem!.insertText).toBe('div'); + + const documentation = divTagCompletionItem!.documentation as vscode.MarkdownString; + expect(documentation.value).toBe( + 'The div element has no special meaning at all. It represents its children. It can be used with the class, lang, and title attributes to mark up semantics common to a group of consecutive elements.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/HTML/Element/div)' + ); + }); + + async function getCompletionsAsync( + position: vscode.Position, + triggerCharacter: string | undefined, + resolveCount: number | undefined + ): Promise { + const activeEditor = vscode.window.activeTextEditor; + if (!activeEditor) { + throw new Error('No active editor'); + } + + return await vscode.commands.executeCommand( + 'vscode.executeCompletionItemProvider', + activeEditor.document.uri, + position, + triggerCharacter, + resolveCount + ); + } + + async function insertText(position: vscode.Position, text: string): Promise { + const activeEditor = vscode.window.activeTextEditor; + if (!activeEditor) { + throw new Error('No active editor'); + } + + await activeEditor.edit((builder) => { + builder.insert(position, text); + }); + } +}); diff --git a/test/razor/razorIntegrationTests/testAssets/RazorApp/Pages/Completion.razor b/test/razor/razorIntegrationTests/testAssets/RazorApp/Pages/Completion.razor new file mode 100644 index 000000000..0bb84477e --- /dev/null +++ b/test/razor/razorIntegrationTests/testAssets/RazorApp/Pages/Completion.razor @@ -0,0 +1,10 @@ +@page "/completion" + +@* Insert text tag in below using completion *@ +@{ + +} + +@code { + +} \ No newline at end of file diff --git a/version.json b/version.json index fba1a574d..e0676d54b 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json", - "version": "2.59", + "version": "2.60", "publicReleaseRefSpec": [ "^refs/heads/release$", "^refs/heads/prerelease$",