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

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

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


Автор: vladvro, Отправлено:18:40 17-11-2006
codewarlock1101

Цитата:
По событиям Ctrl+Shift+Home и Ctrl+Shift+End дожны (по идее) отрабатывать события SCI_DOCUMENTSTARTEXTEND и SCI_DOCUMENTENDEXTEND.
А в движке скайта получается, что он операции выделения не этим командаы вызывает
Отсюда печальный вывод, что нельзя эти события перегрузить с помощью OnSendEditor
..

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

Добавлено:
mozers и всем

Цитата:

Цитата:
Проще убрать "-lexer.=hypertext", а после открытия нажать F12.

Согласен "-lexer.=hypertext" - неполиткорректное решение.
(Кстати, почему именно такой нестандартный синтаксис -lexer.= никто не знает ???)

хочу предложить свое решение для тех кому лень "после открытия нажать F12" (для особо ленивых )

в файле SciTE_runner.js (ну или как он у вас назван) меняем строку:
var opt = '-lexer.=hypertext "' + filename + '"';
на
var opt = '-language.onopen.once=html "' + filename + '"';

создаем новый файл скажем set_language_onopen.lua след содержания:

Код:
local IDM_LANGUAGE = 1400 -- constant from SciTE.h

local function SetLanguage(lng_name)
local i = 0
for _,name,_ in string.gfind(props["menu.language"], "([^|]*)|([^|]*)|([^|]*)|") do
if name == lng_name then
scite.MenuCommand(IDM_LANGUAGE + i)
return
end
i = i + 1
end
end

-- Добавляем свой обработчик события OnOpen
local old_OnOpen = OnOpen
function OnOpen(file)
local result
if old_OnOpen then result = old_OnOpen(file) end
if props["language.onopen.once"] ~= '' then
SetLanguage(props["language.onopen.once"])
props["language.onopen.once"] = nil
end
return result
end


и добавляем строчку подключения этого файла в стартовом скрипте (SciTEStartup.lua):
require ("set_language_onopen.lua")

P.S.
а синтаксис -lexer.=<значение> вполне понятный, такой вызов например аналогичен следующей команде в Луа скрипте:
props["lexer."] = <значение>
Автор: mozers, Отправлено:00:09 18-11-2006
vladvro
Я тоже думал в этом направлении, да только не додумался до твоей function SetLanguage
А вот с запуском SciTE с параметром даже связываться не буду (надо Нейлу отписать про дикие баги, сопутствующие этому методу) да и незачем. Вполне можно обойтись и без этого
Код:
-- Добавляем свой обработчик события OnOpen
local old_OnOpen = OnOpen
function OnOpen(file)
local result
if old_OnOpen then result = old_OnOpen(file) end
if props["FileExt"] == '' then
local p, _, _ = string.find(props["FilePath"], "Temporary Internet Files", 1)
if p ~= nil then
SetLanguage("html")
end
end
return result
end
А вообще у меня вместо выделенной строчки стояло
Код:
editor.LexerLanguage = "hypertext"
и лексер стабильно переключался. Но вот только раскраска почему то не менялась... Непонятно почему...

Автор: mozers, Отправлено:14:42 18-11-2006
Подкину еще задачку для умных и талантливых
Из версии в версию кочует абсолютно неработающая конструкция:
Код:
command.name.0.$(file.patterns.batch)=Execute Selection
command.0.$(file.patterns.batch)=$(CurrentSelection)

Как сделать эту команду рабочей ? Представьте как это было бы дико удобно. И не только для пакетных файлов. От аналогичной команды для JS и VBS я бы тоже не отказался
Мысли как это реализовать - есть, но что то уж очень закручено получается...
Может у кого то есть элегантное решение вопроса. Ну, вот как, например для LUA:
Код:
command.name.0.*.lua=Execute Selection
command.0.*.lua=dostring $(CurrentSelection)
command.mode.0.*.lua=subsystem:lua,savebefore:no


HSolo
В процессе эксперементов обнаружился небольшой глюк меню:
Команды, приведенные выше, встают почему то последним пунктом меню
А после 1 выполнения автоматом перемещаются на положенное место.

И вставить бы для дизайна один дополнительный разделитель между многочисленными подменю и обычными пунктами... а то сливается все...
Автор: HSolo, Отправлено:11:11 20-11-2006

