salexdv / bsl_console

Консоль кода для 1С 8.3 (Управляемые и обычные формы)
MIT License
297 stars 55 forks source link

Событие EVENT_ON_ACTIVATE_SUGGEST_ROW иногда вызывается для всех строк списка сразу #190

Closed tormozit closed 2 years ago

tormozit commented 3 years ago

Ищу способ стабильного воспроизведения. Но уже наблюдал это 6 раз. Включаю замер производительности в отладчике. Открываю список автодополнения в консоли кода путем нажатия CTRL+Space. В списке при этом из кода передаю 1000 слов. Список показывается в редакторе и через 3 секунды останавливаю замер в отладчике. Вижу в замере что строка обработки события EVENT_ON_ACTIVATE_SUGGEST_ROW выполнена 1000 раз. Похоже эти вызовы начинают идти асинхронно уже после открытия списка.

ИначеЕсли Событие.event = "EVENT_ON_ACTIVATE_SUGGEST_ROW" Тогда
    ПолеТекстаАлгоритма.РедакторHTML_ПриАктивацииСтрокиАвтодополнения(Событие.params.trigger, Событие.params.focused, Событие.params.row_id);
tormozit commented 3 years ago

Нашел воспроизведение. Выполняем enableSuggestActivationEvent(Истина, Ложь); Нажимаем CTRL+Space. После открытия списка автодополнения нужно переключить его в режим отображения детальной информации по строке и навести указать на какую нибудь строку списка.

изображение

salexdv commented 3 years ago

Посмотрю, что можно с этим сделать

tormozit commented 3 years ago

При enableSuggestActivationEvent(Истина, Истина); проблема не наблюдается

salexdv commented 2 years ago

Проблема не наблюдается

tormozit commented 2 years ago

После первого с тех пор моего обновления из твоей ветки пришлось перейти на новый API и описанная здесь проблема снова вернулась. Вот модификация кода для нового API, с которой наблюдается эта проблема

                //РедакторHTML.enableSuggestActivationEvent(Истина, Истина);  // Второй параметр включает отображение типов для всех слов списка автодополнения https://github.com/salexdv/bsl_console/issues/119
                РедакторHTML.setOption("generateSuggestActivationEvent", Истина);
                РедакторHTML.setOption("alwaysDisplaySuggestDetails", Истина);
tormozit commented 2 years ago

Попробовал РедакторHTML.setOption("alwaysDisplaySuggestDetails", **Ложь**); Тоже не помогло

tormozit commented 2 years ago

Но теперь проблема немного изменилась. При первом в жизни редактора открытии списка она всегда не проявляется. А вот начиная со второго открытия наблюдается всегда независимо от отображения окна детальной информации по текущему элементу списка.

изображение

изображение

tormozit commented 2 years ago

Вернул обратно свой прошлогодний фикс в виде отключения обработчика onSuggestListMouseOver. Теперь не виснет.