Skip to content

Commit 0d04c38

Browse files
nixel2007Copilot
andcommitted
refactor(completions): lightweight version-alias getter + fix indentation
КомандаInstall.os потеряла табуляцию при переходе на декларативный стиль; также в Run/Uninstall хвост ПолучитьУстановленныеВерсии был без отступов. Возвращено табуляционное оформление. В ВерсииOneScript добавлен ПолучитьСписокАлиасовУстановленныхВерсий — облегченный геттер, не запускающий oscript -version на каждую версию и не дергающий ls/dir для определения симлинков. Провайдеры автодо- полнения КомандаUse/Uninstall/Which/Run переведены на него — запекание списка алиасов в completion-скрипт больше не требует обхода процессов per version. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 4a06e32 commit 0d04c38

6 files changed

Lines changed: 60 additions & 51 deletions

File tree

src/cmd/Классы/КомандаInstall.os

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
Перем Окружение;
1414

1515
&Аргумент(
16-
Имя = "VERSION",
17-
Описание = "Устанавливаемая версия (версии) OneScript. "
18-
"Допустимо использовать трехномерные версии (1.0.17, 1.0.18), "
19-
"lts, stable, dev, preview, lts-dev. "
20-
"Может быть передано несколько значений"
16+
Имя = "VERSION",
17+
Описание = "Устанавливаемая версия (версии) OneScript. "
18+
"Допустимо использовать трехномерные версии (1.0.17, 1.0.18), "
19+
"lts, stable, dev, preview, lts-dev. "
20+
"Может быть передано несколько значений"
2121
)
2222
&ТМассивСтрок
2323
&ВОкружении("OVM_INSTALL_VERSION")
@@ -54,39 +54,39 @@
5454
&ВыполнениеКоманды
5555
Процедура ВыполнениеКоманды() Экспорт
5656

57-
Если ЗначениеЗаполнено(АлиасВерсии) И МассивВерсийКУстановке.Количество() > 1 Тогда
58-
ВызватьИсключение "Опция <--name> может быть задана только при установке одной версии OneScript";
59-
КонецЕсли;
57+
Если ЗначениеЗаполнено(АлиасВерсии) И МассивВерсийКУстановке.Количество() > 1 Тогда
58+
ВызватьИсключение "Опция <--name> может быть задана только при установке одной версии OneScript";
59+
КонецЕсли;
6060

61-
ДополнительныеПараметры = УстановщикOneScript.ДополнительныеПараметрыУстановки();
62-
ДополнительныеПараметры.ОчищатьКаталогУстановки = ОчищатьКаталогУстановки;
61+
ДополнительныеПараметры = УстановщикOneScript.ДополнительныеПараметрыУстановки();
62+
ДополнительныеПараметры.ОчищатьКаталогУстановки = ОчищатьКаталогУстановки;
6363

64-
Если Окружение.ЭтоX64() Тогда
65-
ДополнительныеПараметры.ИспользоватьХ64 = НЕ Устанавливать32РазряднуюВерсию;
66-
Иначе
67-
ДополнительныеПараметры.ИспользоватьХ64 = Ложь;
68-
КонецЕсли;
64+
Если Окружение.ЭтоX64() Тогда
65+
ДополнительныеПараметры.ИспользоватьХ64 = НЕ Устанавливать32РазряднуюВерсию;
66+
Иначе
67+
ДополнительныеПараметры.ИспользоватьХ64 = Ложь;
68+
КонецЕсли;
6969

70-
ДополнительныеПараметры.ИспользоватьFDD = УстанавливатьFDDДистрибутив;
70+
ДополнительныеПараметры.ИспользоватьFDD = УстанавливатьFDDДистрибутив;
7171

72-
Для Каждого ВерсияКУстановке Из МассивВерсийКУстановке Цикл
73-
УстановщикOneScript.УстановитьOneScript(ВерсияКУстановке, АлиасВерсии, ДополнительныеПараметры);
74-
КонецЦикла;
72+
Для Каждого ВерсияКУстановке Из МассивВерсийКУстановке Цикл
73+
УстановщикOneScript.УстановитьOneScript(ВерсияКУстановке, АлиасВерсии, ДополнительныеПараметры);
74+
КонецЦикла;
7575

76-
Если МассивВерсийКУстановке.Количество() > 0 Тогда
77-
Лог.Информация(
78-
"Для начала использования версии OneScript, выполните команду:
79-
|ovm use %1",
80-
?(ЗначениеЗаполнено(АлиасВерсии), АлиасВерсии, МассивВерсийКУстановке[МассивВерсийКУстановке.ВГраница()])
81-
);
82-
КонецЕсли;
76+
Если МассивВерсийКУстановке.Количество() > 0 Тогда
77+
Лог.Информация(
78+
"Для начала использования версии OneScript, выполните команду:
79+
|ovm use %1",
80+
?(ЗначениеЗаполнено(АлиасВерсии), АлиасВерсии, МассивВерсийКУстановке[МассивВерсийКУстановке.ВГраница()])
81+
);
82+
КонецЕсли;
8383

