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

» SciTE - Open Source Text Editor for Windows & Linux

Автор: mozers
Дата сообщения: 01.09.2006 08:11
unreal666
Все лексеры перечислены в файле scintilla\include\Scintilla.iface (см. исходники).
Т.е. циферки в моем скрипте можно бы даже заменить SciTE константами:
Код: ......,
[SCLEX_PYTHON] = "python",
[SCLEX_CPP] = "cpp",
[SCLEX_HTML] = "hypertext",
[SCLEX_XML] = "xml",
[SCLEX_PERL] = "perl",
......,
Автор: gansA
Дата сообщения: 01.09.2006 10:57
mozers

Цитата:
Поместить пробел и табуляцию в квадратных скобках

Блин стормозил, но ничего готова новая верися , тока это уже не "хайку".
Что делает: - удаляет все отступы, все позторяющиеся пробельные символы, грохает пустые строки. Где применять уж сами решите ))).
Собсно startup.lua

Цитата:

--// trim all space
function TrimAllSpace(strCmd)
    local bF=0;
    local textOut='';
    local text=editor:GetSelText();

    if string.len(text)==0 then
        bF=1;
        text=editor:GetText();
    end;

    text=text..'\n';
    for str in string.gfind(text,'((.-)\r?\n)') do
        textOut=textOut..FormatString(str,strCmd)
    end
    textOut=string.gsub(textOut,'(.+)\n','%1')
    --//trace(textOut) --// debug

    if bF==0 then
        editor:ReplaceSel(textOut);
    else
        editor:SetText(textOut);
    end;

    return 0;
end

function FormatString(str, strCmd)
    if strCmd == 'trim' then
        str=string.gsub(str,'[     ]+',' '); --// удаление повторяющихся символов
        str=string.gsub(str,'^ *(.-) *','%1');    --// удаление пробелов в нач. конце строки
    end

    str=string.gsub(str,'^(%s*)$',''); --// удаление пустых строк
    return str;
end

В str=string.gsub(str,'[ ]+',' '); содержатся знак пробела и знак табуляции.

И SciTEGlobal.properties

Цитата:

command.name.7.*=Trim all spaces
command.7.*=dostring TrimAllSpace('trim')
command.mode.7.*=subsystem:lua,savebefore:no
command.shortcut.7.*=Shift+Space

command.name.8.*=Drop Empty Line
command.8.*=dostring TrimAllSpace('drop')
command.mode.8.*=subsystem:lua,savebefore:no
command.shortcut.8.*=Alt+Space

Автор: mozers
Дата сообщения: 01.09.2006 22:47
Задачи и вопросы для программистов:

Как бы увеличить допустимую длину строки в параметре statusbar.text.1 ?
(Хочется видеть сразу и много, поэтому писать в statusbar.text.2 и другие уже не так интересно)

Мечталось бы модернезировать функцию ParametersDialog(VladVRO) вызова настраиваемого диалога ввода, в которой можно было бы задать кол-во входных полей, надписи к ним (опционально), общую надпись (опционально), список кнопок.

Реализовать перетаскивание закладок мышью (подробнее...)

Необходимо добавить новый эвент onClick(keycode), который бы позволил не только отслеживать одинарные клики мыши, но и анализировать код нажатой(нажатых) в данный момент клавиш.
(mimir уже добавил onDoubleClick(Ctrl,Shift,Alt) так что путь известен...)

Как сделать ВСЕ меню SciTE (а не только Tools) полностью настраиваемым.

Задачи для любителей:

Необходим полный и корректный перевод HELPа на русский язык. Сделайте малое - переведите хотя бы один абзац. А ваш друг переведет другой. А кто то сможет изложить более грамотно и понятно переведенные ранее части

Необходимы полные откорректированные, удобные и отлаженные файлы API и сокращений (abbrev) для различных языков программирования.

Необходимы удобные и полезные скрипты. На lua, vbs, js или другом каком языке они будут написаны - это уже не важно.

Необходимо снабдить подробными и понятными комментариями все файлы настроек

Есть задача обновления материала, размещенного на сайте. Например, многие скрипты там размещенные, уже давно обновились и обрели новые возможности...

