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

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

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


Автор: codewarlock1101, Отправлено:12:52 26-05-2006
ВСЕМ КОДЕРАМ
Есть идея: добавить в abbrev-lang (на уровне ядра SciTE) два параметра - выделенный текст и буфер клип боарда (например %selected_text% и %clipboard_text%).
Это даст определенную гибкость:
(допустим у нас в буфере обмена: State In [dsEdit,dsInsert])
например если выделить следующий текст, и нажать ctrl+B произойдет следующее:

if with dxDBInspector.DataSource.DataSet do
begin
dxDBInspector.DataSource.DataSet := Nil;
RxRichEdit1.Text := '';
end;

SciTE должен (его нужно научить ) выделить первое слово (if), определить что оно - аббревиатура, убить ее из выделенного текста и вставить все с соответствующими правилами...
например pascal.abbrev:
if=if (%clipboard_text%|) then \nbegin%selected_text%\nend;

тогда получим следующую штуку:
if (State In [dsEdit,dsInsert]) then
begin
with dxDBInspector.DataSource.DataSet do
begin
dxDBInspector.DataSource.DataSet := Nil;
RxRichEdit1.Text := '';
end;
end;

если же выделенного текста нет - сработать "по-старому"

Удобно...

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


Автор: mirk, Отправлено:22:52 28-05-2006
SciTE 1.69 release candidate

Добавлено:
SciTE project manager for Linux
Автор: DiggER, Отправлено:11:11 29-05-2006
Господа, а как поменять шрифт?
Автор: mozers, Отправлено:16:53 29-05-2006
DiggER
Ну это - просто Только, шрифт чего?
Если - самого текста в окне редактирования, то он определяется параметрами style.... (свое значение стиля для каждого элемента - например, ключевое слово, комментарий и пр...)
Часто вместо реального значения шрифта, туда записывают пользовательскую переменную:

Код:
style.*.32=$(font.base),back:#EAF4F7

где font.base - пользовательская переменная, фактическое значение которой - font:Courier New,size:11
Автор: ALeXkRU, Отправлено:01:07 30-05-2006
mirk
22:52 28-05-2006
Цитата:
SciTE 1.69 release candidate

уже - релиз:

Цитата:
Release 1.69
- Released on 29 May 2006.
- SciTE supports z-order based buffer switching on Ctrl+Tab.
- Translucent support for selection and whole line markers.
- SciTE may have per-language abbreviations files.
- Support for Spice language.
- On GTK+ autocompletion lists are optimised and use correct selection colours.
- On GTK+ the URI data type is preferred in drag and drop so that applications will see files dragged from the shell rather than dragging the text of the file name into the document.
- Increased number of margins to 5.
- Basic lexer allows include directive $include: "file name".
- SQL lexer no longer bases folding on indentation.
- Line ends are transformed when copied to clipboard on Windows/GTK+2 as well as Windows/GTK+ 1.
- Lexing code masks off the indicator bits on the start style before calling the lexer to avoid confusing the lexer when an application has used an indicator.
- SciTE savebefore:yes only saves the file when it has been changed.
- SciTE adds output.initial.hide setting to allow setting the size of the output pane without it showing initially.
- SciTE on Windows Go To dialog allows line number with more digits.
- Bug in HTML lexer fixed where a segment of PHP could switch scripting language based on earlier text on that line.
- Memory bug fixed when freeing regions on GTK+. Other minor bugs fixed on GTK+.
- Deprecated GTK+ calls in Scintilla replaced with current calls.
- Fixed a SciTE bug where closing the final buffer, if read-only, left the text present in an untitled buffer.
- Bug fixed in bash lexer that prevented folding.
- Crash fixed in bash lexer when backslash at end of file.
- Fix for SciTE properties files where multiline properties continued over completely blank lines.
- Bug fixed in SciTE/GTK+ director interface where more data available than buffer size.
- Minor visual fixes to SciTE splitter on GTK+.


Добавлено:
вольное переложение изменений:

Release 1.69
- поддержка SciTE переключения буфера, основанного на упорядочивании по Z, (вкладок?) по Ctrl+Tab
- поддержка прозрачности для выделения и всех маркеров строк
- SciTE может иметь файлы сокращений (.abbrev) для каждого языка
- поддержка языка Spice
- в GTK+ оптимизировано автозавершение списков и используется правильный выбор цветов
- в GTK+ типы данных URI (унифицированных идентификаторов ресурсов) предпочитаемые при перетаскивании, чтобы приложения могли видеть перетаскиваемые из оболочки файлы не только как перетаскиваемое в документ имя файла в виде текста
- увеличено число границ до 5
- базовый лексер разрешает использовать директиву $include: "имя файла"
- лексер SQL больше не использует отступы при сворачивании
- концы строк преобразовывались при копировании в буфер в Windows/GTK+2 а также в Windows/GTK+ 1
- лексические коды масок отключают битовый индикатор при старте стиля перед вызовом лексера, чтобы избежать путаницы лексера, если в приложении использовался индикатор
- в SciTE включен параметр savebefore:yes, при котором файл сохраняется только если он был изменен
- в настройки SciTE добавлен параметр output.initial.hide, разрешающий настройку размера панели вывода без предварительного показа ее при старте
- в SciTE для Windows в диалоге "Перейти к..." (Go To) увеличено допустимое количество цифр в номерах строк
- исправлена ошибка в лексере HTML, при которой в фрагментах на PHP не переключался скриптовый язык с размещенного ранее по тексту при переходе на текущую строку
- исправлена ошибка памяти при освобождении диапазона в GTK+. Исправлены другие небольшие ошибки в GTK+.
- не рекомендуемые в GTK+ вызовы в Scintilla заменены текущими вызовами
- исправлена ошибка SciTE при закрытии последнего буфера в режиме только для чтения, позволявшая размещать текст в неименованный буфер
- исправлена ошибка в лексере bash, не позволяющая использовать сворачивание
- исправлена фатальная ошибка в лексере bash, приводившая к краху при использовании бэкслеша в конце файла
- исправлена ошибка в файлах свойств SciTE, при которой многострочные свойства продолжались после пустых строк
- исправлена ошибка в управляющем интерфейсе SciTE/GTK+ когда размер доступных данных превышает размер буфера
- небольшие визуальные исправления разделителя SciTE в GTK+


Автор: DiggER, Отправлено:09:42 30-05-2006
mozers
спасибо, теперь знаю где искать.
Автор: mirk, Отправлено:14:35 30-05-2006
ALeXkRU
Клево ))
С предложенным переводом вроде все согласны, так что я его размещаю, если что, пишите в комменты к новости.

Добавлено:
Разместил

Автор: zvyagaaa, Отправлено:12:00 01-06-2006
Лучше прежнего
Автор: mirk, Отправлено:14:27 01-06-2006
Автозакрытие скобок (простой вариант) Автор скрипта gansA

Добавлено:
Поменял немного шапку, добавил раздел "скрипты", сменил картинку... Если у кого есть еще скрины, предлагайте
Автор: mozers, Отправлено:03:15 04-06-2006
Излагаю положение дел с новой сборкой Ru-Board:
Сборка (ядро 1.69 .07Ru)
Новое ядро .07Ru - Доработанный вариант оригинальной версии 1.69
Хотя Нейл многое, придуманное mimir-ом учел, но еще много чего нет. Поэтому было поправлено:
1. Исправлена ошибка зависания SciTE при использовании command.input. (Автор: mimir)
2. Исправлена ошибка с выводом текста по command.input и $(CurrentSelection) исключительно в кодировке UTF-8 (Автор: mimir)
(без этой ерунды многие скрипты из сборки будут просто неработоспособны)
К сожалению, моих знаний не хватило на то чтобы вновь научить Скайт понимать команду import в файлах *.abbrev
Не сделал правку фолдинга для MASM (Автор: UsAr) поскольку Нейл сам над ней сурьезно потрудился. Надо пробовать. Если правка все еще требуется то менять надо последнюю версию (то же сам я вряд ли это смогу).
Все основные .properties объединил в 1 файл с секциями. Ну дико удобно - это надо видеть
Неделю ждал, что кто нибудь поможет написать код для автоматического сворачивания всех фолдеров - не дождался - цельный день башку ломал - десятка два пробных вариантов нарисовал - в результате получилось 10 строчек кода
Ну и скриптов еще парочку добавил, да старые чуть подрехтовал.
В пропертях - практически никаких изменений - чуть по мелочи...
Вы хотите чтобы я это выкладывал?
Или может вместе попробуем изобразить что то более путное?
Ну хотя бы ошибки поищем и поправим...
В общем - жду файло и очень прошу свои творения оформлять соответствующим образом, поскольку заниматься живописью меня уже тоже приморило...
Автор: mimir, Отправлено:10:56 06-06-2006
Я тут сделал чтобы abbrev понимал переменные %SEL%, %CLB% и %GUID%,
правдо пока только по Ctrl+B (Ctrl+Alt+R пока не делал).
Но проблема заключаеться в том что этих трех переменных для меня мало. И вот я думаю как бы организовать передачу в сокращения дополнительных переменных.
Собственно это можно сделать например через выделенный текст
(%bla-bla-bla% или %ParamName=bla-bla-bla%)
и обращаться соответственно %P1% или %ParamName%.
Так же я подумываю сделать рекурсивный вызов, хотя если честно применения этому пока не нашел. Но что-то мне подсказывает, что если это и понадобиться то правильнее это делать с помощью LUA. Где-то я видел скрипты для вставки сокращений. Может в них уже все это реализовано и я зря изобретаю велосибед?

