Ru-Board.club
← Вернуться в раздел «Программы»

» SciTE - Open Source Text Editor for Windows & Linux

Автор: mozers
Дата сообщения: 18.11.2008 16:16
DJ makrus
Цитата:
что бы можно было принести с работы файл сессии, открыть дома и редактор открылся с размером и положением какие мне удобны дома, а не в рабочем варианте
Сохраняем на работе все в файл сессии с произвольным именем, а дома - открываем его. Все. Положение окна сохраняется только в SciTE.session. При желании несложно и автоматизировать...

Цитата:
- ввести возможность разбиения сохраняемых настроек на две группы: "глобальные" и "локальные";
- и для каждой группы указать файл в котором ее надо сохранять.
Есть желание - поправь под себя save_settings.lua.

Цитата:
до того как AutocompleteObject.lua вырос в два раза все работало и с некорректным nncron.api
Это был побочный незапланированный эффект
AutocompleteObject.lua предназначен не для того чтобы дополнять недописанные одинарные слова (с этим SciTE, при соответствующих настройках, справляется безо всяких скриптов) а для того, чтобы после ввода разделителя автоматически показать список всех свойств и методов объекта.
Я не знаю есть ли вообще объекты в nnCron. Если - нет, то этот скрипт там - только во вред, поскольку срабатывать он будет непредсказуемо!
Автор: DJ makrus
Дата сообщения: 19.11.2008 13:01
mozers
Цитата:
Положение окна сохраняется только в SciTE.session.
Очень важное замечание, спасибо, добавлю что положение окна и другие сохраняемые параметры.
Цитата:
Есть желание - поправь под себя save_settings.lua.
как часто бывает, желания не совпадают с возможностями, в данном случае, мне не хватает для этого знаний - я не знаю Lua.
Цитата:
AutocompleteObject.lua предназначен не для того чтобы дополнять недописанные одинарные слова (с этим SciTE, при соответствующих настройках, справляется безо всяких скриптов)
Хорошо, я его отключаю..., как мне настроить что бы появлялись варианты в всплывающей подсказке без нажатия хоткеев как это было с подключенным AutocompleteObject.lua? После его отключения появляется только по нажатию хоткея, а как без этого?
Цитата:
Я не знаю есть ли вообще объекты в nnCron.
Как я уже говорил все трое я, nnCron и Forth не знаем объектов и методов, хотя всех троих научить можно

Еще по новой версии...
1. Сегодня у меня SciTE завис при запуске довольно долго разбирался, оказалось нельзя закомментировать строку:
dofile (props["SciteDefaultHome"].."\\tools\\macro_support.lua")
в файле SciTEStartup.lua, уж не знаю где и чего там не сростается, но только одно это изменение не позволяет запустить оригинальную версию сборки..., IMHO, как минимум надо в комментариях к ней указать что этого нельзя делать, либо как корректно отключить подгрузку при старте файла macro_support.lua
2. Теперь хотелки.
2.1 Новая боковая панель наверное удобная штука, до конца еще не разобрался, но есть ли возможность кнопкой/хоткеем открывать/закрывать ее? Было бы гораздо удобнее.
2.2 На закладке "Func/Bmk" у меня не получилось заполнить верхнюю половину с найденными функциями, вывод идет в окно консоли.
2.3 На той же закладке список букмарков строится по всем открытым буферам, правильно? А можно сделать "галочку" - "Только текущий буфер"?
2.4 Ну и для полного счастья - русифицировать контекстное меню
Автор: vladvro
Дата сообщения: 19.11.2008 16:01
DJ makrus

Цитата:
Сегодня у меня SciTE завис при запуске довольно долго разбирался, оказалось нельзя закомментировать строку:
dofile (props["SciteDefaultHome"].."\\tools\\macro_support.lua")

Крайне странно, мне повторить не удалось. С закоментированной строкой корректно запускается и работает, как вобщем то и должно.
Автор: mozers
Дата сообщения: 20.11.2008 09:04
DJ makrus
Цитата:
мне не хватает для этого знаний - я не знаю Lua.
Обилие самых разнообразных примеров в папке Tools и русская справка по Lua позволяют через пару часов внимательного изучения писать вполне рабочие скрипты.
Заменить в save_settings.lua SciTE.session на любой другой файл *.properties может и тот, кто Lua совсем не знает (главное - не забыть этот *.properties подключить командой import).

