TymurGubayev
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору mozers У меня в .api есть строчка "socket.dns.gethostname() = string\nReturns the standard host name for the machine as a string.". Т.е. у объекта socket есть поле -- объект dns, у которого уже метод... При этом меня устраивает, что автодополнение появляется для socket.dns, и не появляется для dns. Короче, эту функциональность я сделал сам, если кому будет интересно - выложу. Кроме того, в тексте скрипта после Цитата: Для понимания алгоритма работы скрипта, условимся, что в записи azimuth:left;list-style-|type:upper-roman где курсор стоит в позиции, отмеченной знаком "|", часть list-style - будет называться "объект" type - будет называться "метод" | так и просится "а знак '-' -- один из разделителей". (Если я правильно понял, ибо описания работы там нет. Да и не надо особо.). Кстати, Цитата: На что не хватило терпения: 1. Объединить функции CreateObjectsTable и CreateAliasTable в одну (чтобы обрабатывать api файлы за один проход) 2. Сделать вызов функций постоения таблиц более редким (сейчас они строются постоянно после ввода символа-разделителя) | я сделал. Кроме того добавил фичу для lua: если лексер "lua", скрипт при построении списка синонимов из файла (функция FindDeclaration) распознаёт str = "" как объект-строку. Соответственно, если добавить пару синонимов в lua.api, то по "str:" всплывает список из стандартных строковых методов. (Аналогичную функциональность просто имплементировать для любого языка) Ну и ещё по мелочи. Да, с пунктом 1 я погорячился Так что нормально атводополнение по [Ctrl+Space] так и не работает. И это то ли баг, то ли feature request. 3. Ну, раз тут такие сложности... А жаль. (А картинка получилась после тупого добавления в .api строчки #file=io.open ) Проблема номер 2: к сожалению, список (причём любой) исчезает не внезапно, а именно при вводе очередного символа либо при перемещении курсора (удалять символы Backspace-ом, если список появился по [Ctrl+Space] можно. Список из AutocompleteObject.lua пропадает, если стереть разделитель - что логично). Вряд ли это из-за AutoComplete. Я так понимаю, проблема в editor:UserListShow, либо где-то запрятано хитрое событие на нажатие клавиши, которое убивает список. На актуальной чистой сборке тоже не работает. А вот в старой сборке "Версия 1.76 .57Ru" всё отлично. PS Я чуток исправил LineComment() из xComment.lua: оно теперь выполняет editor:VCHome() только если курсор не стоит после кучи пробелов/табов. Т.е. для Луа строка "\t|code" (| - положение курсора) преобразуется в "\t-- code", вместо "-- \tcode". Имхо нужный патч upd словил какой-то страннейший баг. Во-первых, перестало работать временное расширение "word.characters.$(file.patterns.lua)" на пару символов (".:"). Причём "ничего не трогал, ничего не менял!!!"(с). Пытаясь разобраться обнаружил следующую фичу: оказывается, props['CurrentSelection'] ~= editor:GetSelText() -- точнее, не всегда равно. Например, если выделить в файле .properties текст "$(chars.numeric)" и нажать [Alt+V], то в консоль пойдёт "0123456789 = ", вместо "$(chars.numeric) = 0123456789". (Перед знаком '=' находится как раз props['CurrentSelection']) Вопрос: это баг или фича????? upd2 Так и не разобрался, переставил SciTE -- всё равно не пашет. Такое впечатление, что props["some_property"] = "some_new_value" стало работать с запозданием -- если в скрипте убрать откат на старое значение, то на следующий заход editor:WordStartPosition воспринимает уже новое значение. |