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

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

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


Автор: mimir, Отправлено:15:28 04-04-2006
Все оказалось просто.
Устанавливаете
word.characters.*=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.
autocomplete.*.start.characters=.
и все работает
Автор: mirk, Отправлено:15:33 04-04-2006
Нашел интересный проект ChSciTE - IDE На базе SciTE и Scintilla заточенная под C++. Возможностей как я понял куча.

Скриншоты:



Автор: mimir, Отправлено:16:42 04-04-2006
dB6

Цитата:
А потом родилась идея - использовать массив для того чтобы автозакрывать не только последний символ, а несколько подряд т.е. ('текст').

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

Для того чтобы комплит работал после точки можно писать например так
autocomplete.*.start.characters=.
word.characters.*=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.
Но при этом комплит будет брать слова до точки.

Для исправления можно изменить

while (iswordcharforsel(*wordend))
wordend++;
на
while (wordCharacters.contains(*wordend))
wordend++;

в SciTEBase::StartAutoComplete(SciTEBase::StartAutoCompleteWord) по желанию

хотя там все очень запутано

Если комплит начинаеться с autocomplete.*.start.characters то вызываеться StartAutoComplete, но если его нет в word.characters то список не создаеться,
Иначе если установлен autocompleteword.automatic то вызываеться StartAutoCompleteWord.

Автор: mirk, Отправлено:22:42 04-04-2006
А что господа, никто не хочет выложить свой скрин?
А ведь столько желающих было