Цитата:
как мне настроить что бы появлялись варианты в всплывающей подсказке без нажатия хоткеев
Ты же сам когда то предложил это решение:
Код: autocomplete.nncrontab.start.characters=$(chars.alpha)
Автор: DJ makrus
Дата сообщения: 21.11.2008 14:30
vladvro
Цитата:
Крайне странно, мне повторить не удалось.
Прям, чертовщина какая-то..., вчера и сегодня мне тоже не удалось повторить, ни на ориганльной сборке, ни на рабочей..., прошу прощения за ложную тревогу

mozers
Цитата:
Обилие самых разнообразных примеров в папке Tools и русская справка по Lua позволяют через пару часов внимательного изучения писать вполне рабочие скрипты.
Я тоже не могу понять, у nnCron'а замечательный хелп, с кучей примеров, этот форум усыпан примерами, на оффоруме их вообще туча, так нет - постоянно приходиться приводить цитаты с примерами из Help'а
Цитата:
Заменить в save_settings.lua SciTE.session на любой другой файл *.properties может и тот, кто Lua совсем не знает (главное - не забыть этот *.properties подключить командой import).
Вот спасибо, это то что надо, теперь я знаю что надо сделать и самое главное я знаю что это правильно (а для этого мало пару часов...)
Цитата:
Ты же сам когда то предложил это решение...
у меня она выглядит чуть полнее:
autocomplete.nncrontab.start.characters=$(word.characters.nncrontab)
word.characters.nncrontab=$(chars.alpha)$(chars.numeric)$(chars.accented)._-><=%!?@#&:
и выше строка "# Подключение AutocompleteObject.lua:" по-моему логично при отключении AutocompleteObject.lua в файле автоматизации, отключить его и здесь? Я так и сделал ..., а этот параметр, значит, не только для этого скрипта используется?
Так, автодополнение есть.
Цитата:
Если язык не объектно-ориентированный, то - нельзя.
Язык Forth - нет, но он может таким стать при необходимости, и есть реальные примеры этого , но давайте не будем уходить в сторону..., редактору-то (скрипту) должно быть все равно! Ему важна "форма" тэгов в коде, не занимается же он проверкой типов данных и прочим...
Цитата:
Кнопа на тулбаре - предпоследняя.
Ндаа, а слона-то я и не заметил, спасибо!
Цитата:
Панель найденными функциями заполняется автоматически при открытии вкладки с файлом. Вывод в консоль осуществляет скрипт FuncProcList.lua - там совсем другой алгоритм и поэтому срабатывают они по-разному...или корректировать функцию поиска самому.
В свое время дополнил файл FuncProcList.lua до вида
Код:     ['css']="([%w.#-_]+)[%s}]-%b{}",
-- для nnCron'а
    ['tab']="\n%#%(%s([%w_#%-]-)%s",
-- для nnCron'а и Forth'а
    ['spf']="\n%:%s([%w_#%-<>]+)%s",
-- для Forth'а
    ['f']="\n%:%s([%w_#%-<>]+)%s",
    ['pas']="\n([pPfF][rRuU][oOnN][cC][eEtT][dDiI][uUoO][rRnN].-%b().-)\n",
Автор: VoidVolker
Дата сообщения: 21.11.2008 21:10
mozers, DJ makrus
Для кронтабов функция autocomplete.nncrontab неприменима, т.к. в ннкроне объектов и их свойств нету, если у кого-то они есть(в дистрибутиве СПФ есть 4 ООП либы) - так он и сам сможет настроить эту функцию, если она ему конечно понадобится. Как будет время, возможно оформлю исчерпывающий nncron.api.

Добавлено:
Что-то странное со всплывающими подсказками из *.api - подсказки всплывают только, если после слова в апи-файле есть открывающая скобка. Это настраиваемая фишка или глюк?
Автор: mozers
Дата сообщения: 22.11.2008 02:17
DJ makrus

Цитата:
а этот параметр, значит, не только для этого скрипта используется?
api.nncrontab используется только скриптом. Не нужно было AutocompleteObject отключать в SciTEStartup.lua - в других языках (например в lua) он был бы очень кстати. Достаточно было закомментировать параметр api.nncrontab.
Все остальные параметры - внутренние SciTE - смотри HELP. Какие из них используются скриптом написано в самом скрипте.