Цитата:
Как сделать эту команду рабочей ? Представьте как это было бы дико удобно. И не только для пакетных файлов. От аналогичной команды для JS и VBS я бы тоже не отказался
Мысли как это реализовать - есть, но что то уж очень закручено получается...
Может у кого то есть элегантное решение вопроса. Ну, вот как, например для LUA:
Код:
command.name.0.*.lua=Execute Selection
command.0.*.lua=dostring $(CurrentSelection)
command.mode.0.*.lua=subsystem:lua,savebefore:no
    


HSolo
В процессе эксперементов обнаружился небольшой глюк меню:
Команды, приведенные выше, встают почему то последним пунктом меню
А после 1 выполнения автоматом перемещаются на положенное место.


Пожелания претворил в жизнь (http://rapidshare.com/files/4091666/WSciTE_171_23ru_with_changes_from_20112006.rar.html), к тому же самому хотелось переделать рекурсивное удаление на линейное.
Изменения смотрите в архиве.

Команда dostring выполняет чисто ЛУА скрипты, причем синтаксически правильные,
т.е. можно например выделить и выполнить строку типа: print(5+5)
В принципе можно модифицировать команду на что то подобное:

command.name.0.*.lua=Execute Selection
command.0.*.lua=dostring print($(CurrentSelection))
command.mode.0.*.lua=subsystem:lua,savebefore:no

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

command.parent.65=30
command.name.65.*=Execute String
command.65.*=dofile $(SciteDefaultHome)\Tools\exec.lua
command.mode.65.*=savebefore:no
command.subsystem.65.*=3
command.shortcut.65.*=Ctrl+E

Для того чтобы выполнялись досовые команды или скрипты по-моему надо указать command.mode.xx.*=subsystem:windows
Для WSH скриптов можно сначала вставлять выделение в файл и затем исполнять.
Сам не пробовал за ненадобностью, но думаю сработает.

Автор: pete, Отправлено:16:12 20-11-2006
Пересел таки на 1.71 .18Ru и сразу косяк выплыл, если использовать braces_autoclose.lua, то автоматические отступы перестают работать, как будто, indent.automatic=0. Лечится, если в конце braces_autoclose.lua убрать return 0.
Автор: mozers, Отправлено:17:50 20-11-2006
HSolo
Цитата:
Пожелания претворил в жизнь (http://rapidshare.com/files/4091666/WSciTE_171_23ru_with_changes_from_20112006.rar.html),

Цитата:
You have requested the file WSciTE_171_23ru_with_changes_from_20112006.rar (1168 KB).
This file has been downloaded 1 times already.
Кто то (не я) уже скачал...

По поводу остального - я думал так же и скрипт для выполнения выделенных строк уже написал. (Надо кому - выложу). Просто это - не слишком элегантный и правильный путь - я думал что кто то предложит что попроще

pete
Цитата:
Пересел таки на 1.71 .18Ru
Э..., дарагой, погляди на шапку
100 лет прошло как 18 сборка вышла. Давно уже все переделано по другому. И если и есть там какие ошибки, то совсем другие
Автор: pete, Отправлено:08:47 21-11-2006

Цитата:
Э..., дарагой, погляди на шапку [Image]
100 лет прошло как 18 сборка вышла. Давно уже все переделано по другому. И если и есть там какие ошибки, то совсем другие [Image]

Там уже пофиксено, что-то я отстал от жизни
Автор: ViSiToR, Отправлено:22:08 21-11-2006
Есть пару вопросов по поводу этого замечательного редактора (и извените если уже были)...

1)Как можно настройт его так, чтобы не нужно было при каждом запуске включать опцию Wrap (Перенос по строкам)?

2)А также, чтобы по умолчанию при запуске все вкалдки были свёрнутыми?

3)Возможно ли использовать экспорт скрипта (документа) в формат *.xml, но не через меню, а передав параметры ком. строки в приложение? т.е чтобы из командной строки можно было указать на файл, и экспортировать его средствами SciTE?
Автор: ogurec, Отправлено:00:03 22-11-2006
наткнулся на сайт http://caladbolg.net/scite.php
автор сайта Mitchell предлагает свои собственные наработки для scite
многие из них можно посмотреть в действии - на сайте есть скринкасты
Автор: vladvro, Отправлено:10:57 22-11-2006
ViSiToR

Цитата:
1)Как можно настройт его так, чтобы не нужно было при каждом запуске включать опцию Wrap (Перенос по строкам)?

2)А также, чтобы по умолчанию при запуске все вкалдки были свёрнутыми?

