сделать стартовой  |  добавить в избранное

   SciTE - редактор кода для программистов

Архив SciTE-форума


Автор: BioInfo, Отправлено:13:42 30-05-2007
alrusdi81

Цитата:
Моя попытка написать что-нибудь по LUA.
Стоит продолжать?


Ну естественно стоит! Что за вопрос?
Скрипты главное пиши, для тренеровки хотябы - будем расширять функционал SciTE.
Какие скрипты нужны я написал выше.
Вобщем: ждем, любим, ценим и т.д. и т.п.

Добавлено:
Смастерил вот такой тулбарчик (а точнее иконки):

Всего 30 команд.
Набор для следующих команд (по порядку в исходном битмапе):
Создать, Открыть, Сохранить, Печать, Вырезать, Копировать, Вставить,
Удалить, Отменить, Повторить, Найти, Заменить, Закрыть, проиграть
скрипт, остановить скрипт, записать скрипт, Выполнить, Собрать,
Компилировать, Отобразить непечатные символы (Вид->Пробелы),
Сохранить как, Кодировка Х, Только для чтения, Выполнить команду в
консоли MS-DOS, Полноэкранный режим, Справка, Настройка1, Настройка2,
Настройка3, Настройка4, Перенос по словам.
Нумерация от 0 до 29
Ну и ссылка на сам buttons.bmp вот.
Как говорится, выставляю на суд благородной общественности.
З.Ы. Иконки "позаимствованы" у gnome, часть я переработал, некоторые вообще сделал сам, но на основе этой библиотеки.
Автор: azzzis, Отправлено:09:30 31-05-2007
BioInfo

Цитата:
Смастерил вот такой тулбарчик


Здоровские кнопочки! Только вот как подключить их?

И еще... никак не могу разобраться с кодировками... Если ставлю по умолчанию utf-8, а я работаю почти только с ней, не могу редактировать файлы в cp1251, то есть когда открываешь файл в этой кодировке, он по умолчанию открывается как Code Page Property и переделать его в cp1251 никак не могу.

Хорошо бы написать сишный модуль, который взял на себя полностью работу с кодировками, например как это работает в komodo.
Автор: AltTab, Отправлено:11:06 31-05-2007
BioInfo

Цитата:
Ну и ссылка на сам buttons.bmp вот.


Красивейшая тема! Вот только ссылка ведет на старый тулбар Ну тот, который со старыми иконками

Автор: BioInfo, Отправлено:11:50 31-05-2007
azzzis

Цитата:
Здоровские кнопочки! Только вот как подключить их?

Пока только пересобрать SciTE
Нужно будет еще заменить в коде:
SciTEWinBar.cxx строка 900
Код:
TBADDBITMAP addbmp = { hInstance, IDR_BUTTONS };
::SendMessage(hwndToolBar, TB_ADDBITMAP, 30, (LPARAM)&addbmp);
Данный код внедрен в форум с помощью скрипта vladvro

Цитата:
Хорошо бы написать сишный модуль, который взял на себя полностью работу с кодировками, например как это работает в komodo

vladvro уже отвечал на этот счет, что хорошо бы кто-нить выслал ему этот сишный модуль для адаптации или хотябы сам алгоритм.
А файлы в юникоде SciTE вроде нормально открывает, распознает...

Цитата:
Красивейшая тема! Вот только ссылка ведет на старый тулбар

Вах!!! Действительно ложанулся, сейчас все поправил.
Автор: vladvro, Отправлено:13:36 31-05-2007
alrusdi81
Цитата:
Моя попытка написать что-нибудь по LUA. Там пока индексного нет - просто разрозненные странички. Стоит продолжать?