Цитата:
но у меня вроде нормально работает..., этого достаточно или нет, если нет, то в какой файл надо вносить изменения?
Чтобы в боковой панели список видеть? - в SideBar.lua.

Цитата:
Да, пропадут.
Чесноговоря даже мысли щас нет как это дело можно красиво реализовать Самое главное я не уверен что это кому то кроме тебя может понадобится...

Цитата:
мне было бы понятнее "FileMan: Select New Dir"
"FileMan: Change Dir" ?

Цитата:
неактивным пунктом меню, что-ли, "Double click for open"
Или пункт "Open File" в меню жирным? Что мы мечтаем? - ни то ни другое на сегодня - невозможно

VoidVolker

Цитата:
Для кронтабов функция autocomplete.nncrontab неприменима, т.к. в ннкроне объектов и их свойств нету
1. Такой функции не существует в природе (или ты - про скрипт AutocompleteObject? - тут согласен). Автодополнение можно настроить для любого языка, правда порой оно может быть слишком назойливым.

Цитата:
Как будет время, возможно оформлю исчерпывающий nncron.api
Ждем и верим!

Цитата:
Что-то странное со всплывающими подсказками из *.api - подсказки всплывают только, если после слова в апи-файле есть открывающая скобка.
Ну а кто впихнул в nncrontab.properties эту чушь?
Код: # Символы, после ввода которых возникает подсказка
calltip.nncrontab.parameters.start= (
Автор: VoidVolker
Дата сообщения: 22.11.2008 17:59

Цитата:
Ну а кто впихнул в nncrontab.properties эту чушь?

Понятия не имею. В кронтабах я поставил как и в форте - вопросик. Но не в нем дело, а вот этом:

Цитата:
всплывают только, если после слова в апи-файле есть открывающая скобка

Т.е. если например в апи файле написано так(скобки есть):

Код: FILL ( D A len -- ) Заполнить область памяти с начальным адресом A и длиной len ячеек значением D.
Автор: mozers
Дата сообщения: 22.11.2008 20:16
VoidVolker
Цитата:
В кронтабах я поставил как и в форте - вопросик
Зачем? Чтобы после возникновения подсказки стирать его???
Код: calltip.nncrontab.parameters.start=: (
Автор: VoidVolker
Дата сообщения: 22.11.2008 20:41
mozers

Цитата:
calltip.nncrontab.parameters.start=: (

Двоеточие является частью многих слов, а вот по пробелу... Хмм... пока оставлю, посмотрю не будет ли надоедать. Непонятно наличие открывающей скобки - все параметры передаются через стек, т.е. они перед словом идут А вообще, в скобках обычно комментарии. Так что имеет смысл оставить только один пробел как в forth.properties так и в nncrontab.properties.
Как назначить хоткей на копирование пути и/или имени файла?

Добавлено:
mozers

Цитата:
А если написать так:
Цитата:FILL (D, A, len)\n Заполнить область памяти с начальным адресом A и длиной len ячеек значением D.
То будет еще аккуратнее. И при
Цитата:calltip.nncrontab.parameters.separators=,
при вводе параметров D, A, len подсветка в подсказке будет смещатся, подсказывая какой из 3х параметров ты вводишь.

А вот и неправильно! В скобках указан т.н. "стековый комментарий" - слева от двух черточек указывается состояние стека до начала работы слова, а справа - состояние стека после, и соответственно скайте не может знать какие параметры возможно сейчас на стеке, и какие во врем выполнения программы. Т.е. в даннном случае код может выглядеть так:

Код: 32 Массив 345 FILL
Автор: mozers
Дата сообщения: 22.11.2008 22:55
VoidVolker
Я запятую только для наглядности привел (т.к. пробел цветом не выделишь
Поэтому разделители используй какие надо (пробел - значит его).
А вот то, что параметры пишутся впереди оператора
Цитата:
32 Массив 345 FILL
- это фигово Придется подсказку по Ctrl+Shift+Space глядеть.
Странный какой то язык... В HELP nnCron все намного проще:
Код: FILE-APPEND: "filename" "text"
FILE-COPY: "from_filename" "to_filename"
FILE-CREATE: "filename"
FILE-CROP: "filename" <max_size_in_kb> <size_after_crop>
FILE-ACCESS-DATE: "path"
FILE-CREATION-DATE: "path" (FILE-DATE: "path")
FILE-WRITE-DATE: "path"
FILE-DELETE: "filename"
Автор: VoidVolker
Дата сообщения: 23.11.2008 11:34
mozers

Цитата:
А вот то, что параметры пишутся впереди оператора
Цитата:32 Массив 345 FILL
- это фигово Придется подсказку по Ctrl+Shift+Space глядеть.
Странный какой то язык..

Называется "обратная польская запись" или постфиксная запись. Да, по-началу это кажется странным, а потом со временем понимаешь, что на самом деле это очень просто и удобно.

Цитата:
Придется подсказку по Ctrl+Shift+Space глядеть.
Странный какой то язык... В HELP nnCron все намного проще:

Двоеточие в конце слова - признак того, что оно берет слова из входного потока(это то, что перед слововм, в данном случае - это строки и цифры), и двоеточие является частью слова, а не ограничителем. Так же в ннкроне у всех таких слов есть постфиксные синонимы:

Код: FAPPEND
FCOPY
FDELETE
Автор: VoidVolker
Дата сообщения: 24.11.2008 11:33
А вот как из SciTE Helper можно добавить всплывающие подсказки по словам? По сути добавить в скайте подсказку как если бы она была из апи-файла, при этом не трогая сам апи файл.
Автор: mozers
Дата сообщения: 24.11.2008 16:48
VoidVolker
Если в Lua, то - так test.lua :
Код: editor:CallTipShow(editor.CurrentPos, 'Моя подсказка')
Автор: TymurGubayev
Дата сообщения: 24.11.2008 17:49
Такая фигня:
1. В SciTEDoc_rus.html#creatapi написано: "*.api-файл представляет собой
текстовый документ, формат которого изложен в описании параметров
api.filepattern и autocomplete.lexer."
В SciTEDoc_rus.html#api стоит: "Чтобы узнать, как создавать API-файлы, см.
раздел "Создание API-файлов"."
В SciTEDoc_rus.html#autocomplete.start.characters (ссылка от
autocomplete.lexer) вообще ничего.

А не работает следующее:
в lua.api строчки:
aa
aa.bb
aa.bb.cc

Автодополнение работает так:
aa[Ctrl+Space] - выводит все варианты
aa. - всплывает bb
aa.bb[Ctrl+Space] - не всплывает ничего
aa.bb. - аналогично (а хотелось бы cc)

Я не знаю наверняка, баг это программы или отсутствие документации. Если второе, хорошо бы, если бы знающие люди документацию доделали, а заодно объяснили бы мне, что я делаю не так.

2. Если установлена подсветка properties, автодополнение ведёт себя почти идеально: в списке автоматически выбирается подходящий вариант по мере набора:
f[Ctrl+Space] - список автодополнения есть, выбрана строчка с "false"
f[Ctrl+Space]i - список автодополнения есть, выбрана строчка с "file"
Если установлена другая подсветка (напр, lua), список автодополнения пропадает
после ввода следующего символа.
Например, для Lua:
f[Ctrl+Space] - список автодополнения есть, выбрано "file:close"
f[Ctrl+Space]i - вместо того, чтобы остаться на "file:close", список автодополнения просто исчезает.

Параметра, отвечающего за такое поведение автодополнения, я так и не нашёл. Подскажите плз!
Автор: VoidVolker
Дата сообщения: 24.11.2008 19:27
mozers
Нее, не так. Я просто хочу передать скайте имя нового слова и подсказку по нему так, чтобы он потом сам выводил подсказку по слову, как если бы она была в апи-файле.
Автор: TymurGubayev
Дата сообщения: 25.11.2008 07:07
Частично разобрался с фигнёй номер 1 (см. пост чуть выше):
надо было всего-то слегка переписать AutocompleteObject.lua, заодно я его чуть обновил.
Теперь скрипт пытается искать начало имени объекта влево от введённого разделителя до упора:
Было: aa.bb. ---> показывает методы для "bb"
Стало: aa.bb. ---> показывает методы для "aa.bb"

Если кому надо, скажите куда положить.
Поведение [ctrl+space] переписать средствами Луа уже не так просто, так что "aa.bb[Ctrl+Space] - не всплывает ничего" так и осталось.

А на самом деле это легка решается правкой editor:WordStartPosition() (например, вторым параметром паттерн символа из того, что считаем словом, по умолчанию [%a%d_] или что-то в этом духе, но при нужде -- как в данном случае -- можно изменить например на [%a%d_%.%:].
Автор: mozers
Дата сообщения: 25.11.2008 08:18
TymurGubayev
Давайте всетаки отделим мухи от котлет:
По [Ctrl+Space] и [Ctrl+I] срабатывает механизм автодополнения заложенный в коде SciTE.
Параметры его работы определяют куча параметров autocomplete.* , autocompleteword.automatic, word.characters.filepattern и содержимое соответствующего api-файла.
Если нам кажется что это автодополнение работает неверно то перед началом тестирования необходимо отключить все скрипты, чтобы их действие не было приписано редактору.

У AutocompleteObject.lua - совсем другие задачи! (Страницу назад объяснял - повторять не буду). Для его корретной работы и api-файл необходимо дополнять и параметры автодополнения выставлять из несколько других соображений. Смотрите начало скрипта - там подробно описан алгоритм его работы.

VoidVolker
Не думаю что это вообще возможно. В SciTE нет параметра в котором бы хранилось соотвествие слово->подсказка. Так что только если динамически дописывать-перечитывать текущий api-файл.
Автор: DJ makrus
Дата сообщения: 25.11.2008 10:23
VoidVolker
Цитата:
Для кронтабов функция autocomplete.nncrontab неприменима, т.к. в ннкроне объектов и их свойств нету...
Я постом выше уже писАл что скрипту должно быть все равно - пишу я программу на объктно-ориентированном языке или письмо на деревню бабушке! Если я в письме использую синтаксис поддерживаемого AutocompleteObject формата и подключен соотвествующий *.api, то скрипт должен работать!
Цитата:
Что-то странное со всплывающими подсказками из *.api - подсказки всплывают только, если после слова в апи-файле есть открывающая скобка. Это настраиваемая фишка или глюк?
Это фишка, так мне в свое время было объяснено mozers'ом, но к сожалению не отключаемая

mozers
Цитата:
api.nncrontab используется только скриптом.
Да с отключенным скриптом нет всплывающих подсказок, а я на них очень большие надежды возлагаю с включенным - есть подсказки (если они начинаются со скобки) и удвоение последнего введенного символа при выборе из списка автодополнения IMHO, этот гордиев узил можно разрубить сделав аналог скрипта AutocompleteObject учитывающий особенности его работы в nnCron'е/Форте.
Но может можно как-то настроить cуществующий скрипт?
Цитата:
Чтобы в боковой панели список видеть? - в SideBar.lua.
ага, спасибо будем пробывать дорабатывать
Цитата:
Чесноговоря даже мысли щас нет как это дело можно красиво реализовать Самое главное я не уверен что это кому то кроме тебя может понадобится...
Ну это не критично, но если вдруг еще кто-то об этом попросит, вспомните, пожалуйста, что он не первый кто просит об этом
Цитата:
"FileMan: Change Dir" ?
да, так даже лучше!
Цитата:
Или пункт "Open File" в меню жирным? Что мы мечтаем? - ни то ни другое на сегодня - невозможно
Если бы я располагал хотя бы 10-ой частью ваших знаний в данной области, то возможно я предложил бы более реальный вариант, а так я предлагаю идею (возможно не новую для вас) а уж возможно ли это - вам лучше знать, и делать так или нет - решать тоже вам
Цитата:
Ну а кто впихнул в nncrontab.properties эту чушь?
Скорее всего - я , в те времена когда пытался разобраться с этой настройкой самостоятельно по аналогии с другими файлами настроек, а потом, по другим вопросам, высылал вам и vladvro свои файлы не чистя их от результатов своих эксперементов и вот это оказалось в сборке. Но даже если в подключенном файле nncrontab.properties нет этой чуши, все равно
Цитата:
подсказки всплывают только, если после слова в апи-файле есть открывающая скобка.
т.к. этот параметр и не должен проверять что в api-файле, он же нужен что бы указать символ(ы) при наборе которого в редактируемом файле (а не api-файле) должна появиться подсказка, или я опять ошибаюсь
Цитата:
Зачем? Чтобы после возникновения подсказки стирать его???
Да, к сожалению, я не придумал другой альтернативы , забегаю вперед - идея хоткея "Ctrl+Shift+Space" - класс, я почему-то совсем забыл про хоткеи (инерция мышления ), но щас попробовал: по хоткею не появляется, ввожу вопрос - вижу подсказку
Пробовал пробел, но долго не протянул (и это с моими не до конца заполненными api-файлами ) - отвлекает постоянно появляющаяся и, далеко не всегда нужная, подсказка. Подсказка должна быть по требованию, а не автоматическая!
Цитата:
Странный какой то язык... В HELP nnCron все намного проще...
язык и nnCron - это одно и то же! см. параллельный топик
Автор: mozers
Дата сообщения: 25.11.2008 14:12
DJ makrus
Цитата:
Если я в письме использую синтаксис поддерживаемого AutocompleteObject формата и подключен соотвествующий *.api, то скрипт должен работать!
Да. Только смысла от такого скрипта - никакого.

Цитата:

Цитата: подсказки всплывают только, если после слова в апи-файле есть открывающая скобка. Это настраиваемая фишка или глюк?
Это фишка, так мне в свое время было объяснено mozers'ом, но к сожалению не отключаемая
Автор: VoidVolker
Дата сообщения: 25.11.2008 15:18
mozers

Цитата:
В новом варианте SideBar.lua nnCron уже есть.

А можно по-подробнее? Что именно там есть? А то у меня тут появилась идея как ее приспособить для кронтабов

Добавлено:
К слову о всплывающих подсказках - может быть удобнее будет сделать чтобы они вылазили не в позиции курсора, а "парковались" либо в самом низу экрана либо в нижней части окна скайте? Или может быть в консоли(просто идея)?

Добавлено:
О! Придумал-таки применение автодополнению: в задаче в спецификации события WatchHotKey: и в строке для слова SEND-KEYS - часто бывает нужно указать код клавиши или ее имя:

Код: WatchHotKey: "{0x74}" \ 'F5'
WatchHotKey: "{SCROLLLOCK}"
SEND-KEYS: "1{+}2{ENTER}{DELAY 2000}*3{ENTER}"
Автор: TymurGubayev
Дата сообщения: 25.11.2008 19:17
mozers
Итак, мухи:

Цитата:
AutocompleteObject.lua
mozers™
version 2.03
------------------------------------------------------
Ввод разделителя, заданного в autocomplete.[lexer].start.characters
вызывает список свойств и медодов объекта из соответствующего api файла
Ввод пробела или разделителя изменяют регистр символов в имени объекта в соответствии с записью в api файле
(например "ucase" при вводе автоматически заменяется на "UCase")

Второй пункт у меня не работает.

Чтобы первый пункт работал корректно (а именно воспринимал "aa.bb" как имя объекта), необходимо в lua.properties исправить word.characters.$(file.patterns.lua)=$(word.chars.lua).:
Тогда и [Ctrl+Space] начинает работать правильно, потому что от этого параметра зависит поведение editor:WordStartPosition. (это были котлеты. Которые оказались неотделимы от мух).
В связи с чем пара предложений:
1. Исправить файл lua.properties
2. В справке к autocomplete добавить ссылку на word.characters
3. В справке написать наконец формат .api - файлов. (Сейчас это выглядит так:
SciTEDoc_rus.html#creatapi: "*.api-файл представляет собой текстовый документ, формат которого изложен в описании параметров api.filepattern и autocomplete.lexer."
api.filepattern: "Чтобы узнать, как создавать API-файлы, см. раздел "Создание API-файлов". " (т.е. опять SciTEDoc_rus.html#creatapi)

Проблема номер 2 из моего поста выше остаётся открытой.

[upd]
Картинка номер 3 вот отсюда: http://mozers.net.ru/temp/scite-demo.htm у меня тоже не выходит.
Автор: mozers
Дата сообщения: 25.11.2008 23:25
VoidVolker

Цитата:
А можно по-подробнее? Что именно там есть?
Выводятся функции nnCron (в соответсвии с алгоритмом DJ makrus).
Быстрее качнуть 25кБ и поглядеть самому...

Цитата:
К слову о всплывающих подсказках - может быть удобнее будет сделать чтобы они вылазили не в позиции курсора, а "парковались" либо в самом низу экрана либо в нижней части окна скайте? Или может быть в консоли(просто идея)?
Увы - невозможно. В верхнем левом углу еще как то получается - больше никак

Цитата:
О! Придумал-таки применение автодополнению:
Да тут и AutocompleteObject можно приспособить. Составляйте api-файл.

TymurGubayev
Цитата:
Ввод пробела или разделителя изменяют регистр символов в имени объекта в соответствии с записью в api файле
(например "ucase" при вводе автоматически заменяется на "UCase")
Виноват. Это в старой версии работало. Сейчас я эту функцию убрал. А текст убрать забыл.

Цитата:
Чтобы первый пункт работал корректно (а именно воспринимал "aa.bb" как имя объекта),
Если "aa.bb" считать именем объекта, то это будет нарушением логики скрипта. аа - объект bb - его метод. Если надо выводить свойства метода bb то в api надо задавать не свойства объекта aa.bb, а свойства bb. То что bb является методом объекта aa тоже надо задавать отдельной строкой. Вообще все это написано в том же скрипте только чуть ниже. См.
Цитата:
Для понимания алгоритма работы скрипта,...


Цитата:
необходимо в lua.properties исправить word.characters.$(file.patterns.lua)=$(word.chars.lua).:
Если вы осознаете последствия - исправляйте. Я этого никогда делать не буду.
Цитата:
Тогда и [Ctrl+Space] начинает работать правильно
Я такое поведение правильным не считаю.
По предложениям:
1. Уже ответил.
2. Добавим (только бы не забыть).
3. Официально этот формат нигде не документирован. Правила его составления вычислялись методом проб и ошибок и анализа исходников. Я уже выкладывал на форуме вариант описания - предлагал обсудить, поспорить - ничего не услышал в ответ.
Если есть такая необходимость можно повторить, но пока под текстом этой инструкции не подпишутся спецы уровня VladVRO она в документацию не войдет.

Цитата:
Проблема номер 2 из моего поста выше остаётся открытой.
То что порой список автодополнения внезапно исчезает я полагаю виновата доработка AutoComplete. Предположение основано на том, что такое наблюдается только на файлах с текстом. В пустых файлах автодополнение работает стабильно. Но это - предположение. Его надо проверять.

Цитата:
Картинка номер 3 вот отсюда: http://mozers.net.ru/temp/scite-demo.htm у меня тоже не выходит.
Верни взад все оригинальные настройки сборки - заработает 100%.
Автор: TymurGubayev
Дата сообщения: 26.11.2008 04:41
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 воспринимает уже новое значение.
Автор: DJ makrus
Дата сообщения: 26.11.2008 10:19
mozers
Цитата:
Да. Только смысла от такого скрипта - никакого.
Как это? Скрипт-то тот же! Он же помогает при наборе кода, вот должен помогать и при написании письма "на деревню бабушке"!
Цитата:
Неправда это - все настраивается.
Ох, скорей бы уже убедиться как это замечательно может работать
Цитата:
Но зачем??? Если эти функции уже зашиты в ядре и могут работать как надо - надо только разобраться и настроить их как положено.
Если не будет еще одного дублирующего скрипта - так это только +
Цитата:
В новом варианте SideBar.lua nnCron уже есть.
Ага, спасибо что сами это сделали, только вот в кронтабах обязательно использовать вариант "-- для nnCron'а ", т.к. там важны в первую очередь именно задачи (ни один кронтаб фактически не бывает без задач, хотя может быть), а вот кронтаб без определений через ":" и ";" (вариант "-- для nnCron'а и Forth'а", вы же его использовали?) - очень частое явление.
Цитата:
Ошибаешся...
Присылай мне твои api и какую подсказку в каком месте ты хочешь видеть... Настроим - ВСЕ будет работать.
Утром отправил api-файлы, вы не поверите, но жду не дождусь когда убедюсь, что ошибся!

VoidVolker
Цитата:
А можно по-подробнее?
названия файлов - ссылки, скачай, там вообще-то много чего изменилось, ну по крайней мере во многим местах
Автор: VoidVolker
Дата сообщения: 26.11.2008 10:59
mozers

Цитата:
Выводятся функции nnCron (в соответсвии с алгоритмом DJ makrus).
Быстрее качнуть 25кБ и поглядеть самому...

DJ makrus

Цитата:
названия файлов - ссылки, скачай, там вообще-то много чего изменилось,

Может я конечно что-то не так делаю: скачал, закинул вместо старой, перезапустил скайте - внешне в панельке ничего не изменилось, в кронтабе - ни списка задач ни чего-то еще - пусто.
Автор: mozers
Дата сообщения: 26.11.2008 11:01
TymurGubayev
Цитата:
При этом меня устраивает, что автодополнение появляется для socket.dns, и не появляется для dns.
Короче, эту функциональность я сделал сам, если кому будет интересно - выложу.
AutocompleteObject может работать так же. Только в word.characters точку придется добавить. Для css именно так и сделано (добавлен -), а вот делать так для Lua мне очень не нравится.

Цитата:
так и просится "а знак '-' -- один из разделителей".
Спасибо за замечание - добавил.

Цитата:
я сделал. Кроме того добавил фичу
Ну так не стесняйся - выкладывай прямо тут - бум поглядеть
Только в теги [ more ] [ /more ] код заключи обязательно!

Цитата:
Так что нормально атводополнение по [Ctrl+Space] так и не работает
Не пойму чего тебе надо? Имхо - нормально работает - точнее, в меру своего функционала.

Цитата:
3. Ну, раз тут такие сложности
Просто в документации не место домыслам и предположениям. Кстати, и формат api-файла и принцип его работы описан в api.filepattern. Расширенный формат (для AutocompleteObject.lua) описан в файле ActiveX.api.

Цитата:
Я чуток исправил LineComment() из xComment.lua: оно теперь выполняет editor:VCHome() только если курсор не стоит после кучи пробелов/табов.
Т.е. для Луа строка "\t|code" (| - положение курсора) преобразуется в "\t-- code", вместо "-- \tcode". Имхо нужный патч
Выкладывай!
Насколько я помню этот скрипт комментарий устанавливает с учетом параметра comment.block.at.line.start.lexer.

Цитата:
если выделить в файле .properties текст "$(chars.numeric)" и нажать [Alt+V],
Надо выделять текст, что я выделил цветом.
p.s. глянь в свой личный ящик
Автор: VoidVolker
Дата сообщения: 26.11.2008 13:02
mozers

Цитата:
Увы - невозможно. В верхнем левом углу еще как то получается - больше никак

Чего здесь невозможного? Создать при запуске окошко, по срабатыванию подсказки установить ему текст с форматированием, припарковать и показать?
Автор: TymurGubayev
Дата сообщения: 26.11.2008 17:27
mozers
ничего не вижу в своём личном ящике

Цитата:
Надо выделять текст, что я выделил цветом.

я знаю, меня удивило, что props['CurrentSelection'] может вернуть выделенный текст, а может и какую-нибудь фигню, если текст с настройкой совпадёт. Имхо это баг.
И мне больше нравится выделять целиком, так что я слегка подправил value.lua

В xComment.lua я практически ничего не трогал, if comment_block_at_line_start == 1 как было, так и осталось.
А исправление следующее:

Код: local function LineComment()
-- Комментирование одной невыделенной строки
-- ... пропущен код
if comment_block_at_line_start == 1 then
editor:GotoPos(editor:PositionFromLine(line_sel_start))
else
local
line, car = editor:GetCurLine()
local _, e = line:find("%s*")
-- если позиция каретки НЕ совпадает с первым НЕ пробелом, то жмём на Home.
if car ~= e then
editor:VCHome()
end
end
-- ... пропущен код.
end
Автор: mozers
Дата сообщения: 26.11.2008 20:23
TymurGubayev
Цитата:
меня удивило, что props['CurrentSelection'] может вернуть выделенный текст, а может и какую-нибудь фигню
Имхо это - фича (правда, не слишком документированная).

Цитата:
А исправление следующее
Того же эффекта можно было добиться просто сняв комментарий со строки
Код: #~ comment.block.at.line.start.lua=1

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Universal Share Downloader


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.