Code Viewer - просмотр исходного кода

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

BeTeP
Да, спасибо, скорее всего я этот момент недоисследовал. Я пробовал разные файлы и кол-во строк в них было разным, я это подметил, но возможно проблема начинается от некоего порога, который во всех тех моих подопытных файлах был изначально превышен. Файл большой с малым кол-вом строк под руку не попался, а найти (или создать) такой целенаправленно я что-то недотумкал.
Amo ergo sum
olegvsk
Сообщения: 115
Зарегистрирован: Чт дек 17, 2020 16:34

Сообщение olegvsk »

yozhik
Спасибо, познавательно.
Что касается вашего файла, у меня он тоже валится на строке 156579. А вот если его из UTF-16 сохранить в UTF-8, то он прекрасно грузится. Дело не в размере, я "удвоил" полученный файл - скопировал и добавил весь текст - всё равно открывается довольно шустро. Буду выяснять, где ошибка с UTF-16.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

olegvsk писал(а):А вот если его из UTF-16 сохранить в UTF-8, то он прекрасно грузится
Да уж, действительно. В UTF-8 у меня 95-мегабайтный файл на 1 082 604 строк открылся в плагине за 5 секунд и навигация в нём исправно работает без тормозов (чууть только лагает в 32-битной версии, а в 64-битной вообще всё норм).
Amo ergo sum
olegvsk
Сообщения: 115
Зарегистрирован: Чт дек 17, 2020 16:34

Сообщение olegvsk »

yozhik
Нашёл ошибку в исходниках - при разбиении на части большого файла в двухбайтном LE кодировании терялся байт, и остаток текста превращался в BE кодированный. Поправлю в обновлении.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

olegvsk
О нелёгкой жизни простого юзверя.

Скачал версию 1.2, поставил. Жму просмотр на aucfg файле - открывается Листер. Выбираю Code Viewer в меню - снова Листер. Вышел из Листера. Открыл ini файл (ну наконец-то я в плагине) -> Settings -> Open any files -> Выход.

[cut]Хоть убей не пойму, зачем вашему плагину уступать дорогу штатному Листеру. На мой взгляд, это только мешает нормальной работе и даже вредит. А если вам так хочется отдать дань творению Гислера, то сделайте хотя бы детект-строку с опцией Multimedia & Force, чтобы можно было активировать плагин сразу из меню на неизвестных файлах.[/cut]
Снова открываю aucfg файл - подсветки нет, хотя хайлайтер в дисрибутиве есть, но расширения не сопаставлены. Ну ладно, сделал сам вручную. Наконец все загорелось, да так что "вырви глаз" :mrgreen: В срочном порядке бегу менять первым делом шрифт, а потом все яркие цвета.

Поменял шрифт. Решил поменять тему. Шрифт сбросился. У каждой темы свой шрифт? На кой? Вернее понятно "на кой", не понятно только почему нет возможности глобально задавать (хотя бы) размер шрифта всему плагину.

Танцы продолжаются. Зачем-то при редактировании темы она сопоставилась с текущим хайлайтером (секция [Themes] в ini). Теперь при смене темы, изменения не отображаются в этом хайлайтере. Иду в меню Highlighters, вижу это сопоставление. Видеть-то я его вижу, а вот очистить поле не могу. Пришлось лезть в ini-файл и вручную удалять его из секции [Themes].

Снова захожу в редактор темы. Нет возможности откатывать изменения и сбрасывать настройки в дефолт. Нет общепринятой пометки звездочкой (*) измененных параметров - поменяешь пару опций, потом вконец запутаешься что менял, а что не менял, и начнётся беготня за бэкапами.

Ну ладно. Худо-бедно сделал приемлемый для себя вариант подсветки и сохранил в отдельный файл. Но тут захотелось еще попробовать другие темы: снова Settings -> Default light theme. Меняю - ничего не происходит. А ведь подобные изменения должны отображаться сразу, а не после перезагрузки плагина.

Перезапустил. И снова мелкий шрифт, и снова не те цвета, и снова все по кругу :lol:

Теперь о хорошем.

[cut]Плуг развивается, и это уже хорошо.)[/cut]
Как я отмечал, в строку состояния нужно вынести не только WRAP (оцените, как стало удобно!) но и всё остальное по максимуму. Хуже от этого точно не будет, а удобств прибавится. К короткому списку кодировок нужно добавить еще KOI8, а сами кодировки должны тоже переключаться одним кликом (сделайте хотя бы на пробу и посмотрите), не говоря уж о других переключателях из окна Settings.
Destiny
Сообщения: 340
Зарегистрирован: Вт дек 15, 2015 18:22