Замечательно , продолжать стоит.
небольшие замечания:
1. по helloworld.html
Код:
editor:SelectAll() [no]-- выбираем весь текст в редакторе[/no]
ourEditorContentVariable=editor:GetSelText() [no]-- копируем выбранный текст в переменную [/no]
dostring(ourEditorContentVariable) [no]-- выполняем строку как код LUA[/no]
editor:ReplaceSel(ourEditorContentVariable) [no]-- очищаем выделение текста в редакторе[/no]
сводится к
Код:
dostring(editor:GetText()) [no]-- выполняем текст из редактора как код LUA[/no]

таким образом можно обойтись без создания файла, и вместо
Код:
command.254.*=dofile $(SciteDefaultHome)\tools\doAsLUA.lua
написать
Код:
command.254.*=dostring dostring(editor:GetText())

вносить свои настройки правильнее в файл пользовательских настроек редактора (SciTEUser.properties), и кроме того, если файл настроек правился прямо в SciTE, то для добавления пункта в меню перезапускать редактор не требуется.

2. по syntax.html
описание синтаксиса функций слишком краткое,
необходимо сказать про возможность вернуть несколько значений:
Код:
function example (a, b)
return true, [no]"comment"[/no], a, b
end

про работу с переменным количеством входных параметров
Код:
function example (...)

более явно объяснить возможность задания "указателя" на функцию
Код:
[no]-- задание[/no]
function example ()
[no]-- тело функции[/no]
end
[no]-- или так[/no]
example = function ()
[no]-- тело функции[/no]
end
[no]-- переприсваивание[/no]
function_reference = example
[no]-- вызов[/no]
function_reference ()

Автор: mozers, Отправлено:14:31 31-05-2007
alrusdi81
Какое прелестное начало ПОЗДРАВЛЯЮ
Конечно, такое дело обязательно стоит продолжить!
Было бы просто великолепно эти странички перенести на scite.ruteam.ru
Зарегистрироваться там можно совершенно свободно и размещай ко всеобщей радости любые полезные материалы, только в форуме не забывай оставлять ссылку на них (интересно же).
Мне кажется что и комментарии к отдельным статьям (особенно, такие существенные как сделал vladvro) там смотрелись бы более логично...
Прочитал человек статью, ознакомился тут же с комментариями, и стал намного умнее ))

Автор: azzzis, Отправлено:16:10 31-05-2007
BioInfo

Цитата:
А файлы в юникоде SciTE вроде нормально открывает, распознает...

Открывает нормально файлы в UTF только с заголовком BOM, для остальных нужно выбирать кодировку (это если в global.properties стоит по умолчанию cp1251), а если по умолчанию UTF, то файлы в кодировке cp1251 как открыть и отредактировать?
Автор: BioInfo, Отправлено:20:48 31-05-2007
azzzis
А зачем нужно было вообще кодировку по умолчанию такую ставить?
Для новых файлов?
Может быть тогда кто-нить скрипт напишет, чтобы новые файлы запускал в кодировке UTF... Думаю такое возможно.
Автор: azzzis, Отправлено:01:28 01-06-2007
BioInfo

Цитата:
А зачем нужно было вообще кодировку по умолчанию такую ставить?


Я работаю в основном с юникодом и если не поставить по умолчанию utf, тогда для каждого файлика после открытия (или перезапуска скайта) придется выбирать в меню кодировку UTF-8, что очень утомительно. Было бы здорово если бы при открытии файла была бы возможность выбирать кодировку, потом после открытия менять для каждого файла в отдельности и наконец, чтобы кодировка для файла сохранялась в сессию, чтобы открыв по новой скайт все файлы были в нужных нам кодировках.
Вот это было бы идеально! А самое главное нужно и важно для многих веб-програмеров и не только!

