Ru-Board.club
← Вернуться в раздел «Тестирование»

» SciTE Ru-Board Edition

Автор: mw33
Дата сообщения: 02.05.2009 22:34
mozers

Код: scite.SendEditor(SCI_SETMOUSEDWELLTIME,300)
Автор: mozers
Дата сообщения: 03.05.2009 01:38
mw33
Цитата:
scite.SendEditor(SCI_SETMOUSEDWELLTIME,300)
Ага, работает

Цитата:
Так - возникло желание сделать "бесконечный лист"... - без координат никак
Непонял

Цитата:
Вы бы на СайдБаре сделали сортировку функций
Так есть же сортировка то И по имени и по очереди.

Цитата:
а как там ковырнуть, чтоб при старте была закладка с функциями была активна
Или поставить ее первой или просить программеров чтоб сделали функцию tabbar.select(index)
Автор: mw33
Дата сообщения: 03.05.2009 06:10
mozers
Беконечный лист - это когда строка автоматически дополняется пробелами при попытке переместится за ее пределы. При сохранении это всё равно уберется, а работать значительно удобнее - например, при попытке заселектить мышью конец длинной строки тебя не отскролливает назад при неловком движении... Впрочем, я подумал - может и без координат удастся кое-чего...

Сортировка у вас чуствительна к регистру: OpenFile оказывается выше и onClick и abs... - я поправил у себя - стало куда цЫвильнее

а поставить закладку с фунциями первой я пробовал - поставиться-поставилась, только заполняться перестала почему-то

Добавлено:
mozers
Беконечный лист - это когда строка автоматически дополняется пробелами при попытке переместится за ее пределы. При сохранении это всё равно уберется, а работать значительно удобнее - например, при попытке заселектить мышью конец длинной строки тебя не отскролливает назад при неловком движении... Впрочем, я подумал - может и без координат удастся кое-чего...

Сортировка у вас чуствительна к регистру: OpenFile оказывается выше и onClick и abs... - я поправил у себя - стало куда цЫвильнее

а поставить закладку с фунциями первой я пробовал - поставиться-поставилась, только заполняться перестала почему-то
Автор: mozers
Дата сообщения: 04.05.2009 11:49
mw33
Цитата:
Сортировка у вас чуствительна к регистру: OpenFile оказывается выше и onClick и abs... - я поправил у себя - стало куда цЫвильнее
Предложение принимается - поправим...

Цитата:
поставить закладку с фунциями первой я пробовал - поставиться-поставилась, только заполняться перестала почему-то
Для перестановки там в нескольких местах исправлять надо... И не нравится мне эта идея (Если FunctionList будет первым - будут тормоза при отрытии многих файлов - он же все их будет пытаться проанализировать...)
Автор: DJ_makrus
Дата сообщения: 19.07.2009 23:55
Всем привет.
Пытаюсь разобраться с подсказками по Ctrl+Shift+Space:
если хочу увидеть подсказку к слову содержащему тире (может и другие "проблемные" символы есть) например "SEARCH-WORDLIST" и заполняю соотвествующим образом api-файл, то подсказка не появляется, пока единственный выход это в api-файле в слове удалить тире, тогда показывает подсказку, но "это не есть хорошо"
Пробовал ковыряться в ShowCalltip.lua в строке с регэкспом, но в итоге пришел к выводу что надо копать глубже, т.к. функция GetCurrentWord() уже возвращает комментируемое слово без тире ... лезть дальше во внутренности SciTE'а - это я уже точно не потяну, поэтому вопрос:
- можно как-то убрать это обрезание лексемы символом тире?
PS поскольку я смотрю на поведение SciTE'а со стороны Форта/nnCron'а, то напомню что в них лексемы ограничиваются только пробелом и переводом строки, ну и еще и длиной в 32 символа..., т.е. если есть и другие символы ограничители, кроме только что мной указаных, то и от них бы тоже - хорошо бы избавиться
Автор: mozers
Дата сообщения: 20.07.2009 18:49
DJ_makrus
Цитата:
хочу увидеть подсказку к слову содержащему тире

Цитата:
calltip.nncrontab.word.characters=$(chars.alpha)$(chars.numeric)-