В общем - творите, делитесь результатом, и ваше имя навсегда останется в памяти благодарных пользователей
Автор: Moon_aka_Sun
Дата сообщения: 02.09.2006 03:32
mozers
Цитата:
Да и вообще как выполнить любую команду меню?

Я так понимаю, что и сам SciTE, и расширение (Луа), являются как бы надстройкой над Scintilla. И тот и другой имеют доступ к функциям редактирования и т.п. В редакторе можно контролировать расширение (подключать/отключать, запускать и т.д.), но сам редактор не выдаёт никакого API для доступа к себе. Или выдаёт, но очень ограниченный (ххххх: команды?). Может это всё и не так - я всей документации не читал и не пытался во всём разобраться. Я бы предложил спросить об этом у Hodgson'а.

mozers
Цитата:
В меню Tools отсутствует возможность вставлять разделители и делать подменю.

Тот же Mitchell Foral это сделал. При вызове команды из Тулз, показывается новое меню - из Луа, по-моему. Разделители - да, этого нет. Это надо код SciTE править. Если у меня число пунктов перевалит за 30, то можно было бы и посмотреть, должно быть не сложно сделать пустую команду с именем '-' и превращать её в разделитель.

mozers
Цитата:
Необходим единый список всех клавиатурных комманд SciTE

У меня есть мой список, но я немного поменял и KeyMap.cxx в Scintill'e, и SciTEProps.cxx и SciTERes.rc в SciTE. Лучше, конечно, собрать было изменения в одном-двух местах, но так уж исторически вышло - зачем опряделять какие-то команды внизу, когда всё равно я их буду переопределять, и всё равно всё перекомпилировать. В общем, своё могу доработать и облагородить, а оригинальные - нет. Работы там, кстати, для энтузиастов немного, практически все файлы я уже назвал.


Цитата:
макросы?

Если включить при компиляции (или можно из расширения), то в меню появятся 4 команды, привязанные к F9, но они вызывают функции из расширения. Т.о. если их просто включить в исходнике, то без реального обработчика они ничего не делают. Есть filerx или как он там назывался - организатор сессий, но и макро в нём есть. Довольно неудобное и чужеродное средство по-моему, в общем, у меня не пошло. А делать макро на С - работы там довольно много, за вечер не сделаешь.


В свою очередь, тоже хочу спросить. Я видел где-то упоминание, что можно открыть две панели (или два таба?) и редактировать в них один и тот же файл в разных местах. Это было, по-моему, в общем описании принципиальных возможностей Scintill'ы, но точно уже не помню. Никто не владеет вопросом?
Автор: Moon_aka_Sun
Дата сообщения: 02.09.2006 10:05

Цитата:
В меню Tools отсутствует возможность вставлять разделители

Это оказалось проще всего, если мы условимся, что те пункты, которые должны идти после (ниже) разделителя, начинаются с минуса (который не показывается, конечно). Такое соглашение не позволит поставить черту перед (выше) Stop Executing/Ctrl+Break, но он всё равно обычно засерен и после него идёт черта, так что это как раз не страшно.

Итак, в SciTE.h надо вставить новый ид, например,

Код:
#define IDM_PREVMSG            307

#define IDM_TOOLS_SEP 308

#define IDM_MACRO_SEP        310
Автор: mozers
Дата сообщения: 02.09.2006 20:07
Moon_aka_Sun

Цитата:
но сам редактор не выдаёт никакого API для доступа к себе
если это
Код: scite.SendEditor(SCI_constant, ...) - sends a message to the editor pane
Автор: Moon_aka_Sun
Дата сообщения: 02.09.2006 23:50

Цитата:
Не видел такого. Ссылочку можно?

