Архив SciTE-форума
Автор: mozers, Отправлено:11:21 07-11-2006
SciTE 1.71 .23Ru-Board Edition [Сборка 07.11.2006]
Автор: codewarlock1101, Отправлено:18:20 07-11-2006
mozers
Че-то намутили! Теперь статус бар не прорисовывается автоматически!
Автор: unreal666, Отправлено:19:15 07-11-2006
codewarlock1101
А чего там не прорисовывается? Выделяю например что-нибудь (или изменяю лексер) - в строке состояния это показывается.
Добавлено:
mozers
Обзывай файл в инсталляторе не SciTE, а например SciTE_setup. А то имя файла (и его иконка) перекликается с самим исполняемым файлом SciTE.
Добавлено:
mozers
А чем ты компилировал SciTE.exe и с какими опциями ?
Чего-то пытаюсь компилить Visual Studio 2003 - файл получается 620 кб, а у тебя 452 кб (а SciLexer.dll вообще 788 кб против 330 кб твоих).
Как у тебя такой размер получился?
Автор: codewarlock1101, Отправлено:21:07 07-11-2006
unreal666
Попробуй это сделать при редактировании главного файла настроек
Автор: ALeXkRU, Отправлено:22:52 07-11-2006
unreal666
Цитата:
|
А чем ты компилировал SciTE.exe и с какими опциями ? Чего-то пытаюсь компилить Visual Studio 2003 - файл получается 620 кб, а у тебя 452 кб (а SciLexer.dll вообще 788 кб против 330 кб твоих). Как у тебя такой размер получился? |
так, наверняка - этим
Автор: mozers, Отправлено:23:33 07-11-2006
codewarlock1101
Цитата:
| Че-то намутили! Теперь статус бар не прорисовывается автоматически! |
Код:
|
-- Скрипт для автоматического сворачивания всех секций SciTEGlobal.properties -- при его открытии или при первом переключении на его закладку -- mozers™ ----------------------------------------------- local function ToggleFoldAll() if props['fold.compess'] ~= '1' then for i = 0,editor.LineCount do if editor.FoldLevel[i] > SC_FOLDLEVELHEADERFLAG then editor:MarkerAdd(i,1) editor:ToggleFold(i) end end props['fold.compess']='1' end end -- Добавляем свой обработчик события OnOpen local old_OnOpen = OnOpen function OnOpen(file) local result if old_OnOpen then result = old_OnOpen(file) end if props['FileNameExt'] == 'SciTEGlobal.properties' then props['fold.compess'] = '0' end return result end -- Добавляем свой обработчик события OnUpdateUI local old_OnUpdateUI = OnUpdateUI function OnUpdateUI () local result if old_OnUpdateUI then result = old_OnUpdateUI() end if props['FileNameExt'] == 'SciTEGlobal.properties' then if ToggleFoldAll() then return true end end return result end |
unreal666
Цитата:
| А чем ты компилировал SciTE.exe и с какими опциями ? |
Код:
|
@echo off set DevEnvDir=c:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE SET VC=c:\Program Files\Microsoft Visual Studio .NET 2003 set MSVCDir=%VC%\VC7 set PATH=%DevEnvDir%;%MSVCDir%\BIN;%VC%\Common7\Tools;%VC%\Common7\Tools\bin\prerelease;%VC%\ ;Common7\Tools\bin;%PATH%; set INCLUDE=%MSVCDir%\ATLMFC\INCLUDE;%MSVCDir%\INCLUDE;%MSVCDir%\PlatformSDK\include\prerelease;% MSVCDir%\PlatformSDK\include; set LIB=%MSVCDir%\ATLMFC\LIB;%MSVCDir%\LIB;%MSVCDir%\PlatformSDK\lib\prerelease;%MSVCDir%\ PlatformSDK\lib; cd scintilla\win32 nmake -f scintilla.mak cd ..\.. cd scite\win32 nmake -f scite.mak |

В MinGW тоже, кстати, неплохо получается, только предупреждения сыплются непонятные...
Автор: unreal666, Отправлено:00:40 08-11-2006
Цитата:
| Поставил Microsoft Visual Studio .NET 2003 |
Аналогично. Только после запуска твоего батника вылазит такая фигня:
Цитата:
|
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. cl -Zi -TP -W4 -Zc:forScope -Zc:wchar_t -D_CRT_SECURE_NO_DEPRECATE=1 -O1 -MT -DNDEBUG -GL -I../include -I../src -c -Fo.\AutoComplete.obj ..\src\AutoComplete.cxx Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. Command line error D2016 : '/Ze' and '/Za' command-line options are incompatible NMAKE : fatal error U1077: 'cl' : return code '0x2' Stop. |
Т.е. чего-то с опциями компилятора. Только где они хранятся - хрен его знает.
Кстати, такой большой размер получился при компиляции через GUI (файлы проектов для VC - SciTE.dsp и SciLexer.dsp). Выставлял и оптимизация по размеру и по скорости. Один хрен - одинакового большого размера получаются.
Автор: IMPOMEZIA, Отправлено:00:58 08-11-2006
unreal666
Цитата:
|
Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. |
и
Цитата:
|
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. |
это говорит только об одном - для компиляции используется Microsoft Visual Studio 6.0 почему-то