Автор: DJ_makrus
Дата сообщения: 20.07.2009 21:46
mozers
У меня эта строка выглядит следующим образом:
Цитата:
calltip.nncrontab.word.characters=$(word.characters.nncrontab)
и чуть выше:
Цитата:
word.characters.nncrontab=$(chars.alpha)$(chars.numeric)$(chars.accented)._-><=%!?@#&:
но это помогает при вводе спецсимвола...., а вот к вызову по хоткею отношения вроде не имеет...
Т.е. по другому никак?
Автор: mozers
Дата сообщения: 21.07.2009 12:33
DJ_makrus
Работоспособность написанной мной строчки я проверял перед написанием поста, добавив в forth.api
Код: SEARCH-WORDLIST () gkhlfhlkhldhldhldklhk
Автор: TymurGubayev
Дата сообщения: 22.07.2009 06:10
DJ_makrus
скрипт value.lua позволяет быстро проверить значение системной переменной: в файле .properties выдели calltip.nncrontab.word.characters и нажми Alt+V. Одним из символов должен быть -.

Если не поможет, надо разбираться дальше.
(например, в скрипте ShowCalltip.lua сразу после стр. 24 добавить print(word), чтобы знать, что возвращает GetCurrentWord() )

И третий шаг -- поставить в другой каталог свежую версию SciTE-Ru без каких-либо модификаций, и проверить на ней.
Автор: DJ_makrus
Дата сообщения: 22.07.2009 09:17

Код: print(word)
Автор: TymurGubayev
Дата сообщения: 22.07.2009 16:30
О, обнаружился забавный баг:

Цитата:
Кстати строчку
Код:
api.$(file.patterns.forth)=$(SciteDefaultHome)\api\blank.api;$(SciteDefaultHome)\api\forth.api;$(SciteDefaultHome)\api\MySPF.api;$(SciteDefaultHome)\api\yz_xmenu.api
в forth.properties надо сократить до
Код:
api.$(file.patterns.forth)=$(SciteDefaultHome)\api\forth.api

если этого не сделать, то подсказки вообще не будут работать, т.к. функция ShowCalltip() прерывает свою работу, как только ей не удаётся открыть api-файл.

Короче, вот исправленный скрипт:
[more]
--[[--------------------------------------------------
ShowCalltip.lua
Show calltip for current word
Authors: mozers™, TymurGubayev
version 1.1
------------------------------------------------------
Выводит всплывающую подсказку по слову на котором стоит курсор
по команде меню "Показать подсказку" (Ctrl+Shift+Space)
(если, конечно, соотвествующий каллтип задан в api-файле).
Если вывод подсказки возможен внутренними средствами SciTE,
то скриптовый вариант игнорируется.
------------------------------------------------------
Для подключения добавьте в свой SciTEStartup.lua строку:
dofile (props["SciteDefaultHome"].."\\tools\\ShowCalltip.lua")
--]]--------------------------------------------------

local function GetCurrentWord()
    local current_pos = editor.CurrentPos
    return editor:textrange( editor:WordStartPosition(current_pos, true),
                            editor:WordEndPosition(current_pos, true))
end

-- паттерн для ловли управляющих паттернами символов Луа:
local lua_patt_chars = "[%(%)%.%+%-%*%?%[%]%^%$]"
-- сделать текст шаблоном для поиска
-- (фактически экранирование служебных символов)
local function Patternize( text )
    return (text:gsub(lua_patt_chars,'%%%0'))
end

