Версия: 5.3.1.2
ID сборки: e80a0e0fd1875e1696614d24c32df0f95f03deb2
Потоков ЦП: 4; Версия ОС: Windows 6.1; Отрисовка ИП: по умолчанию; Способ разметки: новый;
Локаль: ru-RU (ru_RU); Calc: group
Обновил офис. Теперь ничего не работает: принажатии на кнопки выскакивает окно ошибки бейсика
Например, кнопка расстановка ударений - "Синтаксическая ошибка BASIC.
Expected: )."
В функции AutoCode:
' сохраняем списки
With oACDlg.Model
Dim aArrayPS() As String : aArrayPS = .ParaStyleFindListBox.StringItemList
SaveArray( aArrayPS(), getOOoFBToolsSettingsDir() & sConstWorkParaStyle
Dim aArrayPF() As String : aArrayPF = .ParaFontFindListBox.StringItemList
SaveArray( aArrayPF(), getOOoFBToolsSettingsDir() & sConstWorkParaFont
Dim aArrayCS() As String : aArrayCS = .CharStyleFindListBox.StringItemList
SaveArray( aArrayCS(), getOOoFBToolsSettingsDir() & sConstWorkCharStyle
Dim aArrayCF() As String : aArrayCF = .CharFontFindListBox.StringItemList
SaveArray( aArrayCF(), getOOoFBToolsSettingsDir() & sConstWorkCharFont
End With
На вид и правда скобочек не хватает. И так почти на многих кнопках.
Тыкаешь в кнопку, открывается окно редактора Basic, он выделяет в тексте место, где не хватает скобки. Смотришь вниз, на строку состояния, там написан номер строки. Смотришь влево, на дерево файлов, там выделен файл. Записываешь и то, и другое. Жмёшь ОК. Появляется следующая ошибка. Записываешь опять. И так до тех пор, пока ошибки не кончатся. Потом проходишься по файлам, и добавляешь везде скобки. Потом тыкаешь кнопку ещё раз. Снова появятся ошибки, но уже в других местах. Повторяешь процесс, пока ошибки не кончатся.
как это сделать?
Тыкаешь в файл в дереве файлов слева, прокручиваешь его содержимое до нужной строки, дописываешь в конце строки правую скобку ")". Изменения тривиальные, поскольку раньше интерпретатор позволял именно незакрытые скобки в конце строки (незакрытые скобки в другом месте - это уже семантическая и/или синтаксическая ошибка).
Last edit: LRN 2017-04-03
Пара вопросов:
Не поделитесь докой на предмет идеальной спецификации (и столь же идеального направления эволюции) Basic'а?
Как ниже сообщает разработчик, вероятный источник проблемы в самодеятельности редактора одной из версий офиса.
Откуда следуют вопросы о возможных альтернативах и интеграции с СКВ, хотя бы не в общем случае, а в популярной реинкарнации git.
Вы явно больше меня в теме, не поделитесь опытом?
Не поделимся. Наше утверждение было предположением, которое мы сделали исходя из сделанных нами наблюдений (ooofbtools не обновляли и не редактировали; LibreOffice обновили - ooofbtools сломался; сломался примерно одиаковым образом независимо у двух человек - значит дело в интерпретаторе в новой версии), а не на основе знания спецификации.
Не уверен, что от нас требуется. Мы всегда пользовались обычным текстовым редакторм для редактирования исходников, а git использовали через MSYS (конкретнее - MSYS2). Но, если честно, мы и на BASIC'е ничего не разрабатывали, был лишь короткий эпизод разработки расширения на Python'е, если речь идёт именно о деятельности, связанной с LibreOffice.
Я оперирую более полной моделью:
В некоторой версии OOoFBTools редактором некоторой версии офиса был написан потенциально проблемный код. Правильно написан.
При некоторой операции редактирования в редакторе другой версии офиса имитация искусственного интеллекта редактора преобразовала код из потенциально проблемного в проблемный.
Но всё работало благодаря особенностям реализации интерпретатора.
Потом отдельно пришло обновление офиса, в котором вышеупомянутый компромисс выпилили.
Здравствуй сюрприз.
Дык вся хитрость вопроса и заключается в интеграции с СКВ разработки в конкретном BASIC'е. ☺
:) Много лет прошло, я понимаю...
Всё же - вот объяснение того, что произошло тогда: https://mikekaganski.wordpress.com/2019/11/09/when-legacy-justifies-errors/
Из-за большого количества кода, переставшего работать из-за исправления в версии 5.3.1, мы откатили корректную проверку закрывающих скобок в 5.3.3, и восстановили в 6.3, причём только если компиляция кода идёт из IDE.
И всё-таки это была ошибка в плагине. Ну нельзя серьёзно утверждать, что незакрытые скобки - это реально фича языка. В блоге есть пример кода, который при автозакрытии работает не так, как ожидает автор.
У меня эти файлы не редактируются.
Странно. Тогда попробуй редактировать их руками, в C:\Users\IgorVelkov\AppData\Roaming\LibreOffice\4\user\uno_packages\cache\uno_packages\<random name>\OOoFBTools.oxt\OOoFBTools\
Можно объяснить деятельностью антивируса.
Спасибо за сообщение. Я посмотрю, в чем там проблема.
Беда, когда разработчики Офиса меняют многое в ядре и в StarBasic - масса кода "слетает".
Будем править
Странно, куда-то исчезли многие скобки - видимо в прежней версии Офиса был какой-то сбор в редакторе Starbasic, но ТА версия StarBasic не была столько "принципиальной" к скобкам.
Будем лечить.
Вот и ура - в 2.50 всё снова работает
Спасибо!
Был какой-то сбой в редакторе Офиса, который поудалял много чего нужного в коде.. Странно все это...