Condensed View

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 12837
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

Реализация Condensed View

Post by John Doe »

Latest post of the previous page:

buniak_a_h wrote: Может, подскажете, где это описано?
У нас тут чётко заданная тема, я прошу не использовать её как какой-то общий чат.

buniak_a_h
Posts: 1931
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

Реализация Condensed View

Post by buniak_a_h »

sToLp wrote: При перезагрузке макросов из панелей вылезает ошибка:
1. Исправил (на первой странице).
2. Не подскажете, Вы перед перезагрузкой макросов пользовались этим CVondView ?
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

Реализация Condensed View

Post by sToLp »

buniak_a_h wrote:2. Не подскажете, Вы перед перезагрузкой макросов пользовались этим CVondView ?
Нет. Вот этим.
buniak_a_h wrote:1. Исправил ...
Ошибка при загрузке Фара и при перезагрузке макросов не вылезает. Но при наличии сабжевого макроса текстовые файлы в редактор не грузятся — Фар зависает. В том числе:
sToLp wrote: При попытке перезагрузки макросов из редактора после установки сабжевого макроса Фар повисает.
После же изъятия макроса всё встаёт на свои места.

buniak_a_h
Posts: 1931
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

Реализация Condensed View

Post by buniak_a_h »

sToLp
Извините за серость, я на форуме впервые, терминологии не знаю. Что такое сабжевый макрос?
sToLp wrote: 2. Не подскажете, Вы перед перезагрузкой макросов пользовались этим CVondView ?
Нет. Вот этим.
Вы описали, как макросы перезагружали. Я спрашивал, пользовались ли Вы макросом CondView до перезагрузки (вообще в этом сеансе работы). Ну, а раз такое получается, не могли бы Вы проверить, портится ли ФАР при "обычной" перезагрузке (macro:load в командной строке).
Извините за беспокойство.
ЗЫ.
У меня никак не воспроизводится. Ни через команду, ни макросом. :-(
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

Shmuel
Posts: 6151
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 320 times

Реализация Condensed View

Post by Shmuel »

buniak_a_h wrote: я на форуме впервые, терминологии не знаю. Что такое сабжевый макрос?
От слова "subject". То-есть речь о макросе, которому посвящена данная тема.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

Реализация Condensed View

Post by sToLp »

buniak_a_h
Во-первых, отличная новость — в Far 3.0.4700 x64 сабжевый макрос в последней редакции нормально загружается, выгружается, работает и ни чему другому не мешает.
И отвечая на предыдущие вопросы:
пользовались ли Вы макросом CondView до перезагрузки (вообще в этом сеансе работы)
Нет. Утром, в Far b4699 x64 под Win10x64entRu скопировал макрос, загрузил его в редактор и далее как описывал выше. Однообразно в чистом Фаре и в совокупности с КонЭму. Перезагрузки системы не помогали. Повторяемость была 100%-ая.
не могли бы Вы проверить, портится ли ФАР при "обычной" перезагрузке (macro:load в командной строке)
Не очень понятен вопрос в части того, что значит "портится ли Фар". Поэтому отвечаю как понял. Последняя версия макроса из панелей перезагружается нормально любым способом. Но после загрузки макроса в Far 3.0.4699 x64 нельзя было грузить файлы в редактор — Фар попросту вешался.

И, повторюсь, в Far 3.0.4700 x64 всё нормально.

buniak_a_h
Posts: 1931
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

Реализация Condensed View

Post by buniak_a_h »

sToLp
Спасибо.
sToLp wrote: Не очень понятен вопрос в части того, что значит "портится ли Фар".
Имел в виду - теряет функциональность. В частности, перестаёт грузить файлы в редактор.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

Реализация Condensed View

Post by sToLp »

buniak_a_h
А тут вот с дружественного ру-борда подсказывает Alexyz21, весьма опытный спец по макросам:
Редактор "вешается" из-за отсутствия определения local EditorsCondView = {}
Может данная подсказка поможет Вам как-то.

buniak_a_h
Posts: 1931
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

Реализация Condensed View

Post by buniak_a_h »

sToLp wrote:buniak_a_h
А тут вот с дружественного ру-борда подсказывает Alexyz21, весьма опытный спец по макросам. Может данная подсказка поможет как-то.
Спасибо.
1. Для себя (потестю - выложу) я уже заменил [s]local EditorsCondView=nil[/s] на local EditorsCondView={}
2. Всё равно непонятно: следом идёт
if not local EditorsCondView then local EditorsCondView={} end
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

buniak_a_h
Posts: 1931
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

Реализация Condensed View

Post by buniak_a_h »

Занёс в первый пост актуальную версию макроса.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

Реализация Condensed View

Post by sToLp »

buniak_a_h wrote: Занёс в первый пост актуальную версию макроса.
В Win10x64entRu Far 3.0.4700 x64 макрос работает нормально, без каких либо замечаний. Спасибо!

buniak_a_h
Posts: 1931
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

Реализация Condensed View

Post by buniak_a_h »

Сорри, забыл выбросить тестовый макрос.... Исправил
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

buniak_a_h
Posts: 1931
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

Реализация Condensed View

Post by buniak_a_h »

Добавил настройку "горячих" клавиш. Вызывается при сжатом режиме при повторном нажатии AltF4. Раньше повторное нажатие [b]AltF4[/b] выключало сжатый режим. В дальнейшем эту клавишу можно заменить.
Настройки хранятся в том же каталоге, где и файл с макросом, в файле с именем CondView.cfg. При отсутствии такового устанавливаются клавиши по умолчанию:
  • Включение «сжатого» режима [b]AltF4[/b]
    Выключение «сжатого» режима с возвратом на прежнюю позицию [b]F10 Esc[/b]
    Выключение «сжатого» режима с переходом на новую позицию [b]Enter[/b]
    Настройка «горячих» клавиш [b]AltF4[/b]
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

User avatar
John Doe
Бюрократ
Posts: 12837
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

Реализация Condensed View

Post by John Doe »

Некоторые соображения по использованию lua после беглого просмотра кода:
  1. Функцию Settings можно заменить на таблицу.
  2. В функции IsMacroActive код можно заменить на

    Code: Select all

    return ei and EditorsCondView[ei.EditorID]
  3. В функции ProcessEditorInput код можно заменить на
    if not EditorsCondView[EID] or EditorsCondView[EID].Ends then return end
  4. После end необязательно ставить точку с запятой
  5. В макросе "Condenced View" код на if ei then CondViewOn(ei, ei.EditorID) end (с nil сравнивать нет смысла, т.к. nil в условии равнозначен false)
    (возвращать значение из action смысла нет. вреда тоже нет, но кто знает, может быть в будущем эти значения будут как-то обрабатываться, на мантисе есть)
  6. В функции ProcessEditorEvent есть смысл использовать конструкцию elseif
  7. В функции ExitScript можно обойтись без переменных ei, EID
  8. В функции __tableFind можно обойтись без return false, т.к. (в данном случае) это равнозначно отсутствию возвращаемого значения
  9. В макросе "Condenced View - Escape" код можно заменить на if ei then CondViewOff(ei, ei.EditorID, false) end
    (и в "Condenced View - GoTo NewPos" аналогично)
  10. В определении "EditorEvent" условие condition лишнее
  11. Вместо table.maxn(EditorsCondView) можно использовать next(EditorsCondView)
    В данном случае не проблема, но например в Lua 5.2 этой функции уже нет
Это не ошибки, а просто для информации. Кое-где просто дело вкуса.

buniak_a_h
Posts: 1931
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

Реализация Condensed View

Post by buniak_a_h »

John Doe
Спасибо, большинство замечаний я уже знаю (когда начинал, столкнулся с LUA впервые). Оставил (а) из-за привычки на Паскале (б) многие из Ваших замечаний - значительно менее читабельны. Особенно это касается сравнения с nil. Согласитесь, конструкция keybar=IsMacroActive() and {"CondOff",rus="Норм"} or {"Exit",rus="Выход"}; значительно туманнее, чем iif(IsMacroActive(), {"CondOff",rus="Норм"}, {"Exit",rus="Выход"}) или IsMacroActive()?{"CondOff",rus="Норм"}:{"Exit",rus="Выход"}
Впрочем, дело вкуса и привычки...
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

User avatar
John Doe
Бюрократ
Posts: 12837
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

Condensed View

Post by John Doe »

Добавьте в шапку список хоткеев и выполняемых по ним действий

Post Reply

Return to “Полезные макросы и скрипты”