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

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

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


Автор: VedunO, Отправлено:22:16 07-11-2005
dB6

Прости я имел ввиду, можно ли вставить свой пункт (т.е. ссылку на скрипт...) ???
Автор: dB6, Отправлено:00:23 08-11-2005
VedunO
Насколько следует из документации (с погрешностью на мое знание английского), нельзя добавить туда ссылку на скрипт. А можно только определенные команды самого SciTE:

Цитата:
Named IDs and numeric IDs below 2000 are SciTE menu commands which can be found in from scite/src/SciTE.h


Автор: mozers, Отправлено:12:11 08-11-2005
VedunO

Цитата:
можно ли вставить свой пункт (т.е. ссылку на скрипт...) ???

Можно исхитрится так:

Код:
user.context.menu=\
||\
Мой пункт|IDM_TOOLS|

Так запустится 1й пользовательский пункт меню Tools. Ну а в качестве этого первого пункта может быть и твой скрипт
Наверное, существует какой то способ запустить любой пункт меню, но только мои эксперименты не увенчались успехом
Кто знает - подскажите!

ALL
Еще в списке внутренних команд SciTE есть такая как IDM_MACROPLAY
Чо это за макросы? Как с ними работать?
Автор: mozers, Отправлено:23:38 08-11-2005
Все. Допетрил
Чтобы вставить любой пункт из меню Tools (Сервис) в ваше контекстное меню
надо прибавить номер этого пункта к числу 1100
И все!
Непонятно? Объясняю на примере:
В меню Tools у меня имеется такая команда:
Код:
command.name.22.*=ASCII Table
Вставляю ее в контекстное меню:
1100+22=1122
Код:
user.context.menu=\
||\
ASCII Table|1122|
Эх, какие просторы для творчества раскрываются...

Автор: mozers, Отправлено:15:36 09-11-2005
Ау, люди!... Неужель никто ответы на мои вопросы не знает?

При использовании внешних команд, встраиваемых в меню Tools в основном используется следующая технология:
1. Текущий файл сохраняется
2. С помощью команды из меню Tools типа
Код:
command.9.*="$(SciteDefaultHome)\tools\WordCheck.vbs" "$(FilePath)"
command.subsystem.9.*=2
запукается внешний скрипт обрабатывающий весь файл и сохраняющий его уже измененным.
3. Если в .properties стоит load.on.activate=1 то SciTE чует что текущий файл изменен внешней программой и перезагружает его либо молча, либо с выдачей запроса (are.you.sure.on.reload=1).

