Ru-Board.club
← Вернуться в раздел «Программы»

» SciTE - Open Source Text Editor for Windows & Linux

Автор: vladvro
Дата сообщения: 02.03.2007 12:55
Midas
Цитата:
-- Скрипт для поддержки сохранения RO/Hidden/System файлов

небольшое исправление для скрипта:

Код: ...
local function AfterSave(FN)
    -- Если была сохранена строка с аттрибутами, то установим их
    local FileAttrNumber = tonumber(props['FileAttrNumber'])
    if FileAttrNumber > 0 then
        os.setfileattr(FN, FileAttrNumber)
    end
end
...
Автор: mirk
Дата сообщения: 02.03.2007 21:19
О нас пишут - http://www.ua-admin.com/
Автор: ALeXkRU
Дата сообщения: 02.03.2007 23:45
mirk
что-то не очень удачно у тебя ссылка получилась
а пишут - больше про SciTE

Цитата:
статья: Специалист широкого профиля
...
впечатления от программы можно вместить в четыре слова: гибкость, функциональность, простота и. оригинальность. Надеюсь, SCITE не разочарует и вас.
Автор: mirk
Дата сообщения: 03.03.2007 00:17

Цитата:
а пишут - больше про SciTE

Ну так упоминают и советуют

Ладно, сознаюсь, мое хобби работа журналистом и составление громких заголовков Так-что не серчайте
Автор: mozers
Дата сообщения: 04.03.2007 20:52
Ядро 1.72 .35Ru
EXE + DLL [448kB]
Source [387kB] (только измененные файлы)
Список всех доработок

Цитата:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[macro] (Автор: VladVRO)
Поддержка записи и воспроизведения макросов с помощью LUA
Внесена небольшая доработка в функции для Lua Extension, по аналогии с базовыми функциями.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[FileAttr in PROPS] (Автор: Midas)
Теперь из скриптов доступны дополнительные свойства файла
FileAttr, FileTime, FileDate.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[Euphoria] (Автор: Midas)
Добавлен новый лексер для языка Euphoria <http://www.rapideuphoria.com>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ToolsMax] (Автор: Moon_aka_Sun, VladVRO)
Число допустимых пунктов в меню Tools увеличено до 300.
Для создания пользовательских команд в user.context.menu следует использовать формулу:
пользовательская команда = 2000 + номер этой команды в меню Tools

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[MSGBOX] (Автор: Midas)
В LUA Extention добавлены функции:
- os.msgbox(<Text>, <Title>, <Options>) - Окно с сообщением. Возвращает выбранную кнопку;
- os.exec(<Cmd>, <WindowStyle>) - wrapper для WinExec;
- os.getfileattr(<FileName>) - возвращает аттрибуты файла в виде числа;
- os.setfileattr(<FileName>, <FileAttr>) - устанавливает аттрибуты файла;
Сборка обновится чуть позднее...
Автор: ALeXkRU
Дата сообщения: 06.03.2007 03:12
Не помню, мелькала ли здесь уже сборка SciTE with Extensions от Bruce Dodson (GIS Developer)
и, заодно, работающий на её основе Source Code Viewer для Directory Opus (файл-менеджер,
топик на Ru-Board) (линк на оф.сайт)
Автор: vladvro
Дата сообщения: 06.03.2007 16:37
mozers
хочу напомнить про фичу от Midas:
2) Следующии исправления добавляют "[R/O]" в Табе для файлов "только для чтения",
если ее сделать опциональной, то можно добавлять в сборку, для этого в файле SciTEBase.cxx вместо:
Код: buffers.buffers[buffers.Current()].isRO = isReadOnly;
Автор: mozers
Дата сообщения: 06.03.2007 20:34
vladvro
Про фичу Midas-а я помню
Согласен, что опциональность тут просто обязательна.
Только я бы предложил опционально задавать саму символьную последовательность (хошь [R/O], хошь " •", а хошь че другое).
Если ничего не задано, то фича просто отключается.
Правда, сам автор пока еще борется с выявлеными проблемами:
Цитата:
Сделаю позже, т.к. обнаружил ряд траблов (например при установке из скрипта editor.ReadOnly=1)


Добавлено:

