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

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

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


Автор: mozers, Отправлено:23:08 08-04-2007
vladvro
Все таки решил остановится на твоем последнем варианте без Ru. (Подумал про Нейла и остальную нерусскую молодежь...)

ALL
Сделал корректное сохранение ReadOnly файлов. Теперь атрибуты при сохранении не уродуются. Конечно, правильней было бы наладить нормальную работу os.getfileattr и os.setfileattr но...
[more]
ROWrite.lua
Код:
[no]-- ROWrite[/no]
[no]-- Version: 1.1[/no]
[no]-- Автор: mozers™ (по мотивам одноименного скрипта от Midas)[/no]
[no]-----------------------------------------------[/no]
[no]-- Скрипт для поддержки сохранения RO/Hidden/System файлов[/no]
[no]-- Для работы требуется скрипт ROWrite.js[/no]
[no]-----------------------------------------------[/no]
[no]-- Подключение:[/no]
[no]-- Добавьте в SciTEStartup.lua строку[/no]
[no]-- require (props["SciteDefaultHome"].."\\tools\\ROWrite.lua")[/no]
[no]-----------------------------------------------[/no]
local function Save()
[no]-- Получим аттрибуты файла.[/no]
local FileAttr = props[[no]'FileAttr'[/no]]
if string.find(FileAttr, [no]'[RHS]'[/no]) then [no]-- Если в файл нельзя записать, то спросим[/no]
if os.msgbox([no]"Файл доступен только для чтения. Все равно сохранить ?\nАттрибуты файла: "[/no]..FileAttr, [no]"SciTE"[/no], 65)==1 then
os.run([no]"wscript "[/no]..props[[no]'SciteDefaultHome'[/no]]..[no]"\\tools\\ROWrite.js"[/no],0,false)
return true
end
else
return false
end
end

[no]-- Добавляем свой обработчик события OnMenuCommand[/no]
local old_OnMenuCommand = OnMenuCommand
function OnMenuCommand (msg, source)
local result
if old_OnMenuCommand then result = old_OnMenuCommand(msg, source) end
if msg == 106 then [no]--IDM_SAVE[/no]
if Save() then return true end
end
return result
end
Данный код внедрен в форум с помощью скрипта vladvro

ROWrite.js
Код:
[no]// ROWrite[/no]
[no]// Version: 1.1[/no]
[no]// Autor: mozers™ [/no]
[no]// ------------------------------------------------[/no]
[no]// Скрипт для сохранения RO/Hidden/System файлов[/no]
[no]// Вызывается из ROWrite.lua[/no]
[no]// Для работы требуется SciTE Helper <http://scite.ruteam.ru/poleznye-utility/scite-helper-dlya-upravleniya-redaktorom-iz-skriptov-i-programm>[/no]</ font>
[no]// ------------------------------------------------[/no]
var fso = new ActiveXObject([no]"Scripting.FileSystemObject"[/no]);
var ForReading = 1, ForWriting = 2, ForAppending = 8;
try {
var SciTE=new ActiveXObject([no]"SciTE.Helper"[/no]);
} catch(e) {
WScript.Echo([no]"Please install SciTE Helper before!"[/no]);
WScript.Quit(1);
}

var filename = SciTE.Props([no]"FilePath"[/no]);
var text = SciTE.GetText;
var file = fso.GetFile(filename);

[no]// считываем атрибуты файла[/no]
var attr = file.attributes;

[no]// сбрасываем атрибуты[/no]
file.attributes = 0;

[no]// записываем файл[/no]
var file_w = fso.OpenTextFile(filename, ForWriting, true);
file_w.Write(text);
file_w.Close();

[no]// восстанавливаем атрибуты[/no]
file.attributes = attr;

[no]// перезагружаем записанный файл[/no]
SciTE.MenuCommand(104); [no]// IDM_REVERT[/no]
Данный код внедрен в форум с помощью скрипта vladvro
[/more]
Автор: vladvro, Отправлено:09:55 09-04-2007
mozers
Цитата:
Все таки решил остановится на твоем последнем варианте без Ru. (Подумал про Нейла и остальную нерусскую молодежь...)
хм... тогда надо было и с иконки 32x32 буквы убрать...
а я бы предложил внедрить оба варианта

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