Добавлено:
Вообщем с помощью друга была переведена большая часть What New`s SciTE 1.68


Цитата:

[04.04.2006 22:57:13] >> * Released on 9 March 2006.
Выпущен 9 марта 2006 г.
* Translucent drawing implemented for caret line and box indicators.
Линия каретки и индикатор рамки теперь полупрозрачные
* Lexer specifically for TCL is much more accurate than reusing C++ lexer.
Лексический анализ TCL теперь более точный, чем лексер C++
* Support for Inno Setup scripts.
Поддержка скриптов Inno Setup

* Support for Opal language.
Поддержка языка Opal
* Calltips may use a new style, STYLE_CALLTIP which allows choosing a different font for calltips.
Для всплывающих подсказок может быть применен новый стиль отображения, настройка проводится через STYLE_CALLTIP, позволяющий сменить шрифт подсказок.

* Python lexer styles comments on decorators.
Изменен лексер стилей языка Python (как более точно = хз, не понимаю)

* HTML lexer refined handling of "?>" and "%>" within server side scripts.
Лексер в HTML теперь правильно обрабатывает серверные команды рядом с тегами ?> и %>

* Batch file lexer improved.
Улучшен лексер при массовом редактировании файлов

* Eiffel lexer doesn't treat '.' as a name character.
Лексер в языке Eiffel больше не считает точку (.) именным символом

* Lua lexer handles length operator, #, and hex literals.
Лексер в Lua обрабатывает индикатор длины, # и литералы HEX

* Properties file lexer has separate style for keys.
Лексер файла свойств теперь имеет отдельные стили для ключей

* PL/SQL folding improved.
Улучшена поддержка уровней в PL/SQL

* SciTE Replace dialog always searches in forwards direction.
Поиск с заменой теперь идёт только в направлении "вниз"

* SciTE can detect language of file from initial #! line.
Scite определяет язык файла с первой строки файла ( #! )

* SciTE on GTK+ supports output.scroll=2 setting.
Scite на GTK+ поддерживает настройку output.scroll=2

* SciTE can perform an import a properties file from the command line.
scite поддерживает импорт файла свойств через командную строку

* Set of word characters used for regular expression \< and \>.
ХЗ
* Bug fixed with SCI_COPYTEXT stopping too early.
Исправлена ошибка, когда SCI_COPYTEXT останавливался слишком рано

* Bug fixed with splitting lines so that all lines are split.
Исправлена ошибка с разделением линий

* SciTE calls OnSwitchFile when closing one buffer causes a switch to another.
ХЗ непонял

* SciTE bug fixed where properties were being reevaluated without good reason after running a macro.
ХЗ
* Crash fixed when clearing document with some lines contracted in word wrap mode.
хз
* Palette expands as more entries are needed.

не понял что за pallette в scite. ..
* SCI_POSITIONFROMPOINT returns more reasonable value when close to last text on a line.
* On Windows, long pieces of text may be drawn in segments if they fail to draw as a whole.
* Bug fixed with bad drawing when some visual changes made inside SCN_UPDATEUI notification.
* SciTE bug fixed with groupundo setting.


Кому не сложно, и кто не страдает отсутствием знаний английского, просьба поправить текст.

P.S. Наконец то руки дошли до этого, а то тут народ нас обвиняет в том, что мы заснули
Автор: xdude, Отправлено:23:43 04-04-2006

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

Вот что получилось:


Цитата:
[04.04.2006 22:57:13] >> * Released on 9 March 2006.
Выпущен 9 марта 2006 г.
* Translucent drawing implemented for caret line and box indicators.
Линия каретки и индикатор рамки теперь полупрозрачные
* Lexer specifically for TCL is much more accurate than reusing C++ lexer.
Лексический анализ TCL теперь более точный, чем лексер C++
* Support for Inno Setup scripts.
Поддержка скриптов Inno Setup

* Support for Opal language.
Поддержка языка Opal
* Calltips may use a new style, STYLE_CALLTIP which allows choosing a different font for calltips.
Для всплывающих подсказок может быть применен новый стиль отображения, настройка проводится через STYLE_CALLTIP, позволяющий сменить шрифт подсказок.

* Python lexer styles comments on decorators.
Лексер Питона стилизует комментарии декораторами (тоже хз, но что-то в этом роде )

* HTML lexer refined handling of "?>" and "%>" within server side scripts.
Лексер в HTML теперь правильно обрабатывает серверные команды рядом с тегами ?> и %>

* Batch file lexer improved.
Улучшен лексер батч-файлов (*.bat)

* Eiffel lexer doesn't treat '.' as a name character.
Лексер в языке Eiffel больше не считает точку (.) именным символом

* Lua lexer handles length operator, #, and hex literals.
Лексер в Lua обрабатывает индикатор длины, # и литералы HEX

* Properties file lexer has separate style for keys.
Лексер файла свойств теперь имеет отдельные стили для ключей

* PL/SQL folding improved.
Улучшена поддержка уровней в PL/SQL

* SciTE Replace dialog always searches in forwards direction.
Поиск с заменой теперь идёт только в направлении "вниз"

* SciTE can detect language of file from initial #! line.
Scite определяет язык файла с первой строки файла ( #! )

* SciTE on GTK+ supports output.scroll=2 setting.
Scite на GTK+ поддерживает настройку output.scroll=2

* SciTE can perform an import a properties file from the command line.
scite поддерживает импорт файла свойств через командную строку

* Set of word characters used for regular expression \< and \>.
Набор словесных символов, используемый для регулярных выражений \< и \>

* Bug fixed with SCI_COPYTEXT stopping too early.
Исправлена ошибка, когда SCI_COPYTEXT останавливался слишком рано

* Bug fixed with splitting lines so that all lines are split.
Исправлена ошибка с разделением линий

* SciTE calls OnSwitchFile when closing one buffer causes a switch to another.
Скайт вызывает функцию OnSwitchFile, когда закрытие одного файла(буфера) приводит к переключению на другой

* SciTE bug fixed where properties were being reevaluated without good reason after running a macro.
Исправлена ошибка, когда свойства перечитывались без всякой причины после запуска любого макроса

* Crash fixed when clearing document with some lines contracted in word wrap mode.
Исправлена критическая ошибка (приводящая к краху программы) при очистке документа с несколькими объединенными строками в режиме переноса по словам

* Palette expands as more entries are needed.
Палитра расширяется по мере необходимости
(скорее всего, имеется в виду системная палитра, используемая для раскраски документа)

* SCI_POSITIONFROMPOINT returns more reasonable value when close to last text on a line.
SCI_POSITIONFROMPOINT возвращает более корректный результат когда близко к последнему тексту в строке (хз что они имеют в виду, скорее всего - близко к концу текста в строке)

* On Windows, long pieces of text may be drawn in segments if they fail to draw as a whole.
В Винде большие куски текста могут быть прорисованы по сегментам, если их нельзя прорисовать целиком

* Bug fixed with bad drawing when some visual changes made inside SCN_UPDATEUI notification.
Исправлен баг с некорректной прорисовкой после некоторых визуальных изменений, произошедших в обработчике SCN_UPDATEUI

* SciTE bug fixed with groupundo setting.
Исправлен баг Скайта с групповой отменой последнего действия (Group Undo)

Если че не досмотрел - прошу простить великодушно
Автор: ALeXkRU, Отправлено:01:33 05-04-2006
некоторые пункты в моем исполнении :


Цитата:
* HTML lexer refined handling of "?>" and "%>" within server side scripts.
HTML-лексер теперь правильно обрабатывает теги "?>" и "%>" в серверных скриптах

* Lua lexer handles length operator, #, and hex literals.
Лексер в Lua обрабатывает оператор length, # и шестнадцатиричные литералы

* SciTE can detect language of file from initial #! line.
SciTE может определять язык файла по строке инициализации ( #! )

* Set of word characters used for regular expression \< and \>.
Добавлена поддержка метасимволов начала и конца ("\<" и "\>") слова в регулярных выражениях

* SciTE calls OnSwitchFile when closing one buffer causes a switch to another.
SciTE вызывает функцию OnSwitchFile при закрытии одного буфера и переключении на другой

* Crash fixed when clearing document with some lines contracted in word wrap mode.
Исправлен сбой программы при очистке документа с сокращенными некоторыми строками в режиме переноса по словам

* Palette expands as more entries are needed.
Палитра расширяется при увеличении числа элементов
(видимо, палитра цветов)

* SCI_POSITIONFROMPOINT returns more reasonable value when close to last text on a line.
Переменная SCI_POSITIONFROMPOINT возвращает более разумное значение для закрытого текста в конце строки

* On Windows, long pieces of text may be drawn in segments if they fail to draw as a whole.
В Windows длинный текст может отображаться частично, если неправильно отображается целиком.

* Bug fixed with bad drawing when some visual changes made inside SCN_UPDATEUI notification.
Исправлена ошибка неверной отрисовки при внесении некоторых визуальных изменений в SCN_UPDATEUI

* SciTE bug fixed with groupundo setting.
Исправлена ошибка SciTE с групповой отменой настроек

Автор: mimir, Отправлено:12:08 05-04-2006
Я опять за свое

***.properties
braces.autoclose=1
braces.open=({['"
braces.close=)}]'"

***.lua
function OnChar(charAdded)
if(props['braces.autoclose']=='1')then
SymbolAutoClose(charAdded)
end
end
function SymbolAutoClose(charAdded)
    local pos = editor.CurrentPos
    local brIdx = string.byte(props['PrevIdx'])
    local f=charAdded
    
    if(brIdx~=nil)and(brIdx>0)then
        local symE
        symE = string.sub(props['braces.close'],brIdx,brIdx)
        if (charAdded ~= symE) then
            editor:InsertText(pos,symE)
        else
            props['PrevIdx'] = string.char(0)
            return 0
        end
    end
    
    if(charAdded=="(")or(charAdded=="[")then
        f=string.format("%%%s",charAdded)
    end
    brIdx =string.find(props['braces.open'],f,1)
    if(brIdx~=nil)then
        props['PrevIdx'] = string.char(brIdx)
    else
        props['PrevIdx'] = string.char(0)
    end
return 0
end

Еще может можно это сделать для лексеров например для HTML можно добавить <>
Щас думаю как сделать что-то типа
braces.open=|[q]|[b]|
braces.close=|[\q]|[\b]|
В таком случае наверное лучше проверять именно предшествующие символы. Главная проблема состоит в том что можно при вводе ошибиться и потом заменить тег в середине, но факта удаления символа мы отлавить не можем.

Автор: dB6, Отправлено:14:07 05-04-2006
mimir
Цитата:
Я опять за свое

Молодец Только вот ты пробовал быстренько что-нить набрать? У меня очень сильно грузит проц. Когда набираю текст на енг. Если русский - то все ок. Имхо, связано с принадлежностью к chars.alpha.



Добавлено:
Кхм... Тормоза зависят от размера текста в окне... Если текста много - тормоза больше, меньше - почти не чувствуется.
Автор: mimir, Отправлено:14:17 05-04-2006
dB6

Цитата:
Только вот ты пробовал быстренько что-нить набрать? У меня очень сильно грузит проц. Когда набираю текст на енг. Если русский - то все ок.

У меня ненаблюдаеться
А вот это не понятно

Цитата:
Имхо, связано с принадлежностью к chars.alpha.


Может это связано с "dos866<->win1251"?

Добавлено:
Celeron 1.7 512Mb
Автор: dB6, Отправлено:14:21 05-04-2006
Блин... Уникальный глюк... Перезапустил SciTE - все пропало.. "Обвинения" снимаются до следующего инцидента...
Напишите, если у кого похожее что-то..
Автор: mimir, Отправлено:14:22 05-04-2006
ИМХО тормазит подсветка парных скобок

Добавлено:

Цитата:
"Обвинения" снимаются

Спасибо
Автор: dB6, Отправлено:14:26 05-04-2006
mimir
Цитата:
Может это связано с "dos866<->win1251"?

Сомневаюсь... Там если кодировка win - ничего не вызывается кроме одной проверки.

Просто странно, до этого таких глюков не было, а проявились только с добавлением твоего кода.

Добавлено:

Цитата:
ИМХО тормазит подсветка парных скобок

Причем тут, если там их нету?;)


Добавлено:
Опять словил
Автор: mimir, Отправлено:14:51 05-04-2006
У меня чето не получается воспроизвести, правда один раз тоже получилось, а как ХЗ
А если выключить braces.autoclose=0
Как изменяеться расход памяти
Автор: dB6, Отправлено:15:45 05-04-2006
mimir
Все.. "Обвинение" снимаю окончательно. Потестил все - баг не из-за твоего кода.
Переодичность возникновения не ясна, но заметил две фичи:
1. Когда набирается текст на енг. Если русский - то все ок.
Имхо, связано с принадлежностью к chars.alpha.
2. Если текста много в открытом документе, то шанс поймать баг больше.

От така фигня...


Добавлено:
Кстати, спасибо за толковый скрипт
Автор: gansA, Отправлено:18:21 05-04-2006
mozers
Вопрос: не пробовал в конфиге раскоментить find.replace.advanced=1? )
Автор: UsAr, Отправлено:20:54 05-04-2006
вот тоже решил перейти с EditPlus'a на SciTE, почти всё настроил под себя, но есть несколько вопросов.

1. Какие парамтры отвечают за цвет и фон консоли? (куда результаты компилирования выводятся)
2. Можно ли как-то включить многострочную обработку текста? (т.е. использовать \n в regexp'ах для поиска и замены)
3. как бы настроить фолдинг для masm'a?
например для конструкций такого вида
.IF eax == 0
; some code 1 ...
.ELSEIF eax == 1
; some code 2 ...
.ELSE
; some code 3 ...
.ENDIF
4. можно ли подсветить все эти API или их нужно опять вписывать в keywords?
5. как сделать чтобы keywords'ы подсвечивались только когда совпадает регистр?

UPD:
1. уже разобрался, если кому интересно это все style.errorlist.* в файле others.properties
Автор: mimir, Отправлено:10:51 06-04-2006
UsAr

Цитата:
как бы настроить фолдинг для masm'a?

Лексер асма не проддерживает фолдинга (в справке написаны лексеры которые его поддерживают)

Цитата:
можно ли подсветить все эти API или их нужно опять вписывать в keywords?

Да. Весь принцип подсветки именно в этом и заключаеться. К сожелению лексер асма не поддерживает пользовательских ключивых слов как например лексер срр и он обрабатывает только 6 первых групп ключивых слов.

Цитата:
как сделать чтобы keywords'ы подсвечивались только когда совпадает регистр?

Только правкой исходников. В принципе я это уже сделал, щас только хочу сделать эту возможность управляемой(через .props например keywords.lexer.ignorecase но пока будет браться только для асма) и может если получиться добавлю и еще одину группу ключивых слов.

Можно еще попробывать другой лексер(который имеет фолдинг и являеться регистрочуствительным), подставив ему ключивые слова асма, но какой именно подсказать не могу
Автор: UsAr, Отправлено:12:39 06-04-2006
mimir
очень жаль, видимо прийдется изрядно повозиться с исходниками =(

и еще один вопрос: можно как-то подсветить слова заканчивающиеся на ":"? просто там все метки так обозначаются и было бы удобно их выделить.
Автор: mimir, Отправлено:12:59 06-04-2006
Добавление еще одного keyword и keywords.ignorecase достаточно просто.

1.
LexASM.cxx ColouriseAsmDoc
bool IgnoreCase = styler.GetPropertyInt("keyword.asm.ignorecase");
и заменить
sc.GetCurrentLowered(s, sizeof(s));
на
if (!IgnoreCase) {
sc.GetCurrent(s, sizeof(s));
} else {
sc.GetCurrentLowered(s, sizeof(s));
}
2.
LexASM.cxx ColouriseAsmDoc

WordList &UserList = *keywordlists[6];

} else if (UserList.InList(s)) {
sc.ChangeState(SCE_ASM_USERWORD);
}

Соответственно надо прописать keyword.asm.ignorecase в файле SciteProps в массиве
propertiesToForward, а SCE_ASM_USERWORD - я везде прописал рядом с
SCE_ASM_EXTINSTRUCTION.

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




Автор: mozers, Отправлено:15:03 06-04-2006
gansA
Цитата:
не пробовал в конфиге раскоментить find.replace.advanced=1?
Опа! А я, дурак, даже скрипт хотел писать для этого дела
Замечательная подсказка!
Есть у меня серьезное подозрение, что не только это я прошляпил...
vbscript.api получил, СПАСИБО. Маленько поправлю и включу в сборку.

mimir
За точку - огромное СПАСИБО. Тоже сам не допер почему то...
Теперь можно автозакрытие в сборку включать?
Код ядра, я чувствую, еще претерпит изменения

ALL
Написал я таки COM-сервер этот
Сильно прошу не бить - "бетта". Т.е. щас можно писать так:
Код:
'Это - пример и описание всех доступных методов:
'===============================================
'Вначале создаем объект

Set SciTE=CreateObject("SciTE.Helper")

'Извлекаем весь текст с активной страницы
Msgbox SciTE.GetText

'Извлекаем только выделенный текст с активной страницы
Msgbox SciTE.GetSelText

'Заменяем выделенный на активной странице текст на наш
SciTE.ReplaceSel "ВАСЯ"

'Вызываем внутреннюю команду SciTE (окошко "О программе")
'Список всех доступных команд - в файле SciTE.h

SciTE.Command(902)

'Ну как же без этого
SciTE.About

Ссылка [5 kB]




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