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

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

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


Автор: mozers, Отправлено:16:49 26-03-2007
dB6
Не въехал я в смысл твоего предложения, но код исправил в точном соответствии.
Откомпилилось безо всяких предупреждений
Автор: mozers, Отправлено:22:42 26-03-2007
ALL
Маленькое пожелание на тему новой функции os.exec от Midas:
Нельзя ли добавить опцию WaitOnReturn (т.е. ждать окончания выполнения или нет) ?
А если бы os.exec возвращала код завершения запущенного процесса, то это было бы вообще идеально

Корректное решение для записи ReadOnly файлов, я так понял, еще не найдено?
Автор: vladvro, Отправлено:14:52 27-03-2007
Благодаря замечаниям и предложениям mozers вышла новая версия скрипта по раскраске кода для форума подробнее...

новшества:
- блок код дополняется заголовком с именем файла и номером строки (если был выделен кусок кода), и подписью внизу блока со ссылкой на исходник в форуме,
- стили "строка" и "комментарий" дополнительно обрамляются тегом отмены формата, для экранирования возможных вхождений в них тегов формата,
- символы табуляции заменяются на пробелы.
Автор: mimir, Отправлено:17:43 27-03-2007

Цитата:
Маленькое пожелание на тему новой функции os.exec от Midas:
Нельзя ли добавить опцию WaitOnReturn (т.е. ждать окончания выполнения или нет) ?
А если бы os.exec возвращала код завершения запущенного процесса, то это было бы вообще идеально


Вот сделал через CreateProcess ибо WinExec устарела ( так говорит MSDN ).
Все тонкости еще сам не разобрал, но на сколько я понял для запуска команд надо явно указывать cmd.exe (bat можно и сразу).
И если процесс не завершился то тоже не ясно какой код должен вернуться.

[more=подробнее...][/color] строка 1
Код:
static int l_CreateProcess(lua_State *L){
static const MAX_CMD = 1024;
BOOL RetCode = 0;
int DoWait = 0;
int top = lua_gettop(L);
char *CmdLine = 0;
STARTUPINFO si;
PROCESS_INFORMATION pi;
DWORD exit_code = 0;[no]//Код завершения процесса
[/no]

if(top == 0){
lua_pushnil(L);
lua_pushstring(L,[no]"No parameters!"[/no]);
return 2;
}

if( !lua_isstring(L,1) ){
lua_pushnil(L);
lua_pushstring(L,[no]"First param must be a string!"[/no]);
return 2;
}
if( top > 1 ){
if( !lua_isboolean(L,2) ){
lua_pushnil(L);
lua_pushstring(L,[no]"Second param must be a boolean!"[/no]);
return 2;
}
DoWait = lua_toboolean(L, 2);
}

CmdLine = malloc(MAX_CMD * sizeof(char));
ZeroMemory( CmdLine , sizeof(MAX_CMD * sizeof(char)) );
strncpy(CmdLine,luaL_checkstring(L,1),MAX_CMD-1);

ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );

[no]// Start the child process.
[/no]
RetCode = CreateProcess(
NULL, [no]// No module name (use command line)
[/no]
CmdLine, [no]// Command line
[/no]
NULL, [no]// Process handle not inheritable
[/no]
NULL, [no]// Thread handle not inheritable
[/no]
FALSE, [no]// Set handle inheritance to FALSE
[/no]
0, [no]// No creation flags
[/no]
NULL, [no]// Use parent's environment block
[/no]
NULL, [no]// Use parent's starting directory
[/no]
&si, [no]// Pointer to STARTUPINFO structure
[/no]
&pi [no]// Pointer to PROCESS_INFORMATION structure
[/no]
);

if( ! RetCode ){
lua_pushnil(L);
push_lasterr(L,[no]"\"CreateProcess\""[/no]);
free(CmdLine);
return 2;
}
CloseHandle( pi.hThread );
if(DoWait){
[no]// Wait until child process exits.
[/no]
WaitForSingleObject( pi.hProcess, INFINITE );
}
free(CmdLine);

GetExitCodeProcess(pi.hProcess,&exit_code);
[no]// Close process and thread handles.
[/no]
CloseHandle( pi.hProcess );

lua_pushnumber( L, exit_code );
return 1;
}
[color=Gray]Данный код внедрен в форум с помощью скрипта vladvro[/more]

Автор: vladvro, Отправлено:11:14 28-03-2007
Очередное обновление скрипта по раскраске кода для форума подробнее...

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

добавлено:
версия 1.4:
- добавлено корректное экранирование всех тегов формата для стилей "строка" и "комментарий"

Добавлено:
mimir

Цитата:
Вот сделал через CreateProcess ...

гуд, токо далеко не все понятно с этой функцией:
если пробуем вызвать os.exec("notepad.exe",true) возвращает 0, в MSDN сказано что это ошибка, пробуем получить сообщение об ошибке:
liolib.c строка 672
Код:
if( !exit_code ){
lua_pushnil(L);
push_lasterr(L,[no]"\"GetExitCodeProcess\""[/no]);
free(CmdLine);
return 2;
}
Данный код внедрен в форум с помощью скрипта vladvro
получаем:
Цитата:
"GetExitCodeProcess" failed with error 0: Операция успешно завершена.

как-то не логично...


Цитата:
И если процесс не завершился то тоже не ясно какой код должен вернуться.

а тут вроде ясно из MSDN:
If a process happens to return STILL_ACTIVE (259) as an error code, applications that test for this value could end up in an infinite loop.
259 и возвращает
Автор: mimir, Отправлено:15:54 28-03-2007
Не надо путать код возврата процесса и код возврата функции.
Процесс может вернуть что угодно (иногда это даже документируют).
Например вызвал программу для отсылки почты, а она в случаи успех завершается с кодом 0, а если например сеть не доступна, то с кодом 1 , и т.д. И GetLastError тут совершенно не причем. Он возвращает ошибки произошедшие в ФУНКЦИИ ТЕКУЩЕГО ПОТОКА.

Автор: vladvro, Отправлено:17:00 28-03-2007
mimir
Цитата:
Не надо путать код возврата процесса и код возврата функции.
а, точно... попутал

Автор: vladvro, Отправлено:11:15 30-03-2007
небольшое обновление скрипта по раскраске кода для форума подробнее...

версия 1.4.1:
- если выделение содержит весь текст, то номер строки в заголовке не указывается
- при отображении куска кода убрана пустая строка в конце блока
Автор: Cicatriz, Отправлено:21:25 30-03-2007
привет пользуюсь рубордовской версией и есть одна не большая проблемка, когда делаю экспорт в HTML то линии со словами получаются засвечены белыми полосами что очень бесит, кто-то знает как это убрать?

