GithubHelp home page GithubHelp logo

shmuz / spring Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 1.0 7.19 MB

Far Manager macros in Lua

License: Other

Lua 0.51% Shell 0.11% C++ 52.59% Pascal 0.86% C 45.86% Awk 0.04% Objective-C 0.01% Assembly 0.02%

spring's People

Contributors

shmuz avatar zg0 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

spring's Issues

Функциональность MFLAGS_RUNAFTERFARSTART

Или альтернативно - единственный стартовый макрос (файл). Это - лучше, так как позволяет управлять порядком выполнения действий.

Загрузка макроса с ошибкой при запуске Фара

[Reported by Aidar Rakhmatullin].

В случае ошибки в обычном (неавтостартующем) макросе при запуске FAR'а выдаётся ошибка:

Ошибка при разборе макроса [string "far.Keys("AltF7); far.Print("**.*"); far.Keys("Home Right CtrlV..."]:1: unexpected symbol near '*'

Естественно, функции far.Print ещё нет, но это тестовый макрос, повешенный на "клавишу" Ctrl+Alt+F8.
В FAR v3.0 build 2753 x86 такого не было.
Кроме того, не отобразилась часть 1: unexpected symbol near '*', хотя по Ctrl+C получил весь текст из окна ошибки.

Macro with Menu.Select works in Shell but not in Dialog and Editor

Не работает такой макрос

<macro area="Dialog" key="CtrlShiftU" flags="EVSelection|DisableOutput" description="PSF: Selected text to upper case">
                <text>
                    <![CDATA[Keys("F11") if  Menu.Select("PowerShellFar", 3) > 0 then  Keys("Enter u") else Keys("Esc") end]]>
</text>

Тот же макрос не работает в редакторе. А вот в Shell именно такой же макрос работает.

Забавный глюк MS Help Workshop 4.1 при просмотре CHM манов LuaFAR

В некоторых случаях собранные в MS Help Workshop 4.1 СHM маны выдают ошибку "Navigation Canceled...". Я её поучил скачав из ночнушек маны отдельно, и в то же время если взять всю. SVN копию. репозитария она у меня не воспроизвелась. Я сталкивался с таким его поведением когда в HTML файле он встречает ссылку на отсутствующую индексную страницу. Попробую покопаться и устранить эффект. Но выглядит он не слишком "приятно": http://s60.radikal.ru/i168/1210/6b/cc6d182119aa.png . Как сделаю рабочий вариант добавлю сюда - зачем два раза одну и ту же работу будем делать? Похоже придётся проверить файлы оглавления - обычно причина сидит в их структуре. Сделаю - скажу точно.

Plugin.Menu ожидает закрытия меню

NightRoman:
http://forum.farmanager.com/viewtopic.php?f=5&t=7302&p=98314#p98308
После конвертации конвертером получил такой макрос для панелей

if  Plugin.Menu("10435532-9BB3-487B-A045-B0E6ECAAB6BC", "58AD5E13-D2BA-4F4C-82CD-F53A66E9E8C0") then
   Keys("1")
else
   Keys("AKey")
end

Вместо выбора хоткея 1 в меню он печатает "1" в командной строке.

Raidar:
Plugin.Menu ожидает закрытия меню вместо возврата управления сразу после отображения меню.

Падение Фара после обновления до билда 2757

В билде 2757 (ревизия 8235) невинное с виду изменение в ctrlobj.cpp привело к тому, что при вызове Macro.LoadMacros() - и конкретно внутри него CtrlObject->Plugins->CallPlugin(LuamacroGuid,Type,Data,&ptr) - Фар падает.

Визуальные артефакты в диалогах - вопрос какую настройку поправить?

Вот что я вижу - в конце любой строки диалога выводимого плагинами визуализируются пробелы-заполнители. Увидел на двух плагинах FarVersion и Visual Rename адаптированных под Lua. Андрею вопрос задал http://code.google.com/p/andrew-grechkin/issues/detail?id=22&thanks=22&ts=1350730127, с Лёшей обратной связи увы нет. Я надеюсь что это явление мы уберём на уровне изменения забытой мной настройки - здорово путает, особенно когда опрашиваешь версию бинарника. Визуально выглядит вот так:

http://s52.radikal.ru/i135/1210/3f/799779dbfa08.png

пока понять с чем встретился не смог и прошу если возможно подсказать в каком направлении искать решение.

Ошибка с Dlg.GetValue

Проблема с получением позиции текущего элемента списка:
возвращается значение типа usedata вместо number, хотя значение правильно.
Воспроизведение:

  1. Назначаем макрос на клавишу для области Editor.
  2. Открываем файл для редактирования в кодировке 1251.
  3. Нажимаем клавишу.
local m=msgbox("Warning!", "Save this file as UTF-8?", 0x00020001)
if m~=1 then exit() end
local r=Editor.CurLine;
local c=Editor.CurPos;
Keys("ShiftF2 Tab")
local id=Dlg.GetValue(0,6)
Keys("CtrlDown")
local s=Dlg.GetValue(id,0)
--far.Message(s, type(s))
local k=4;
while (mf.index(s, "65001")~=0) and (k>3) do
  Keys("Down")
  s=Dlg.GetValue(id,0)
  --far.Message(s, type(s))
  k=Dlg.GetValue(id,7) -- Здесь получается тип userdata вместо number !!!
  far.Message(k, type(k)) -- Выводится тип = userdata и значение = 6 !!!
end
--[[
-- Закомментировал, чтобы случайно не изменить кодировку файла
if mf.index(s, "65001")==0 then
  Keys("Enter Tab Subtract Enter")
  for k = 1, 2 do
    if Area.Dialog then Keys("Enter") end
  end
  Keys("AltF8")
  print(r)
  print(",")
  print(c)
  Keys("Enter")
else
  Keys("Esc Esc")
end
--]]

Свойства и функции FarMacro в LuaMacro

  1. В FarMacro есть свойства. Часто используемые из них предлагаю сделать как глобальные переменные, доступные только в макросе: MacroArea, akey, GUID(?) - если это возможно (из обычных скриптов доступ MacroArea и т.п. - через get-функции), остальные - как функции.
  2. В FarMacro есть функции, которые были бы полезны и в скриптах (far.Print, far.Clip). С другой стороны есть функции, которые специфичны для макросов (в общих свойствах и функциях таких нет), их предложил бы реализовать вне области far, например, в macro.

Меню, выводимое far.Menu(), затирается перерисовкой экрана

Вызов far.Menu() из макроса выводит меню, и оно работает, но через секунду бездействия пользователя Фар перерисовывает экран, затирая меню. Если нажать, например, Up, меню снова нарисуется, но без рамок, а через секунду снова затрётся.

Подозреваю, что эта проблема решается в menushowFunc() вызовами frame.Lock()/frame.Unlock(), но плагинам-то это вроде недоступно...

Функция CallPlugin

Желательно добавить приватный (или общедоступный) API для реализации данной функции.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.