Да у того же Форала (http://caladbolg.net/scite.php)
Например, http://caladbolg.net/tools/sc/scite_file_browser.html


Цитата:
Ctrl+Break у меня вдруг улетел наверх и встал 5м пунктом...

У меня это происходит, когда вставляешь третью полоску - вместо неё подхватывается Ctrl+Break. Но разбираться с этим не буду - пусть "настоящие" виндовс-программисты займутся. Наверняка там что-то очень простое, но надо знать виндовс GUI API и его тонкости и заскоки. Буду как Нейл говорить, что "это очень сложно"


Цитата:
scite.SendEditor(SCI_constant, ...)

А может туда можно и IDM_command пихнуть? Хотя вряд ли, конечно.
Есть ещё Director Interface. Туда точно можно любую менюшную команду подать - с помощью menucommand:...
Автор: ALeXkRU
Дата сообщения: 03.09.2006 00:21
mozers
21:07 02-09-2006
Цитата:
Не понимаю тогда зачем они вообще... Командой из меню Tools нельзя что ли внешний "магнитофон" для записи нажатий на клавиши запустить?
Делать кнопки для магнитофона которого нет??? Очень странно это...

может он это на будущее делал... а довести - руки не дошли...
В принципе, в Notepad++ макросы работают... а он же на том же движке.. можно попробовать портировать...
Автор: Moon_aka_Sun
Дата сообщения: 03.09.2006 00:38

Цитата:
На меня уже давно давит ограничение в 50 пунктов Надо добавить в "пожелания" увеличить это число хотя бы до 100.

File scite\src\SciTEBase.h, Line 488:

Код:     enum { toolMax = 50 };
Автор: mozers
Дата сообщения: 03.09.2006 11:35
Moon_aka_Sun
Цитата:
Например, http://caladbolg.net/tools/sc/scite_file_browser.html
Да... Точно. Раз мужик сделал подменю, то почему нам нельзя?

Цитата:
> Ctrl+Break у меня вдруг улетел наверх и встал 5м пунктом...
У меня это происходит, когда вставляешь третью полоску - вместо неё подхватывается Ctrl+Break. Но разбираться с этим не буду - пусть "настоящие" виндовс-программисты займутся.
АУ!!! Программисты! ОЧЕНЬ надо

Цитата:
enum { toolMax = 50 };
Ура!

Цитата:
В user.shortcuts можно хранить только команды IDM_ и SCI_
Да ну???. Приведи рабочий пример с SCI_

Цитата:
добавить возможность вызова луа-фунций из user.shortcuts
Ну это уже есть. Правда вызывается не сама команда, а пункт меню Tools ее содержащий.
Делать это напрямую "добавляя туда хоть чуть-чуть из системы savebefore:no и т.п." мне кажется - некрасиво.

Цитата:
Третий путь - создать отдельную структуру.
Команды эти будут нужны только для того, чтобы заменить стандартные обработчики своими собственными.
Поэтому структура, на мой взгляд, должна выглядеть приблизительно так:
Код: userproc.IDM.10.*=IDM_UPRCASE
userproc.10.*=dostring case="U" dofile(props["SciteDefaultHome"].."\\tools\\ChangeCase.lua")
userproc.mode.10.*=subsystem:lua,savebefore:no

userproc.IDM.11.*=IDM_LWRCASE
userproc.11.*=dostring case="L" dofile(props["SciteDefaultHome"].."\\tools\\ChangeCase.lua")
userproc.mode.11.*=subsystem:lua,savebefore:no
Автор: Moon_aka_Sun
Дата сообщения: 03.09.2006 13:02

Цитата:
Да ну???. Приведи рабочий пример с SCI_

Где-то в коде есть анализ на больше-меньше, т.е. попадает в SCI_ или в IDM_. Или я это где-то краем глаза прочёл. А что, SCI_ там не работают? А надо? Всё, что есть в SCI_, по-моему, доступно из Lua. Значит, скрипач не нужен (С).


Цитата:
Поэтому структура, на мой взгляд, должна выглядеть приблизительно так

Это кому как. У меня она выглядит внутри как просто массив строк - определений кнопок, а снаружи - точно как command-структура, только называется shortcut. Естественно, name нет, вместо него key, а shortcut который прилагался к command, естественно, не нужен.

shortcut.key.0.*=Ctrl+0
shortcut.0.*=hello
shortcut.mode.0.*=subsystem:lua,savebefore:no

Таким макаром можно ещё 100 клавиш определить.

Кстати, оказалось, что чтобы определить обратную косую, надо 1) повторить её дважды, 2) следующая строка должна быть пустой. Т.е.

shortcut.key.99.*=Ctrl+\\

shortcut.99.*=duplicate_backslashes_in_selection
shortcut.mode.99.*=subsystem:lua,savebefore:no


Цитата:
Запрос к ней должен идти при вызове соответствующих команд (IDM_UPRCASE, IDM_LWRCASE).

