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

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

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


Автор: ALeXkRU, Отправлено:12:33 18-07-2006
тогда уж Штирлица лучше

Добавлено:
mozers
не подскажешь, почему при установке значения

Код:
# Russian code.page
code.page=1251
# character.set=204
character.set=1251

не подхватываются моноширинные шрифты?
и кстатти, почему стоит KOI8 а не WIN (это в сборке)?
Автор: mozers, Отправлено:13:19 18-07-2006
ALeXkRU

Цитата:
тогда уж Штирлица лучше

Мы говорим про утилиту, вызов которой можно добавить в меню "Tools" дабы она перекодировала текст открываемого файла в кодировку win1251. Потом этот текст будет редактироваться в SciTE, а затем, при сохранении, та же утила должна будет перекодировать этот текст вновь в исходную кодировку.
Как подключить xcode [45kB] - расписано достаточно подробно.
Со Shtirlitz-ем [750kB] из ком.строки не работал не разу - он вообще может, да?
(ты бы, если не в лом, привел примерчик как его присобачить)


Цитата:
почему стоит KOI8 а не WIN (это в сборке)?

В сборке стоит все правильно:
Код:
code.page=1251
character.set=204

шрифт (моношинный или какой другой) задается тут:

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

$(font.base) - пользовательская переменная, которая равна другой пользовательской переменной - font.base=$(font.monospace), а та уже равна font.monospace=font:Courier New,size:10
Вот такая длинная цепочка
Сделано это - чисто для удобства.
Можно все упростить:
style.*.32=font:Courier New,size:10
Автор: ALeXkRU, Отправлено:14:40 18-07-2006

Цитата:
шрифт (моношинный или какой другой) задается тут

это-то понятно... это я и сам знаю
поэтому и спрашиваю - при задании

Код:
character.set=1251
теряется моноширинный шрифт и найти почему - так мне и не удалось

Цитата:
В сборке стоит все правильно

да я и не спорю... просто интересно, почему KOI8 ?

Цитата:
Мы говорим про утилиту, вызов которой можно добавить в меню "Tools"

сорри тогда, не понял про что речь

Добавлено:
вот утилитка с командной строкой:
Windows Recoder 2.20
Автор: mozers, Отправлено:15:34 18-07-2006
ALeXkRU

Цитата:
при задании character.set=1251 теряется моноширинный шрифт
Вообще то character.set - должен соответствовать 204 (этот набор соответствует русским символам при использовании unicode шрифтов). 1251 - кодовая страница русского шрифта для windows (code.page=1251).
character.set=1251 - вообще бред какой то (по моему такого набора вообще нет в природе)...

Цитата:
просто интересно, почему KOI8 ?
ГДЕ ???
Автор: ALeXkRU, Отправлено:16:41 18-07-2006
mozers
это я изHelp'а (c GTK перепутал) :

Цитата:
character.set
This setting allows changing the character set that is asked for when setting up fonts... To use Cyrillic characters on Windows, set character.set=204 (CP1251 encoding). To use Cyrillic characters on GTK+, set character.set=204 (KOI8-R encoding) or character.set=1251 (CP1251 encoding). Please send email if you use one of these settings and it works or doesn't or if you have information on how to support other languages

Автор: mozers, Отправлено:17:18 18-07-2006
ALeXkRU
На GTK+ может и так (Линуксоиды должны знать правда это или нет), а Виндах charset KOI-8 в стандартных шрифтах отсутствует
Можно, конечно, какой нить свой шрифт KOI-8 поставить (могу дать если надо) и назначить в SciTE отображение символов через него.
Тогда тексты в KOI-8 можно будет смотреть в SciTE без перекодировки.
Смотреть, но не редактировать. Чтобы редактировать придется еще какой нить keyboard mapper писать (как для DOS когда то YuriNB сочинил)...
Это я так плавно перешел на другую тему "Как в SciTE редактировать KOI-8 файлы без перекодировки внешними утилитами"...
Автор: mozers, Отправлено:10:40 19-07-2006
ALL
Когда то я обошел заслуженным вниманием эту тулзу...
Даже позволил себе несколько пренебрежительных слов в ее адрес...
Сейчас, исправляя свою ошибку, я дополнил статью mirk-а о ней.
Получился не обзор, а скорее - мольба о помощи ко всей пишущей братии...
Почитайте, pls...