Сообщение Destiny »

Orion9
всё по теме коллега!
olegvsk
Сообщения: 115
Зарегистрирован: Чт дек 17, 2020 16:34

Сообщение olegvsk »

Orion9
У вас на компьютере нет txt, cmd, xml и прочих общеупотребительных файлов?
Orion9 писал(а):сделайте хотя бы детект-строку с опцией Multimedia & Force
А вот это дельное предложение.
Orion9 писал(а):У каждой темы свой шрифт? На кой?
Просто у каждой темы свой шрифт.
Orion9 писал(а):Зачем-то при редактировании темы она сопоставилась с текущим хайлайтером (секция [Themes] в ini). Теперь при смене темы, изменения не отображаются в этом хайлайтере
Непонятно.
Orion9 писал(а):Видеть-то я его вижу, а вот очистить поле не могу
Внезапно - delete. И пустое поле темы равно теме по умолчанию.
Orion9 писал(а):Нет возможности откатывать изменения и сбрасывать настройки в дефолт
Esc.
Orion9 писал(а):Нет общепринятой пометки звездочкой (*)
Подумаю, но пока не вижу большого смысла.
Orion9 писал(а):А ведь подобные изменения должны отображаться сразу, а не после перезагрузки плагина.
Логика простая - настройка по умолчанию нужна при выборе темы. На момент изменения настройки тема уже выбрана.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

olegvsk
У вас на компьютере нет txt, cmd, xml и прочих общеупотребительных файлов?
Есть, конечно. Но что, если у меня есть, к примеру, еще и .bak файлы к этим файлам: предлагаете их переименовывать? ) Речь идет о быстроте и удобстве пользования. Я был уже готов и знал что к чему, поэтому и настроил все относительно быстро, но новичок, поставив ваш плагин, еще как помучится )
Непонятно.
Вот и мне непонятно, когда она успела сопоставится без явного моего указания на то. Не исключаю, правда, что юзверь успел таки нажать на какую-то кнопку :lol:
Внезапно - delete. И пустое поле темы равно теме по умолчанию.
У меня клавиша просто заела )

[cut]А ведь хорошая была бы отмазка :mrgreen:[/cut]
Юзверь - он зверь такой: он может и не нажать на то, чего от него ожидается. Если есть функционал, то должно быть контекстное меню или подсказка, чтобы сделать очевидные вещи еще более очевидными.)
Esc
Не, не вариант. Речь шла о возвращении к дефолтным настройкам уже после сохранения темы.
Подумаю, но пока не вижу большого смысла.
А юзверь видит.) Впрочем сама по себе звездочка (*) ничего не даст, если не будет возможности откатить параметр назад.
Логика простая - настройка по умолчанию нужна при выборе темы. На момент изменения настройки тема уже выбрана.
Тема должна менятся на лету, как зрение хищника, о чем я уже тоже писал. В идеале это должно делаться одним кликом из строки состояния.

[cut]https://www.youtube.com/watch?v=C3_dkJICHAk[/cut]
Только тогда юзверь почувствует себя настоящим инопланетным зверем :mrgreen:
olegvsk
Сообщения: 115
Зарегистрирован: Чт дек 17, 2020 16:34

Сообщение olegvsk »

Orion9 писал(а): должно быть контекстное меню или подсказка
Пожалуй, добавлю пустое поле в список тем.
Orion9 писал(а):Речь шла о возвращении к дефолтным настройкам уже после сохранения темы
К ненавистным вам дефолтным шрифтам? Зачем? Есть возможность сохранить тему в другой файл на любом этапе.
Orion9 писал(а):Тема должна менятся на лету, как зрение хищника
Она и меняется из окна настроек синатксиса. Возможно, стоит добавить смену темы и в редактор темы. А суть любой настройки по умолчанию - сработать в другой раз.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

Orion9 писал(а):сделайте хотя бы детект-строку с опцией Multimedia & Force, чтобы можно было активировать плагин сразу из меню на неизвестных файлах
А разве это поможет? FORCE же наоборот будет блокировать плагин, пока не нажмёшь 4 или пункт меню «Графика/ММ/Плагины»:

Код: Выделить всё

FORCE
1 if the user chose 'Image/Multimedia' from the menu,
0 otherwise.
А «активировать плагин сразу из меню на неизвестных файлах» поможет включенная опция плагина "Open any file" вместе с:

Код: Выделить всё

MULTIMEDIA & (EXT="TXT" | EXT="AAA")
Тогда чтобы какой-нибудь BBB открылся единожды, нужно будет вызвать плаг принудительно по 4 или из меню, а чтобы этот BBB открывался постоянно нужно будет опять править ДС:

Код: Выделить всё

MULTIMEDIA & (EXT="TXT" | EXT="AAA" | EXT="BBB")
Ну, т.е. вроде именно так, как Вы хотели. Только потом ещё всё равно придётся лезть в CodeViewer.ini (или в диалог настроек) и назначать BBB хайлайтер — а это уже 2 действия. А с выключенной "Open any file" всё то же самое делается в 1 действие в CodeViewer.ini (или в диалоге настроек) 8)

Если же MULTIMEDIA & (EXT="TXT" | EXT= ... ) прописывать по умолчанию, то она будет противоречить выключенной опции "Open any file". А это, мне кажется, только путаницу внесёт. Ведь при MULTIMEDIA TC в любом случае опрашивает плагин, принимает ли он файл. Если принимает, то далее TC руководствуется ДС, а если нет, то и ДС не нужна.
Orion9 писал(а):Есть, конечно. Но что, если у меня есть, к примеру, еще и .bak файлы к этим файлам: предлагаете их переименовывать? ) Речь идет о быстроте и удобстве пользования.
Так быстрота то уже не получается, т.к. вместо 1 действия придётся делать 2, и вместо одного CodeViewer.ini придётся открывать два: сначала LSPLUGINS.INI для правки ДС, а потом CodeViewer.ini для назначения хайлайтера. Другое дело, что если нужен обязательно GUI, то для правки LSPLUGINS.INI есть сторонний TC Plugins Manager, а для CodeViewer.ini... только ручками или сам плагин вызывать на другом файле. Если только предложить olegvsk как вариант добавить возможность запускать редактор Highlighters отдельным процессом, как вспомогательную утилиту, чтобы его можно было вызвать из ком-строки когда понадобится назначить новое расширение.
Orion9 писал(а):новичок, поставив ваш плагин, еще как помучится
Так ведь это же Code Viewer :) Любой новичок, взявшийся за код, в состоянии освоить простую логику. А если не в состоянии, то ему и код подсвечивать не надо. AkelPad тому хороший пример.
Amo ergo sum
olegvsk
Сообщения: 115
Зарегистрирован: Чт дек 17, 2020 16:34

Сообщение olegvsk »

yozhik
Я думаю, правильно будет не менять детект-строку, а анализировать флаг lcp_forceshow, который ТС передаёт плагину при вызове меню "Плагины/..." листера или нажатии 4. При наличии этого флага открывать плагин независимо от настройки "Open any file", раз уж пользователь сам просит это сделать. Хотя я бы разделил ситуации, когда пользователь указывает конкретный плагин в меню листера, и когда он нажимает 4, и реагируют все подряд. Но, похоже, такого разделения при вызове плагина нет.
yozhik писал(а):Любой новичок, взявшийся за код, в состоянии освоить простую логику. А если не в состоянии, то ему и код подсвечивать не надо.
Вот! :)
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

olegvsk
Пожалуй, добавлю пустое поле в список тем.
Это очень хорошая идея.
К ненавистным вам дефолтным шрифтам? Зачем? Есть возможность сохранить тему в другой файл на любом этапе.
Интересно, а вы сами так пробовали делать, или только на откуп юзверям это оставляете? ) Наверное, зря большие дяди придумали всякие звездочки (*), дефолтные настройки и откат измененных параметров. Наверное, бэкап поудобнее будет.)) И кстати, дело там не в "ненавистных" шрифтах, а в том, что меня не устраивает первоначальная настройка темы. Чтобы придать ей хоть какой-то вменяемый вид на простом ini-файле, нужно изменить минимум 4 параметра - стиль шрифта, foreground, string и symbol. И это только для начала, поскольку придётся еще не раз проверять на других файлах (vbs, bat и прочих) где и как это может аукнуться.
Скажете это удобно? А лично вам нравится менять размер шрифта для каждой темы? Мне, вот, почему-то нет.)
Она и меняется из окна настроек синатксиса. Возможно, стоит добавить смену темы и в редактор темы.
Возможно, стоит. Уже будет лучше. Но что на самом деле нужно делать, я написал: только строка состояния :mrgreen: И дело тут не в инопланетных понтах хЫщника, а в том, что не всегда индивид перед монитором находится в гиперактивном состоянии полной готовности жать все клавиши сразу. Иногда индивид впадает в состояние аморфного пофигизма, когда из всех телодвижений остается лишь один ленивый клик мыши по экрану - и тот большим пальцем ноги, ибо руки у него заняты - в одной банка Колы, в другой пакетик с киви :mrgreen:

[cut]https://www.youtube.com/watch?v=qvFaHO3hGsc[/cut]

Добавлено спустя 9 минут:

yozhik
А разве это поможет? FORCE же наоборот будет блокировать плагин, пока не нажмёшь 4 или пункт меню «Графика/ММ/Плагины»:
Да я просто навскидку написал.) Не являюсь специалистом по написанию плагинов и детект-строк к ним. Это надо было в справку лезть.
Любой новичок, взявшийся за код, в состоянии освоить простую логику. А если не в состоянии, то ему и код подсвечивать не надо. AkelPad тому хороший пример.
Логика - это одно. Удобства пользования - это совершенно другое. У меня, например, никогда не возникало необходимости попрыгать с бубном вокруг простых ini-фалов в AkelPad. Ни vbs, ни bat, ни прочих, кроме AHK, да и то больше по той причине, что хайлайтер там на первую версию, а не на вторую.
olegvsk
Сообщения: 115
Зарегистрирован: Чт дек 17, 2020 16:34

Сообщение olegvsk »

Orion9 писал(а):А лично вам нравится менять размер шрифта для каждой темы?
Крик души здесь вижу я, а не конструктив :). Так построен исходный компонент - с максимальной детализацией каждой темы, это меня в нём и привлекло. Урезать этот функционал я не хочу. Наверное, можно придумать инструмент для группового изменения хотя бы шрифтов, но не уверен в его полезности. Обычно (мой опыт, разумеется), каждая тема настраивается долго и вдохновенно, после чего менять в ней что-то нет никакого желания.
Orion9 писал(а):только строка состояния
Лишнее. Если оперативную смену синтаксиса ещё можно представить, поскольку это касается получаемой информации, то спешная смена цветов мне непонятна.

Добавлено спустя 19 минут:
Orion9 писал(а):попрыгать с бубном
Да какие бубны-то? Открыли на любом известном плагину типе файла, открыли настройки, выбрали хайлайтер, добавили расширение. Всё.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

olegvsk
Так построен исходный компонент
Поэтому и претензий к вам по минимуму. А крик души обычных пользователей не стоит заглушать и игнорировать: если бы ни я, ни Destiny вам ничего не написали, вы бы и посейчас, наверное, думали, что в плагие всё хорошо и прекрасно, и что вы на верном пути в плане всех удобств и его развития.))
Обычно (мой опыт, разумеется), каждая тема настраивается долго и вдохновенно, после чего менять в ней что-то нет никакого желания.
То, что в плагие необходимо каждую тему под себя подстраивать, да еще и под каждое расширение, это было ясно практически сразу, о чем я вам так и написал, что это перебор. Где ж нам простым инженеграм найти столько времени на такого рода вдохновление? Ну была бы еще острая необходимость какая за отсутствием привычных альтернатив, тогда бы еще ладно, а так... Ну, может, и найду как-нибудь время под себя все настроить, хотя тут еще определенный цвет настроения ведь нужен.
Да какие бубны-то? Открыли на любом известном плагину типе файла, открыли настройки, выбрали хайлайтер, добавили расширение. Всё.
А цвета поменять на привычные?
olegvsk
Сообщения: 115
Зарегистрирован: Чт дек 17, 2020 16:34

Сообщение olegvsk »

Orion9 писал(а):необходимо каждую тему под себя подстраивать, да еще и под каждое расширение
Зачем каждую и зачем под каждое расширение, кто же вас заставляет? Настройте тему по умолчанию, а дальше добавляйте по желанию.
Orion9 писал(а):А цвета поменять на привычные?
Там же назначили синтаксису любимую тему. Ещё два клика.
Ответить