You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -108,34 +108,146 @@ Target использует Inputs/Outputs для инкрементальной
108
108
109
109
## Rider Plugin
110
110
111
-
Плагин добавляет пункт «Generate TypeScript Definition» в контекстное меню для .cs файлов (в меню Generate и в Project View). Плагин запускает `TypeScriptDefinitionGenerator.Cli` как subprocess — без конфликтов с ReSharper SDK.
111
+
Плагин добавляет пункт «Generate TypeScript Definition» в контекстное меню для .cs файлов (в меню Generate и в Project View). Плагин запускает `TypeScriptDefinitionGenerator.Cli` как subprocess. Плагин совместим с Rider 2024.1+ (включая Rider 2025.3).
112
112
113
113
### Сборка плагина
114
114
115
-
**Требования:** .NET SDK; для контекстного меню — Java 17+.
115
+
**Общее требование:** .NET SDK на любой ОС.
116
116
117
-
```bash
118
-
# Полная сборка (с контекстным меню Solution View)
119
-
./build-rider-plugin.sh [Debug|Release] [версия]
120
-
# Пример: ./build-rider-plugin.sh Release 1.0.0
121
-
```
117
+
Два варианта сборки:
118
+
-**Вариант 1 (полная):** .NET backend + Kotlin frontend — контекстное меню по ПКМ по .cs в Solution View. **Kotlin устанавливать не нужно** — он подтягивается сборкой (Gradle). Нужны только **Java 17+** (JDK) и на Windows — скрипт `gradlew.bat` (см. ниже).
119
+
-**Вариант 2 (только .NET):** только .NET backend — пункта в контекстном меню нет; генерация через **Find Action** (Ctrl+Shift+A / Cmd+Shift+A) → «Generate TypeScript Definition». Java и Kotlin не требуются.
122
120
123
-
**Без Java 17:** скрипт автоматически соберёт только .NET backend (без пункта в контекстном меню). Используйте **Find Action** (Ctrl+Shift+A / Cmd+Shift+A) → «Generate TypeScript Definition». Или явно: `./build-rider-plugin.sh --dotnet-only`.
121
+
---
124
122
125
-
**С Java 17:** скрипт автоматически ищет Java 17 (Homebrew). Или задайте явно:
Скрипт `./build-rider-plugin.sh`, те же два варианта (таблица как для macOS).
175
+
176
+
**Как установить предварительные требования (только для Варианта 1):**
177
+
Установите Java 17+ из пакетного менеджера (например `sudo apt install openjdk-17-jdk` или аналог). При нескольких версиях Java задайте `export JAVA_HOME=/path/to/jdk-17`.
178
+
179
+
---
180
+
181
+
### Ошибка SSL при загрузке Gradle и зависимостей (Windows / корпоративный прокси)
182
+
183
+
Если при запуске `gradlew.bat` или сборке плагина появляется **SSLHandshakeException** / **PKIX path building failed: unable to find valid certification path to requested target**, значит JVM не доверяет сертификату (часто из‑за корпоративного прокси или своей CA). Та же ошибка возникает при загрузке **дистрибутива Gradle** (services.gradle.org) и при разрешении **зависимостей** (plugins.gradle.org, mavenCentral()). Сообщение «What went wrong: 25» без деталей — это та же SSL-ошибка: запустите `.\gradlew.bat buildPlugin --stacktrace`, чтобы увидеть полный текст.
184
+
185
+
**Вариант 1 — добавить сертификат в хранилище Java (рекомендуется):**
186
+
Без этого не будут работать ни загрузка Gradle, ни разрешение зависимостей (IntelliJ plugin, Kotlin и т.д.).
187
+
188
+
1. Скачайте корневой сертификат вашей сети (или экспортируйте из браузера с https://services.gradle.org или https://plugins.gradle.org) в файл, например `gradle-ca.cer`.
189
+
190
+
2.**Windows** — откройте **cmd от имени администратора** (ПКМ по cmd → «Запуск от имени администратора»), перейдите в папку, где лежит `gradle-org.cer` (или укажите полный путь к файлу), и выполните (подставьте свой путь к JDK и к файлу сертификата):
191
+
```bat
192
+
set JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-17
193
+
set CER_FILE=C:\full\path\to\gradle-org.cer
194
+
195
+
rem Если alias "gradle" уже есть — удалите: keytool -delete -alias gradle -keystore "%JAVA_HOME%\lib\security\cacerts" -storepass changeit
Скрипт проверит пути и выведет ошибку keytool, если что-то не так.
204
+
205
+
**Если не срабатывает:** (1) Убедитесь, что `JAVA_HOME` указывает на тот же JDK, которым пользуется Gradle. (2) Пароль хранилища по умолчанию — `changeit`; если keytool пишет «Password verification failed», укажите правильный `-storepass` или пустой `-storepass ""`. (3) Файл сертификата — PEM или DER (.cer/.pem). (4) Ошибка «access denied» — запустите cmd от имени администратора.
206
+
207
+
**Сертификат импортирован, но Gradle всё равно PKIX:** Gradle может запускаться под другим JDK. Используйте **локальный truststore** в проекте:
208
+
1. В cmd: `cmd /c "rider\create-truststore.bat C:\path\to\gradle-org.cer"` (подставьте путь к .cer). Создадутся `rider\gradle-truststore.jks` и `rider\gradle-local.properties`.
209
+
2. В папке rider: `gradlew.bat --stop`, затем `gradlew.bat buildPlugin`.
4. Перезапустите терминал и снова запустите `.\gradlew.bat buildPlugin` (или `./gradlew buildPlugin`).
217
+
218
+
**Вариант 2 — только обойти загрузку дистрибутива Gradle (локальный zip):**
219
+
Это устраняет SSL только для скачивания Gradle. Разрешение зависимостей (plugins.gradle.org, Maven) по-прежнему идёт по HTTPS, поэтому при корпоративном прокси **всё равно нужен Вариант 1** (добавить CA в Java).
220
+
221
+
1. На машине с рабочим HTTPS скачайте [gradle-8.13-bin.zip](https://services.gradle.org/distributions/gradle-8.13-bin.zip) и сохраните локально.
222
+
223
+
2. В файле `rider\gradle\wrapper\gradle-wrapper.properties` замените `distributionUrl` на локальный путь, например:
3. Запустите снова `.\gradlew.bat buildPlugin`. Если снова появится PKIX/SSL при загрузке плагинов — добавьте CA в Java (Вариант 1).
229
+
230
+
**Сборка падает с «What went wrong: 25» или другой неочевидной ошибкой:** выполните из папки `rider` команду с полным выводом стека:
231
+
```bat
232
+
.\gradlew.bat buildPlugin --stacktrace
129
233
```
234
+
По выводу будет видно, какой именно task упал (часто это загрузка IDE SDK по сети или задача `patchPluginXml`). Убедитесь, что есть доступ в интернет и что корпоративный прокси не блокирует Maven/Central/Google (для загрузки зависимостей и IntelliJ runtime). Предупреждения про `System::load` и `--enable-native-access` устраняются через `rider/gradle.properties` (уже добавлены нужные JVM-аргументы).
235
+
236
+
---
237
+
238
+
### Установка плагина в Rider
130
239
131
-
Скрипт собирает .NET backend и при наличии Java 17 — Kotlin frontend (контекстное меню Solution View). Плагин совместим с Rider 2024.1+ (включая Rider 2025.3).
240
+
1.**Соберите плагин** (см. раздел «Сборка плагина» выше). После сборки в папке `output` появится архив:
Для использования в Rider см. [README-RIDER.md](README-RIDER.md) — плагин с контекстным меню, External Tool или dotnet tool для генерации .d.ts файлов.
125
125
126
-
## Сборка расширения
126
+
## Сборка расширения (VSIX)
127
127
128
-
Расширение использует SDK-style проект (PackageReference). Сборка возможна **только на Windows** с установленной Visual Studio 2022, т.к. VSSDK требует vsct.exe для компиляции меню.
128
+
Сборка возможна **только на Windows** с установленной Visual Studio 2022 (VSSDK требует vsct.exe и т.д.).
129
129
130
-
При сборке через `dotnet build` для проекта Visual Studio Extension (VSIX) требуется **.NET 8 SDK**: `global.json` в корне репозитория привязывает сборку к SDK 8.0.x (из‑за ограничений VSSDK.BuildTools на .NET 10+). Установите [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) или собирайте расширение из Visual Studio (Build Solution).
130
+
**Рекомендуемый способ:** запустите скрипт в PowerShell (использует MSBuild из VS и избегает проблем с `dotnet build`):
131
+
132
+
```powershell
133
+
.\build-vsix.ps1 # Debug
134
+
.\build-vsix.ps1 Release
135
+
```
136
+
137
+
Готовый VSIX будет в `src\TypeScriptDefinitionGenerator\bin\<Configuration>\net472\*.vsix`.
138
+
139
+
**Установка VSIX на Windows:** дважды щёлкните по файлу `.vsix` или в Visual Studio: **Extensions** → **Manage Extensions** → **Install from VSIX** и укажите собранный файл.
140
+
141
+
**Альтернатива:** откройте решение в Visual Studio и выполните **Build Solution**. При сборке через `dotnet build` нужен **.NET 8 SDK**: в корне репозитория задан `global.json` для SDK 8.0.x. Установите [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) при необходимости.
131
142
132
143
## Contribute
133
144
Check out the [contribution guidelines](.github/CONTRIBUTING.md)
- Gradle 8.13+ (через `./gradlew` или на Windows — `gradlew.bat`)
9
9
10
10
## Сборка
11
11
12
+
**Из корня репозитория** (рекомендуется): используйте `./build-rider-plugin.sh` (macOS/Linux) или `.\build-rider-plugin.ps1` (Windows) — они соберут и .NET, и Kotlin, и упакуют плагин в `output/TypeScriptDefinitionGenerator.Rider-<version>.zip`.
**Ошибка SSL (unable to find valid certification path):** часто из‑за корпоративного прокси. Решения: добавить CA-сертификат в Java `cacerts` через `keytool` или скачать [gradle-8.13-bin.zip](https://services.gradle.org/distributions/gradle-8.13-bin.zip) вручную и в `gradle/wrapper/gradle-wrapper.properties` задать `distributionUrl=file\:///C:/path/to/gradle-8.13-bin.zip`. Подробнее — в [README-RIDER.md](../README-RIDER.md) (раздел «Ошибка SSL при первой загрузке Gradle»).
0 commit comments