Добавлено:
Только не предлагайте мне сохранять файлы в UTF с заголовком BOM, некоторые броузеры (IE к примеру) не понимают заголовка, IE например впадает в quirks mode.
Автор: vladvro, Отправлено:08:53 01-06-2007
azzzis
есть два простых варианта решения для веб-файлов
1. обычно в таких файлах в тексте присутствует задание кодировки:
Content-Type: text/html; charset=UTF-8
в этом случае прекрасно работает вот такой скрипт:
html_in_utf8.lua
Код:
[no]--[[[/no]
[no]Автоматическое переключение кодировки в UTF-8 для файлов содержащих:[/no]
[no] Content-Type: text/html; charset=UTF-8[/no]
[no]Автор: VladVRO[/no]

[no]Подключение:[/no]
[no]В файл SciTEStartup.lua добавить строку:[/no]
[no] require ("html_in_utf8.lua")[/no]
[no]]][/no]
[no]--++++++++++++++++++++++++++++++++++++++++++++++++++++++++[/no]

local old_OnOpen = OnOpen
function OnOpen (filename)
local result
if old_OnOpen then result = old_OnOpen(filename) end

if string.find(props[[no]"file.patterns.html"[/no]], props[[no]"FileExt"[/no]]) ~= nil then
if editor:findtext([no]"Content-Type: text/html; charset=UTF-8"[/no], SCFIND_POSIX, 0) then
scite.MenuCommand([no]"IDM_ENCODING_UCOOKIE"[/no])
end
end

return result
end
Данный код внедрен в форум с помощью скрипта vladvro

2. если у тебя файлы не содержат такого заголовка в тексте, то можно добавить такой скрипт:
Код:
local old_OnOpen = OnOpen
function OnOpen (filename)
local result
if old_OnOpen then result = old_OnOpen(filename) end

if string.find(props[[no]"file.patterns.html"[/no]], props[[no]"FileExt"[/no]]) ~= nil then
[no]-- переключаем редактор в режим UTF-8[/no]
scite.MenuCommand([no]"IDM_ENCODING_UCOOKIE"[/no])
end

return result
end
Данный код внедрен в форум с помощью скрипта vladvro
с ним, все веб-файлы всегда будут открываться в UTF-8 и будет возможность переключить в любой другой режим.
Автор: azzzis, Отправлено:09:14 01-06-2007
vladvro
Вот спасибо! Весьма элегантное решение. Добавил себе обе функции Хотя для меня вторая гораздо пригоднее!

Ждем модуля на си не хватает кодировки koi8... иногда приходится иметь с ней дело.
Автор: Serg2308, Отправлено:09:41 01-06-2007
Доброго времени суток...
Очень хочу эту прогу, но при попытке зайти на рускоязычный сайт у меня каспер ругается что там трояны. Это сайт кто то хакнул и насувал туда гадости всякой или это нормальные скрипты просто у меня каспер паникер???
Автор: ALeXkRU, Отправлено:10:03 01-06-2007
Serg2308
не обращай внимания: это каспер перестраховывается... вот здесь почитай

Добавлено:
mozers
похоже, пора это в шапку
Автор: alrusdi81, Отправлено:10:39 01-06-2007
Спасибо за поддержку по поводу статей о LUA...
Замечания учту и на сайте уже зарегистрировался.
[more=Оправдания]
Идея была такова - вначале давать простейший код, который новичку будет интересно оптимизировать (я и сам новичок)), а затем развивать его, чтобы под конец книги у читателя был не только багаж знаний по LUA и SciTE, но также и готовый пакет расширений, который можно использовать в реальных задачах (по регулярным выражениям, например, фильтрация HTML тегов, удаление пустых строк). Это навеяно книгами по программированию, которые я сам читал, там мне понравилось именно то, что было не только полезно (как справочник) но и интересно читать.

Кстати... SciTE 1.74 не переедет на LUA 5.1?
[/more]

Вчера собрал SciTE на Линукс (RHEL, KDE) и... Ну то что русская сборка не компилируется, то есть не кроссплатформенная это ладно, но даже подсветки синтаксиса не получается добиться... Интерфейс русифицировал, UTF-8 как выходную и основную кодировки редактора выставил, а вот что думать насчет подсветки синтаксиса даже не знаю... Попробую еще под gnome... Есть идеи куда копать?
Автор: Serg2308, Отправлено:10:50 01-06-2007