вот тут пример <<<<<<<<<<Ссылка>>>>>>>>>
Автор: 8AleX8, Отправлено:11:52 31-03-2007
SciTE 1.73
http://scintilla.sourceforge.net/ScintillaHistory.html
Автор: vladvro, Отправлено:14:53 31-03-2007
обновил скрипт для макросов [more]
macro_support.lua
Код:
[no]--[[[/no]
[no]Macros support for SciTE[/no]
[no]Version 2.0[/no]
[no]Author: VladVRO[/no]
[no]---------------------------------------------------[/no]
[no]Description:[/no]
[no] macros recording, storing and playing support[/no]
[no] (Поддержка записи и воспроизведения макросов)[/no]

[no]Using:[/no]
[no] add next line into SciTEGlobal.properties:[/no]
[no] ext.lua.startup.script=$(SciteDefaultHome)\macro_support.lua[/no]
[no] or if you already have startup script than add next line in it:[/no]
[no] require ("macro_support.lua")[/no]

[no] and next lines into SciTEUser.properties:[/no]
[no] command.name.40.*=Macro Load From Selection[/no]
[no] command.40.*=MacroLoadFromSelection[/no]
[no] command.mode.40.*=subsystem:lua,savebefore:no[/no]

[no] command.name.41.*=Macro Fill To Buffer[/no]
[no] command.41.*=MacroFillToBuffer[/no]
[no] command.mode.41.*=subsystem:lua,savebefore:no[/no]

[no] command.name.42.*=Macro Fill To Buffer (LUA code)[/no]
[no] command.42.*=MacroFillToBuffer LUA[/no]
[no] command.mode.42.*=subsystem:lua,savebefore:no[/no]
[no]---------------------------------------------------[/no]
[no]]][/no]

scite.Perform([no]"macroenable:1"[/no])

[no]-- global tables[/no]
local glb_macro_buf = {}
local glb_macros_table = {}
local glb_macros_name_table = {}

[no]-- position in list for new recorded macro[/no]
[no]-- -1 - last position[/no]
[no]-- default = 1[/no]
local new_position = props[[no]'macro.new.record.position'[/no]]
if new_position == [no]""[/no] then
new_position = 1
else
new_position = tonumber(new_position)
end

[no]-- path to file with macros[/no]
macro_file = props[[no]'macro.file.path'[/no]]
if macro_file == [no]""[/no] then
macro_file = props[[no]'scite.userhome'[/no]]
if macro_file == [no]""[/no] then macro_file = props[[no]'SciteDefaultHome'[/no]] end
macro_file = macro_file..[no]"\\SciTE.macro"[/no]
end


function OnMacro(cmd, msg)
if cmd == [no]"macro:run"[/no] then
if msg == [no]"<clean list>"[/no] then
scite.Perform([no]"currentmacro:"[/no])
while table.getn(glb_macros_name_table) > 0 do
glb_macros_table[glb_macros_name_table[1]] = nil
table.remove(glb_macros_name_table,1)
end
else
local macro = glb_macros_table[msg]
if macro then
editor:BeginUndoAction()
for _,val in macro do
local c,lp,wp = unpack(val)
if IFACE_FUNCTIONS_USE_WP[c] then
scite.SendEditor(c,wp,lp)
else
scite.SendEditor(c,lp,0)
end
end
editor:EndUndoAction()
end
end
elseif cmd == [no]"macro:record"[/no] then
for c,wp,_,lp in string.gfind(msg, [no]"(%d+);(%d+);(%d+);(.*)"[/no]) do
table.insert(glb_macro_buf, {tonumber(c),lp,wp})
end
elseif cmd == [no]"macro:startrecord"[/no] then
table_clear(glb_macro_buf)
[no]-- visualization[/no]
if props[[no]'style.*.33.normal'[/no]] == [no]""[/no] then props[[no]'style.*.33.normal'[/no]] = props[[no]'style.*.33'[/no]] end
if props[[no]'macro.recording.numfield.style'[/no]] ~= [no]""[/no] then
props[[no]"style.*.33"[/no]] = props[[no]'macro.recording.numfield.style'[/no]]
scite.Perform([no]"reloadproperties:"[/no])
end
elseif cmd == [no]"macro:stoprecord"[/no] then
local name = MacroAddToList(glb_macro_buf, nil, new_position)
scite.Perform([no]"currentmacro:"[/no]..ifnil(name,[no]""[/no]))
table_clear(glb_macro_buf)
[no]-- visualization[/no]
if props[[no]'macro.recording.numfield.style'[/no]] ~= [no]""[/no] then
props[[no]'style.*.33'[/no]] = props[[no]'style.*.33.normal'[/no]]
scite.Perform([no]"reloadproperties:"[/no])
end
[no]-- autosave[/no]
if props[[no]'macro.autosave'[/no]] == [no]"1"[/no] then
MacroSaveToFile(macro_file)
end
elseif cmd == [no]"macro:getlist"[/no] then
if table.getn(glb_macros_name_table) > 0 then
local list = [no]""[/no]
for _,name in glb_macros_name_table do
list = list..name..[no]";"[/no]
end
list = list..[no]"<clean list>"[/no]
local old_sep = editor.AutoCSeparator
editor.AutoCSeparator = string.byte([no]';'[/no])
scite.Perform([no]"macrolist:"[/no]..list)
editor.AutoCSeparator = old_sep
else
print([no]"> no macros yet!"[/no])
end
end
end

function MacroAddToList(macro, name, pos)
if table.getn(macro) > 0 then
if not name then
local i = table.getn(glb_macros_name_table)
repeat
i = i + 1
name = [no]"record"[/no]..i
until glb_macros_table[name] == nil or i > 9999
end
if not glb_macros_table[name] or table.getn(glb_macros_name_table) == 0 then
if pos then
table.insert(glb_macros_name_table, pos, name)
else
table.insert(glb_macros_name_table, name)
end
end
glb_macros_table[name] = table_icopy({},macro)
end
return name
end

local function macro_to_string(mode)
local text = [no]""[/no]
local iface_num2name = {}
for name,num in IFACE_FUNCTIONS do
iface_num2name[num] = name
end
if mode == [no]"LUA"[/no] then
mode = true
else
mode = false
end
for _,name in glb_macros_name_table do
macro = glb_macros_table[name]
if macro then
text = text..[no]"\n--- "[/no]..name..[no]" ---\n"[/no]
for _,val in macro do
local c,lp,wp = unpack(val)
if string.len(lp) > 0 then
for _,v in MACRO_CONVERT_CHARS do
lp = string.gsub(lp,unpack(v))
end
lp = [no]"'"[/no]..lp..[no]"'"[/no]
end
if mode then
if IFACE_FUNCTIONS_USE_WP[c] then
if string.len(lp) > 0 then
wp = wp..[no]", "[/no]
end
else
wp = [no]""[/no]
end
text = text..[no]"editor:"[/no]..ifnil(iface_num2name[c],c)..[no]"("[/no]..wp..lp..[no]")\n"[/no]
else
text = text..ifnil(iface_num2name[c],c)..[no]";"[/no]..wp..[no]";"[/no]..lp..[no]"\n"[/no]
end
end
end
end
return text
end

local function macro_load(text)
local macro = {}
local name = nil
local text = text..[no]"\n"[/no]
for str in string.gfind(text, [no]"([^\n]*)[\n]"[/no]) do
if string.sub(str, 1, 3) == [no]"---"[/no] then
MacroAddToList(macro, name)
macro = {}
name = nil
for a in string.gfind(str, [no]"([%w_]+)"[/no]) do
name = a; break;
end
else
str = string.gsub(str, [no]"\r"[/no], [no]""[/no])
for fnc,wp,lp in string.gfind(str, [no]"(%w+);(%d+);(.*)"[/no]) do
local c = IFACE_FUNCTIONS[fnc]
if c then
if string.len(lp) > 0 then
lp = dostring([no]"return "[/no]..lp)
end
table.insert(macro, {c,lp,wp})
else
print([no]"> undefined function "[/no]..fnc)
return false
end
end
end
end
MacroAddToList(macro, name)
end