Еще я сделал подсветку для cpp в стиле classic. Единственная проблема состоит в том что цвет курсора не меняеться для разных языков. Может сегодня я это исправлю.
Соответственно кому интересно:

font.size.cpp=12
font.monospace.cpp=font:Courier New,size:$(font.size.cpp)
font.base.cpp=$(font.monospace.cpp)

colour.background.cpp=back:#000CDF
colour.keyword.cpp=$(colour.background.cpp),fore:#FFFFFF
colour.string.cpp=$(colour.background.cpp),fore:#ACACD7
colour.number.cpp=$(colour.background.cpp),fore:#00FFFF
colour.main.cpp=$(colour.background.cpp),fore:#FFFF00
colour.preproc.cpp=$(colour.background.cpp),fore:#00FF40
colour.comment.cpp=$(colour.background.cpp),fore:#62F807
colour.operator.cpp=$(colour.background.cpp),fore:#FFFFFF
colour.comment.doc.cpp=$(colour.background.cpp),fore:#66D9D0
colour.comment.doc.error.keyword.cpp=$(colour.background.cpp),fore:#F83C21
colour.comment.doc.keyword.cpp=$(colour.background.cpp),fore:#FFFFFF
colour.keyword2.cpp=$(colour.background.cpp),fore:#70D3FA


style.keyword.cpp=$(font.base.cpp),$(colour.keyword.cpp),bold
style.string.cpp=$(font.base.cpp),$(colour.number.cpp),italics
style.number.cpp=$(font.base.cpp),$(colour.number.cpp)
style.main.cpp=$(font.base.cpp),$(colour.main.cpp),bold
style.preproc.cpp=$(font.base.cpp),$(colour.preproc.cpp)
style.char.cpp=$(style.string.cpp),italics
style.comment.cpp=$(font.base.cpp),$(colour.comment.cpp),italics,notbold
style.operator.cpp=$(font.base.cpp),$(colour.operator.cpp)
style.comment.doc.cpp=$(font.base.cpp),$(colour.comment.doc.cpp),notbold
style.comment.doc.keyword.cpp=$(font.base.cpp),$(colour.comment.doc.keyword.cpp),bold
style.comment.doc.error.keyword.cpp=$(font.base.cpp),$(colour.comment.doc.error.keyword.cpp),bold
style.keyword2.cpp=$(font.base.cpp),$(colour.keyword2.cpp),bold

caret.fore=#EFF40B
caret.width=3

