PanelTabs — Панели с закладками

Здесь можно обсудить ваш любимый плагин.
User avatar
a'Lexus
Posts: 50
Joined: Mon 17 Oct, 2016 22:30

PanelTabs — Панели с закладками

Post by a'Lexus »

Latest post of the previous page:

Честно говоря, не очень понял почему данный глюк был перенесен в топик плагина. Как я понимаю задача плагина после получения новой позиции и размера панели перерисовать шорткаты. А задача самого FAR очистить фон перед перерисовкой. (Что с моей точки зрения реализуется проще и универсальнее.)
Или я ошибаюсь, и плагин перед изменением размера окна получает событие об изменении и должен за собой убраться, пережде чем перерисует шорткаты по новому событию - новый размер окна?
Last edited by a'Lexus on Sun 28 Jul, 2019 15:10, edited 2 times in total.
In love with FAR since 1997
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

PanelTabs — Панели с закладками

Post by DrKnS »

a'Lexus wrote: Sun 28 Jul, 2019 15:02А задача сомго FAR очистить фон перед перерисовкой
Far:
- Не предоставляет интерфейсов для фоновой записи в произвольные места экрана.
- Не предполагает, что кто-то ещё может писать в консоль.
- При перерисовке обновляет только те участки, которые изменились с его точки зрения.
- Иногда делает снимки экрана (например, когда вы что-то запускаете) чтобы было что показать под панелями.

Если плагину захотелось втихаря что-то нарисовать поверх того, что рисует Far, то это что-то может быть:
- Затёрто сразу же.
- Просуществовать примерно столько, сколько плагин ожидает, если звёзды сложились удачно.
- Висеть на экране ещё очень долго, если попало в снимок.
почему данный глюк был перенесен в топик плагина
Потому что в Far чинить в этом случае нечего (возможно, в плагине тоже и остаётся только смириться).
User avatar
a'Lexus
Posts: 50
Joined: Mon 17 Oct, 2016 22:30

PanelTabs — Панели с закладками

Post by a'Lexus »

DrKnS wrote: Sun 28 Jul, 2019 15:49Потому что в Far чинить в этом случае нечего
Странный, с моей точки зрения, ответ. И я понимаю еще, если бы при изменении размеров окна API позволяло плагину узнать о предстоящей перерисовке и подготовится к этому. Именно поэтому данная задача становится задачей FAR.
DrKnS wrote: Sun 28 Jul, 2019 15:49Не предполагает, что кто-то ещё может писать в консоль.
Вот конкретный случай, когда можно уже предположить и избежать в дальнейшем, предоставляя таким образом расширенный функционал.
Очистка "задника" открытого окна целиком перед перерисовкой панелей не является задачей которая сильно снизила бы производительность. Зато устранила, как глюк текущего плагина, так и и возможные другие артефакты в будущем.

Не собираюсь никого учить, как писать программы. Просто излагаю свой подход к программированию.
И тем более, что FAR для меня остается основной консолью больше 20 лет!
In love with FAR since 1997
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

PanelTabs — Панели с закладками

Post by DrKnS »

a'Lexus wrote: Sun 28 Jul, 2019 19:32Странный, с моей точки зрения, ответ
Некто забирается ночью в трамвайное депо и рисует картину на корпусе трамвая.
Утром выясняется, что трамвай уехал и вообще его помыли.
Некто считает это странным, ведь обеспечение сохранности его работы теперь становится задачей депо.


Плагин делает то, что делать не предусмотрено, т.е. является большим хаком.
То, что он не всегда работает адекватно - неизбежно.
User avatar
a'Lexus
Posts: 50
Joined: Mon 17 Oct, 2016 22:30

PanelTabs — Панели с закладками

Post by a'Lexus »

DrKnS wrote: Sun 28 Jul, 2019 20:15 Плагин делает то, что делать не предусмотрено, т.е. является большим хаком.
Ну хорошо. Докустим, что так.
Но с ArcLite дела обстоят ни сколько не лучше!
Capture.JPG
Capture.JPG
Это значит, с моей точки зрения,что с этим надо что-то делать.
Last edited by a'Lexus on Sun 28 Jul, 2019 20:39, edited 1 time in total.
In love with FAR since 1997
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

PanelTabs — Панели с закладками

Post by DrKnS »

Windows 10, да?
Console properties, Layout, снимите Wrap text output on resize.
User avatar
a'Lexus
Posts: 50
Joined: Mon 17 Oct, 2016 22:30

PanelTabs — Панели с закладками

Post by a'Lexus »

DrKnS wrote: Sun 28 Jul, 2019 20:43Windows 10, да?
Тем более, что известно существование проблемы. И такое решения я бы рассматривал, как временное. Т.к. оно влияет не исключительно работу FAR, а на работу консоли как таковой.
Я понимаю,что проект не коммерческий, да еще и FAR инструмент для людей квалифицированных. Но в этом случае раздел "known issues" будет иметь достаточно много пунктов.
Last edited by a'Lexus on Mon 29 Jul, 2019 09:05, edited 1 time in total.
In love with FAR since 1997
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

PanelTabs — Панели с закладками

Post by DrKnS »

