HlfViewer — просмотр файлов помощи
HlfViewer — просмотр файлов помощи
"Решаю" mantis#1413 по плагину HlfViewer (входит стандартную поставку).
Со следующего билда будет такое:
1. '@' - корректируем, если в топике первым символом идет собака. Это позволит так же писать "hlf:FarRus.hlf @About".
2. Учимся понимать переменные окружения.
3. Добавляется возможность указать вместо имени hlf-файла GUID-соответствующего плагина
4. Если указан "файл" без пути, то порядок следущий:
4.1 GUID
4.2 Текущий каталог
4.3 %FARHOME%
4.4 по путям плагинов, сидящих "в этой сессии" Far Manager
5. В редакторе не смотрим на маску файла *.hlf, только по признакам:
5.1 первая строка файла равна ".Language="
5.2 наличие любого вхождения последовательности "@букво-цифры", не содержащее символ "=". Т.е. теперь можно смотреть "Far*.hlf.m4" правда некоторые темы будут некорректно отображаться из-за наличия m4-макросов.
6. Опция - доп.проверка по списку масок файлов
Теперь вопрос.
Чё делать с поддержкой макросов? (я про OPEN_FROMMACRO)
Будет какая-то спец.хотелка или тупо запустить плагин?
Со следующего билда будет такое:
1. '@' - корректируем, если в топике первым символом идет собака. Это позволит так же писать "hlf:FarRus.hlf @About".
2. Учимся понимать переменные окружения.
3. Добавляется возможность указать вместо имени hlf-файла GUID-соответствующего плагина
4. Если указан "файл" без пути, то порядок следущий:
4.1 GUID
4.2 Текущий каталог
4.3 %FARHOME%
4.4 по путям плагинов, сидящих "в этой сессии" Far Manager
5. В редакторе не смотрим на маску файла *.hlf, только по признакам:
5.1 первая строка файла равна ".Language="
5.2 наличие любого вхождения последовательности "@букво-цифры", не содержащее символ "=". Т.е. теперь можно смотреть "Far*.hlf.m4" правда некоторые темы будут некорректно отображаться из-за наличия m4-макросов.
6. Опция - доп.проверка по списку масок файлов
Теперь вопрос.
Чё делать с поддержкой макросов? (я про OPEN_FROMMACRO)
Будет какая-то спец.хотелка или тупо запустить плагин?
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: HlfViewer - просмотр файлов помощи
1. В плагине Brackets это не номер пунктаSkirda wrote:или как в Brackets и Editcase - в плагин передается номер пункта меню.
2. У HlfView нет меню.
Re: HlfViewer - просмотр файлов помощи
Я знаю, что нет меню, потому и написал "Например"
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: HlfViewer - просмотр файлов помощи
Даже не знаю.
Из макросов сейчас можно использовать функции LuaFAR API, поэтому сложно придумать специфичную для плагина спецхотелку.
Из макросов сейчас можно использовать функции LuaFAR API, поэтому сложно придумать специфичную для плагина спецхотелку.
Re: HlfViewer - просмотр файлов помощи
Вот так? (т.е. в качестве параметра Topic)
Plugin.Call("1AF0754D-5020-49cb-9474-1F82691C84C1")
или
Plugin.Call("1AF0754D-5020-49cb-9474-1F82691C84C1","cmd")
Plugin.Call("1AF0754D-5020-49cb-9474-1F82691C84C1")
или
Plugin.Call("1AF0754D-5020-49cb-9474-1F82691C84C1","cmd")
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: HlfViewer - просмотр файлов помощи
Т.е. при вызове из редактора можно опционально задать топик? Нормально
Плагин может быть вызван из панелей, но для этого сойдёт Plugin.Command
Или же: дать Plugin.Command 2 параметра (не знаю надо ли, при доступном-то API)
Плагин может быть вызван из панелей, но для этого сойдёт Plugin.Command
Или же: дать Plugin.Command 2 параметра (не знаю надо ли, при доступном-то API)
Re: HlfViewer - просмотр файлов помощи
Так, ладно, раз АПИ есть, в морг эту тему. Кому надо на lua нарисует обвязку, не будем перегружать сабж.
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
Re: FarCmds (FAR Commands)
Наверное по той же причине, зачем редактору указывать полное имя файла.AleXH wrote:Зачем для hlf:helpfile.hlf обязательно указывать расширение?
Предложения какие?
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
Re: HlfViewer — просмотр файлов помощи
В редакторе открывается всё что угодно, а в hlf: *.hlf файлы. Или я не прав? Если прав, то зачем нужна тавтология? Имхо при отсутствии стандартного расширения добавлять его самостоятельно. Если же открываемый файл может быть и без расширения, то сначала открываем дословно то, что написано, а если такой файл отсутствует, то добавляем расширение и пробуем открыть снова.Наверное по той же причине, зачем редактору указывать полное имя файла.
-
- Posts: 1326
- Joined: Mon 04 Apr, 2005 13:41
- Location: San Ramon, CA / Kharkov, UA
- Has thanked: 32 times
- Been thanked: 61 times
pushd
Тут случайно нажал в корне диска и надолго завис.
В справке:
Code: Select all
filename - имя hlf-файла.
Если имя файла содержит пробелы, то оно должно заключаться в кавычки.
Если имя файла указано без пути, то порядок поиска следующий:
- Текущий каталог
- %FARHOME%
- пути плагинов "в этой сессии" Far Manager
Судя по всему "Текущий каталог" имеется в виду с подкаталогами...
И hlf:filename имеет приоритет над hlf:topic?
Last edited by Yegor on Thu 03 Nov, 2022 21:36, edited 1 time in total.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
pushd
DrKnS, причина "зависания" не в рекурсивном поиске как таковом.
Поскольку я портировал HlfViewer для Far2L, решил копнуть поглубже. И что оказалось:
Поскольку я портировал HlfViewer для Far2L, решил копнуть поглубже. И что оказалось:
- плагин HlfViewer для получения путей всех плагинов вызывает PCTL_GETPLUGINS, а затем (в цикле) PCTL_GETPLUGININFORMATION
- как и положено, для каждого плагина PCTL_GETPLUGININFORMATION вызывается дважды: 1-й раз для получения необходимого размера памяти, 2-й раз - для получения данных.
- по какой-то пока непонятной причине, на 2-м вызове PCTL_GETPLUGININFORMATION для некоторых плагинов возвращается 0
- HlfViewer на вторых вызовах PCTL_GETPLUGININFORMATION не проверяет, что вернул Фар, и использует незаполненную Фаром аллоцированную память, в которой находится мусор.
- Иногда в этом мусоре в начале есть \ или / - вот тут-то и происходит "зависание"
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
pushd
Done: К админам просьба перенести сообщения, относящиеся к HlfViewer, в тему этого плагина.
А насчёт рекурсивного поиска HLF-файлов, начиная от папки плагина, это вообще не понятно зачем.
Ещё не видел ни одного плагина, у которого эти файлы находились бы не в самой папке плагина а где-то в подпапках.
А насчёт рекурсивного поиска HLF-файлов, начиная от папки плагина, это вообще не понятно зачем.
Ещё не видел ни одного плагина, у которого эти файлы находились бы не в самой папке плагина а где-то в подпапках.
Last edited by HaRT on Tue 08 Nov, 2022 19:59, edited 1 time in total.
Reason: Вычеркнуто исполненное
Reason: Вычеркнуто исполненное