Прогресс-бар не падает на Linux и macOS - #3
Open
nixel2007 wants to merge 5 commits into
Open
Conversation
Консоль.ВидимостьКурсора возвращает прежнее значение курсора и для этого читает Console.CursorVisible - свойство, чтение которого поддерживается только на Windows. На остальных платформах вызов выбрасывает PlatformNotSupportedException, поэтому прогресс-бар падал на первом же СделатьШаг. Теперь видимость курсора устанавливается там, где это поддерживается, а где нет - курсор просто остаётся видимым, и бар работает как обычно. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PpvuJYLbttUBC1ufRmU1JN
Тесты на OneUnit проверяют поведение до инициализации, длительность выполнения и то, что бар доходит до конца - на этом падала прежняя версия вне Windows. Тестовый рабочий процесс гоняет их на трёх операционных системах и на stable и dev движка, релизный публикует пакет на хаб по выпуску релиза. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PpvuJYLbttUBC1ufRmU1JN
OneUnit порождает прогон отдельным процессом и собирает ему конфигурацию из oscript.cfg проекта. Без него дочерний процесс не видел локальный каталог библиотек и падал на поиске annotations. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PpvuJYLbttUBC1ufRmU1JN
Корневой oscript.cfg для этого не нужен: OneUnit собирает конфигурацию дочернего прогона из каталогов тестов, туда её и кладём. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PpvuJYLbttUBC1ufRmU1JN
Управление курсором работает только в живой консоли: при перенаправленном выводе позиция курсора недоступна (на Windows - "The handle is invalid"), а в сборке окна нет вовсе и его ширина равна нулю - установка позиции падает с выходом за границы. Прогресс-бар - украшение, и работа из-за него падать не должна: если рисовать нельзя, бар замолкает до конца прогона, а шаги и длительность продолжают считаться. Версия среды поднята до 2.0.0. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PpvuJYLbttUBC1ufRmU1JN
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
На Linux и macOS прогресс-бар падает на первом же
СделатьШаг:Причина в самом методе OneScript:
ВидимостьКурсоравозвращает прежнее значение и ради этого читаетConsole.CursorVisible, а чтение этого свойства в .NET поддерживается только на Windows.Установка видимости там работает, а вот чтение - нет, поэтому воспользоваться методом на этих платформах нельзя вовсе.
В этом PR вызовы вынесены в
СкрытьКурсор: если платформа управление курсором не поддерживает, признак снимается после первой же неудачи и дальше бар про курсор не вспоминает. Курсор остаётся видимым - на фоне неработающего бара это мелочь.Проверено на Linux: до правки
Начать+СделатьШагпадают, после - бар рисуется и доходит до 100%.Версия поднята до 1.4.
🤖 Generated with Claude Code
https://claude.ai/code/session_01PpvuJYLbttUBC1ufRmU1JN