3)Возможно ли использовать экспорт скрипта (документа) в формат *.xml, но не через меню, а передав параметры ком. строки в приложение? т.е чтобы из командной строки можно было указать на файл, и экспортировать его средствами SciTE?

1) в файле настроек (например в SciTEGlobal.properties, открыть который можно через меню Options->Open Global Options File) находим wrap=0 и меняем 0 на 1, либо если такой строчки нет, то просто ее добавляем

2) аналогично первому делаем fold.on.open=1

3) да, вот строка запуска:
SciTE.exe -check.if.already.open=0 "-open:<имя исходного файла>" "-exportasxml:<имя получаемого файла>" -quit:
Автор: mozers, Отправлено:12:35 22-11-2006
ogurec
Цитата:
наткнулся на сайт http://caladbolg.net/scite.php
Интересная сборка. Несколько решений Мишеля используются в SciTE-Ru.
Про нее уже писали тут и тут.

Перезалил [22.11.2006] Ядро 1.71 .24Ru
Подменю теперь рисуются с помощью нового кода от HSolo

Автор: mikeuz, Отправлено:16:57 22-11-2006
Не могли бы Вы кинуть готовые куски конфигов с путями до компиляторов?
Например, C:\BC и C:\Program Files\OpenWatcom.

И куда прикручивать "левые" библиотеки Си, чтобы SciTE их учитывал.
Автор: mozers, Отправлено:17:07 22-11-2006
Обнаружил давнюю багу, которую сам и сотворил
Я - про доработку кода, именуемую [FindInFiles].
Работать то она - работает и русский выделенный текст в диалог поиска в файлах вставляется не в крякозяблах.
Но она дает и нехороший побочный эффект: русский выделенный текст в обычный диалог поиска вообще не вставляется
Я на С не пишу, поэтому сообразить никак не могу где надо подкрутить чтоб все работало как надо.
Знатоки! - ПОМОЖИТЕ!
Автор: Smitis, Отправлено:18:45 22-11-2006
Подскажите, есть в SciTE подсветка синтаксиса PowerBasic? Вроде, он упоминается, но соотвествующего файла properties нигде нет.
Автор: mozers, Отправлено:22:43 22-11-2006
Перезалил [22.11.2006] Ядро 1.71 .24Ru
dB6 оперативно откликнулся и исправил мою ошибку с автоматической вставкой выделенного русского текста в диалог поиска

mikeuz
Цитата:
куда прикручивать "левые" библиотеки Си, чтобы SciTE их учитывал
SciTE ничего не "учитывает", а просто выполняет одну единственную команду с параметрами, которую можно с аналогичным успехом выполнить и из обычной командной строки. (Из SciTE просто удобнее)
Т.е. если ваша прога не компилится с ком. строки, то и из SciTE она ни при каком раскладе компилится не будет.
О самом простом способе компиляции (с помощью Borland C++ 5.5) я рассказывал и на сайте и в топике.

Smitis
По умолчанию используется vb.properties с лексером vb. Можно так же использовать freebasic.properties (тут обработку ведет другой лексер - freebasic). Лично меня вполне удовлетворяет первый вариант.
Автор: Smitis, Отправлено:22:51 22-11-2006
mozers

Цитата:
По умолчанию используется vb.properties с лексером vb. Можно так же использовать freebasic.properties (тут обработку ведет другой лексер - freebasic). Лично меня вполне удовлетворяет первый вариант.

Т.е. нету Жаль
А лексер для VB много чего не понимает.
Автор: mozers, Отправлено:23:35 22-11-2006
Smitis
А поконкретней можно? Все же вполне поправимо... и в большинстве случаев решается правкой соответствующего файла .properties
Автор: mikeuz, Отправлено:00:51 23-11-2006
2 mozers
Нижайше извиняюсь, но мне не интересно компилировать SciTE.
Мне хочется пользоваться им для написания ДРУГИХ программ...
Sorry.
Автор: ViSiToR, Отправлено:02:35 23-11-2006
vladvro
Приогромнейшее спасибо!

А по поводу ком. строки, не подскажешь, где можно посмотреть параметры относящиеся к SciTE, т.е как узнать полный список подерживаемых ключей?
Автор: ALeXkRU, Отправлено:05:27 23-11-2006
ViSiToR

Цитата:
где можно посмотреть параметры относящиеся к SciTE

в справочку загляни (для начала ) - в папке help есть такой файлик SciTEDoc_rus.html (это, конечно про SciTE 1.71 Ru-Board Edition) или SciTEDoc.html
а в нем раздел:
Цитата:
Параметры коммандной строки




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