MACRO_CONVERT_CHARS = {
{[no]"\\"[/no], [no]"\\\\"[/no]},
{[no]"\'"[/no], [no]"\\\'"[/no]},
{[no]"\r"[/no], [no]"\\r"[/no]},
{[no]"\n"[/no], [no]"\\n"[/no]},
}

IFACE_FUNCTIONS = {
[[no]"AddText"[/no]] = 2001,
[[no]"AppendText"[/no]] = 2282,
[[no]"BackTab"[/no]] = 2328,
[[no]"Cancel"[/no]] = 2325,
[[no]"CharLeft"[/no]] = 2304,
[[no]"CharLeftExtend"[/no]] = 2305,
[[no]"CharLeftRectExtend"[/no]] = 2428,
[[no]"CharRight"[/no]] = 2306,
[[no]"CharRightExtend"[/no]] = 2307,
[[no]"CharRightRectExtend"[/no]] = 2429,
[[no]"Clear"[/no]] = 2180,
[[no]"ClearAll"[/no]] = 2004,
[[no]"Copy"[/no]] = 2178,
[[no]"CopyRange"[/no]] = 2419,
[[no]"Cut"[/no]] = 2177,
[[no]"DelLineLeft"[/no]] = 2395,
[[no]"DelLineRight"[/no]] = 2396,
[[no]"DelWordLeft"[/no]] = 2335,
[[no]"DelWordRight"[/no]] = 2336,
[[no]"DeleteBack"[/no]] = 2326,
[[no]"DeleteBackNotLine"[/no]] = 2344,
[[no]"DocumentEnd"[/no]] = 2318,
[[no]"DocumentEndExtend"[/no]] = 2319,
[[no]"DocumentStart"[/no]] = 2316,
[[no]"DocumentStartExtend"[/no]] = 2317,
[[no]"EditToggleOvertype"[/no]] = 2324,
[[no]"FormFeed"[/no]] = 2330,
[[no]"GotoLine"[/no]] = 2024,
[[no]"GotoPos"[/no]] = 2025,
[[no]"Home"[/no]] = 2312,
[[no]"HomeDisplay"[/no]] = 2345,
[[no]"HomeDisplayExtend"[/no]] = 2346,
[[no]"HomeExtend"[/no]] = 2313,
[[no]"HomeRectExtend"[/no]] = 2430,
[[no]"HomeWrap"[/no]] = 2349,
[[no]"HomeWrapExtend"[/no]] = 2450,
[[no]"InsertText"[/no]] = 2003,
[[no]"LineCopy"[/no]] = 2455,
[[no]"LineCut"[/no]] = 2337,
[[no]"LineDelete"[/no]] = 2338,
[[no]"LineDown"[/no]] = 2300,
[[no]"LineDownExtend"[/no]] = 2301,
[[no]"LineDownRectExtend"[/no]] = 2426,
[[no]"LineDuplicate"[/no]] = 2404,
[[no]"LineEnd"[/no]] = 2314,
[[no]"LineEndDisplay"[/no]] = 2347,
[[no]"LineEndDisplayExtend"[/no]] = 2348,
[[no]"LineEndExtend"[/no]] = 2315,
[[no]"LineEndRectExtend"[/no]] = 2432,
[[no]"LineEndWrap"[/no]] = 2451,
[[no]"LineEndWrapExtend"[/no]] = 2452,
[[no]"LineScrollDown"[/no]] = 2342,
[[no]"LineScrollUp"[/no]] = 2343,
[[no]"LineTranspose"[/no]] = 2339,
[[no]"LineUp"[/no]] = 2302,
[[no]"LineUpExtend"[/no]] = 2303,
[[no]"LineUpRectExtend"[/no]] = 2427,
[[no]"LinesJoin"[/no]] = 2288,
[[no]"LinesSplit"[/no]] = 2289,
[[no]"LoadLexerLibrary"[/no]] = 4007,
[[no]"LowerCase"[/no]] = 2340,
[[no]"MarkerAdd"[/no]] = 2043,
[[no]"MarkerAddSet"[/no]] = 2466,
[[no]"MarkerDefine"[/no]] = 2040,
[[no]"MarkerDefinePixmap"[/no]] = 2049,
[[no]"MarkerDelete"[/no]] = 2044,
[[no]"MarkerDeleteAll"[/no]] = 2045,
[[no]"MarkerDeleteHandle"[/no]] = 2018,
[[no]"MarkerGet"[/no]] = 2046,
[[no]"MarkerLineFromHandle"[/no]] = 2017,
[[no]"MarkerNext"[/no]] = 2047,
[[no]"MarkerPrevious"[/no]] = 2048,
[[no]"MoveCaretInsideView"[/no]] = 2401,
[[no]"NewLine"[/no]] = 2329,
[[no]"Null"[/no]] = 2172,
[[no]"PageDown"[/no]] = 2322,
[[no]"PageDownExtend"[/no]] = 2323,
[[no]"PageDownRectExtend"[/no]] = 2434,
[[no]"PageUp"[/no]] = 2320,
[[no]"PageUpExtend"[/no]] = 2321,
[[no]"PageUpRectExtend"[/no]] = 2433,
[[no]"ParaDown"[/no]] = 2413,
[[no]"ParaDownExtend"[/no]] = 2414,
[[no]"ParaUp"[/no]] = 2415,
[[no]"ParaUpExtend"[/no]] = 2416,
[[no]"Paste"[/no]] = 2179,
[[no]"ReplaceSel"[/no]] = 2170,
[[no]"ReplaceTarget"[/no]] = 2194,
[[no]"ReplaceTargetRE"[/no]] = 2195,
[[no]"ScrollCaret"[/no]] = 2169,
[[no]"SearchAnchor"[/no]] = 2366,
[[no]"SearchInTarget"[/no]] = 2197,
[[no]"SearchNext"[/no]] = 2367,
[[no]"SearchPrev"[/no]] = 2368,
[[no]"SelectAll"[/no]] = 2013,
[[no]"SelectionDuplicate"[/no]] = 2469,
[[no]"SetCharsDefault"[/no]] = 2444,
[[no]"SetSavePoint"[/no]] = 2014,
[[no]"SetSel"[/no]] = 2160,
[[no]"SetText"[/no]] = 2181,
[[no]"StutteredPageDown"[/no]] = 2437,
[[no]"StutteredPageDownExtend"[/no]] = 2438,
[[no]"StutteredPageUp"[/no]] = 2435,
[[no]"StutteredPageUpExtend"[/no]] = 2436,
[[no]"Tab"[/no]] = 2327,
[[no]"TargetFromSelection"[/no]] = 2287,
[[no]"UpperCase"[/no]] = 2341,
[[no]"VCHome"[/no]] = 2331,
[[no]"VCHomeExtend"[/no]] = 2332,
[[no]"VCHomeRectExtend"[/no]] = 2431,
[[no]"VCHomeWrap"[/no]] = 2453,
[[no]"VCHomeWrapExtend"[/no]] = 2454,
[[no]"WordLeft"[/no]] = 2308,
[[no]"WordLeftEnd"[/no]] = 2439,
[[no]"WordLeftEndExtend"[/no]] = 2440,
[[no]"WordLeftExtend"[/no]] = 2309,
[[no]"WordPartLeft"[/no]] = 2390,
[[no]"WordPartLeftExtend"[/no]] = 2391,
[[no]"WordPartRight"[/no]] = 2392,
[[no]"WordPartRightExtend"[/no]] = 2393,
[[no]"WordRight"[/no]] = 2310,
[[no]"WordRightEnd"[/no]] = 2441,
[[no]"WordRightEndExtend"[/no]] = 2442,
[[no]"WordRightExtend"[/no]] = 2311,
[[no]"WordStartPosition"[/no]] = 2266,
}