Автор: mirk, Отправлено:13:19 19-07-2006

Цитата:

1. Убрать из кода дурацкую строчку SetForegroundWindow(w); которая переключает SciTE на последний открытый буфер при выполнении любой команды (дико раздражает).

2. Научить утилу читать $(WindowID) из коммандной строки и не искать его самостоятельно, если прочесть удалось.

3. Научить утилу читать данные, отдаваемые ей SciTE (например, по команде askproperty

4. Можно научить утилу читать команды (их же может быть и много) не только с ком.строки, а и из файла

5. Можно грохнуть все остальные команды, кроме -с за ненужностью


1 - Ну это не проблема
2 - хз даже что это такое
3 - ты имеешь ввиду текст, или какие то внутренние команды?
4 - А вот это уже интеерсно, получаются своеобразные bat файлы....
5 - пускай висят, простые команды никогда не помешают.

А так в общем задумка клевая, часть я смогу сделать, со своим корявым "знанием" C++
Автор: mozers, Отправлено:14:01 19-07-2006
mirk
2 - В винде каждое окно имеет свой уникальный индефикатор. SciTE может сообщить вызываемой программе индефикатор своего окна (ну чтобы ей не пришлось его искать самостоятельно).
3 - значения внутрених параметров SciTE (например askproperty возвращает значение любой переменной из конфига т.е. текстовое значение).
5 - тогда можно добавить вызов простых команд из меню Тут не надо использовать SciTE Director Interface, просто окну SciTE с помощью WM_COMMAND тупо посылается номер менюшной команды.
Автор: gansA, Отправлено:11:25 21-07-2006
mozers
Смотрю последнюю сборку круто ))), што имею сказать:
1. у меня есть в наличии asp.api, куда кидать?
2. файл nncrontab_.properties можно добавить следующее:

Цитата:

# help command
command.help.$(file.patterns.nncron)=$(CurrentWord)!$(SciteDefaultHome)\help\nncron.chm
command.help.subsystem.$(file.patterns.nncron)=4

# exec command
command.build.*.tab="D:\Program Files\nnCron\nncron.exe" -reload
command.go.*.tab="D:\Program Files\nnCron\nncron.exe" -run $(CurrentWord)

3. файл sql.properties для MS SQL (у мну есть более подробный чем в сборке)

Цитата:

# execute
command.go.$(file.patterns.mssql)=osql.exe -E -S(local) -i"$(FilePath)" -n -w1000 -h-1



Автор: mozers, Отправлено:11:56 21-07-2006
gansA
Предложения хорошие Добавлю в новую сборку. Мыло мое - mozers(собака)mail.ru - шли api туда.
только наверное лучше указать вместо $(CurrentWord)!$(SciteDefaultHome)\help\nncron.chm
стандартное местоположение - "С:\Program Files\nnCron\nncron.chm"


ALL
При активной помощи mimir довел до ума скрипт поиска функций и процедур в коде. Куда там scitepm-у до него


Добавлено:
Выкладываю новое ядро SciTE_170_9Ru_beta