Цитата:
Serg2308
не обращай внимания: это каспер перестраховывается... вот здесь почитай

Пасиб. А то мне очень понравилась программа, но в виду того что только что в локалке боролись со всякой пакостью при чем, юзверы же ее и натаскали из инета и откуда попало. Так что лучше лишний раз перестраховаться.
На счет самой программы...
Скорее всего никто тут не знает такой бухгалтерской программы как Sbis... Вот я программер именно в этой проге. Разработчики достаточно пассивно относяться к удобству внутреннего редактора функций, поэтому хочеться чего то стороннего с подсветкой, со сворачиванием блоков и многим другим... немного поковырял саму прогу не все еще понял как создать свою подсветку со своими возможностями но на множестве примеров которыми изобилует данная тема понимаю что в SciTe можно настроить ОЧЕНЬ многое...

Если у кого то есть ссылочка на подробную русскую доку по созданию собственной подсветки был бы крайне признателен...
Автор: BioInfo, Отправлено:12:26 01-06-2007
alrusdi81

Цитата:
Вчера собрал SciTE на Линукс (RHEL, KDE) и... Ну то что русская сборка не компилируется

Здесь похоже никто не озабочивался этим фактом. Беда на самом деле в том что в основном тут все кодят (включая меня) под Windows, добавляются новые функции и прочее... А вот так как сам SciTE кроссплатформенный, то заголовки стоят, а реализации их (новых функций и доработок) на других платформах нет, тут единственный выход дописать под Линукс и ГТК реализации или пользоваться авторским SciTE, а не русской сборкой.
Автор: vladvro, Отправлено:14:03 01-06-2007
alrusdi81
Цитата:
Кстати... SciTE 1.74 не переедет на LUA 5.1?

мне кажется, что переход маловероятен.

Цитата:
но даже подсветки синтаксиса не получается добиться...

я так понимаю, что речь идет про оригинальный SciTE 1.73? возможно проблема все же с конфигами... могу предложить простенький скрипт для визуализации результата работы лексера (текстовое отображение разметки) [more] текстовое отображение разметки сделанной лексером
Код:
function SnowLexerMarkers ()
local new = [no]""[/no]
if editor.SelectionStart == editor.SelectionEnd then
editor:SelectAll()
end
local text = editor:GetSelText()..[no]"\n"[/no]
local pos = editor.SelectionStart
for str in string.gfind(text, [no]"([^\n]*)\n"[/no]) do
[no]-- get next line[/no]
local newstr = [no]""[/no]
local fin = [no]""[/no]
local len = string.len(str)
if string.sub(str,len,len) == [no]"\r"[/no] then
len = len - 1
str = string.sub(str,1,len)
fin = [no]"\r"[/no]
end
local style = scite.SendEditor(SCI_GETSTYLEAT, pos)
local i0,i = 1,1
while i <= len do
local nstyle
repeat
pos = pos + 1
i = i + 1
nstyle = scite.SendEditor(SCI_GETSTYLEAT, pos)
until nstyle ~= style or i > len
local txt = [no]"["[/no]..style..[no]"]"[/no]..string.sub(str,i0,i-1)
i0 = i
newstr = newstr..txt
style = nstyle
end
[no]-- append line to formated text[/no]
if new ~= [no]""[/no] then new = new..[no]"\n"[/no] end
new = new..newstr..fin
pos = pos + string.len(fin) + 1
end
editor:ReplaceSel(new)
end
Данный код внедрен в форум с помощью скрипта vladvro
[/more] для проверки - отрабатывает лексер или нет.

Serg2308
Цитата:
немного поковырял саму прогу не все еще понял как создать свою подсветку со своими возможностями но на множестве примеров которыми изобилует данная тема понимаю что в SciTe можно настроить ОЧЕНЬ многое...
Если у кого то есть ссылочка на подробную русскую доку по созданию собственной подсветки был бы крайне признателен...