Еще одна мысль...
На мой взгляд, диалог для ввода параметров в SciTE работает слишком примитивно. Например он не позволяет работать с динамически меняющимися переменными. Попробуйте сделать такой пункт меню Tools:
Код: command.name.28.*=Test
command.28.*=*dostring print("$(CurrentSelection) - $(FileNameExt)")
command.mode.28.*=subsystem:lua,savebefore:no
Автор: dB6
Дата сообщения: 06.03.2007 23:40
mozers
Сорри, я может слепой или еще чего.. но не совсем понимаю о каком окне ввода параметров ты говоришь?
Меню->Вид->Параметры ?
Что-то я совсем не понимаю, как этим пользоваться и что ты имеешь в виду.
Автор: vladvro
Дата сообщения: 07.03.2007 13:48
dB6
просто сделай то, что предложил в качестве примера mozers


mozers
Цитата:
Попробуйте сделать такой пункт меню Tools:
занятная фишка, а я даже не знал про нее

Цитата:
и увидите что в полях ввода параметров не появились ни значение $(CurrentSelection) ни значение $(FileNameExt)
ну это то на мой взгляд логично, а вот парсить строку команды на предмет вхождения в нее переменных и подменять ими параметры не логично, т.к. получается неоднозначная ситуация, а если надо будет получить значение из $(1) и при этом в команде используются еще несколько переменных?

вобщем родилась у меня доработка, позволяющая вызывать диалог параметров из Луа скрипта [more]
файл Extender.h строка 34:
Код: virtual void DoMenuCommand(int cmdID)=0;
virtual bool ShowParametersDialog(const char *msg)=0; //!-add-[ParametersDialogFromLua]
Автор: mozers
Дата сообщения: 07.03.2007 23:19
dB6
Цитата:
о каком окне ввода параметров ты говоришь?
Меню->Вид->Параметры ?
Да. Именно о нем.
Если при задании команды для меню Tools первый символ будет * то появится этот диалог в который можно вписать свои данные. Переменные $(1), $(2), $(3), $(4) соответствуют значениям, введенным в соответствующие поля. Пример:
Код: command.name.29.*=Test
command.29.*=*dostring print(" var_1=$(1)\n var_2=$(2)\n var_3=$(3)\n var_4=$(4)")
command.mode.29.*=subsystem:lua,savebefore:no
Автор: dB6
Дата сообщения: 08.03.2007 15:09
mozers
Спасибо за внятные объяснения. А я все думал - что за меню параметры и нафиг оно надо..
Автор: vladvro
Дата сообщения: 09.03.2007 10:18
mozers
Цитата:

Цитата: а если надо будет получить значение из $(1) и при этом в команде используются еще несколько переменных?
Я полагал, что необходимо пробежать по строке command и присвоить переменной $(1) значение 1й встретившейся переменной, переменной $(2) значение 2й встретившейся переменной, и т.д. до 4й
Автор: mozers
Дата сообщения: 09.03.2007 14:24

Цитата:
я так и понял, вот пример противоречия:

Имхо это не противоречие, а просто ошибочная запись, после выполнения которой
$(1) получит значение $(CurrentSelection)
$(2) получит значение $(1) (если это значение было задано ранее, то оно появится в поле ввода, нет - значит - нет)
$(3) получит значение $(2) ...
$(4) получит значение $(3) ...
(если значение $(4) было задано ранее, то оно просто потеряется).
Эти полученные значения появятся в полях ввода и их можно будет исправить.
А после нажатия на ОК
$(1) получит значение вписанное в 1 поле
$(2) получит значение вписанное в 2 поле
$(3) получит значение вписанное в 3 поле
$(4) получит значение вписанное в 4 поле
а $(CurrentSelection), естественно, потеряется.
Все строго и логично.

Автор: vladvro
Дата сообщения: 09.03.2007 14:43
mozers
Цитата:
Имхо это не противоречие, а просто ошибочная запись, после выполнения которой
...
Все строго и логично.

прости, но не понимаю где тут логика?!
что мне делать, после внедрения твоего предложения, если я хочу получить на выходе результат, где первая строка это выделенный текст, а остальные это переменные с 1 по 4??
не пользоваться более командной строкой, а делать это отдельной функцией?
а если рассмотреть иную ситуацию:
в командной строке необходимо использовать переменную для указания правильного пути к файлу скрипта, а в скрипте для формулы должны использоваться значения переменных с 1 по 4?
тогда что делать?
Автор: mozers
Дата сообщения: 12.03.2007 01:59
В приватной беседе с vladvro сошлись на том, что возможность задания дополнительного параметра в .properties типа такого:
Код: command.dialog.12.*=title:Dialog header, 1:$(CurrentSelection), 2:$(SelectionStartColumn)
Автор: deryabin_ka
Дата сообщения: 12.03.2007 09:41
mozers
Не смог скачать сборки с http://scite.ruteam.ru/scite/sborki/scite-ru-board.
Ошибка 404.
Автор: dB6
Дата сообщения: 12.03.2007 16:39
deryabin_ka