Автор: mozers, Отправлено:22:20 09-04-2007
SciTE 1.73 .37Ru-Board Edition [Сборка 09.04.2007]
Полное описание

Цитата:
  • Новое ядро 1.73 .37Ru (никогда еще маленькая циферка в конце не вмещала в себя столько доработок)
  • Обновлены файлы документации по SciTE (обратите внимание на расширенный синтаксис регулярных выражений)
  • Добавлены новые и доработаны существующие файлы сокращений: lua.abbrev, jscript.abbrev, vbscript.abbrev, html.abbrev (при создании нового файла наберите 1 и нажмите Ctrl+B - получите готовую заготовку)
  • Добавлены новые и доработаны существующие API файлы: props.api, batch.api
  • Новые скрипты, доработаны имеющиеся: RegJump.js, macro_support.lua, code-poster.lua, save_settings.lua, save_settings.js, rename.vbs, SciTE_WinIntegrator.hta, ROWrite.lua


Ядро 1.73 .37Ru (это - исправленный и доработанный вариант выложенной ранее бетта-версии)
EXE + DLL [449kB]
Source [388kB] (только измененные файлы)
Список всех доработок
Автор: y0r1c, Отправлено:22:21 10-04-2007
Вы все просто молодцы, хорошо редактор доработали, только вот одна загвоздка, не работает подсветка для файлов .cls

прописал в html_.properties строку


Цитата:
file.patterns.php=*.php3;*.phtml;*.php;*.cls;*.inc


для файлов .inc работает нормально, а для .cls не работает…
Автор: mozers, Отправлено:23:28 10-04-2007
ALL
Только сегодня в последней сборке было обнаружено несколько неприятных моментов. Исправил все по горячим следам.
Кому влом качать целиковый дистрибутив (ссылка осталась прежней) могут загрузить только обновленные файлы [42 KB]

y0r1c
Поздравляю с первым (надеюсь, не последним) постом
Подсветка будет работать только если имеется подходящий лексер. (Видимо hypertext - НЕпоходящий лексер для этих файлов).
Файлы .cls "Visual Basic Class Module" (если ты про них) - отлично обрабатывает лексер vb (все настройки - в vb_.properties)
Автор: y0r1c, Отправлено:23:55 10-04-2007
ах вот оно что, видимо конфликт просто :) я так файлы с пхп классами обзываю и нужен именно гипертекст лексер… удалил это расширение (.cls) из vb_.properties теперь всё замечательно работает ;) спасибо за подсказку.

и еще вопрос, ничего не думали по поводу утилитки для управления проектами?
есть вот такая штука (Filerx), правда уже давно не обновлялась.

+БАГ (или не совсем баг) в меню «правка» есть такая комбинация Ctrl+Shit+U (делает выбранный текст заклавными буквами), так вот, если выбирать в меню, то текст меняется, если просто нажимать хоткей, то ничего не происходит (в винде у меня на эту комбинацию ничего не стоит, потому конфликтов не должно быть).

ПС: спасибо за поздравления
Автор: Articad, Отправлено:02:08 11-04-2007
Удалено. Научился читать топик
Автор: mozers, Отправлено:08:57 11-04-2007
y0r1c
Цитата:
в меню «правка» есть такая комбинация Ctrl+Shit+U (делает выбранный текст заклавными буквами), так вот, если выбирать в меню, то текст меняется, если просто нажимать хоткей, то ничего не происходит
Посмотри в user.shortcuts - у тебя на эту комбинацию ничего другого не назначено? А Ctrl+U работает? Похожее как то было - в Винде на комбинацию ярлык (давно ненужный) был повешен. Смотри... Должно работать.