8484
КонецПроцедуры
8585

8686
Функция ПолучитьДоступныеВерсии() Экспорт
87-
Результат = Новый Массив;
88-
Для Каждого Строка Из ВерсииOneScript.ПолучитьСписокДоступныхКУстановкеВерсий() Цикл
89-
Результат.Добавить(Строка.Алиас);
90-
КонецЦикла;
91-
Возврат Результат;
87+
Результат = Новый Массив;
88+
Для Каждого Строка Из ВерсииOneScript.ПолучитьСписокДоступныхКУстановкеВерсий() Цикл
89+
Результат.Добавить(Строка.Алиас);
90+
КонецЦикла;
91+
Возврат Результат;
9292
КонецФункции

src/cmd/Классы/КомандаRun.os

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,5 @@
6161
КонецПроцедуры
6262

6363
Функция ПолучитьУстановленныеВерсии() Экспорт
64-
Результат = Новый Массив;
65-
Для Каждого Строка Из ВерсииOneScript.ПолучитьСписокУстановленныхВерсий() Цикл
66-
Результат.Добавить(Строка.Алиас);
67-
КонецЦикла;
68-
Возврат Результат;
64+
Возврат ВерсииOneScript.ПолучитьСписокАлиасовУстановленныхВерсий();
6965
КонецФункции

src/cmd/Классы/КомандаUninstall.os

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,5 @@
5252
КонецПроцедуры
5353

5454
Функция ПолучитьУстановленныеВерсии() Экспорт
55-
Результат = Новый Массив;
56-
Для Каждого Строка Из ВерсииOneScript.ПолучитьСписокУстановленныхВерсий() Цикл
57-
Результат.Добавить(Строка.Алиас);
58-
КонецЦикла;
59-
Возврат Результат;
55+
Возврат ВерсииOneScript.ПолучитьСписокАлиасовУстановленныхВерсий();
6056
КонецФункции

src/cmd/Классы/КомандаUse.os

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@
2626
КонецПроцедуры
2727

2828
Функция ПолучитьУстановленныеВерсии() Экспорт
29-
Результат = Новый Массив;
30-
Для Каждого Строка Из ВерсииOneScript.ПолучитьСписокУстановленныхВерсий() Цикл
31-
Результат.Добавить(Строка.Алиас);
32-
КонецЦикла;
33-
Возврат Результат;
29+
Возврат ВерсииOneScript.ПолучитьСписокАлиасовУстановленныхВерсий();
3430
КонецФункции
3531

src/cmd/Классы/КомандаWhich.os

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,5 @@
2828
КонецПроцедуры
2929

3030
Функция ПолучитьУстановленныеВерсии() Экспорт
31-
Результат = Новый Массив;
32-
Для Каждого Строка Из ВерсииOneScript.ПолучитьСписокУстановленныхВерсий() Цикл
33-
Результат.Добавить(Строка.Алиас);
34-
КонецЦикла;
35-
Возврат Результат;
31+
Возврат ВерсииOneScript.ПолучитьСписокАлиасовУстановленныхВерсий();
3632
КонецФункции

src/core/Классы/ВерсииOneScript.os

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,31 @@
170170

171171
КонецФункции
172172

173+
// Получить список алиасов установленных версий.
174+
//
175+
// В отличие от ПолучитьСписокУстановленныхВерсий, не выполняет тяжелых операций —
176+
// не запускает oscript -version для каждой версии и не определяет симлинки через ls/dir.
177+
// Предназначен для случаев, когда нужен только перечень алиасов (например, автодополнение).
178+
//
179+
// Возвращаемое значение:
180+
// Массив из Строка - Алиасы установленных версий
181+
//
182+
Функция ПолучитьСписокАлиасовУстановленныхВерсий() Экспорт
183+
184+
Результат = Новый Массив;
185+
186+
КаталогУстановки = ПараметрыOVM.КаталогУстановкиПоУмолчанию();
187+
НайденныеФайлы = НайтиФайлы(КаталогУстановки, ПолучитьМаскуВсеФайлы());
188+
Для Каждого НайденныйФайл Из НайденныеФайлы Цикл
189+
Если ВерсияУстановлена(НайденныйФайл.Имя) Тогда
190+
Результат.Добавить(НайденныйФайл.Имя);
191+
КонецЕсли;
192+
КонецЦикла;
193+
194+
Возврат Результат;
195+
196+
КонецФункции
197+
173198
Функция ПолучитьАлиасыСимлинков()
174199

175200
КаталогУстановки = ПараметрыOVM.КаталогУстановкиПоУмолчанию();

0 commit comments

Comments
 (0)