Цитата:
Не смог скачать сборки с http://scite.ruteam.ru/scite/sborki/scite-ru-board.


Ну.. С точкой в конце точно будет 404.

А если так? http://scite.ruteam.ru/scite/sborki/scite-ru-board
Автор: Joker_XN_Team
Дата сообщения: 12.03.2007 17:13
dB6
Он про файлы говорил
The requested URL /engine/upfiles/mozers/SciTE_172_36Ru_120307.zip was not found on this server.
Автор: dB6
Дата сообщения: 12.03.2007 17:26
Joker_XN_Team

Цитата:
Он про файлы говорил

Ну если про файлы, то mozers еще не успел залить файл.
Доступен старый SciTE_172_31Ru_160107.zip
Автор: mozers
Дата сообщения: 12.03.2007 17:50
Я не "не успел залить". Я не могу залить
Аплоад файлов больше 100кБ обрывается
И че там mirk наконфигурил
А FTP то на scite.ruteam.ru нету ((
Отослал (еще прошлой ночью) ему все файло чтоб залил, а от него - ни слуху ни духу
Автор: dB6
Дата сообщения: 12.03.2007 18:16
mozers
Пришли мне, попробую.
Ну или попробую выложить куда-нить, мот на общий фтп.

Добавлено:
А еще лучше было бы, если бы ты в аське появился
Автор: mozers
Дата сообщения: 12.03.2007 20:34
не без помощи dB6 ...
SciTE 1.72 .36Ru-Board Edition [Сборка 12.03.2007]
Полное описание

Цитата:
Новое ядро .36Ru - множество новых возможностей
Добавлены новые переводы статей из документации SciTEDirector_rus.html и SciTELua_rus.html (Автор: s_mart)
Вся переведенная документация сведена в единую справочную систему и снабжена перекрестными ссылками.
Добавлен русский справочный файл по языку LUA (выделяем ключевое слово и нажимаем F1)
Новые скрипты: Open_Selected_Filename.lua, ROCheck.lua, ROWrite.lua
Доработаны скрипты: AutocompleteObject.lua, auto_backup.lua, FuncProcList.lua, ReadOnly.lua, html_tags_autoclose.lua
Доработаны API файлы: SciTELua.api, vbscript.api


Ядро 1.72 .36Ru
EXE + DLL [449kB]
Source [388kB] (только измененные файлы)
Список всех доработок

Цитата:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ParametersDialogFromLua] (Автор: VladVRO)
В LUA Extention добавлена функция для вызова диалогового окна "Параметры" (Shift+F8)
scite.ShowParametersDialog(text)
где text - короткий комментарий в окне параметров.
Возвращает false если пользователь отказался (нажал отмену или Escape) иначе true.
Пример:
function Dialog()
props["1"]=props["CurrentSelection"]
props["2"]=props["SciteDefaultHome"]
if scite.ShowParametersDialog("Please set params") then
print ("1="..props["1"].."\n2="..props["2"].."\n3="..props["3"].."\n4="..props["4"])
else
print ("Cancel")
end
end
Автор: mozers
Дата сообщения: 13.03.2007 00:41
Не знаю как у вас, а у меня скрипт для сохранения RO/Hidden/System файлов (тот, что в сборке) периодичеки глючил по непонятной причине, устанавливая при сохранении все атрибуты RHS даже если файл был только с одним атрибутом R.
В общем, я его подрехтовал ROWrite.lua [more]
Код: -- Скрипт для поддержки сохранения RO/Hidden/System файлов
-- Подключение:
-- Добавьте в SciTEStartup.lua строку
-- require (props["SciteDefaultHome"].."\\tools\\ROWrite.lua")
-- Автор: Midas
-- Version 1.1
-----------------------------------------------
local function BSave(FN)
FileAttrNumber = 0
-- Получим аттрибуты файла.
FileAttr = props['FileAttr']
if string.find(FileAttr, '[RHS]') then -- Если в файл нельзя записать, то спросим
if os.msgbox("Файл доступен только для чтения. Все равно сохранить ?\n"
.."Аттрибуты файла: "..FileAttr, "SciTE", 65)==1 then
FileAttrNumber = os.getfileattr(FN)
-- для того, чтобы SciTE позволил сохранить, снимем все аттрибуты
os.setfileattr(FN, 2080)
end
end
end

local function AfterSave(FN)
-- Восстановим атрибуты файла после его сохранения
if FileAttrNumber > 8208 then
os.setfileattr(FN, FileAttrNumber)
end
end

-- Добавляем свой обработчик события OnBeforeSave
local old_OnBeforeSave = OnBeforeSave
function OnBeforeSave(file)
local result
if old_OnBeforeSave then result = old_OnBeforeSave(file) end
if BSave(file) then return true end
return result
end

-- Добавляем свой обработчик события OnSave
local old_OnSave = OnSave
function OnSave(file)
local result
if old_OnSave then result = old_OnSave(file) end
if AfterSave(file) then return true end
return result
end
Автор: Midas
Дата сообщения: 13.03.2007 09:12
Существует Lister-плагин для Total Commander'а позволяющий открывать вместо Lister'а
любую программу. Link: http://wincmd.ru/plugring/edloader.html
Напрямую настроить ее для работы со SciTE'ом у меня не получилось (Параметры прог. передаются после имени файла, а это не нравиться SciTE'у)
Написал маленькую программу для запуска SciTE'а: http://kmidas.narod.ru/files/sv.zip
Ее надо положить в папку SciTE'а, затем настроить sv.ini, AppLoader.ini