IFACE_FUNCTIONS_USE_WP = {
[IFACE_FUNCTIONS[[no]"CopyRange"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"GotoLine"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"GotoPos"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"InsertText"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"LinesSplit"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerAdd"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerAddSet"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerDefine"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerDefinePixmap"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerDelete"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerDeleteAll"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerDeleteHandle"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerGet"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerLineFromHandle"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerNext"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerPrevious"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"SearchNext"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"SearchPrev"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"SetSel"[/no]]] = true,
}


[no]----------------------------------------------------------[/no]
[no]-- io functions[/no]

function MacroFillToBuffer(mode)
editor:append(macro_to_string(mode))
end

function MacroLoadFromSelection()
macro_load(editor:GetSelText())
[no]-- autosave[/no]
if props[[no]'macro.autosave'[/no]] == [no]"1"[/no] then
MacroSaveToFile(macro_file)
end
end

function MacroLoadFromFile(filename)
local fl = io.input(filename)
fl:seek([no]"set"[/no])
macro_load(fl:read([no]"*a"[/no]))
end

function MacroSaveToFile(filename)
io.output(filename)
io.write(macro_to_string())
io.close()
end


[no]----------------------------------------------------------[/no]
[no]-- common functions[/no]

function table_clear(tbl)
while table.getn(tbl) > 0 do table.remove(tbl) end
end

function table_icopy(tbl,from_tbl)
for _,v in from_tbl do table.insert(tbl,v) end
return tbl
end

function ifnil(Val, defVal)
if (Val == nil) then
return defVal;
else
return Val;
end
end


[no]----------------------------------------------------------[/no]
[no]-- load macros at startup[/no]
if props[[no]'macro.load.on.startup'[/no]] == [no]"1"[/no] then
MacroLoadFromFile(macro_file)
end
Данный код внедрен в форум с помощью скрипта vladvro

и настройки:
SciTEUser.properties строка 98
Код:
[no][Macros] Макросы[/no]
[no]# Путь до файла макросов (по умолчанию $(scite.userhome)\SciTE.macro или $(SciteDefaultHome)\SciTE.macro)[/no]
[no]#macro.file.path=[/no]

[no]# Считывать макросы из файла макросов при запуске редактора[/no]
macro.load.on.startup=1

[no]# Автоматически записывать текущие макросы в файл макросов[/no]
macro.autosave=1

[no]# Позиция в списке макросов для вновь записанного (по умолчанию =1)[/no]
[no]# -1 - задает добавление в конец списка[/no]
[no]#macro.new.record.position=-1[/no]

[no]# Стиль для номеров строк (с левого края) во время записи макроса[/no]
macro.recording.numfield.style=back:#E9B6C9
Данный код внедрен в форум с помощью скрипта vladvro

[/more]
версия 2.0:
- считывание макросов из файла при загрузке редактора
- автоматическая запись макросов в файл
- изменение стиля поля номеров строк в режиме записи макроса


Добавлено:
небольшое обновление скрипта по раскраске кода для форума подробнее...
версия 1.4.2:
- поддержка для языка Properties

Добавлено:
Cicatriz
Цитата:
вот тут пример
не получается посмотреть, то выдает "404 нет такого файла", то вообще сервер не доступен

Автор: Cicatriz, Отправлено:16:18 31-03-2007
vladvro
всё наладил, сорри проблемы были,смотри
http://85.136.161.84:31337/exmp.html
Автор: Sanc4eZ, Отправлено:20:36 31-03-2007
Несколько вопросов:

1. Где редактируются схемы подсветки (в частности PHP) ?
На дефолтных невозможно работать.
Может кто подлиться своими схемами схемами ?!

2. Как заставить SCITE открываться развернутым на весь экран ?
Автор: iglezz, Отправлено:23:48 31-03-2007
Sanc4eZ
1. подсветка PHP содержится в html_.properties
2. необходимо изменить или добавить в SciTEGlobal.properties/SciTEUser.properties:
Код:
# Ширина и высота окна (в полный экран=-1)
position.width=-1
position.height=-1

Автор: vladvro, Отправлено:09:55 02-04-2007
Cicatriz
проблема в дефолтных значениях зашитых в редакторе, решение:
меняем
SciTEProps.cxx строка 358
Код:
StyleDefinition::StyleDefinition(const char *definition) :
size(0), fore([no]"#000000"[/no]), back([no]"#FFFFFF"[/no]),
Данный код внедрен в форум с помощью скрипта vladvro
на
Код:
StyleDefinition::StyleDefinition(const char *definition) :
size(0), fore([no]""[/no]), back([no]""[/no]),

есть и другое решение, без правки исходников, но тогда прийдется повозиться - надо в файлах настройки во всех стилях проставить цвет фона.

Добавлено:
Sanc4eZ
Цитата:
Может кто подлиться своими схемами схемами ?!
может:
SciTEUser.properties
html_.properties
php.keywords.properties

Автор: Cicatriz, Отправлено:10:51 02-04-2007
vladvro
чем мне его потом скомпилить, и куда всунуть? что-то я потерялся

Автор: vladvro, Отправлено:10:54 02-04-2007
обновил скрипт для макросов [more]
macro_support.lua
Код:
[no]--[[[/no]
[no]Macros support for SciTE[/no]
[no]Version 2.0.1[/no]
[no]Author: VladVRO[/no]
[no]---------------------------------------------------[/no]
[no]Description:[/no]
[no] macros recording, storing and playing support[/no]
[no] (Поддержка записи и воспроизведения макросов)[/no]

[no]Using:[/no]
[no] add next line into SciTEGlobal.properties:[/no]
[no] ext.lua.startup.script=$(SciteDefaultHome)\macro_support.lua[/no]
[no] or if you already have startup script than add next line in it:[/no]
[no] require ("macro_support.lua")[/no]

[no] and next lines into SciTEUser.properties:[/no]
[no] command.name.40.*=Macro Load From Selection[/no]
[no] command.40.*=MacroLoadFromSelection[/no]
[no] command.mode.40.*=subsystem:lua,savebefore:no[/no]

[no] command.name.41.*=Macro Fill To Buffer[/no]
[no] command.41.*=MacroFillToBuffer[/no]
[no] command.mode.41.*=subsystem:lua,savebefore:no[/no]

[no] command.name.42.*=Macro Fill To Buffer (LUA code)[/no]
[no] command.42.*=MacroFillToBuffer LUA[/no]
[no] command.mode.42.*=subsystem:lua,savebefore:no[/no]
[no]---------------------------------------------------[/no]
[no]]][/no]

scite.Perform([no]"macroenable:1"[/no])

[no]-- global tables[/no]
local glb_macro_buf = {}
local glb_macros_table = {}
local glb_macros_name_table = {}

[no]-- position in list for new recorded macro[/no]
[no]-- -1 - last position[/no]
[no]-- default = 1[/no]
local new_position = props[[no]'macro.new.record.position'[/no]]
if new_position == [no]""[/no] then
new_position = 1
else
new_position = tonumber(new_position)
end

[no]-- path to file with macros[/no]
macro_file = props[[no]'macro.file.path'[/no]]
if macro_file == [no]""[/no] then
macro_file = props[[no]'scite.userhome'[/no]]
if macro_file == [no]""[/no] then macro_file = props[[no]'SciteDefaultHome'[/no]] end
macro_file = macro_file..[no]"\\SciTE.macro"[/no]
end


function OnMacro(cmd, msg)
if cmd == [no]"macro:run"[/no] then
if msg == [no]"<clean list>"[/no] then
scite.Perform([no]"currentmacro:"[/no])
while table.getn(glb_macros_name_table) > 0 do
glb_macros_table[glb_macros_name_table[1]] = nil
table.remove(glb_macros_name_table,1)
end
else
local macro = glb_macros_table[msg]
if macro then
editor:BeginUndoAction()
for _,val in macro do
local c,lp,wp = unpack(val)
if IFACE_FUNCTIONS_USE_WP[c] then
scite.SendEditor(c,wp,lp)
else
scite.SendEditor(c,lp,0)
end
end
editor:EndUndoAction()
end
end
elseif cmd == [no]"macro:record"[/no] then
for c,wp,_,lp in string.gfind(msg, [no]"(%d+);(%d+);(%d+);(.*)"[/no]) do
table.insert(glb_macro_buf, {tonumber(c),lp,wp})
end
elseif cmd == [no]"macro:startrecord"[/no] then
table_clear(glb_macro_buf)
[no]-- visualization[/no]
if props[[no]'style.*.33.normal'[/no]] == [no]""[/no] then props[[no]'style.*.33.normal'[/no]] = props[[no]'style.*.33'[/no]] end
if props[[no]'macro.recording.numfield.style'[/no]] ~= [no]""[/no] then
props[[no]"style.*.33"[/no]] = props[[no]'macro.recording.numfield.style'[/no]]
scite.Perform([no]"reloadproperties:"[/no])
end
elseif cmd == [no]"macro:stoprecord"[/no] then
local name = MacroAddToList(glb_macro_buf, nil, new_position)
scite.Perform([no]"currentmacro:"[/no]..ifnil(name,[no]""[/no]))
table_clear(glb_macro_buf)
[no]-- visualization[/no]
if props[[no]'macro.recording.numfield.style'[/no]] ~= [no]""[/no] then
props[[no]'style.*.33'[/no]] = props[[no]'style.*.33.normal'[/no]]
scite.Perform([no]"reloadproperties:"[/no])
end
[no]-- autosave[/no]
if props[[no]'macro.autosave'[/no]] == [no]"1"[/no] then
MacroSaveToFile(macro_file)
end
elseif cmd == [no]"macro:getlist"[/no] then
if table.getn(glb_macros_name_table) > 0 then
local list = [no]""[/no]
for _,name in glb_macros_name_table do
list = list..name..[no]";"[/no]
end
list = list..[no]"<clean list>"[/no]
local old_sep = editor.AutoCSeparator
editor.AutoCSeparator = string.byte([no]';'[/no])
scite.Perform([no]"macrolist:"[/no]..list)
editor.AutoCSeparator = old_sep
else
print([no]"> no macros yet!"[/no])
end
end
end

function MacroAddToList(macro, name, pos)
if table.getn(macro) > 0 then
if not name then
local i = table.getn(glb_macros_name_table)
repeat
i = i + 1
name = [no]"record"[/no]..i
until glb_macros_table[name] == nil or i > 9999
end
if not glb_macros_table[name] or table.getn(glb_macros_name_table) == 0 then
if pos then
table.insert(glb_macros_name_table, pos, name)
else
table.insert(glb_macros_name_table, name)
end
end
glb_macros_table[name] = table_icopy({},macro)
end
return name
end

local function macro_to_string(mode)
local text = [no]""[/no]
local iface_num2name = {}
for name,num in IFACE_FUNCTIONS do
iface_num2name[num] = name
end
if mode == [no]"LUA"[/no] then
mode = true
else
mode = false
end
for _,name in glb_macros_name_table do
macro = glb_macros_table[name]
if macro then
text = text..[no]"\n--- "[/no]..name..[no]" ---\n"[/no]
for _,val in macro do
local c,lp,wp = unpack(val)
if string.len(lp) > 0 then
for _,v in MACRO_CONVERT_CHARS do
lp = string.gsub(lp,unpack(v))
end
lp = [no]"'"[/no]..lp..[no]"'"[/no]
end
if mode then
if IFACE_FUNCTIONS_USE_WP[c] then
if string.len(lp) > 0 then
wp = wp..[no]", "[/no]
end
else
wp = [no]""[/no]
end
text = text..[no]"editor:"[/no]..ifnil(iface_num2name[c],c)..[no]"("[/no]..wp..lp..[no]")\n"[/no]
else
text = text..ifnil(iface_num2name[c],c)..[no]";"[/no]..wp..[no]";"[/no]..lp..[no]"\n"[/no]
end
end
end
end
return text
end

local function macro_load(text)
local macro = {}
local name = nil
local text = text..[no]"\n"[/no]
for str in string.gfind(text, [no]"([^\n]*)[\n]"[/no]) do
if string.sub(str, 1, 3) == [no]"---"[/no] then
MacroAddToList(macro, name)
macro = {}
name = nil
for a in string.gfind(str, [no]"([%w_]+)"[/no]) do
name = a; break;
end
else
str = string.gsub(str, [no]"\r"[/no], [no]""[/no])
for fnc,wp,lp in string.gfind(str, [no]"(%w+);(%d+);(.*)"[/no]) do
local c = IFACE_FUNCTIONS[fnc]
if c then
if string.len(lp) > 0 then
lp = dostring([no]"return "[/no]..lp)
end
table.insert(macro, {c,lp,wp})
else
print([no]"> undefined function "[/no]..fnc)
return false
end
end
end
end
MacroAddToList(macro, name)
end


MACRO_CONVERT_CHARS = {
{[no]"\\"[/no], [no]"\\\\"[/no]},
{[no]"\'"[/no], [no]"\\\'"[/no]},
{[no]"\r"[/no], [no]"\\r"[/no]},
{[no]"\n"[/no], [no]"\\n"[/no]},
}

IFACE_FUNCTIONS = {
[[no]"AddText"[/no]] = 2001,
[[no]"AppendText"[/no]] = 2282,
[[no]"BackTab"[/no]] = 2328,
[[no]"Cancel"[/no]] = 2325,
[[no]"CharLeft"[/no]] = 2304,
[[no]"CharLeftExtend"[/no]] = 2305,
[[no]"CharLeftRectExtend"[/no]] = 2428,
[[no]"CharRight"[/no]] = 2306,
[[no]"CharRightExtend"[/no]] = 2307,
[[no]"CharRightRectExtend"[/no]] = 2429,
[[no]"Clear"[/no]] = 2180,
[[no]"ClearAll"[/no]] = 2004,
[[no]"Copy"[/no]] = 2178,
[[no]"CopyRange"[/no]] = 2419,
[[no]"Cut"[/no]] = 2177,
[[no]"DelLineLeft"[/no]] = 2395,
[[no]"DelLineRight"[/no]] = 2396,
[[no]"DelWordLeft"[/no]] = 2335,
[[no]"DelWordRight"[/no]] = 2336,
[[no]"DeleteBack"[/no]] = 2326,
[[no]"DeleteBackNotLine"[/no]] = 2344,
[[no]"DocumentEnd"[/no]] = 2318,
[[no]"DocumentEndExtend"[/no]] = 2319,
[[no]"DocumentStart"[/no]] = 2316,
[[no]"DocumentStartExtend"[/no]] = 2317,
[[no]"EditToggleOvertype"[/no]] = 2324,
[[no]"FormFeed"[/no]] = 2330,
[[no]"GotoLine"[/no]] = 2024,
[[no]"GotoPos"[/no]] = 2025,
[[no]"Home"[/no]] = 2312,
[[no]"HomeDisplay"[/no]] = 2345,
[[no]"HomeDisplayExtend"[/no]] = 2346,
[[no]"HomeExtend"[/no]] = 2313,
[[no]"HomeRectExtend"[/no]] = 2430,
[[no]"HomeWrap"[/no]] = 2349,
[[no]"HomeWrapExtend"[/no]] = 2450,
[[no]"InsertText"[/no]] = 2003,
[[no]"LineCopy"[/no]] = 2455,
[[no]"LineCut"[/no]] = 2337,
[[no]"LineDelete"[/no]] = 2338,
[[no]"LineDown"[/no]] = 2300,
[[no]"LineDownExtend"[/no]] = 2301,
[[no]"LineDownRectExtend"[/no]] = 2426,
[[no]"LineDuplicate"[/no]] = 2404,
[[no]"LineEnd"[/no]] = 2314,
[[no]"LineEndDisplay"[/no]] = 2347,
[[no]"LineEndDisplayExtend"[/no]] = 2348,
[[no]"LineEndExtend"[/no]] = 2315,
[[no]"LineEndRectExtend"[/no]] = 2432,
[[no]"LineEndWrap"[/no]] = 2451,
[[no]"LineEndWrapExtend"[/no]] = 2452,
[[no]"LineScrollDown"[/no]] = 2342,
[[no]"LineScrollUp"[/no]] = 2343,
[[no]"LineTranspose"[/no]] = 2339,
[[no]"LineUp"[/no]] = 2302,
[[no]"LineUpExtend"[/no]] = 2303,
[[no]"LineUpRectExtend"[/no]] = 2427,
[[no]"LinesJoin"[/no]] = 2288,
[[no]"LinesSplit"[/no]] = 2289,
[[no]"LoadLexerLibrary"[/no]] = 4007,
[[no]"LowerCase"[/no]] = 2340,
[[no]"MarkerAdd"[/no]] = 2043,
[[no]"MarkerAddSet"[/no]] = 2466,
[[no]"MarkerDefine"[/no]] = 2040,
[[no]"MarkerDefinePixmap"[/no]] = 2049,
[[no]"MarkerDelete"[/no]] = 2044,
[[no]"MarkerDeleteAll"[/no]] = 2045,
[[no]"MarkerDeleteHandle"[/no]] = 2018,
[[no]"MarkerGet"[/no]] = 2046,
[[no]"MarkerLineFromHandle"[/no]] = 2017,
[[no]"MarkerNext"[/no]] = 2047,
[[no]"MarkerPrevious"[/no]] = 2048,
[[no]"MoveCaretInsideView"[/no]] = 2401,
[[no]"NewLine"[/no]] = 2329,
[[no]"Null"[/no]] = 2172,
[[no]"PageDown"[/no]] = 2322,
[[no]"PageDownExtend"[/no]] = 2323,
[[no]"PageDownRectExtend"[/no]] = 2434,
[[no]"PageUp"[/no]] = 2320,
[[no]"PageUpExtend"[/no]] = 2321,
[[no]"PageUpRectExtend"[/no]] = 2433,
[[no]"ParaDown"[/no]] = 2413,
[[no]"ParaDownExtend"[/no]] = 2414,
[[no]"ParaUp"[/no]] = 2415,
[[no]"ParaUpExtend"[/no]] = 2416,
[[no]"Paste"[/no]] = 2179,
[[no]"ReplaceSel"[/no]] = 2170,
[[no]"ReplaceTarget"[/no]] = 2194,
[[no]"ReplaceTargetRE"[/no]] = 2195,
[[no]"ScrollCaret"[/no]] = 2169,
[[no]"SearchAnchor"[/no]] = 2366,
[[no]"SearchInTarget"[/no]] = 2197,
[[no]"SearchNext"[/no]] = 2367,
[[no]"SearchPrev"[/no]] = 2368,
[[no]"SelectAll"[/no]] = 2013,
[[no]"SelectionDuplicate"[/no]] = 2469,
[[no]"SetCharsDefault"[/no]] = 2444,
[[no]"SetSavePoint"[/no]] = 2014,
[[no]"SetSel"[/no]] = 2160,
[[no]"SetText"[/no]] = 2181,
[[no]"StutteredPageDown"[/no]] = 2437,
[[no]"StutteredPageDownExtend"[/no]] = 2438,
[[no]"StutteredPageUp"[/no]] = 2435,
[[no]"StutteredPageUpExtend"[/no]] = 2436,
[[no]"Tab"[/no]] = 2327,
[[no]"TargetFromSelection"[/no]] = 2287,
[[no]"UpperCase"[/no]] = 2341,
[[no]"VCHome"[/no]] = 2331,
[[no]"VCHomeExtend"[/no]] = 2332,
[[no]"VCHomeRectExtend"[/no]] = 2431,
[[no]"VCHomeWrap"[/no]] = 2453,
[[no]"VCHomeWrapExtend"[/no]] = 2454,
[[no]"WordLeft"[/no]] = 2308,
[[no]"WordLeftEnd"[/no]] = 2439,
[[no]"WordLeftEndExtend"[/no]] = 2440,
[[no]"WordLeftExtend"[/no]] = 2309,
[[no]"WordPartLeft"[/no]] = 2390,
[[no]"WordPartLeftExtend"[/no]] = 2391,
[[no]"WordPartRight"[/no]] = 2392,
[[no]"WordPartRightExtend"[/no]] = 2393,
[[no]"WordRight"[/no]] = 2310,
[[no]"WordRightEnd"[/no]] = 2441,
[[no]"WordRightEndExtend"[/no]] = 2442,
[[no]"WordRightExtend"[/no]] = 2311,
[[no]"WordStartPosition"[/no]] = 2266,
}

IFACE_FUNCTIONS_USE_WP = {
[IFACE_FUNCTIONS[[no]"CopyRange"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"GotoLine"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"GotoPos"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"InsertText"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"LinesSplit"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerAdd"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerAddSet"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerDefine"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerDefinePixmap"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerDelete"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerDeleteAll"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerDeleteHandle"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerGet"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerLineFromHandle"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerNext"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"MarkerPrevious"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"SearchNext"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"SearchPrev"[/no]]] = true,
[IFACE_FUNCTIONS[[no]"SetSel"[/no]]] = true,
}


[no]----------------------------------------------------------[/no]
[no]-- io functions[/no]

function MacroFillToBuffer(mode)
editor:append(macro_to_string(mode))
end

function MacroLoadFromSelection()
macro_load(editor:GetSelText())
[no]-- autosave[/no]
if props[[no]'macro.autosave'[/no]] == [no]"1"[/no] then
MacroSaveToFile(macro_file)
end
end

function MacroLoadFromFile(filename)
local fl = io.open(filename)
if fl ~= nil then
fl:seek([no]"set"[/no])
macro_load(fl:read([no]"*a"[/no]))
fl:close()
end
end

function MacroSaveToFile(filename)
io.output(filename)
io.write(macro_to_string())
io.close()
end


[no]----------------------------------------------------------[/no]
[no]-- common functions[/no]

function table_clear(tbl)
while table.getn(tbl) > 0 do table.remove(tbl) end
end

function table_icopy(tbl,from_tbl)
for _,v in from_tbl do table.insert(tbl,v) end
return tbl
end

function ifnil(Val, defVal)
if (Val == nil) then
return defVal;
else
return Val;
end
end


[no]----------------------------------------------------------[/no]
[no]-- load macros at startup[/no]
if props[[no]'macro.load.on.startup'[/no]] == [no]"1"[/no] then
MacroLoadFromFile(macro_file)
end
Данный код внедрен в форум с помощью скрипта vladvro
[/more]
версия 2.0.1:
- исправлена ошибка загрузки файла, если файла нет

Добавлено:
Cicatriz
Цитата:
чем мне его потом скомпилить, и куда всунуть?
тебе потребуется пересобрать редактор, для этого почитай в исходниках scite\README

Автор: ALeXkRU, Отправлено:15:17 02-04-2007
SciTE Release 1.73
по традиции - вольное переложение хистори:

Released on 31 March 2007.
Релиз 1.73 (31 марта 2007)

SciTE adds a Directory properties file to configure behaviour for files in a directory and its subdirectories.
- в SciTE добавлено свойство файлов Каталога для настройки поведения файлов каталога и подкаталогов

Style changes may be made during text modification events.
- изменения в стиле могут быть сделаны во время модификации текста

Regular expressions recognize \d, \D, \s, \S, \w, \W, and \xHH.
- добавлено распознавание регулярных выражений \d, \D, \s, \S, \w, \W, and \xHH

Support for cmake language added.
- добавлена поддержка языка "cmake"

More Scintilla properties can be queried.
- теперь может быть вызвано больше свойств Scintilla

Edge line drawn under text.
- отрисовывается линия границы под текстом

A savesession command added to SciTE director interface.
- команда "savesession" (сохранить сессию) добавлена в интерфейс управления SciTE

SciTE File | Encoding menu item names changed to be less confusing.
- в SciTE изменены имена пунктов меню File | Encoding (Файл | Кодировка) для сокращения путаницы

SciTE on GTK+ dialog buttons reordered to follow guidelines.
- в SciTE для GTK+ диалоговые клавиши переставлены для соответствия руководству

SciTE on GTK+ removed GTK+ 1.x compatible file dialog code.
- в GTK+ из SciTE удален код диалога "Файл", использовавшийся для совместимости с GTK+ 1.x

SciTE on GTK+ recognizes key names KeypadMultiply and KeypadDivide.
- в GTK+ в SciTE добавлено распознавание имен клавиш KeypadMultiply и KeypadDivide (клавиши "Умножение" и "Деление" цифровой клавиатуры)

Background colour of line wrapping visual flag changed to STYLE_DEFAULT.
- флаг отображения цвета фона для переноса строки изменен на STYLE_DEFAULT

Makefile lexing enhanced for ':=' operator and when lines start with tab.
- лексер Makefile расширен оператором ':=' и добавлено распознавание строк, начинающихся с табулятора

TADS3 lexer and folder improved.
- улучшены лексер и фолдер для языка TADS3

SCN_DOUBLECLICK notification may set SCI_SHIFT, SCI_CTRL, and SCI_ALT flags on modifiers field.
- сообщение SCN_DOUBLECLICK может устанавливать флаги SCI_SHIFT, SCI_CTRL, и SCI_ALT в поле модификаторов

Slow folding of large constructs in Python fixed.
- исправлена ошибка с замедленным фолдингом в больших конструкциях Python

MSSQL folding fixed to be case-insensitive and fold at more keywords.
- исправлены ошибки фолдинга MSSQL: добавлена нечувствительность к регистру и обработка большего числа ключевых слов

SciTE's brace matching works better for HTML.
- в SciTE улучшена работа с согласованием фигурных скобок для HTML

Determining API list items checks for specified parameters start character before default '('.
- добавлена проверка определения элементов списка API для заданных параметров, начинающихся с символа '(' перед default

Hang fixed in HTML lexer.
- исправлено зависание в лексере HTML

Bug fixed in with LineTranspose command where markers could move to different line.
- исправлена ошибка в команде LineTranspose (перенос строки), при которой маркеры могли переноситься на другую строку

Memory released when buffer completely emptied.
- теперь память освобождается при полном опустошении буфера

If translucency not available on Windows, draw rectangular outline instead.
- если в Windows не доступна полупрозрачность, взамен отрисовывается внешняя прямоугольная рамка

Bash lexer handles "-x" in "--x-includes..." better.
- в лексере Bash улучшена обработка параметра "-x" в "--x-includes..."

AutoIt3 lexer fixes string followed by '+'.
- исправлена ошибка в лексере AutoIt3 для строк, следующих после '+'

LinesJoin fixed where it stopped early due to not adjusting for inserted spaces..
- исправлена ошибка в комаде LinesJoin (соединение строк), при которой команда преждевременно завершалась из-за некорректной вставки выравнивающих пробелов

StutteredPageDown fixed when lines wrapped.
- исправлена ошибка прокручивания страницы при переносе строк

FormatRange fixed to not double count line number width which could lead to a large space.
- исправлена ошибка в области форматирования (FormatRange), удваивающая ширину поля счетчика строк, что могло приводить к увеличению области этого поля

SciTE Export As PDF and Latex commands fixed to format floating point numbers with '.' even in locales that use ','.
- в SciTE исправлена работа команд "Экспортировать в формате PDF" и ".. в формате Latex": формат чисел с плавающей запятой указывается с '.' даже если в локальных настройках ','

SciTE bug fixed where File | New could produce buffer with contents of previous file when using read-only mode.
- исправлена ошибка SciTE, при которой команда Файл | Новый (File | New) в режиме только для чтения (read-only) могла выводить буфер с содержимым предыдущего файла

SciTE retains current scroll position when switching buffers and fold.on.open set.
- SciTE теперь при переключении буферов сохраняет текущую позицию прокрутки (скроллинга) и установленном параметре fold.on.open

SciTE crash fixed where '*' used to invoke parameters dialog.
- исправлена ошибка, приводившая к краху SciTE, при использовании '*' в качестве параметра вызова диалога

SciTE bugs when writing large UCS-2 files fixed.
- Исправлена ошибка SciTE при записи больших файлов UCS-2

Bug fixed when scrolling inside a SCN_PAINTED event by invalidating window rather than trying to perform synchronous painting.
- исправлена ошибка, возникающая в функции обработки события SCN_PAINTED при прокрутке. Теперь предпочтительно используется перерисовка окна, вместо более сложного по выполнению синхронного отображения

SciTE for GTK+ View | Full Screen works on recent versions of GTK+.
- для SciTE в GTK+ теперь команда Вид | Полноэкранный режим (View | Full Screen) работает в новых версиях GTK+

SciTE for Windows enables and disables toolbar commands correctly.
- в SciTE для Windows теперь корректно работает команда включения\выключения панелей инструментов

Автор: dB6, Отправлено:15:45 02-04-2007
ALeXkRU

Цитата:
вольное переложение хистори

Немного подкорректировал:
SciTE Release 1.73
[more=Читать дальше]
Released on 31 March 2007.
Релиз 1.73 (31 марта 2007)

SciTE adds a Directory properties file to configure behaviour for files in a directory and its subdirectories.
- в SciTE добавлено свойство файлов Каталога для настройки поведения файлов каталога и подкаталогов

Style changes may be made during text modification events.
- Изменения в стиле могут быть сделаны во время модификации текста

Regular expressions recognize \d, \D, \s, \S, \w, \W, and \xHH.
- добавлено распознавание регулярных выражений \d, \D, \s, \S, \w, \W, and \xHH

Support for cmake language added.
- добавлена поддержка языка "cmake"

More Scintilla properties can be queried.
- теперь может быть вызвано больше свойств Scintilla

Edge line drawn under text.
- отрисовывается линия границы под текстом

A savesession command added to SciTE director interface.
- команда "savesession" (сохранить сессию) добавлена в интерфейс управления SciTE

SciTE File | Encoding menu item names changed to be less confusing.
- в SciTE изменены имена пунктов меню File | Encoding (Файл | Кодировка) для сокращения путаницы

SciTE on GTK+ dialog buttons reordered to follow guidelines.
- в SciTE для GTK+ диалоговые клавиши переставлены для соответствия руководству

SciTE on GTK+ removed GTK+ 1.x compatible file dialog code.
- в GTK+ из SciTE удален код диалога "Файл", использовавшийся для совместимости с GTK+ 1.x

SciTE on GTK+ recognizes key names KeypadMultiply and KeypadDivide.
- в GTK+ в SciTE добавлено распознавание имен клавиш KeypadMultiply и KeypadDivide (клавиши "Умножение" и "Деление" цифровой клавиатуры)

Background colour of line wrapping visual flag changed to STYLE_DEFAULT.
- флаг отображения цвета фона для переноса строки изменен на STYLE_DEFAULT

Makefile lexing enhanced for ':=' operator and when lines start with tab.
- лексер Makefile расширен оператором ':=' и добавлено распознавание строк, начинающихся с табулятора

TADS3 lexer and folder improved.
- улучшены лексер и фолдер для языка TADS3

SCN_DOUBLECLICK notification may set SCI_SHIFT, SCI_CTRL, and SCI_ALT flags on modifiers field.
- сообщение SCN_DOUBLECLICK может устанавливать флаги SCI_SHIFT, SCI_CTRL, и SCI_ALT в поле модификаторов

Slow folding of large constructs in Python fixed.
- исправлена ошибка с замедленным фолдингом в больших конструкциях Python

MSSQL folding fixed to be case-insensitive and fold at more keywords.
- сделаны изменения в фолдинге MSSQL: добавлена нечувствительность к регистру и обрабатывается больше ключевых слов

SciTE's brace matching works better for HTML.
- в SciTE улучшена работа с согласованием фигурных скобок для HTML

Determining API list items checks for specified parameters start character before default '('.
- добавлена проверка определения элементов списка API для заданных параметров, начинающихся с символа '(' перед default

Hang fixed in HTML lexer.
- исправлено зависание в лексере HTML

Bug fixed in with LineTranspose command where markers could move to different line.
- исправлена ошибка в команде LineTranspose (перенос строки), при которой маркеры могли переноситься на другую строку

Memory released when buffer completely emptied.
- теперь память освобождается при полном опустошении буфера

If translucency not available on Windows, draw rectangular outline instead.
- если в Windows не доступна полупрозрачность, взамен отрисовывается внешняя прямоугольная рамка

Bash lexer handles "-x" in "--x-includes..." better.
- в лексере Bash улучшена обработка параметра "-x" в "--x-includes..."

AutoIt3 lexer fixes string followed by '+'.
- исправлена ошибка в лексере AutoIt3 для строк, следующих после '+'

LinesJoin fixed where it stopped early due to not adjusting for inserted spaces..
- исправлена ошибка в комаде LinesJoin (соединение строк), при которой команда преждевременно завершалась из-за некорректной вставки выравнивающих пробелов

StutteredPageDown fixed when lines wrapped.
- исправлена ошибка прокручивания страницы при переносе строк

FormatRange fixed to not double count line number width which could lead to a large space.
- исправлена ошибка в области форматирования (FormatRange), удваивающая ширину поля счетчика строк, что могло приводить к увеличению области этого поля

SciTE Export As PDF and Latex commands fixed to format floating point numbers with '.' even in locales that use ','.
- в SciTE исправлена работа команд "Экспортировать в формате PDF" и ".. в формате Latex": формат чисел с плавающей запятой указывается с '.' даже если в локальных настройках ','

SciTE bug fixed where File | New could produce buffer with contents of previous file when using read-only mode.
- исправлена ошибка SciTE, при которой команда Файл | Новый (File | New) в режиме только для чтения (read-only) могла выводить буфер с содержимым предыдущего файла

SciTE retains current scroll position when switching buffers and fold.on.open set.
- SciTE теперь при переключении буферов сохраняет текущую позицию прокрутки (скроллинга) и установленном параметре fold.on.open

SciTE crash fixed where '*' used to invoke parameters dialog.
- исправлена ошибка, приводившая к краху SciTE, при использовании '*' в качестве параметра вызова диалога

SciTE bugs when writing large UCS-2 files fixed.
- Исправлена ошибка SciTE при записи больших файлов UCS-2

Bug fixed when scrolling inside a SCN_PAINTED event by invalidating window rather than trying to perform synchronous painting.
- исправлена ошибка, возникающая в функции обработки события SCN_PAINTED при прокрутке. Теперь предпочтительно используется перерисовка окна, вместо более сложного по выполнению синхронного отображения

SciTE for GTK+ View | Full Screen works on recent versions of GTK+.
- для SciTE в GTK+ теперь команда Вид | Полноэкранный режим (View | Full Screen) работает в новых версиях GTK+

SciTE for Windows enables and disables toolbar commands correctly.
- в SciTE для Windows теперь корректно работает команда включения\выключения панелей инструментов

[/more]
Автор: ALeXkRU, Отправлено:18:40 02-04-2007
dB6
сенкс, поправил



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