Автокомплит в IDE

Автор TanaTiX, 19 марта 2022, 20:26

0 Пользователи и 1 гость просматривают эту тему.

TanaTiX

Есть ли автокомплит в IDE? Если да, то как включить?
Т.е. написал переменную, нажал точку - и предлагается для продолжения набор свойств и методов данного объекта.

kompilainenn

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

eeigor

#2
На самом деле, здесь без автодополнения кода можно обойтись. Не так много и пишем. Тренирует память.

Или переходите на Python, и всё будет
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

sokol92

В продуктах Microsoft (например, Excel) это называется IntelliSense.
В LO IDE это пока в "зачаточном" состоянии.
Владимир.

eeigor

Владимир, там много полезного. Не пробовал. Если есть опыт использования, поделитесь впечатлениями.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

sokol92

#5
У меня включены в разделе параметров "Basic IDE":
"Use Extended Types": это необходимо.
"Autocorrection": пишет служебные слова Basic в правильном регистре, если после этого слова ввести пробел.
"Autoclose procedures". Вводишь шапку макроса, нажимаешь на Enter и автоматически дописывается строка "End Sub" (или "End Function"). Работает не всегда (но и не вредит).

Автозавершение скобок и кавычек - для любителей экстрима.
Владимир.

eeigor

#6
Цитата: sokol92 от 19 марта 2022, 21:45"Use Extended Types": это необходимо.
Как Вы это используете?

Sub Some_Calc_UNO_Types
REM A spreadsheet object
    Dim oSheet As com.sun.star.sheet.XSpreadsheet
    oSheet = ThisComponent.getSheets().getByIndex(0)
REM A cell object
    Dim oCell As com.sun.star.table.XCell
    oCell = oSheet.getCellByPosition(0,0)
End Sub

Это всё?
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

sokol92

#7
Судя по документации, этот параметр необходим для конструкций типа:

Dim oSheet As com.sun.star.sheet.XSpreadsheet

Я встречал коды (чужие) с такой нотацией.
Владимир.

eeigor

#8
Я ещё всегда предпочитаю писать "As Object", но многие ограничиваются типом Variant.
Но такие объявления у меня работали и раньше, если писать "As New ...".

Так если у кого-то не установлен этот флажок, то будет ошибка при работе с Вашим кодом.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

sokol92

Цитата: eeigor от 19 марта 2022, 22:38то будет ошибка при работе с Вашим кодом
Это я поставил для возможности выполнять чужой код.  :)
Владимир.

eeigor

Другое дело! Но сами так не делайте. :)
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community

sokol92

Не думаю, что такое есть в моих примерах на форумах. :)
Владимир.

TanaTiX

Цитата: eeigor от 19 марта 2022, 21:37поделитесь впечатлениями
Использовал эту возможность во FlashDevelop и в VisualStudio - очень облегчает жизнь. Мало того, что работает как подсказка, так еще и значительно экономит время написания кода.
Тут можно возразить, что кодер больше времени тратит на обдумывание, чем на "записать", но обдумывание мы можем изменить лишь препаратами и то не в лучшую сторону. А так хоть что-то. В общем удобно.

economist

#13
Для новичков побочный положительный эффект от Autocorrection -> служебные слова Basic в правильном регистре нежиданно оказался очень полезным. А всего-то нужно было приучить пользователей набирать все команды в нижнем регистре (и даже переменные, но об этом далее). Теперь опечатки к служебных словах сразу видны: слова с опечатками остаются в нижнем регистре: print -> Print но pirnt -> pirnt.

Акцент внимания на таком поведении очень сильно снизил число вопросов по Basic. Первопричина опечаток хорошо известна - незнание английского и печать с ошибками в лат. раскладке, но это проблема крайне медленно лечится. Собрана статистика опечаток: на 60000 элементов номенклатуры (названий закупаемых материалов) приходится примерно 700 опечаток на русском (1%), а для 20000 латиницей - 1400 (7%). Импортозамещение помогает слабо :-(  

К сожалению, в отличие от VBA в MSO, набранный "маленькими" буквами регистр имен переменных в стиле CamelCase - текущий автокомплит LO не исправляет, что затрудняет использование ряда нотаций с регистром и подталкивает к постоянному использованию python-style имен переменных вида var_name, как наиболее легкий в наборе и понятный (ввиду использования 2+ слов, разделенных символом "_" подчеркивания). На языке Python для LO последнее время пишется все больше и больше макросов, и такой стиль становится универсальным в Python/Basic, что, кмк, неплохо. Хотя в Интернете наибольшее число примеров кода все-таки с префиксами типа: oSheet, sSheetName итд.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

eeigor

@economist, я также включил только эту опцию. Счёл полезным.
Оставим CamelCase (or mixedCase) для BASIC и snake_case для Python.
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community