Архив 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; } |
Автор: 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; } |
получаем:
Цитата:
| "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 |
и настройки:
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 |
[/more]
версия 2.0:
- считывание макросов из файла при загрузке редактора
- автоматическая запись макросов в файл
- изменение стиля поля номеров строк в режиме записи макроса
Добавлено:
небольшое обновление скрипта по раскраске кода для форума подробнее...
версия 1.4.2:
- поддержка для языка Properties
Добавлено:
Cicatriz
Цитата:
| вот тут пример |
Автор: 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]), |
на
Код:
|
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 |
[/more]
версия 2.0.1:
- исправлена ошибка загрузки файла, если файла нет
Добавлено:
Cicatriz
Цитата:
| чем мне его потом скомпилить, и куда всунуть? |
Автор: 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 /