a'Lexus wrote: Mon 29 Jul, 2019 09:04 И такое решения я бы рассматривал, как временное
Когда вы, например, в cmd вводите что-то типа echo 11111111...еще пара сотен символов...111111111 то вывод ожидаемо разобъётся на несколько строк, чтобы влезло в ширину консоли.
Когда в Windows 10 добавили ресайз окна (и буфера) мышью, какой-то альтернативно одарённый сотрудник Microsoft придумал при ресайзе склеивать эти строки обратно в одну большую строку и разбивать её заново по новой ширине.
Я не знаю, зачем. Наверное, в линуксовых терминалах есть такая фича.
Проблема только в том, что разбиение это необратимо, т.е. ОС не знает, что именно когда-то было одной строкой и что нет, а поэтому включает AI и пытается угадывать в стиле "если строка N закончилась вплотную к правому краю без пробелов и если строка N + 1 началась вплотную к левому краю без пробелов то, наверное, это одна строка".
Такой дебильный алгоритм более-менее работает только с голым текстом в примитивном шелле типа cmd или bash.
В случае фара угадывать получается очень паршиво, т.к. вплотную к краям экрана находятся символы рамок панели.
У нас нет возможности узнать, что хосту захотелось перетасовать всё выведенное ранее.
И нет, "стереть всё" - это не выход.

Иными словами, вы можете рассматривать предложенное решение как хотите, но бананов у нас, увы, нет.
User avatar
a'Lexus
Posts: 50
Joined: Mon 17 Oct, 2016 22:30

PanelTabs — Панели с закладками

Post by a'Lexus »

DrKnS wrote: Mon 29 Jul, 2019 10:13 И нет, "стереть всё" - это не выход.
Позволю себе не согласиться. Как раз очистить окно консоли, изменить размер и перерисовать было бы самым простым и эффективным решением.
Тем более, что FAR, насколько я вижу, хранит содержимое консоли в буфере.
In love with FAR since 1997
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

PanelTabs — Панели с закладками

Post by DrKnS »

a'Lexus wrote: Tue 30 Jul, 2019 11:17хранит содержимое консоли в буфере
Только то, которое в пределах окна.
Всё, что выше и правее хранит ОС.
Когда вы увеличиваете размер с включенной опцией - ОС сначала туда молча гадит, потом фар видит, что размер изменился и копирует уже испорченные блоки сверху и справа себе.
Стереть там всё, естественно, можно, но это будет варварством и вряд ли порадует аудиторию.
User avatar
a'Lexus
Posts: 50
Joined: Mon 17 Oct, 2016 22:30

PanelTabs — Панели с закладками

Post by a'Lexus »

DrKnS wrote: Tue 30 Jul, 2019 12:13 Стереть там всё, естественно, можно, но это будет варварством и вряд ли порадует аудиторию.
Мне по прежнему кажется, что решение возможно. Да подход должен изменяться. Да это потребует написание нового кода.
При выводе в консоль панели скрыты и можно перед выводом панелей сохранить содержимое в буфер. Это не сильно увеличит потребляемую память и не потребует много времени. Этот буфер понадобится только при изменении размера окна. Это можно сделать опцией или использовать только в консолях Windows 10.
In love with FAR since 1997
2useven10
Posts: 5211
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

PanelTabs — Панели с закладками

Post by 2useven10 »

a'Lexus wrote: Wed 31 Jul, 2019 08:13 Мне по прежнему кажется, что решение возможно. Да подход должен изменяться. Да это потребует написание нового кода.
Обратите внимание на пункты правил 2.2.*
a'Lexus wrote: Wed 31 Jul, 2019 08:13 При выводе в консоль панели скрыты и можно перед выводом панелей сохранить содержимое в буфер. Это не сильно увеличит ...
Напишите патч, проведите тесты подтверждающие ваши заявления (буфер 9999x200), или см. выше.
Вы хотите слишком много приседаний от других вместо отключения проблемной фичи консоли у себя.
User avatar
a'Lexus
Posts: 50
Joined: Mon 17 Oct, 2016 22:30

PanelTabs — Панели с закладками

Post by a'Lexus »

2useven10 wrote: Wed 31 Jul, 2019 08:44 Обратите внимание на пункты правил 2.2.*
Обратил. Ничего относящегося к теме нашего обсуждения с уважаемым DrKnS не увидел.
2useven10 wrote: Wed 31 Jul, 2019 08:44 Вы хотите слишком много приседаний от других вместо отключения проблемной фичи консоли у себя.
Я ничего не хочу, я предлагаю. Обсуждаю возможные варианты обхода проблемы, если хотите.
Last edited by a'Lexus on Wed 31 Jul, 2019 09:14, edited 2 times in total.
In love with FAR since 1997
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

PanelTabs — Панели с закладками

Post by DrKnS »

a'Lexus wrote: Wed 31 Jul, 2019 08:13Мне по прежнему кажется, что решение возможно.
Сомневаться - это ваше право.
Как уже справедливо отмечено выше, код доступен, вы можете попробовать найти решение самостоятельно. Если получится (адекватно) - мы с радостью примем ваши изменения.

Мне же не кажется, потому что я уже пробовал.
С моей точки зрения, тактическое решение - отключить опцию и забыть о ней (т.к. вреда больше, чем пользы), а стратегическое - ходить по ссылке выше и голосовать за баг, привлекая внимание Microsoft к проблеме.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

PanelTabs — Панели с закладками

Post by John Doe »

Можно написать плагин, который на каждый чих будет сохранять буфер целиком, и при изменении размеров окна корректировать по вкусу.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

PanelTabs — Панели с закладками

Post by buniak_a_h »

Игорь Юдинцев wrote: Tue 07 Jul, 2009 11:52
Max Rusov wrote:Мне не нравится, что при этом мелькает окно.
При установленной галке «Запретить вывод на экран» окно мигать не будет.
Не нашёл я такой галки. Пришлось снести плагин - мелькание, возникающее в непредсказуемый момент, стало сильно раздражать.
Версия плагина 1.15 (с плагринга)
FAR 3/0/5478 x64
Windows 10 Pro
Last edited by buniak_a_h on Thu 03 Oct, 2019 15:34, edited 1 time in total.
Post Reply

Return to “Обсуждение плагинов”