# Default
style.cpp.32=$(style.main.cpp)
# White space
style.cpp.0=fore:#03B1FC
# Comment: /* */.
style.cpp.1=$(style.comment.cpp)
# Line Comment: //.
style.cpp.2=$(style.comment.cpp)
# Doc comment: block comments beginning with /** or /*!
style.cpp.3=$(style.comment.doc.cpp)
# Number
style.cpp.4=$(style.number.cpp)
# Keyword
style.cpp.5=$(style.keyword.cpp)
# Double quoted string
style.cpp.6=$(style.string.cpp)
# Single quoted string
style.cpp.7=$(style.char.cpp)
# UUIDs (only in IDL)
style.cpp.8=fore:#804080
# Preprocessor
style.cpp.9=$(style.preproc.cpp)
# Operators
style.cpp.10=$(style.operator.cpp)
# Identifiers
style.cpp.11=$(style.main.cpp)
# End of line where string is not closed
style.cpp.12=fore:#000000,$(font.monospace),back:#E0C0E0,eolfilled
# Verbatim strings for C#
style.cpp.13=fore:#007F00,$(font.monospace),back:#E0FFE0,eolfilled
# Regular expressions for JavaScript
style.cpp.14=fore:#3F7F3F,$(font.monospace),back:#E0F0FF,eolfilled
# Doc Comment Line: line comments beginning with /// or //!.
style.cpp.15=$(style.comment.doc.cpp)
# Keywords2
style.cpp.16=$(style.keyword2.cpp)
# Comment keyword
style.cpp.17=$(style.comment.doc.keyword.cpp)
# Comment keyword error
style.cpp.18=$(style.comment.doc.error.keyword.cpp)
# Braces are only matched in operator style
style.braces=10
style.cpp.34=$(font.base.cpp),back:#28D7C6,fore:#9BFFFF
style.cpp.33=back:#BDD7DE,$(font.base),fore:#3E48AA,size:10,nobold

Автор: zvyagaaa, Отправлено:12:03 06-06-2006
Господа, умные люди, будете пересобирать сборку?
Автор: mozers, Отправлено:12:40 06-06-2006
zvyagaaa

Цитата:
Господа, умные люди, будете пересобирать сборку?

Я о проблемах написал выше.
Некоторые смог решить сам (понимать команду import в файлах *.abbrev)
С некоторыми помог dB6
mimir - жду ответа на письмо. Еще не все решено!

ALL
Вопросы, которые необходимо решить чтобы выпустить сборку:
1.
Код:
command.name.9.*=Размер шрифта по умолчанию
command.9.*=Zoom 0
command.mode.9.*=subsystem:lua,savebefore:no
command.shortcut.9.*=Ctrl+Slash

Не работает ни Ctrl+Slash ни Ctrl+\
Как перехватить стандартную комбинацию ???

2. Раньше (я точно это видел!) работала подсветка текущего параметра во всплывающих подсказках. (т.е. когда пишем 2й параметр, во всплывающей подсказке так же подсвечивается второй). Сейчас такое я не наблюдаю нигде (ни в старой ни в новой сборке ни в оригинальных версиях). Что случилось? Как поправить? dB6 сказал что у него надо повторно нажимать Ctrl+Shift+Space. У себя попробовал - не проходит
Раньше то подсвечивалось безо всяких нажатий

Код:
# Символы, после ввода которых возникает подсказка
calltip.cpp.parameters.start= (
# Символы - разделители параметров
calltip.cpp.parameters.separators=,

Записи то имеются...

3. Надо бы в исходниках найти то место, где задается фон страницы по-умолчанию, т.е. тогда, когда параметр back: не задан в style.*.32
Сейчас, если не задан, то считается - белый.
Должно быть если не задан - то вообще НЕ КРАСИТЬ фон ни в какой цвет! Пусть остается какой есть по умолчанию, т.е. системный WndowBackground

Пока - хватит вопросов. Потом еще набросаю
Автор: mimir, Отправлено:19:09 06-06-2006

Цитата:
Как перехватить стандартную комбинацию ???

Рассуждаем логически:
1 - Символ '\' означает перевод строки. Следовательно
2 - '\\' = слеш + то что на следующей строке.
Отсюда следует
3 - надо записать 'Ctrl+\\' - без пробелов в конце и с пустой следующей строкой.
В ощем все очевидно и просто просто
Проблема только в том что если строка пустая то она пропускаеться
В общем надо ставить эту строчку в последней строке последнего файла.
Завтра напишу исправление (вернее я его уже написал, а завтра выложу-иду домой).


На счет второго так это нуно конфигурить в одном месте.
Я минут 15 разбиралься по коду, как там все работает и в результате убедилься что оно работает как всегда. Потом еще минуты 3 соображал как береться пробел в разделитель параметров когда там стоит зпт.
Оказалось что
calltip.cpp.parameters.separators=
определен в не только в cpp.props, но others.props и соответственно все разделяеться пробелами.

PS. SciteGlobal.props - Вещь.
PPS to mosers.
1) создаем test.js
2) мишем aler и смотрим разницу между Ctrl-I и Ctrl+Enter
Автор: mozers, Отправлено:21:07 06-06-2006
mimir