Цитата:
ничего не думали по поводу утилитки для управления проектами?
Есть мысля на базе HTA и Helper сделать простенькую вещь - при открытии SciTE опционально показывать окно со списком сохраненных проектов с возможностью выбора любого из них. Ну и при закрытии SciTE предлагать сохранить открытые файлы как проект... Это - пока только мысли вслух...

Цитата:
вот такая штука (Filerx)
Нет желания написать небольшую статейку на тему что это за хрень и с чем ее едят?

Articad
Я рад
Автор: y0r1c, Отправлено:15:28 11-04-2007
Может на ярлыках, винда стоит давно, уже всего не припомню.

А тут написано про Filerx, вроде бы больше нечего добавить.

И еще такой вопрос, вот в скайте через меню «файл» можно менять кодировку отображения, на utf-8 меняется нормально, а вот обратно… (или это опять только у меня :))
Автор: mozers, Отправлено:17:13 11-04-2007

Цитата:
тут написано про Filerx, вроде бы больше нечего добавить
имхо утила стоит целой книги - столько в ней всего наворочано

Цитата:
или это опять только у меня
Похоже, что ДА... (у меня - все нормально). Удали временно свои настройки и попробуй снова...
Автор: vladvro, Отправлено:17:19 11-04-2007
All
при включеной опции:
properties.directory.enable=1
редактор намертво виснит при попытке загрузить файл с сетевого диска

y0r1c
Цитата:
вот в скайте через меню «файл» можно менять кодировку отображения, на utf-8 меняется нормально, а вот обратно… (или это опять только у меня )

было такое из-за опции code.page=1251 (в сборке она выключена)
Автор: y0r1c, Отправлено:18:35 11-04-2007
хм, вроде бы внимательно объеденял настройки, а строку с предупреждением о cp1251 пропустил.


Цитата:
имхо утила стоит целой книги - столько в ней всего наворочано

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

Автор: vladvro, Отправлено:09:35 12-04-2007
y0r1c
Цитата:
нужно всего-лишь удобное управление проектами, хотя бы с возможностью автоматической заливки файлов на фтп

я на первых этапах знакомства с редактором попробовал использовать filerx, но мне утилита не понравилась, позже я понял что без нее вполне можно обойтись, и реализовать все необходимое средствами скриптов.
загрузку проекта, можно заменить загрузкой сессии, а автоматическую заливку реализовать скриптом или даже просто дополнительной командой повешенной на удобную клавишу, которая будет одновременно сохранять и отправлять файл (у меня сейчас так реализовано).

Автор: mozers, Отправлено:17:27 12-04-2007
Вот сочинил я тут - приколитесь - Session Manager
Установка:
1. Распаковать в любой из подкаталогов SciTE, например в SciTE\tools
2. Поместить ярлык от SessionManager.hta на Рабочий стол или куда вам удобнее.
3. В SciTEStartup.lua добавить строчку:
Код:
require (props["SciteDefaultHome"].."\\tools\\SessionManager.lua")

Использование:
При закрытии SciTE через меню или шорткат (Alt+F4, Alt+X) появится диалоговое окно в которое вписываем любое название текущей сессии - и сессия сохраняется с этим именем в $SciteUserHome. SciTE закрывается.

При открытии SciTE с ярлыка SessionManager.hta появляется окошко со списком сохраненных сессий - щелкаем на любой из них мышью или клавиатурой - запускается SciTE с выбранной сессией.

Очень надеюсь на обильные критические замечания
Если внимательнее поглядете на код SessionManager.hta то увидите, что в нем уже есть работающее сохранение, но подключить его к SciTE можно только как отдельную команду (как обработчик события мне не удалось), поэтому и было сделано сохранение сессий чисто на lua.
Автор: vladvro, Отправлено:09:44 13-04-2007
mozers
Цитата:
При закрытии SciTE через меню или шорткат

а отчего не воспользоваться сообщением "closing:" посылаемым SciTE через Director Interface?