Автор: unreal666, Отправлено:02:00 08-11-2006
IMPOMEZIA
Цитата:
| это говорит только об одном - для компиляции используется Microsoft Visual Studio 6.0 почему-то |
Спасибо за подсказку. Не обратил на это внимание.
Просто у меня стоит и Visual Studio 6 (точнее стоял - я его сейчас удалил).
А при копировании содержимого батника из поста в конце строк с SET вставились пробелы. Поэтому он их не находил и искал в путях из переменных окружения, а в них у меня как раз прописан Visual Studio 6.
Удалил 6-ку (можно было просто убрать пробелы в конце строк с SET
) и при попытке компиляции выдало, что файл nmake не является внутренней или внешней командой и я догадался, что что-то не так с путями в файле.Убрал эти пробелы и все откомпилилось нормально.
Автор: codewarlock1101, Отправлено:11:01 08-11-2006
Если открыт один файл, то переключение шрифтов по Ctrl+F11 не работает.
В файле Common.lua находится функция CurrentWord, которая не используется ни каким из скриптов
Автор: mozers, Отправлено:11:15 08-11-2006
codewarlock1101
Знаю
Я вот как исправить - нет
(( Поглядите FontChanger.lua - может у кого и получится без применения тяжелой артиллерии...CurrentWord - это так, прозапас
Автор: codewarlock1101, Отправлено:11:57 08-11-2006
mozers
Лови!
Код:
|
-- Смена текущих установок шрифта -- C блеском заменяет Ctrl+F11. -- Действует одновременно на все отрытые буфера -- Можно задать любые комбинации шрифтов -- mozers™ icq#256106175 (выполняя пожелание Moon_aka_Sun) -- Для подключения добавьте в свой файл .properties наборы необходимых шрифтов (font.0.* и font.1.*) ------------------------------------------------ function FontChange() if props["font.set"] ~= "1" then props["font.base"] = props["font.1.base"] props["font.small"] = props["font.1.small"] props["font.comment"] = props["font.1.comment"] props["font.set"] = "1" else props["font.base"] = props["font.0.base"] props["font.small"] = props["font.0.small"] props["font.comment"] = props["font.0.comment"] props["font.set"] = "0" end editor.Zoom = editor.Zoom end -- Добавляем свой обработчик события, возникающего при вызове пункта меню "Use Monospaced Font" local old_OnMenuCommand = OnMenuCommand function OnMenuCommand (msg, source) local result=true if old_OnMenuCommand then result = old_OnMenuCommand(msg, source) end if msg == 450 then --IDM_MONOFONT FontChange() end return result end |
Тут реально приходится колдовать.... Попробуй поиграться с result..... мистика млин
Вообще предлагаю свою реализацию этого скрипта ( плюсы -- можно просто добавить еще несколько наборов шрифтов и они подцепятся без заморочек)
Код:
|
function FontChange() if props["font.set"]=="" then props["font.set"]="0" end local nxt_font=string.char(string.byte(props["font.set"])+1) if props["font."..nxt_font..".base"]=="" then nxt_font="0" end props["font.base"] = props["font."..nxt_font..".base"] props["font.small"] = props["font."..nxt_font..".small"] props["font.comment"] = props["font."..nxt_font..".comment"] props["font.set"]=nxt_font editor.Zoom = editor.Zoom end -- Добавляем свой обработчик события, возникающего при вызове пункта меню "Use Monospaced Font" local old_OnMenuCommand = OnMenuCommand function OnMenuCommand (msg, source) local result=true if old_OnMenuCommand then result = old_OnMenuCommand(msg, source) end if msg == 450 then --IDM_MONOFONT FontChange() end return result end |
Автор: mozers, Отправлено:13:10 08-11-2006
codewarlock1101
Эээ..., дарагой, ты - неправ.
Ты убрал return "" и поэтому скрипт возвращает управление Скайту. В результате выполняется не то, что задумано, а срабатывает стандартная команда IDM_MONOFONT
Автор: codewarlock1101, Отправлено:13:13 08-11-2006
mozers
Че-то не понял... Работает же!
Автор: mozers, Отправлено:16:40 08-11-2006
codewarlock1101
Ну мы поняли друг друга
Объясню для остальных:Скрипты, приведенные codewarlock1101 прекрасно работают будучи запущенными из меню Tools (тогда код "Добавляем свой обработчик события..." можно вообще из них убирать).
Но вот если их навешивать вместо стандартных событий (в данном случае вместо IDM_MONOFONT) то надо серьезно озадачиваться тем, что вернет скрипт по результату своей работы.
В данном конкретном случае (подмены события OnMenuCommand), если скрипт не будет возвращать пустую строку "" то после выполнения этого скрипта, выполнится еще до кучи и стандартная команда IDM_MONOFONT и изуродует результаты его работы

Автор: codewarlock1101, Отправлено:17:20 08-11-2006
mozers
А вот это уж точно работает как надо!!!! [[Тебе на заметку - return "" -- все же не причем
]]Код:
|
-- Смена текущих установок шрифта -- C блеском заменяет Ctrl+F11. -- Действует одновременно на все отрытые буфера -- Можно задать любые комбинации шрифтов -- mozers™ icq#256106175 (выполняя пожелание Moon_aka_Sun) -- Для подключения добавьте в свой файл .properties наборы необходимых шрифтов (font.0.* и font.1.*) ------------------------------------------------ local function FontChange() if props["font.set"]=="" then props["font.set"]="0" end local nxt_font=string.char(string.byte(props["font.set"])+1) if props["font."..nxt_font..".base"]=="" then nxt_font="0" end props["font.base"] = props["font."..nxt_font..".base"] props["font.small"] = props["font."..nxt_font..".small"] props["font.comment"] = props["font."..nxt_font..".comment"] props["font.set"]=nxt_font end -- Добавляем свой обработчик события, возникающего при вызове пункта меню "Use Monospaced Font" local enable_idm=true local old_OnMenuCommand = OnMenuCommand function OnMenuCommand (msg, source) local result=false if old_OnMenuCommand then result = old_OnMenuCommand(msg, source) end if enable_idm==true and msg == 450 then --IDM_MONOFONT FontChange() enable_idm=false scite.MenuCommand("IDM_MONOFONT") enable_idm=true end return result end |
Автор: vladvro, Отправлено:17:43 08-11-2006
mozers,codewarlock1101
друзья мои, хватит народ вводить в заблуждение!
mozers-у я уже писал, теперь повторю для всех:
все обработчики кроме OnSendEditor на выходе ожидают булевское значение handled, и если оно равно true, то если есть дальнейшая обработка, то она не делается, причем nil, которое возвращается по умолчанию, приравнивается к false, в случае с OnSendEditor - на выходе ожидается текстовое значение, и если оно не NULL, то тогда прекращается дальнейшая обработка, причем нюанс нынешней реализации состоит в том, что в NULL превращается не только nil, но и булевские значения (false и true)!
Автор: codewarlock1101, Отправлено:17:50 08-11-2006
а теперь следующий косяк! - подсветка фона определенная для ключевых слов и выражений, не показывается сразу после открытия файла (например string.gsub и подобный сининьким выделяются). А нормально начинает прорисовыватсья только после действий (типа zoom +-, или monofont). Нахимичено в ReadOnly.lua -- отключаешь - и все нормально
Добавлено:
vladvro
Что-то доходит до меня как до жирафа.... Если можешь - дай пожалуйста объяснения на примере.
1) Что значит на "выходе ожидают"???
Есть код:
local old_OnOpen = OnOpen
function OnOpen(file)
local result
if old_OnOpen then result = old_OnOpen(file) end
if props['FileNameExt'] == 'SciTEGlobal.properties' then
props['fold.compess'] = '0'
end
return result
end
красным - вызывает предыдущий обработчик, верно? ну и как он реагирует на результат? Один фих - следующие строки сработают.... и этот же результат он вернет в обработчик, которы его так же, в свою очередь перегрузил.... И так же нифига result не повлияет на ход событий...
Лучше даже, если сможешь привести наглядный пример, и объясни плиз как работает перегрузка обработчиков
Автор: mozers, Отправлено:21:22 08-11-2006
codewarlock1101
Цитата:
| А вот это уж точно работает как надо!!!! |
Неа. Не работает. Ты бы хоть проверил перед публикацией...
Единственное, что действительно принимается - это идея с nxt_font. Вот - действительно рабочий и проверенный вариант: [more]
Код:
|
-- Смена текущих установок шрифта -- C блеском заменяет Ctrl+F11. -- Действует одновременно на все отрытые буфера, циклически переключая заданные наборы шрифтов -- Можно задать любое количество комбинаций шрифтов -- mozers, codewarlock1101 -- Для подключения добавьте в свой файл .properties наборы необходимых шрифтов (font.0.*, font.1.*, font.2.*,...) ------------------------------------------------ local function FontChange() if props["font.set"]=="" then props["font.set"]="0" end local nxt_font=string.char(string.byte(props["font.set"])+1) if props["font."..nxt_font..".base"]=="" then nxt_font="0" end props["font.base"] = props["font."..nxt_font..".base"] props["font.small"] = props["font."..nxt_font..".small"] props["font.comment"] = props["font."..nxt_font..".comment"] props["font.set"]=nxt_font scite.MenuCommand("IDM_PREVFILE") scite.MenuCommand("IDM_NEXTFILE") -- used for updates current buffer return true end -- Добавляем свой обработчик события, возникающего при вызове пункта меню "Use Monospaced Font" local old_OnMenuCommand = OnMenuCommand function OnMenuCommand (msg, source) local result if old_OnMenuCommand then result = old_OnMenuCommand(msg, source) end if msg == 450 then --IDM_MONOFONT if FontChange() then return true end end return result end |
Цитата:
| Тебе на заметку - return "" -- все же не причем |

Единственный скрытый баг скрипта - выделенная строчка (она сработает если открыто более 1 файла). Но чем ее заменить - не знаю

vladvro
Изложил я, кстати, твои же выводы, только своими словами. Где я наврал?
Ну объясняй сам, если не нравится
Только ПОНЯТНО объясняй 
codewarlock1101
Цитата:
| Нахимичено в ReadOnly.lua |
Код:
|
for i = 0, 32 do editor.StyleBack = color end |

Добавлено:
А во-вторых нашел свою багу и прибил
[more]Код:
|
-- Наглядная установка/снятие режима "только для чтения" -- индикация текущего режима буфера в строке состояния и цветом фона -- VladVRO, mozers -- Подключение: -- В файл SciTEStartup.lua добавьте строку: -- require (props["SciteDefaultHome"].."\\tools\\ReadOnly.lua") -- включите scite.readonly в статусную строку: -- statusbar.text.1=Line:$(LineNumber) Col:$(ColumnNumber) [$(scite.readonly)] -- задайте в файле .properties цвет фона в режиме "только для чтения": -- style.back.readonly=#F2F2F1 ------------------------------------------------ -- Функция преобразования цвета из RGB в win local function encodeRGB(color) if string.sub(color,1,1)=="#" and string.len(color)>6 then return tonumber(string.sub(color,6,7)..string.sub(color,4,5)..string.sub(color,2,3), 16) else return color end end local function SetViewMode() if props["style.back.readonly"]~='' then local color = encodeRGB(props["style.back.readonly"]) editor.StyleBack[0] = color editor.StyleBack[2] = color editor.StyleBack[4] = color editor.StyleBack[5] = color editor.StyleBack[6] = color editor.StyleBack[10] = color editor.StyleBack[11] = color editor.StyleBack[32] = color end end local function SetEditMode() if editor.ReadOnly then local s,e,back = string.find(props["style.*.32"], "back #%x%x%x%x%x%x)")if back~=nil then local color = encodeRGB(back) editor.StyleBack[0] = color editor.StyleBack[2] = color editor.StyleBack[4] = color editor.StyleBack[5] = color editor.StyleBack[6] = color editor.StyleBack[10] = color editor.StyleBack[11] = color editor.StyleBack[32] = color end end end local function SetReadOnly(ro) if ro then SetViewMode() props["scite.readonly"] = "VIEW" else SetEditMode() props["scite.readonly"] = "EDIT" end scite.UpdateStatusBar() return true end -- Добавляем свой обработчик события OnSwitchFile local old_OnSwitchFile = OnSwitchFile function OnSwitchFile(file) local result if old_OnSwitchFile then result = old_OnSwitchFile(file) end if SetReadOnly(editor.ReadOnly) then return true end return result end -- Добавляем свой обработчик события OnOpen local old_OnOpen = OnOpen function OnOpen(file) local result if old_OnOpen then result = old_OnOpen(file) end if SetReadOnly(editor.ReadOnly) then return true end return result end -- Добавляем свой обработчик события, возникающего при вызове пункта меню "Read-Only" local old_OnSendEditor = OnSendEditor function OnSendEditor(id_msg, wp, lp) local result if old_OnSendEditor then result = old_OnSendEditor(id_msg, wp, lp) end if id_msg == SCI_SETREADONLY then if SetReadOnly(wp~=0) then return true end end return result end |
Автор: unreal666, Отправлено:02:33 09-11-2006
mozers
Цитата:
| А во-вторых нашел свою багу и прибил |
Слава богу. А то у меня с твоим предыдущим вариантом в nncron-файлах подсветка синтаксиса совсем кривая была (не работала подсветка фона для конца и начал задач).
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 /