Так это ж совсем другое - ты хочешь стандартные команды, вызываемые из меню, заменить на свои. А зачем этом может быть (действительно) нужно? В общем, с таким размахом надо в MultiEdit или Emacs переползать


Цитата:
у Скайта

Хм. Уж скорее SciTE похож на сцыте Англичане читают скорее как сити или сайти.
Автор: mozers
Дата сообщения: 03.09.2006 13:51

Цитата:
SCI_ там не работают?
Неа. Попробуй...

Цитата:
А надо?
Если это будет, то возможности, конечно, возрастут, но мне придется увеличивать в несколько раз файл с командами SciTE
Дописываю потихоньку... IDM_ - числовое значение - шорткат - название в меню. Надо еще команды окна редактирования добивать - а они то не на IDM_ вешаются...

Цитата:
ты хочешь стандартные команды, вызываемые из меню, заменить на свои. А зачем этом может быть (действительно) нужно?

А зачем дублировать команды? У меня в меню "Правка" уже есть "Перевести в верхний/нижний регистр". Зачем мне видеть эту же команду в "Tools"? (а у меня там - улучшенный вариант, понимающий кирилицу).
Поэтому идеальный случай, чтобы при вызове соответствующей команды из меню "Правка" просто молча выполнялась не встроенная IDM_UPRCASE или IDM_LWRCASE а мой скрипт.
А вот скрыть из меню Tools какую то уникальную команду ни в каком другом меню не видимую... Не понимаю кому это может понадобится

Цитата:
В общем, с таким размахом надо в MultiEdit или Emacs переползать

Не... SciTE - гибче имхо...
Вот тут мне сегодня Shura здорово помог. Так что и пункт про утилу "позволяющую не только подавать команды в активное окно SciTE но и получать с него необходимые данные" можно будет скоро убрать
Таких плагинов с ее помощью понаделаем!!!...

Добавлено:
Moon_aka_Sun
Сейчас пришла мысль. Можно же сделать событие onMenuSelect(int itemID)!
Тогда подключать свои обработчики будет совсем просто
А, кстати, че такое OnExecute(const char *s); ???
Автор: Moon_aka_Sun
Дата сообщения: 03.09.2006 15:00

Цитата:
Не... SciTE - гибче имхо...

О, нет. Это совершенно не так! Как сейчас говрят, даже рядом не стоял.
Автор: mozers
Дата сообщения: 03.09.2006 15:54
Ладно, не будем спорить о том какой из редакторов лучше
Просто я "кинул идею". Если кому то она показалась интересной то он ее реализует. Нет - будем мучиться дальше
Вот, сейчас, причесывая список команд обнаружил ужасную несправедливость
(почему это раньше никогда в голову не приходило?):
На любой пункт меню можно с легкостью повесить свой шорткат (user.shortcuts=...)
Однако есть солидный список шорткатов редактора, охватывающие далеко не все доступные команды, которые и переназназначить то нельзя и дополнить довольно проблематично...
Ведь несправедливо же!
Ты сам сказал, что судя по коду, в user.shortcuts=... можно использовать не только IDM_ но и SCI_ команды. И это - логично и правильно. Так почему ни одна из SCI_ команд из user.shortcuts=... не работает???
Может Нейл просто лопухнулся маленько, а никто и не заметил?
Автор: Moon_aka_Sun
Дата сообщения: 03.09.2006 21:19
mozers

Цитата:
На любой пункт меню можно с легкостью повесить свой шорткат (user.shortcuts=...)

По-моему, именно для этого user.shortcuts и делался. Кроме того, для посылки SCI_ команд Синтилле. Если оно теперь не работает, значит, где-то что-то сломалось. В коде проверка и ветвление есть (и память моя, значит, ещё помнит ).

А для простой коррекции меню и шорткатов на нём достаточно любого редактора ресурсов
Автор: gansA
Дата сообщения: 05.09.2006 11:42
Только сейчас заметил, что Scite стал хранить SciTE.recent и SciTE.ses в директории пользователя, ох как мне это не нравится , после использования на машине остается следы, в случае работы с флешки.

Пришлось опять изобретать константу.
Автор: mozers
Дата сообщения: 05.09.2006 14:38
gansA
Угу. Сделать это новшество опциональным - верное решение. Поделись кодом?
Автор: g0re
Дата сообщения: 05.09.2006 21:57
помогите ламеру
ни как не получается прикрутить перловую подсветку для файлов HTA
для скриптов в тегах