на сколько я знаю, подобной доки нет вообще, ни на русском, ни на английском или еще каком языке.
но ты можешь задать конкретные вопросы здесь на форуме и думаю, что получишь достаточно полные ответы.
реализовать поддержку еще одного языка в SciTE можно, но возможно для этого потребуется дописывать код самого редактора (не все возможно реализовать через файлы настроек).
Автор: Serg2308, Отправлено:14:49 01-06-2007

Цитата:
реализовать поддержку еще одного языка в SciTE можно, но возможно для этого потребуется дописывать код самого редактора (не все возможно реализовать через файлы настроек).

В принципе мне не нужно никакого компилятора или интеграции с самой прогой. Мне вполне хватило бы настроить чтоб он сворачивал блоки вида:
{
{
...
}
}
И Подсвечивал список стандартных команд вида:
Отладить();
Спросить(пПеремен);
...
Но честно не смотря на то что в самом Сбисе я могу практически что угодно, кроме него я мало что знаю поэтому если для моих целей потребуеться перекомпилировать ядро придеться привлекать более разносторонне развитых друзей...
Автор: vladvro, Отправлено:15:35 01-06-2007
Serg2308
первое что тебе надо сделать - это найти из предоставляемых редактором подсветок синтаксиса, наиболее подходящую.
судя по по тому, что у тебя для задания блоков используются фигурные скобки, тебе может подойти лексер для C/C++.
попробуй его (Подсветка->C/C++)
если синтаксис и блоки подсвечиваются правильно и не хватает только подсветки ключевых слов, то тебе повезло и сконфигурить редактор не составит особых проблем. списки ключевых слов задаются через файлы настроек, в частности для C/C++ они заданны в файле cpp_.properties.
Автор: Serg2308, Отправлено:15:54 01-06-2007
vladvro
угу что то более менее похоже, но... Либо я хочу все и сразу не разобравшись даже либо он русские слова в качестве выражений не воспринимает...

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



1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17 / 18 / 19 / 20 / 21 / 22 / 23 / 24 / 25 / 26 / 27 / 28 / 29 / 30 / 31 / 32 / 33 / 34 / 35 / 36 / 37 / 38 / 39 / 40 / 41 / 42 / 43 / 44 / 45 / 46 / 47 / 48 / 49 / 50 / 51 / 52 / 53 / 54 / 55 / 56 / 57 / 58 / 59 / 60 / 61 / 62 / 63 / 64 / 65 / 66 / 67 / 68 / 69 / 70 / 71 / 72 / 73 / 74 / 75 / 76 / 77 / 78 / 79 / 80 / 81 / 82 / 83 / 84 / 85 / 86 / 87 / 88 / 89 / 90 / 91 / 92 / 93 / 94 / 95 / 96 / 97 / 98 / 99 / 100 / 101 / 102 / 103 / 104 / 105 / 106 / 107 / 108 / 109 / 110 / 111 / 112 / 113 / 114 / 115 / 116 / 117 / 118 / 119 / 120 / 121 / 122 / 123 / 124 / 125 / 126 / 127 / 128 / 129 / 130 / 131 / 132 / 133 / 134 / 135 / 136 / 137 / 138 / 139 / 140 / 141 / 142 / 143 / 144 / 145 / 146 / 147 / 148 / 149 / 150 / 151 / 152 / 153 / 154 / 155 / 156 / 157 / 158 / 159 / 160 / 161 / 162 / 163 / 164 / 165 / 166 / 167 / 168 / 169 / 170 / 171 / 172 / 173 / 174 / 175 / 176 / 177 / 178 / 179 / 180 / 181 / 182 / 183 / 184 / 185 / 186 / 187 / 188 / 189 / 190 / 191 / 192 / 193 / 194 / 195 / 196 / 197 / 198 / 199 / 200 / 201 / 202 / 203 / 204 / 205 / 206 / 207 / 208 / 209 / 210 / 211 / 212 / 213 /
SciTE © 2004 - 2011