Во внешний скрипт в качестве аргумента можно передать не только имя файла, но и просто выделенный текст $(CurrentSelection). Но только возникает архиважная задача - Как после обработки этого текста скриптом получить его взад ??? (т.е. что бы команда command.replace.selection все таки работала)
Без проблем результат выполнения возвращается только в случае использования LUA скриптов.
Но, увы, из LUA скрипта низзя подключить COM-объект и поиметь его свойства и методы...
А без этого все превращается в детскую забаву ((
Или я ошибаюсь ???

Автор: mozers, Отправлено:22:40 14-11-2005
Театр одного актера продолжает свою работу.
Файл HELP.JS
Код:
// -----------------------------------------------------------------------
// SciTE Help Context
// mozers™ icq#256106175
// -----------------------------------------------------------------------
// Вызывает справку по SciTE
// Подсвечивает все вхождения выделенного текста и позиционирует справку на первое найденное вхождение
// Для подключеня добавьте в свой файл .properties следующие строки:
// command.name.31.*=SciTE Help
// command.31.*=wscript "$(SciteDefaultHome)\tools\help.js" "$(SciteDefaultHome)\doc\SciTEDoc.html" "$(CurrentSelection)"
// command.subsystem.31.*=2
// command.shortcut.31.*=F1
// command.mode.31.*=savebefore:no
// -----------------------------------------------------------------------

var Args = WScript.Arguments;
var objIE = new ActiveXObject('InternetExplorer.Application');
objIE.MenuBar = 0;
objIE.ToolBar = 0;
objIE.StatusBar = 0;
objIE.Navigate (Args(0));
objIE.Visible = 1;

if (Args(1)) {
    var r=objIE.document.body.createTextRange();
    for(var i=0;r.findText(Args(1));i++){
        r.execCommand('BackColor','','yellow');
        r.execCommand('CreateBookmark','','bmk'+i);
        r.collapse(false);
    }
    if (i==0){
        WScript.Echo ('Текст не найден !');
    } else {
        objIE.document.location.href=objIE.document.location.href+'#bmk0' ;;
    }
}



Добавлено:
Вот еще кусок из моего SciTEStartup.lua:

Код:
-- ======================================================
-- Перевести в ВЕРХНИЙ (Ctrl+Shift+U) и нижний регистр (Ctrl+U)
-- (т.к. встроенная функция не понимает кириллицу)
-- За основу был взят скрипт, взятый на http://scite.ruteam.ru
function InvertCase(case)
local str = editor:GetSelText()
local res = ''
if str ~= nil then
for i = 1, string.len(str) do
local strS = string.sub(str,i,i)
local strB = string.byte(strS,1)
if case == 'L' and (strB > 191 and strB < 224) then --// [А-Я]
res = res..string.char(strB + 32)
elseif case == 'U' and (strB > 223 and strB <= 255) then --// [а-я]
res = res..string.char(strB - 32)
elseif case == 'L' and (strB > 64 and strB < 91) then --// [A-Z]
res = res..string.lower(strS)
elseif case == 'U' and (strB > 96 and strB < 123) then --// [a-z]
res = res..string.upper(strS)
else
res = res..strS
end
end
end
editor:ReplaceSel(res)
end

-- ======================================================
-- Функция для быстрого добавления команд в меню Tools
-- (Для тех, кому лень вручную прописывать 5 строк для каждой команды в .properties)
function ToolsCommand(idx,name,cmd,shortcut)
local which = '.'..idx..'.*'
props['command.name'..which] = name
props['command'..which] = cmd
props['command.subsystem'..which] = '3'
props['command.mode'..which] = 'savebefore:no'
props['command.shortcut'..which] = shortcut
end

-- а теперь добавляем нужные нам команды в меню Tools
ToolsCommand (11,'Перевести в ВЕРХНИЙ регистр','InvertCase U','Ctrl+Shift+U')
ToolsCommand (12,'Перевести в нижний регистр','InvertCase L','Ctrl+U')

ToolsCommand (38,'Увеличить шрифт','Zoom_In','Ctrl+KeypadPlus')
ToolsCommand (39,'Уменьшить шрифт','Zoom_Out','Ctrl+KeypadMinus')

-- ======================================================
-- Увы, но я не нашел другого способа, чтобы вызвать встроенные команды SciTE
-- поэтому приходится вызывать встроенные команды из LUA скрипта
-- Зачем это надо? Ну хотя бы затем, что этих команд просто нет в меню и поместить их туда можно, чтобы напомнить пользователю шорткаты для их вызова.
-- Кроме того, так можно задать другой шорткат для вызова команды или изменить ее поведение.
function Zoom_In()
editor:ZoomIn()
end
function Zoom_Out()
editor:ZoomOut()
end


Автор: dB6, Отправлено:22:01 15-11-2005
mozers

Цитата:
Театр одного актера продолжает свою работу.

Юмор - это хорошо.. Но все-таки ты - молодец!

Цитата:
-- Перевести в ВЕРХНИЙ (Ctrl+Shift+U) и нижний регистр (Ctrl+U)
-- (т.к. встроенная функция не понимает кириллицу)
-- За основу был взят скрипт, взятый на http://scite.ruteam.ru

Добавил бы еще возможность инвертирования регистра. Т.е. проверку на еще один case, типа I - Invert.


Добавлено:
Кстати, не работает инвертирование регистра для таких символов, как Ў, ў, І, і - а в белорусском языке без них никак. Можешь посмотреть, добавить?

Добавлено:

Цитата:
Файл HELP.JS
Код:
Код:
// -----------------------------------------------------------------------
// SciTE Help Context
// mozers™ icq#256106175
// -----------------------------------------------------------------------
// Вызывает справку по SciTE
// Подсвечивает все вхождения выделенного текста и позиционирует справку на первое найденное вхождение
// Для подключеня добавьте в свой файл .properties следующие строки:
// command.name.31.*=SciTE Help
// command.31.*=wscript "$(SciteDefaultHome)\tools\help.js" "$(SciteDefaultHome)\doc\SciTEDoc.html" "$(CurrentSelection)"
// command.subsystem.31.*=2
// command.shortcut.31.*=F1
// command.mode.31.*=savebefore:no
// -----------------------------------------------------------------------

А не лучше ли написать:

Код:

command.name.31.*.properties=SciTE Help
command.31.*.properties=wscript "$(SciteDefaultHome)\tools\help.js" "$(SciteDefaultHome)\doc\SciTEDoc.html" "$(CurrentSelection)"
command.subsystem.31.*.properties=2
command.shortcut.31.*.properties=F1
command.mode.31.*.properties=savebefore:no

Чтобы привязка была именно к файлам .properties
Автор: mozers, Отправлено:23:47 15-11-2005
dB6

Цитата:
Добавил бы еще возможность инвертирования регистра
А оно кому то действительно надо? (Я почему и переделал, что меня это инвертирование всех символов подряд бесило...)
Цитата:
Ў, ў, І, і - а в белорусском языке без них никак. Можешь посмотреть, добавить?
Можно, конечно. Только там 1 надо прибавлять, а не 32... (Не так красиво код будет смотреться

Цитата:
Чтобы привязка была именно к файлам .properties
Согласен. А по большому счету, можно задать patterns, например так:
Код:
SciHELP=*.properties;*.lua;*.iface
и привязать команду к нему
Код:
command.name.31.$(SciHELP)=SciTE Help
command.31.$(SciHELP)= ... ну и т.д...
Интересная фича. Даже пункт этот из меню исчезает при открытии файлов с расширениями, отличными от patterns.
Чем не способ создавать индивидуальное меню для заданных типов файлов
Жаль, что только Tools... Вот все бы целиком...

Кстати воспользовался твоей подсказкой и добавил в SciTEGlobal.properties (у меня там все настройки) несколько команд:
Код:
import [International]
import [Print]
import [Export]
import [StatusBar]
import [Tools]
import [ContextMenu]
import [Shortcuts]
import [Styles]
import [Help]
#import [Warnings]

Т.е. вынес часть настроек в отдельные файлы. Ну ОЧЕНЬ удобно (скобки [] - просто чтоб в меню лучше смотрелось)
Жаль что в команде import нельзя задать путь к файлу...
При доступности исходного кода и обилии программирующих на С мы терпим такую несправедливость

Автор: mozers, Отправлено:00:34 17-11-2005
Вот. Теперь понимает белорусские Ў І / ў і и может инвертировать:
Код:
-- Перевести в ВЕРХНИЙ (Ctrl+Shift+U) и нижний регистр (Ctrl+U)
-- (т.к. встроенная функция не понимает кириллицу)
-- За основу был взят скрипт, взятый на http://scite.ruteam.ru
function SetCase(case)
local str = editor:GetSelText()
local res = ''
if str ~= nil then
for i = 1, string.len(str) do
local strS = string.sub(str,i,i)
local strB = string.byte(strS,1)
if case ~= 'U' and (strB > 191 and strB < 224) then --// [А-Я]
res = res..string.char(strB + 32)
elseif case ~= 'U' and (strB == 161 or strB == 178) then -- // Ў І
res = res..string.char(strB + 1)
elseif case ~= 'L' and (strB > 223 and strB <= 255) then --// [а-я]
res = res..string.char(strB - 32)
elseif case ~= 'L' and (strB == 162 or strB == 179) then -- // ў і
res = res..string.char(strB - 1)
elseif case ~= 'U' and (strB > 64 and strB < 91) then --// [A-Z]
res = res..string.lower(strS)
elseif case ~= 'L' and (strB > 96 and strB < 123) then --// [a-z]
res = res..string.upper(strS)
else
res = res..strS
end
end
end
editor:ReplaceSel(res)
end
------------------------------------------------------------------
-- а теперь добавляем нужные нам команды в меню Tools
ToolsCommand (11,'Перевести в ВЕРХНИЙ регистр','SetCase U','Ctrl+Shift+U')
ToolsCommand (12,'Перевести в нижний регистр','SetCase L','Ctrl+U')
ToolsCommand (13,'Инвертировать регистр','SetCase I','Ctrl+I')


Добавлено:
Смастерил скрипт проверки орфографии выделенного фрагмента текста.
Кому надо?
Автор: dB6, Отправлено:01:19 17-11-2005
mozers
Молодец!!!! Спасибо!!!)
Только не удержусь еще от одного замечания - не работает, если работаем с текстом в кодировке DOS.
Автор: gansA, Отправлено:14:09 18-11-2005
mozers
Приветствую, если не сложно выложи

Цитата:
скрипт проверки орфографии выделенного фрагмента текста

оченно интересно .

Просто твои изыскания по поводу Com-объектов подтолкнули на поиск вариантов, вот что нашел http://www.tecgraf.puc-rio.br/~rcerq/luacom/, а вот траблы с использованием http://article.gmane.org/gmane.editors.scite.general/4409/match=luacom, после непродолжительных экспериментов получил тот же nil и забил ...

Автор: 8AleX8, Отправлено:15:13 18-11-2005
Прошу прощения за мелочные замечания. Но не стоит забывать что:
  • SciTE является кроссплатформенным редактором.
  • SciTE распространяется под лицензией GPL.

Следовательно:
  • Платформо-зависимые решения не применимы под другими OS.
  • При интеграции с другими програмными продуктами стоит отдать предпочтение открытым продуктам перед проприативными.

Автор: Roman_Stinger_Ilyin, Отправлено:15:35 18-11-2005
Подскажите пожалуйста как в .api файле для SciTE сделать перенос трок
есть функция
myfunc (args) описание_очень_большое

как сделать чтобы по Ctrl+Shift_Space показывалась подсказка многострочная?
Автор: mozers, Отправлено:16:02 18-11-2005
gansA
Поздавляю с первым постом! УРА! В нашем полку прибыло
А какие интересные ссылки Обязательно все сам перепроверю...
Имхо если люди выпускают уже 4-ю стабильную версию, то работать то она всяко должна...
Проверку орфографии выкладываю. Прошу сильно не бить. Измудрялся все реализовать стандартными средствами. Работать то, оно конечно работает, но уж больно средства то не слишком подходящие. Вот если получится теперь (с помощью твоих ссылок) подключить COM-объекты прямо из LUA скрипта, то все может быть гораздо лучше...
Фрагмент из SciTEStartup.lua
Код:
--Проверка орфографии выделенного фрагмента текста
function SpellCheck (path)
local txt = editor:GetSelText()
if string.len(txt) ~= 0 then
editor:Copy()
local exit_code = os.execute('wscript "'..path..'"')
if exit_code == 0 then
editor:Paste()
end
end
end

-- добавляем команду в меню Tools
-- (Функцию для автоматизированного добавления выкладывал уже
-- если не нравится, то можно и ручками дописать 5 строчек в .properties)
ToolsCommand (32,'Проверка орфографии','SpellCheck $(SciteDefaultHome)\\tools\\SpellCheck.vbs','')

Текст SpellCheck.vbs
Код:
' Проверка орфографии текста, находящегося в буфере обмена
' Исправленный текст возвращается в буфер
' --------------------------------------------------------------------------
Option Explicit
Dim objWord, exit_code

Set objWord = WScript.CreateObject("Word.Application")
objWord.WindowState = 2 'wdWindowStateMinimize
objWord.Visible = False
objWord.Documents.Add
objWord.Selection.Paste

If Not objWord.CheckSpelling(objWord.ActiveDocument.Range(0,objWord.Selection.End)) Then
    If objWord.Options.CheckGrammarWithSpelling = True Then
        objWord.ActiveDocument.CheckGrammar
    Else
        objWord.ActiveDocument.CheckSpelling
    End If
    objWord.ActiveDocument.Range(0,objWord.Selection.End).Copy
Else
    MsgBox "Текст не содержит ошибок!"
    exit_code = 1
end if

objWord.ActiveDocument.Close 0 'wdDoNotSaveChanges
objWord.Quit True
Set objWord = Nothing
WScript.Quit (exit_code)


dB6
Цитата:
не работает, если работаем с текстом в кодировке DOS
Все усложняем и усложняем задачу Ладно сделаю. Это - вполне реально
Автор: gansA, Отправлено:16:41 18-11-2005
mozers

Цитата:
Поздавляю с первым постом! УРА! В нашем полку прибыло

"Дык чукча не писатель, чукча читатель", мониторю ветку давно, с твоим появлением она вроде как ожила .

Цитата:
SpellCheck.vbs

обязательно попробую.

8AleX8
Вот вроде как кроссплатформенное решение , за исключением ехплорера (мож кому пригодится, хотя куски уже кидал на http://scite.ruteam.ru/)

Цитата:

--//============================================================================
--// расчет выражения выделенного в редакторе
--// или обработка выделенного URL
--// или сводка по документу
--//============================================================================
local str = editor:GetSelText()

if (string.len(str) > 2) then
    if (not string.find(str,'%a')) then
        print(assert(loadstring('return '..str),str)())
    else
        if string.find(str,'http://(.*)') then
            local browser = ('explorer ' .. str .. ' &')
            os.execute(browser)
        end
    end
else
    --//========================================================================
    --// source http://www.rrreese.com/scite/wordcount.lua
    --//========================================================================
    output:ClearAll()

    local whiteSpace = 0; --number of whitespace chars
    local nonEmptyLine = 0; --number of non blank lines
    local wordCount = 0; --total number of words

    --Calculate whitespace control
    for m in editor:match("\n") do
        whiteSpace = whiteSpace + 1;
    end
    for m in editor:match("\r") do
        whiteSpace = whiteSpace + 1;
    end
    for m in editor:match("\t") do --count tabs
        whiteSpace = whiteSpace + 1;
    end

    --Calculate non-empty lines and word count
    local itt = 0;
    while itt < editor.LineCount do --iterate through each line
        local hasChar, hasNum = 0;
        line = editor:GetLine(itt);

        if line then
            hasAlphaNum = string.find(line,'%w');
        end

        if (hasAlphaNum ~= nill) then
            nonEmptyLine = nonEmptyLine + 1;
        end

        if line then
            for word in string.gfind(line, "%w+") do wordCount = wordCount + 1 end
        end

        itt = itt + 1;
    end

    print("Символов: ",(editor.Length) - whiteSpace);
    print("Слов: \t",wordCount);
    print("Линий (всего): ",editor.LineCount);
    print("Линий (текст): ", nonEmptyLine);
end

--//http://www.ya.ru
--//=(2*3)/56+1-(4^2)



Автор: mozers, Отправлено:16:54 18-11-2005
Roman_Stinger_Ilyin

Цитата:
как в .api файле для SciTE сделать перенос трок

ИМХО тултипы в SciTE однострочные по определению, так что редактирование .api делу не поможет
8AleX8
Лично меня, сидящего под Виндами, кроссплатформенность SciTE как то мало колышет... И прятать от людей удачную находку только потому что она не работает под Х-ами считаю преступлением.

Добавлено:
gansA
Цитата:
с твоим появлением она вроде как ожила
Если бы "чукча" писал, а не только читал, то оживление произошло бы гораздо раньше
Меня в эту ветку когда то привлек 8AleX8 который на протяжении уже нескольких лет не дает ей угаснуть. Но, правда, тогда я так ничего и не просек в этом редакторе ( FAQ-а путного как не было так и нет) и забросил это дело.
И вот теперь, больше чем через годовалый период забвения, я поставил плагин к Total Commander Scintilla Lister и интерес возник вновь... В принципе я - такой же дурак, каким и был год назад, но зато есть интерес ковырнуть эту тему поглубже
Классный ты скрипт выложил! Мне очень понравился (особенно верхняя половина), нижняя - в принципе дублирет инфу со строки состояния, но тоже интересно. (На http://scite.ruteam.ru/ я его не видел. Да и не мудрено там ничего не найти... То ли дело - тут
Автор: gansA, Отправлено:11:14 20-11-2005
mozers

Цитата:
Если бы "чукча" писал

писал, писал но на http://scite.ruteam.ru/, а после того как форум "покинул" Тугаринов Сергей там стало не оченно интересно

Как пример тема руссфикации вывода в консоль http://forum.ruteam.ru/index.php?action=vthread&forum=1&topic=193&page=0#572, таким образом правлю под себя каждую сборку, работает

Или же тема упраления положения консолью из скрипта http://forum.ruteam.ru/index.php?action=vthread&forum=22&topic=175, на что в приципе уже забил повесив управление консолью на Esc и Shift+Esc, а вот скрипт приведенный в теме юзаю постоянно, оченно удобно для анализа кода и лог файлов.

Цитата:

--//============================================================================
--// поиск выделенного фрагмента с выводом номеров строк в консоль
--//============================================================================
local findText = editor:GetSelText()
local flag = 0

output:ClearAll()

if string.len(findText) > 0 then
    trace('>find: '..findText..'\n')
    local s,e = editor:findtext(findText,flag,0)
    local m = editor:LineFromPosition(s) - 1
    local count = 0

    while s do
        local l = editor:LineFromPosition(s)

        if l ~= m then
            count = count + 1

            local str = string.gsub(' '..editor:GetLine(l),'%s+',' ')

            local add = ':'..(l + 1)..':'
            local i = 8 - string.len(add)
            local ind = ' '
            while (string.len(ind) < i) do
                ind = ind..' '
            end

            trace(add..ind..str..'\n')
            m = l
        end

        s,e = editor:findtext(findText,flag,e+1)
    end

    trace('>result: '..count..'\n')
else
    trace('! Select symbol and replay')
end


mozers
Как дела с Com?
Автор: mozers, Отправлено:14:07 20-11-2005
gansA
Классный скрипт Спасибо! Буду пользовать

Цитата:
упраления положения консолью из скрипта
Не понял, зачем это надо Видимо просто никогда нужды не возникало.

Цитата:
Как дела с Com?
Хреново Если использовать внешний движок LUA то все работает (но так, сам понимаешь, неинтересно. Я с тем же успехом могу пользовать WSH скрипты).
А подключенная к Скайту luacom.dll (с помощью директивы loadlib) у меня так же ни хрена не работает...
Я так думаю, что во первых - надо лучше знать LUA (функцию loadlib я впервые увидел в указанном тобой примере. Нигде нет ни описания на нее ни примеров использования).
Во вторых - очень может быть что luacom.dll таким макаром подключить вообще нельзя - нужно добавлять эту библиотеку во время компиляции SciTE. (В описалово LuaCOM написано как).

Цитата:
руссфикации вывода в консоль ... таким образом правлю под себя каждую сборку
Опа! Так ты еще и на С пишешь ! ДРАГОЦЕННЫЙ ТЫ НАШ
Может быть, с твоей помощью наконец то сбудутся дерзкие мечты, которые требуют перекомпиляции проги?
Обидно же... И исходники доступны и поправить надо совсем немного...

Автор: gansA, Отправлено:16:41 20-11-2005
mozers

Цитата:
Не понял, зачем это надо

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


Цитата:
Опа! Так ты еще и на С пишешь !

Жаль, но вынужден тебя огорчить , все мои знания С сводятся к тупому добавлению нужной строки, найденной в тернете, в сорцы и перекомпиляции проекта.


Цитата:
Обидно же... И исходники доступны и поправить надо совсем немного...

Согласен, те кто поумнее берут движок Scite и пишут редактор под себя, примеров тому масса, а нам остается только "подтачивать" готовые продукты под свои требования.

Ежели интересно еще есть скрипт для замены выделенного в редакторе фрагмента, но там узается внешняя dll (не моя ) для создания окна ввода.
Автор: dB6, Отправлено:17:18 20-11-2005
mozers, gansA
Выше нос
Покопался я в сорцах и нашел много интересного Сделал даже тестовое добавление команд в меню файл (измененные файлы из сорцов выслал mozers), сырое пока все, но можно сделать все хорошо Только предложите нормальную идею. И пожелания.
У меня пока есть такая задумка: комманды с номерами от 0 до 49 добавляются в одно меню, с 50 до 99 - в другое, и т.д. Т.е. можно будет регулировать в какое меню, какую комманду куда добавить.




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