Код:
<script language="PerlScript">
...
</script>
Автор: mozers
Дата сообщения: 06.09.2006 08:12
g0re
Во-первых: не надо себя принижать
Во-вторых: Можно, конечно, помучиться и как то заставить лексер html посвечивать отдельные перловые слова.
Можно... Но зачем??? Ради того, чтобы одновременно видеть подсвеченным и html и perl код? Все равно или тот или другой не будут подсвечены путью.
Да и всякие фичи обычно привязаны к конкретному лексеру.
SciTE в любой момент времени работает только с одним лексером.
Т.е. что я предлагаю:
Не мучайся, а просто когда редактируешь перл код в своем файле, переключи лексер на Perl, а когда надумаешь тут же редактировать html - нажми F12 (если шорткат сам не переназначил) и все будет в шоколаде


Добавлено:
Не помню пробегала тут или нет ссылочка на еще одну сборку:
http://www.fw-web.de/download/scite-ide.zip [4089KB]
Немецкий товарищ Frank Wunderlich не равнодушен к Delphi (много настроек для этого языка).
В дистрибутив включены несколько его и не его утилит и даже HEX-редактор.
Скрипты кой какие имеются, api-файлы...
В общем, можно наковырять кой чего и для себя

ALL
Как заставить SciTE редактировать read-only файлы?
(точнее - сохранять в них отредактированный текст)
Автор: g0re
Дата сообщения: 06.09.2006 12:14
mozers
а как же подсветка jscript, vbscript, php, phyton и т.п. в html?
или лексер под это заточен?

PS: если переключаться на подсветку perl синтаксиса, то все остальное становится ужасно страшных цветов и жутко напрягает
неужели все таки ни как нельзя настросить?
Автор: mozers
Дата сообщения: 06.09.2006 14:16

Цитата:
а как же подсветка jscript, vbscript, php, phyton и т.п. в html?
Да возьмем тот же JS. Погляди внимательно разницу как он подсвечен при выборе лексера HTML и лексера JavaScript (точнее тут - cpp lexer) - не совсем одно и то же, правда?
Опять же ни автодополнение ни всплывающие подсказки не работают...

Цитата:
или лексер под это заточен?
Думаю, что - да, поскольку многое из синтаксиса JS он вполне понимает. Насколько хорошо он понимает perl - х.з.

Цитата:
если переключаться на подсветку perl синтаксиса, то все остальное становится ужасно страшных цветов и жутко напрягает
неужели все таки ни как нельзя настросить?
Кто сказал что "нельзя"? Можно. Только мучится долго и все равно такого сервиса какой тебе предоставляет специализированный лексер, html lexer все равно обеспечить не cможет.
Может проще в perl.properties задать какие нить серенькие и не "ужасные" цвета для html ?

Насчет того, что SciTE не может одновременно работать с двумя или более лексерами я нигде не прочитал. Просто опыт подсказывает...
Старшие товарищи - отзовитесь -
Я ПРАВ ???
Автор: jona
Дата сообщения: 12.09.2006 10:56
Подскажите, пожалуйста, как добавить в меню File->Encoding пункт cp1251, если в системе (Ubuntu-Linux) установлена локаль utf-8?

В SciTEUser.propertiers у меня прописано
code.page=65001
LC_CTYPE=en_US.UTF-8
Для отображения кирилицы.

Спасибо
Автор: Moon_aka_Sun
Дата сообщения: 13.09.2006 01:01
Если вдруг кому-то интересно, я расшарил свой билд:

http://moon.aka.sun.googlepages.com/SciTE.htm

Если вкратце, то оставлено только то, чем я пользуюсь и так, как мне удобно.

SciTE построен в VC++ 6.0.

На lua написаны функции back_up, calculate_total, capitalize, current_word, exec_lua, exec_python_and_replace, fill_rectangle, find_next_function, find_prev_function, mark_text_*, move_word_left, move_word_right, pop_mark, push_mark, replace_version, sort_text, tabs_to_spaces, toggle_bool. Enjoy!

Моношрифт (Ctrl+F11) - по умолчанию.

Клавишные комбинации - не всегда стандартные (см. kmap.txt)