Помимо ставшими стандартными доработок, mimir внес в код очень много нового:
Цитата:
  1. В списки сокращений (abbrev) можно добавлять пользовательские переменные:
    - %SEL% - выделенный текст
    - %CLP% - текст из буфера обмена
    - %GUID% - уникальный GUID нового объекта (идея принадлежит codewarlock1101)
    Так, например, забив в файл abbrev такую строку:
    <a =<a href="|" alt="" target=_blank>%SEL%</a>
    пишем '<a Привет' и выделяем 'Привет' (Ctrl+Shift+Left). Затем нажимаем Сtrl+B - получаем готовую конструкцию.
    Единственная тонкость заключается в том, что курсор при этом должен распологаться на конце сокращения (после '<a ' пробелы тоже
    учитываються). Я пишу так: все сокращения у меня заканчиваються пробелом; ввожу сокращение, через пробел параметр, и нажимаю
    Ctrl+Shift+left;Сtrl+B.

  2. Добавлено событие OnDoubleClickEx(key), где key это строка вида "Ctrl;Alt;Shift;"
    т.е. теперь можно написать например так:
    local ctrl = string.find(key,'Ctrl', 1)
    if(ctrl~=nil)then ....

  3. Поправил ошибку при которой нельзя задавать CommentKeyWord* заглавными буквами.
    *В Scite есть возможность создания комментариев для некоторых лексеров (например сpp, sql).
    Они начинаються с //! /*! /** .
    Их отличительная особенность заключается в том, что в них можно подсвечивать отдельные ключевые слова, начинающиеся с "@". Например
    @todo. В стандартной версии можно использовать только строчные буквы.

  4. Добавлено 3 новых класса ключевых слов для LexCpp (т.е. теперь можно задавать до 4х дополнительных наборов слов с разной подсветкой)

  5. Добавлена возможность настраивать ширину и цвет курсора индивидуально для каждого лексера, например, так:
    caret.fore.$(file.patterns.cpp)=#FF0000
    caret.width.$(file.patterns.cpp)=3
    А то получаеться не удобно если у тебя для разных языков и имеется различные цветовые решения и разным светлым и темным фоном, а курсор - лишь одного цвета).

  6. Добавлена возможность использовать ":" в обозначениях операторов (для LexCpp и LexSQL). Ранее аналогичная правка коснулась лишь LUA.


Автор: mirk, Отправлено:15:57 21-07-2006

Цитата:
Поправил ошибку при которой нельзя задавать CommentKeyWord* заглавными буквами.
*В Scite есть возможность создания комментариев для некоторых лексеров (например сpp, sql).
Они начинаються с //! /*! /** .
Их отличительная особенность заключается в том, что в них можно подсвечивать отдельные ключевые слова, начинающиеся с "@". Например
@todo. В стандартной версии можно использовать только строчные буквы.