Цитата:
Рассуждаем логически:
1 - Символ '\'
Не туда. Я немножко переврал вопрос.
Стандартная комбинация
Цитата:
Restore text size to normal - Ctrl+Keypad/
Как ее перехватить ???
Чего я только вместо этого Keypad/ не писал (и так как есть и просто / и Slash и KeypadSlash - ни на что не реагирует
Похоже - баг Невовремя, билин...

Насчет подсветки текущего параметра во всплывающих подсказках разобрался с помощью dB6
Все работает НО только при наборе текста. При Ctrl+Shift+Space на уже готовом коде - нет Тоже вроде как баг...

Цитата:
1) создаем test.js
2) пишем alert и смотрим разницу между Ctrl-I и Ctrl+Enter

В упор не вижу никакой разницы

ALL
Никто не знает как записать текст в статусную строку (LUA)?
Если так:
Код:
props["statusbar.text.1"]="наша строка"
то текст появляется не сразу как выполнится команда скрипта, а пока окно не обновится
Может кто знает как окно (точнее - статусбар принудительно обновить?)

Автор: dB6, Отправлено:21:20 06-06-2006
mozers

Цитата:
Насчет подсветки текущего параметра во всплывающих подсказках разобрался с помощью dB6
Все работает [Image] НО только при наборе текста. При Ctrl+Shift+Space на уже готовом коде - нет [Image] Тоже вроде как баг...

Работает при Ctrl+Shift+Space на готовом коде только в том случае, если курсор уже стоял на одном из параметров. Если же курсор поместить на параметр при отображаемой подсказке, то никаких изменений в подсказке не произойдет. Нажимаем Ctrl+Shift+Space и подсвечивается текущий параметр.
Автор: mozers, Отправлено:21:22 06-06-2006
mimir

Цитата:
Оказалось что
calltip.cpp.parameters.separators=
определен в не только в cpp.props, но others.props

И какой дурак эту директиву туда запихал? Наверное - я


Добавлено:
dB6
Да, замудрено сделано. Вроде как и есть но хрен без пол-литры догадаешься как эту радость увидеть
Автор: dB6, Отправлено:21:43 06-06-2006
mozers
А что в сборке не будет всяких разных полезных утилит?



Цитата:
но хрен без пол-литры догадаешься как эту радость увидеть

Честно скажу - не пил
Автор: mozers, Отправлено:22:50 06-06-2006
dB6
Каких еще утилит? Да еще полезных... Кидай идею - реализуем...

Придумал таки как обновлять текст в статусной строке
Просто после смены значения параметра props надо выполнить editor:VCHome()
Что это такое - не знаю (нашел методом научного тыка) но работает
Автор: mimir, Отправлено:11:24 07-06-2006

Цитата:
В упор не вижу никакой разницы

Ты че издеваешси!!!???
Берешь тот файл который ты мне прислал.
Делаешь что я написал и получаешь, что при Ctrl-I(Ctrl-Space) - вылезает подсказка, а при Ctrl+Enter - нет. Я это проверил только что. Я не пытаюсь сказать что лучше, но это есть.


Цитата:
Чего я только вместо этого Keypad/ не писал (и так как есть и просто / и Slash и KeypadSlash - ни на что не реагирует



Цитата:
Рассуждаем логически:

'+' - Plus
'-' - Minus
Остаеться всего два оператора - умножение и ... провильно ДЕЛЕНИЕ
соответственно
'*' - Multiply
'/' - Divide
Ну и '.' - Decimal


Цитата:
Похоже - баг ...

(Сам нашел в исходниках, а в справке только KeypadPlus, KeypadMinus.)

И еще.
Это только меня раздражает когда по Esc закрываеться приложение. Поправить самому это можно, но зачем это вообще нодо делать. Я например привык Esc закрывать списки дополнения.




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