Немного "оптимизированы" пункты меню.

В диалоге Replace клавиша по умолчанию - Replace All. Если выделен блок, то Replace in Selection. И то и другое можно вкл./выкл. в настройках.

Если во множественном поиске (Find in Files) задать пустую строку Files, то ищет в текущем файле.

Файловая история - 20 файлов. Изменён показ файлов в меню (а также в заголовке программы и в меню Buffers): file --- directory.

Про сепараторы в меню Tools и клавишные комбинации без меню уже писалось. Максимальное число дополнительных команд - 80 в Tools и 100 без названий (что, конечно, излишне).

Api файлы - c.api, lua5.api, python.api, scite.api. Над ними можно бы ещё поработать.

Многострочные calltips в api (от М.Форала).

Возможно игнорирование USERPROFILE при поиске конфигурационных файлов.

Никаких макро; никакого интерфейса DirectorExtension.

Оставлены только лексеры LexAsm, LexBash, LexConf, LexCPP, LexCSS, LexForth, LexFortran, LexHTML, LexInno, LexLisp, LexLua, LexNsis, LexOthers, LexPascal, LexPerl, LexPython, LexRuby, LexSQL, LexTCL, LexVB, LexYAML.

Естественно, бета. Замечания, предложения и дополнения приветствуются.
Автор: mirk
Дата сообщения: 13.09.2006 08:32
Moon_aka_Sun
Клевый билд
Может быть тогда его выложить на сайт?

По идее можно вести несколько сборок, думаю, что в этом ничего страшного не будет.
Автор: Moon_aka_Sun
Дата сообщения: 13.09.2006 10:02
mirk

Цитата:
Может быть тогда его выложить на сайт?
Ох и запутано там. Но справился.
Автор: mirk
Дата сообщения: 13.09.2006 10:14
Moon_aka_Sun

Цитата:
На lua написаны функции back_up, calculate_total, capitalize, current_word, exec_lua, exec_python_and_replace, fill_rectangle, find_next_function, find_prev_function, mark_text_*, move_word_left, move_word_right, pop_mark, push_mark, replace_version, sort_text, tabs_to_spaces, toggle_bool. Enjoy!

Cлушай, а можно на русский перевести? Например: push_mark, toggle_bool и др.


Цитата:
Ох и запутано там. Но справился.

Сенкс...
Автор: Moon_aka_Sun
Дата сообщения: 13.09.2006 10:27
mirk

Цитата:
Cлушай, а можно на русский перевести?

Да было б что переводить. Push_mark и pop_mark реализуют стек "закладок", как было когда-то в Brief'e и МЕ чуть ли не 15 лет назад. Пуш запоминает текущую позицию на верхушке стека закладок, а поп, соответственно, снимает и переходит на запомненное место. Сделано в основном для просмотра т.к. используются позиции, не привязанные к содержимому файла, т.е. при редактировании файла всё "полезет". Основное назначение сейчас - запомнить, где редактировал, сходить в другое место посмотреть или скопировать и вернуться к редактированию.

Toggle bool - с сайта Lua, по-моему, немного модифицированное. Если курсор стоит на true или false (в различных написаниях), то просто данное булевское значение меняется на противоположное. Перебить, конечно, тоже просто, но использование специальной функции экономит полсекунды и поднимает самооценку в собственных глазах.
Автор: mirk
Дата сообщения: 13.09.2006 23:27

Цитата:
функции экономит полсекунды и поднимает самооценку в собственных глазах.

ггг

В общем криво я написал, я хотел что-бы ты перевел названия скриптов на сайте, так как мне понятна большая часть, тебе все, комуто еще какая то часть, а вот многим пользователям, особенно начинающим, непонятно ничего
Автор: Moon_aka_Sun
Дата сообщения: 14.09.2006 05:30
ОК, основные функции в SciTEStartup.lua:

back_up - сохраняет текущий файл в каталоге c:\temp\backup с именем имя-файла.####.bak, где #### - некий более-менее уникальный буквенно-цифровой код (увеличивается на единицу каждые 5 секунд, соотв. период - больше 3 месяцев), полезно навесить на OnOpen или OnBeforeSave.

calculate_total - подсчитывает количество, сумму и среднее для всех чисел, найденных в блоке.

capitalize - Даже Не Знаю, Что Тут Объяснять.