слава мимиру Если я не ошибаюсь это его работа...
Автор: mozers, Отправлено:16:46 21-07-2006
Ну ДА, я же написал! Все доработки кода делал mimir (мне на такое мозгов не хватает
Жаль, конечно, что другие С программисты не помогают
А то некоторыми идеями мне mimir-а увлечь так и не удалось
А жаль (( Очень жаль...
Автор: mimir, Отправлено:17:08 21-07-2006
Вот сдесь не совсем точно.

Цитата:
Добавлена возможность использовать ":" в обозначениях операторов (для LexCpp и LexSQL). Ранее аналогичная правка коснулась лишь LUA.

":" - Можно использовать в DocCommentKeyword ( @TODO: - сдесь ":" будет считаться частью слова)
И еще добавил в LexSQL слово "case" для начала фолдинга.

Автор: codewarlock1101, Отправлено:00:30 25-07-2006
ВСЕМ привет!
Предлагаю скрипт для извращенцев: "множественное позиционирование" в коде.

function GoToMark(Xcom)
local s,e
if (Xcom=='N') then
s,e = editor:findtext(string.char(14),0,editor.CurrentPos);
end
if (Xcom=='P') then
s,e = editor:findtext(string.char(14),0,editor.CurrentPos-1,0);
end
if s~=nil and e~=nil then
editor:SetSel(s,e)
end
end

Подключение:

#---------------------------------------------------------------
command.name.35.*=GoTo Prev MARK
command.35.*=GoToMark P
command.mode.35.*=subsystem:lua,savebefore:no
command.shortcut.35.*=Alt+O


command.name.36.*=GoTo Next MARK
command.36.*=GoToMark N
command.mode.36.*=subsystem:lua,savebefore:no
command.shortcut.36.*=Alt+P
#---------------------------------------------------------------
Смысл простой: если нужно вставить в текущее место (где каретка) не мальенький кусок кода из места, которое находится очень далеко, поросто нажимаем Crtl+Shift+N (вставляет спец символ <SO>) идем в то место, копирум что надо, нажимает Alt+O (или Alt+P) и попадаем в нужное место. Так же полезно использовать в abbrev'ах, например

select | from <SO> where <SO>
(примет плоховат, потому что маленькое расстояние между словам (которые лапками писать-то 3 сек), но если говорить о "стандартах" некоторых фирм, например при написании новой процедуры, со всеми описаниями и тому подобными вещами, то беглая пробежка по "козырным" местам очень удобна).
Можно перенастроить на любой "удобный" символ.

ВСЕМ ВОПРОС
Подскажите поджалуйста, что есть макросы для Scite, и какую пользу можно выловить при их использовании
Автор: mozers, Отправлено:10:24 25-07-2006
codewarlock1101
Цитата:
Предлагаю скрипт для извращенцев
Наверное я поизвращаюсь...

Цитата:
что есть макросы для Scite
Задавал подобный вопрос на офф-форуме - никто не ответил dB6 тоже пытался что то прояснить ковырянием исходников - так же ничего конкретного
Поэтому - присоединяюсь к вопросу - жутко интересно как пользоватся этим секретным оружием...


Добавлено:
Задам еще пару вопросов по LUA (а вдруг кто поможет?):
1. Как сохранить текущий буфер? (scite.Save() - нет такой команды
2. Как закрыть текущий буфер? (scite.Close() - нет такой команды
3. Как заставить SciTE перечитать настройки, после того как я их изменил с помощью скрипта? (scite.ReReadProperties() - нет такой команды
(Если файл .properties изменять непосредственным редактированием из SciTE, то при его сохранении все настройки будут мгновенно применены. Т.е. он, гад, их тут перечитывает все таки...)

В общем то задача состоит в том, чтобы динамически из меню менять настройки (не 2-3 штуки, а подключать/отключать к имеющимся .properties с помощью import целый файл(ы)). Эту задачу я решил. Все поключается/отключается. Только для того, чтобы SciTE увидел эти новые настройки, приходится его вручную закрывать, а потом запускать вновь. Не слишком это хорошо ((
Любые идеи???

Автор: mimir, Отправлено:10:47 25-07-2006
Если мне не изменяет память то настройки считываються каждый раз при переключении буферов. Поэтому после того как сохроняешь настройки и переключаешься на нужный документ, то они и считываються. Вроде так. А на счет сохранения я не знаю.
Автор: mozers, Отправлено:12:07 25-07-2006
mimir
Цитата:
настройки считываються каждый раз при переключении буферов

Откуда взялось это заблуждение? (Просто в офф-форуме ответили точно так же).
На деле - не фига - ни переключение буферов ни переключение лексеров горю не помогают А вот, сам попробуй:
Код:
local file = props["SciteDefaultHome"].."\\languages\\cpp_.properties"
local classic = 'import languages\\cpp_style_classic_'
io.input(file)
local text = io.read('*a')
local find = string.find(text, '#'..classic)
if find == nil then
    text = string.gsub(text, classic, '#'..classic)
else
    text = string.gsub(text, '#'..classic, classic)
end
io.output(file)
io.write (text)
io.close()

В самом низу файла cpp_.properties у меня строка
-import -languages\cpp_style_classic_
которую я скриптом то комментирую то снимаю с нее комментарий.
cpp_style_classic_.properties - твой с симпатишной классической раскраской

Автор: mimir, Отправлено:13:06 25-07-2006

Цитата:
Откуда взялось это заблуждение?

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

Автор: mozers, Отправлено:15:38 25-07-2006

Цитата:
Из опыта и сдравого смысла

Только не работает твой "сдравый смысл" ни хрена
Не перечитывает SciTE файл .properties хоть что хошь с ним делай. Токма перезагрузка
Вот если ты открыл файл .properties в SciTE - то совсем другое дело. При его сохранении все настройки тут же вступают в силу.
Я даже сделал такую попытку:
Код:
local file = props["SciteDefaultHome"].."\\languages\\cpp_.properties"
local classic = 'import languages\\cpp_style_classic_'
scite.Open(file)
local text = editor:GetText()
local find = string.find(text, '#'..classic)
if find == nil then
    text = string.gsub(text, classic, '#'..classic)
else
    text = string.gsub(text, '#'..classic, classic)
end
editor:SelectAll()
editor:ReplaceSel(text)
scite.SaveBuffer()
scite.CloseBuffer()

Все бы хорошо, только последних 2х комманд в природе не существует



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