Автор: mozers, Отправлено:12:18 13-04-2007
Обновил SessionManager. Внимательно читайте ReadMe.txt - все теперь стало по другому.
Автор: vladvro, Отправлено:13:16 13-04-2007
Новая "фишка" для редактора:
ограничение на длину надписи (имя файла) в табе, задается параметром:
tabs.title.maxlength=20
если имя файла длиннее, то в табе оно будет урезано с пометкой "..."
[more]
правим:
SciTEBuffers.cxx строка 898
Код:
unsigned tabsTitleMaxLength = props.GetInt([no]"tabs.title.maxlength"[/no],0); [no]//!-add-[TabsTitleMaxLength][/no]
SetMenuItem(menuBuffers, menuStart, IDM_BUFFERSEP, [no]""[/no]);
Данный код внедрен в форум с помощью скрипта vladvro
+
SciTEBuffers.cxx строка 935
Код:
strcat(titleTab, entry);
}
[no]//!-start-[TabsTitleMaxLength][/no]
if (tabsTitleMaxLength > 0 && strlen(titleTab) > tabsTitleMaxLength + 3) {
titleTab[tabsTitleMaxLength] = [no]'\0'[/no];
strcat(titleTab,[no]"..."[/no]);
}
[no]//!-end-[TabsTitleMaxLength][/no]
}
Данный код внедрен в форум с помощью скрипта vladvro

SciTEUser.properties строка 170
Код:
[no]# Ограничение на длинну отображаемого на закладке имени[/no]
tabs.title.maxlength=20
Данный код внедрен в форум с помощью скрипта vladvro
[/more]
Автор: NameRec, Отправлено:16:41 13-04-2007
Два вопроса по использованию кодировки CP866:
1. Правильно ли я понял, что переключение Alt+F9 переключает кодировку во всех вкладках и, если да: можно ли как-то сделать это только для файла в активной вкладке?
2. После переключения в CP866 (Alt+F9) поиск по Ctrl+F не находит русский текст, если же скопировать в строку поиска текст из файла через буфер обмена, то он там выглядит "зябами", но текст в файле находится. Как полечить?
Автор: mozers, Отправлено:13:15 14-04-2007
NameRec
Поздравляю с первым постом!
По вопросам:
Вся работа с кодировкой dos866 реализуется с помощью скрипта win2dos.lua, использующего официально неподдерживаемую возможность SciTE (работу с кодовой страницей 866 с помощью установки character.set=255).
Этот скрипт написан очень давно. Сегодня, наверное, уже можно подумать о реализации переключения кодировки в одной вкладке, а не во всех. И с поиском тоже, наверное можно что то придумать...
Но все это потребует серьезной правки исходного кода SciTE...
ИМХО не надо пытаться научить SciTE работать с кодировками поддержка которых не реализована изначально, можно же поступить гораздо проще: с помощью внешней утилиты организовать пункт в меню "Открыть файл в кодировке..." который будет открывать выбранный файл и автоматом преобразовывать его в WIN1251 - дальше мы его преспокойно редактируем в SciTE - дальше новый пункт "Сохранить файл в кодировке...".
Просто и сердито. Так мы сможем прелестно работать с файлом в ЛЮБОЙ кодировке.
Где взять эту утилиту я говорил тут, но только дальше разговоров дело, увы, не пошло... видимо пишущих на С++ это не заинтересовало

Автор: dB6, Отправлено:13:41 14-04-2007
NameRec, mozers

Цитата:
ИМХО не надо пытаться научить SciTE работать с кодировками поддержка которых не реализована изначально, можно же поступить гораздо проще: с помощью внешней утилиты организовать пункт в меню "Открыть файл в кодировке..." который будет открывать выбранный файл и автоматом преобразовывать его в WIN1251 - дальше мы его преспокойно редактируем в SciTE - дальше новый пункт "Сохранить файл в кодировке...".


Вообще-то это можно сделать и сейчас с помощью xcode. Выбираем в меню Tools->Кодировка->Сохранить в кодировке->ANSI 1251
Редактируем файл и делаем - Tools->Кодировка->Сохранить в кодировке->OEM 866.
На мой взгляд, не сложно.



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