PS: У AppLoader'а есть серьезная проблема: при просмотре файлов из архива они удаляются раньше, чем запуститься программа.

mozers !

Посмотри скрипт еще раз: vladvro предложил изменения (to_number...) Если не поможет, то выложи сюда, что и на какой Win показывает os.getfileattr()
PS2: C багой ReadOnly в табе борюсь
Автор: vladvro
Дата сообщения: 13.03.2007 14:35
Midas
Цитата:
Посмотри скрипт еще раз: vladvro предложил изменения (to_number...) Если не поможет, то выложи сюда, что и на какой Win показывает os.getfileattr()
я сам потестил еще, мое изменение не лечит проблему, т.к. она кроется в os.getfileattr(),
у меня WindowsXP (sp2),
вот то, что выдает функция на только что созданый файл с атрибутом [R]: 4294967295
и вот то, что выдает при корректной работе с файлом [R]: 33
Автор: mozers
Дата сообщения: 13.03.2007 15:43
vladvro Midas
Да. Имено так (у меня так же ХР SP2 NTFS). Тестил с помощью
Код: command.name.290.*=FileAttrNumber
command.290.*=dostring print(props["FilePath"].." = "..os.getfileattr(props["FilePath"]))
command.mode.290.*=subsystem:lua,savebefore:no
command.shortcut.290.*=Alt+1
Автор: mozers
Дата сообщения: 13.03.2007 22:00
Midas
Цитата:
Написал маленькую программу для запуска SciTE'а: http://kmidas.narod.ru/files/sv.zip
Я так понял, что она делает то же самое что мой батничек:
Код: @START "" "G:\SciTE\SciTE.exe" -property:toolbar.visible=0 -property:tabbar.visible=0 -property:save.recent=0 -property:save.session=0 -property:ADDITIONAL_SHORTCUTS=Escape^|IDM_QUIT^| "%1" -menucommand:416
Автор: Midas
Дата сообщения: 14.03.2007 08:59
1) vladvro mozers
На томах с NTFS есть дополнительные аттрибуты: Индексирование, Сжат/Зашифрован
Скорее всего файлы имеют разные дополнительные аттрибуты. Такую ситуацию Я проверял на разных томах/компах/системах, все работает
Просьба: выложите сюда дополнительные аттрибуты этих файлов.


Цитата:
ИМХО лучше бы переписать саму процедуру сохранения файла, чтобы SciTE не ругался, а не снимать, а потом вновь устанавливать атрибуты скриптом.

Будет то же самое: снимаем аттрибуты, сохраняем, устанавливаем. Без снятия аттрибутов не обойтись: в R/O файлы в принципе нельзя ничего записать (на то и аттрибут .
И вообще, IMHO лучше реализовывать все дополнения к SciTE'у через Lua

2)mozers

Цитата:
Я так понял, что она делает то же самое что мой батничек:

Да, но без мигания консольного окна
Автор: mozers
Дата сообщения: 14.03.2007 14:44
Midas
Цитата:
На томах с NTFS есть дополнительные аттрибуты
Точно так и могут быть и другие. Надо из циферы выделять только RHS отбрасывая все остальное. Идеальный случай - сделать так чтобы set|getfileattr возвращал/устанавливал строковое значение в формате "ARHS"

Цитата:
выложите сюда дополнительные аттрибуты этих файлов
Вот что выдает os.getfileattr на файлы с установленными атрибутами
Код: -- = 128
A = 32
AO = 12576
O = 12544

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: LeechGet


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.