local function ShowCalltip()
    local word = GetCurrentWord()
    if #word < 1 then return end
    for api_filename in string.gmatch(props["APIPath"], "[^;]+") do
        if api_filename ~= '' then
            local api_file = io.open(api_filename)
            if api_file then
                for line in api_file:lines() do
                    local _start, _end, calltip = line:find('^('..Patternize(word)..'[^%w%.%_%:].+)')
                    if _start == 1 then
                        editor:CallTipCancel()
                        editor:CallTipShow(editor.CurrentPos, calltip:gsub('\\n','\n'))
                        editor:CallTipSetHlt(0, #word)
                        break
                    end
                end
                api_file:close()
            end
        end
    end
end

-- Add user event handler OnMenuCommand
local old_OnMenuCommand = OnMenuCommand
function OnMenuCommand (msg, source)
    local result
    if old_OnMenuCommand then result = old_OnMenuCommand(msg, source) end
    if msg == IDM_SHOWCALLTIP then
        ShowCalltip()
    end
    return result
end
[/more]
Автор: DJ_makrus
Дата сообщения: 22.07.2009 19:26
TymurGubayev
Цитата:
Короче, вот исправленный скрипт:
Во! То что надо! Большое спасибо! Теперь этот и без того замечательный скрипт стал "идеальный"
Цитата:
...если этого не сделать, то подсказки вообще не будут работать...
Начало цепочки api-файлов с пустого/несуществующего файла это было в давние времена очередное мое "изобретение велосипеда" когда SciTE не читал (и не показывал) подсказки находящиеся в первом файле такой цепочки... и вроде уже обговаривалось ненужность таких махинаций, но видимо это сохранилось по недоразумению...
Автор: mozers
Дата сообщения: 22.07.2009 22:02
DJ_makrus
Доработочка TymurGubayev, конечно, улучшает скрипт.
Но скрипт показывает совсем другую подсказку нежели SciTE (он подсвечивает в подсказке только ключевое слово, тогда как SciTE динамически подсвечивает текущий вводимый параметр функции), поэтому желательно заставить именно SciTE показать подсказку, а скрипт пусть отрабатывает те ситуации, когда SciTE выводить подсказку не должен.

Цитата:
Какой из 9-ти пунктов я выполнил не правильно, или какой пункт пропустил что не смог увидеть подсказку в п.10. ?
Все правильно. Я полагал что Форт и nncron - одно и то же и проверял на файле test.tab - там все работает. Почему не работает тут - пока не разобрался...

Цитата:
Кстати строчку
Код:api.$(file.patterns.forth)=$(SciteDefaultHome)\api\blank.api;$(SciteDefaultHome)\api\forth.api;$(SciteDefaultHome)\api\MySPF.api;$(SciteDefaultHome)\api\yz_xmenu.api
в forth.properties надо сократить
А хто эту бредятину понаписал? Эй афторы, билин!

Вообще, по уму, вопрос "почему не показываются подсказки в Форт" надо адресовать в первую очередь авторам этих недоделанных настроек. Каждый из нас - спец по "своим" языкам. Все языки отладить ни один человек не сможет.



Добавлено:
Подсказка работает обычным порядком и в Форт. Проверил. Никаких хитростей нет. Все как написано в документации.
Об одном не написано в документации - о смысле подсказки и параметра calltip.forth.parameters.start:
Как уже говорилось, SciTE не выводит подсказку к функции на которой стоит курсор! Это в нем не предусмотрено!
Он выводит подсказку по параметрам этой функции.
И показывает ее только тогда когда курсор ввода находится на месте ввода параметров.
А как он определяет это место? - по calltip.lexer.parameters.start.
Если этот параметр не задан, то SciTE считает что параметры ф-ции идут после (.
Вот собственно и все...

Автор: DJ_makrus
Дата сообщения: 24.07.2009 17:22
mozers
Код: Но скрипт показывает совсем другую подсказку нежели SciTE...
Автор: mozers
Дата сообщения: 25.07.2009 12:23
DJ_makrus
Я без твоей помощи никогда не смогу правильно настроить SciTE для Форта. Потому что как для меня странно твое отсутствие "практики работы с параметрами", так и тебе, наверное, будет странно услышать от меня что я понятия не имею ни о "лексемах" ни о "стековой нотации".
Объяснять мне что это такое - не нужно. И "изучать внутренности SciTE'а" - тоже не обязательно. Все настройки подробно описаны в документации, поэтому достаточно все делать в точном соответствии с ней.
А если SciTE не расчитан что то делать (как в данном случае - показать подсказку к функции на которой стоит курсор) то имхо нефиг пихать в .properties странные с точки зрения логики SciTE настройки, типа
Код: calltip.forth.parameters.start=?
Автор: Real Root
Дата сообщения: 17.09.2009 16:27
Господа, добавил в скрипт translit.lua возможность обратной транслитерации. Путем добавления сопоставления символов в указанный скрипт:

Код: local translit = {
['a'] ="а", ['b'] ="б", ['v'] ="в", ['w'] ="в", ['g'] ="г", ['d'] ="д", ['e'] ="е", ['yo']="ё",
['j'] ="ж", ['z'] ="з", ['i'] ="и", ['y'] ="й", ['k'] ="к", ['l'] ="л", ['m'] ="м", ['n'] ="н",
['o'] ="о", ['p'] ="п", ['r'] ="р", ['s'] ="с", ['t'] ="т", ['u'] ="у", ['f'] ="ф", ['h'] ="х",
['x'] ="х", ['c'] ="ц", ['ch']="ч", ['sh']="ш", ['yu']="ю", ['ya']="я", ['а'] ="a", ['б'] ="b",
['в'] ="v", ['г'] ="g", ['д'] ="d", ['е'] ="e", ['ё'] ="yo", ['ж']="j", ['з'] ="z", ['и'] ="i",
['й'] ="y", ['к'] ="k", ['л'] ="l", ['м']="m", ['н'] ="n", ['о'] ="o", ['п'] ="p", ['р'] ="r",
['с'] ="s", ['т'] ="t", ['у'] ="u", ['ф'] ="f", ['х'] ="h", ['ц'] ="c", ['ч'] ="ch",['ш']="sh",
['щ']="sh", ['ъ'] = "", ['ы']="i", ['ь'] ="", ['э']="e", ['ю']="yu", ['я']="ya"}
Автор: mozers
Дата сообщения: 07.10.2009 21:54
Вернул статусную строку к первобытному виду:
Код: statusbar.text.1=\
Line $(LineNumber) Col $(ColumnNumber)\
| Select: $(SelHeight) lines $(SelLength) bytes\
| $(OverType)\
| $(EOLMode)\
| $(font.current.size)px\
| $(scite.lexer.name)\
| $(code.page.name)\
| $(scite.readonly)
Автор: vladvro
Дата сообщения: 08.10.2009 09:31
У меня точно возражений нет
Уже давно поменял у себя в настройка на

Код: statusbar.text.1=\
Ln $(LineNumber) Col $(ColumnNumber)\
| Select: $(SelHeight) ln $(SelLength) ch\
| $(OverType)\
| $(EOLMode)\
| $(font.current.size)px\
| $(scite.lexer.name)\
| $(code.page.name)\
| $(FileAttr)
Автор: mozers
Дата сообщения: 08.10.2009 10:42
Отлично! Тогда предложу "продвинутый" вариант:
Код: statusbar.text.1=\
Line $(LineNumber) Col $(ColumnNumber)\
| Select: $(SelHeight) lines $(SelLength) bytes\
| Char: $(CharAt) $(CharAtHex)\
| $(OverType)\
| $(EOLMode)\
| $(font.current.size)px\
| $(scite.lexer.name)\
| $(code.page.name)\
| $(FileAttr)
Автор: mozers
Дата сообщения: 11.10.2009 11:08
Всетаки строчку
Код: | Char: $(CharAt) $(CharAtHex)\
Автор: Nekt
Дата сообщения: 08.11.2009 12:03

Код: braces.autoclose=1
braces.open=({['"
braces.close=)}]'"
Автор: BioInfo
Дата сообщения: 09.11.2009 11:00
Nekt
Всё работает. Для ответа на твой вопрос нужно знать какие ты настройки поменял в сборке SciTERu.
Автор: JohnyZlo
Дата сообщения: 06.01.2010 13:03
Здравствуйте! Подскажите, как подключить Borland Compiler 5.5 Free. Хотелось бы чтоб была портативная версия SciTE Ru-Board Edition с подключенным компилятором. Нашел только описание <a href="http://www.deconfig.ru/c-cpp/BCC_and_SciTE/">Borland C++ Compiler + SciTE</a>...
Автор: mozers
Дата сообщения: 06.01.2010 21:30
JohnyZlo
C первым постом!
Твой вопрос - общий - лучше задавать в этой теме.
Решение - тут.
Автор: mozers
Дата сообщения: 15.01.2010 14:57
Создана тестовая ветка проекта.
Это - попытка скрестить SciTE-Ru с детищем Мишеля Форала
Лексеры для всех языков теперь пишутся не на С++ а на Lua
и хранятся не в ядре, а в подкаталоге lexers.
SciTE стал еще более настраиваемым Причем стало возможным вручную отладить основу всего - механизм распознавания ЛЮБОГО языка программирования!

Все это - конечно великолепно, но возникают многие "но" с которыми мне так и не удалось справиться : Сырцы компилируются только через scite\boundscheck\SciTE.vcproj
Все другие привычные нам варианты не катят Почему??? Неясно.
Откомпилированный (без единой ошибки или предупреждения!) exe-шник глючит по страшной силе. Так мне не удалось подключить ни внешний тулбар, ни боковую панель, ни большинство используемых в сборке скриптов.
В чем дело??? Неясно.
Готовая сборка - тут.
Автор: juvaforza
Дата сообщения: 15.01.2010 15:57

Цитата:
Создана тестовая ветка проекта.

Спустя 35 часов после основного релиза Загорелись?
Автор: mozers
Дата сообщения: 15.01.2010 17:01
juvaforza
А сколько уже было желающих исправить той или иной лексер или добавить новый, для какого то экзотического языка?
А сколько уже неразрешимых проблем рождает текущая реализация? (Tymur Gubayev уже все наши диалоги о SciTE начинает с длинных проклятий в его адрес
В общем, идея витала давно, но прежние варианты Форала у меня вообще не работали.
Этот - откомпилился и запустился - уже прогресс.
Ну и еще очень хочется как то растормошить ушедших в долгую зимнюю спячку наших любимых программистов.
Автор: UR4LTZ
Дата сообщения: 15.01.2010 23:55
mozers

Цитата:
Сырцы компилируются только через scite\boundscheck\SciTE.vcproj
Все другие привычные нам варианты не катят Почему??? Неясно.

Комментарии в маке вещь хорошая но только на своем месте.

С помощью шаманских танцев удалось собрать и в MinGW-MINI. Только теперь LUA находится в SciLexer.dll и Scintilla.dll а не в SciTE.exe, от этого и не работают скрипты shell и gui умерли.
Маке нужно переписывать примерно на половину.


Цитата:
Готовая сборка - тут.

Жаль только что отладочную версию выложил! MSVCR71D.dll MSVCP71D.dll не у всех есть.


Цитата:
А сколько уже неразрешимых проблем рождает текущая реализация? (Tymur Gubayev уже все наши диалоги о SciTE начинает с длинных проклятий в его адрес

Да.. Как это все знакомо.

Запуски в VS2005 показали что все падения происходят в этом коде строка 17.
IFaceTable.cxx [строка 16] :
Код: int idx = (lo+hi)/2;
int
cmp = strcmp(name, constants[idx].name);
Автор: mozers
Дата сообщения: 16.01.2010 11:46
UR4LTZ
Цитата:
С помощью шаманских танцев удалось собрать и в MinGW-MINI. Только теперь LUA находится в SciLexer.dll и Scintilla.dll а не в SciTE.exe, от этого и не работают скрипты shell и gui умерли.
А вариант с единственным exe-шником (Sc1) не получается? Или это не решит проблему?

Цитата:
Маке нужно переписывать примерно на половину.
Выложи, pls, тут свой вариант.

Цитата:
Жаль только что отладочную версию выложил!
Так получилось

Цитата:
Запуски в VS2005 показали что все падения происходят в этом коде
Теперь бы еще понять, почему?...

Функцию GetLexerLanguage я использовал нашу, а не ту что сделал Форал.
Поэтому она всегда возвращает "lpeg", что неверно.
Очевидно надо использовать евоную, но маленько переделать чтоб корректно с нашими скриптами работала...
Автор: UR4LTZ
Дата сообщения: 16.01.2010 13:03
mozers

Цитата:
А вариант с единственным exe-шником (Sc1) не получается? Или это не решит проблему?

Собрать получилось, но только собрать. Перегнул он сильно с переносом LUA в лексеры из ядра.

Цитата:
Выложи, pls, тут свой вариант.

В маке файлах выкинуть! "i486-mingw32-" и убрать "# modified by Mitchell" в конце тех же строк.

Страницы: 1234567891011121314151617181920212223242526

Предыдущая тема: test


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