current_word - просто выделяет текущее слово.

double_backslashes - удваивает обратные косые.

exec_lua - выполняет выделенный фрагмент как операторы Lua. Если фрагмент начинается с '=', то вычисляет его как выражение и выводит результат через print.

exec_python_and_replace - выполняет блок текста как операторы Python. Заменяет текст результатом выполнения. Если фрагмент содержит '#a', то добавляет результаты в конец блока.

fill_rectangle - навеяно UltraEdit'ом, хоть и не так удобно. Заполняет вертикальный блок заданным текстом или последовательной нумерацией. При вызове позволяет задать один или два параметра - при одном параметре вставляет заданную строку в каждую строку в вертикальном блоке, при двух параметрах - первый должен быть начальным числом, а второй - шагом. Блок заполняется последовательностью чисел с заданным инкрементом.

find_next_function, find_prev_function - перемещаются к следующей/предыдущей функции. Работает для Lua, JavaScript, Python, Ruby. (В других языках можно перемещаться по параграфам - Ctrl+PgUp/PgDn или (в С/С++) по #... конструкциям - Ctrl+K/Ctrl+Shift+K. Ну и до кучи - перемещение к соответствующей скобке - Ctrl+E, перемещение по частям составных слов - Ctrl+[, Ctrl+] (с Shift - выделение))

mark_text_* - позволяет отметить выделенный текст одной из трёх маркировок. mark_text_0 отменяет маркировку выделенного текста. Цвета (жёлтый, синий, красный) заданы в lua файле. Для выбора вида маркировки надо вызвать функцию при невыделенном блоке.

move_word_left, move_word_right - меняет текущее слово и предыдущее/следующее слово местами. Ну и перемещается, соответственно, влево/вправо. (Повешены на Alt+Left/Right. Вертикальный аналог - Alt+Up/Down - переместить текущую строку вверх/вниз.)

pop_mark, push_mark - реализуют стек "закладок". Пуш запоминает текущую позицию на верхушке стека закладок, а поп, соответственно, снимает и переходит на запомненное место.

replace_version - ищет в текущем файле управляющую последовательность $@{...} и меняет в соответствии с тамошними командами дату/время в нужных местах в тексте, или увеличивает число на единицу (например, номер версии). Подробнее - в комментариях в самой функции.

sort_text - сортирует текст в блоке по возрастанию/убыванию, с учётом/без учёта регистра букв (английских, русские заглавные всегда идут раньше строчных).

tabs_to_spaces - преобразует символы табуляции в пробелы в соответствии с текущими установками (Options->Indentation Settings, Ctrl+F12).

toggle_bool - Если курсор стоит на true или false (в различных написаниях), то просто данное булевское значение меняется на противоположное.
Автор: mozers
Дата сообщения: 14.09.2006 10:39
Moon_aka_Sun
Цитата:
Если вдруг кому-то интересно, я расшарил свой билд

Конечно интересно
Много че хотелось бы перетащить в сборку Ru-Board (после соответствующей правки). Ты не против? Правда уже сейчас сборка очень сильно отличается от той, что лежит на scite.ruteam.ru - много доработок и принципиально новых решений.
Выложить щас, увы, не могу - очень много недоделок...
К тому же обнаружил баг, возникающий при компиляции в Borland C++ Compiler 5.5
Все хорошо, до той поры пока не начинаешь пользовать хитрые скрипты, типа этого - (просто вылетает, гад, с сообщением об ошибке).
И дело - не в тех изменениях, которые мы вносим в код, а именно - в компиляторе. Имхо - надо "спеца" чтоб подсказал правильные опции... Или компилить в чем нить другом...

Добавлено:
Мужики, вы че товарищу jona не поможете?
Я ведь под Виндами сижу - могу и наплести...
jona
Цитата:
как добавить в меню File->Encoding пункт cp1251
Никак. Это меню не настраивается. Только если перекомпилять...
Русские буквы нормально отображаются при пункте этого меню "8 Bit"

Цитата:
В SciTEUser.propertiers у меня прописано
code.page=65001
LC_CTYPE=en_US.UTF-8
Для отображения кирилицы.
Это - настройки для уникода в GTK+ и судя по записям - не для русской кодовой страницы.
А вообще - почитай...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

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


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