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

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

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

Destiny
Сообщения: 340
Зарегистрирован: Вт дек 15, 2015 18:22

Сообщение Destiny »

olegvsk писал(а):
Destiny писал(а):не выскакивает окошко с сообщением, что ничего не найдено
Меня, например, такие окошки раздражают, поскольку требуют реакции. Есть "дзынь", есть информации в строке состояния, курсор остаётся на месте.
Опция?
Ибо дзыня не было, а если бы и был - я бы раз, условно говоря, 10 "дзынькал", прежде чем догадался бы, что это не просто символ окончания поиска,
но и сигнал к чему-то там еще... А в статус-бар я вообще чисслучайно попал глазами - а так бы и в жисть не догадался, что там может появится
инфа об окончании поиска.
А курсор так вообще отключен. Это же ридонли просмотровщик, а не редактор.
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

olegvsk писал(а):Есть "дзынь", есть информации в строке состояния, курсор остаётся на месте.
А как же классика?

[cut]На кону мочала - начинай все с начала :mrgreen:[/cut]
olegvsk
Сообщения: 115
Зарегистрирован: Чт дек 17, 2020 16:34

Сообщение olegvsk »

Аватара пользователя
BeTeP
Сообщения: 135
Зарегистрирован: Чт мар 31, 2005 00:57
Откуда: Санкт-Петербург

Сообщение BeTeP »

olegvsk
Снова вопросик по шрифтам.
Почему в плагине такой скудный выбор шрифтов?
У меня в Win7 помимо системных, ещё штук 50 дополнительных шрифтов установлено. Но плагин не видит даже системных шрифтов, типа: Arial, Segoe UI, Tahoma, Verdana и т.д.
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

olegvsk
Спасибо большое за обнову! Пробежался по всем исправлениям — при беглом тесте всё работает исправно. Особенно порадовало исправление обработки UTF-16 — у меня файл 130 Мб плагин (на 32 битах) открыл за 4 сек, и перемещение/поиск/подсветка найденного в нём работают без лагов (чуть только при перемещении, но малоощутимо, но и размер-то файла немаленький). Также, добавки в редакторе темы сейчас позволяют шустрее заниматься настройкой, так что можно теперь сосредоточиться на экспериментах с детальными раскрасками.

Несколько наблюдений. Думал как их лучше расположить, и решил в порядке чрезвычайности ))

Применение VCL к меню ПКМ смотрится прекрасно, но с ними неожиданно приключился «ой». Дело в том, что помимо плагина они «хакнулись» во всём Total Commander и во всех других плагинах 8) До инициализации CodeViewer они одни, а после — к ним ко всем применяется VCL. Но это бы ладно, а есть и одно неприятное последствие: «отключается» отображение пунктов в тулбарах, подключенных как меню. Видимо, Гислер там что-то намудрил, а наши нововведения его перемудрили. Причём оказалось, что плагин PE Viewer (последняя beta, выложенная здесь на форуме, в соседней ветке) использует такой же или родственный способ для отображения своих ПКМ-меню — ну, и они, соответственно, тоже «отключились». Чтобы много не писать, вот скриншоты, на них всё, кажется, очевидно. Я специально включил ForceDarkModeOptions=2 для наглядности.
Изображение Изображение
Я прошу прощения, что своими дилетантскими хотелками вверг Вас в эту историю. Но с другой стороны, не косячит тот, кто ничего не делает. Если получится ограничить область действия VCL-ПКМ-меню только плагином, то очень хорошо. Если нет, то есть ForceDarkModeOptions=1.

В редакторе темы теперь отредактированные ключи выделяются наклонным шрифтом — это хорошо. Быть может было бы последовательным выделять наклонным также и категорию, в которой располагаются это отредактированные ключи? Чтобы когда все категории свёрнуты, видеть те, где произведены изменения. На скриншоте ниже я проиллюстрировал.

В редакторе темы новая кнопка «Удалить тему» располагается на одной плашке с назначением темы хайлатеру. Понятно что тут двойная ф-ция: и назначение, и выбор темы для редактирования. Но наглядность у них равная. У меня при 1м взгляде на данную кнопку возникла чёткая ассоциация, что это сброс назначения темы, а не удаление самого файла темы. Только пощёлкав, разобрался что к чему. Быть может стоит немного перекомпоновать кнопки для пущей очевидности? Например, всё что касается управления файлом темы внизу, а назначение/выбор отдельно, как то так:
Изображение
Логика активности кнопки Delete при этом могла бы сохраниться: при выбранной теме в верхнем списке активна, при <пусто> — не активна.

Подсветка фолдинга стала работать адекватней. Но в целом с фолдингом пока не всё ясно. В скриптах AutoIt я заметил, что если условие If...Then располагается в одну строчку, то фолдинг не воспринимает конструкцию как завершённую, а всё равно ищет EndIf. Кроме того фолдинг срабатывает если строка закомментирована, что не есть верно. Но возможно здесь надо внимательно изучать хайлайтер и искать причину в нём. Я пока туда не лазил. Но на всякий случай скриншот:
Изображение

И последнее (на сегодня). Поскольку сейчас в плагине спокойно открываются файлы > 100 Мб, и основные необходимые при просмотре ф-ции в них работоспособны (подсветка, перемещение, поиск), я у себя отредактировал детект-строку, повысив порог фильтрации. Однако теперь надо следить, что при открытом файле-за-100 случайно не нажать/не вызвать WRAP, потому как если «ой», тогда только kill process. В связи с этим озарила мысль: а можно ли в плагине сделать доп. фильтрацию на WRAP? Т.е. чтобы выше определённого размера она просто блокировалась? Тогда бы стала доступна след. схема: в ДС прописано ограничение 150 Мб (к примеру), а в плагине 10 Мб (к примеру) для активации WRAP. Это могло бы стать переключателем к существующей опции про WRAP: либо «Open without word wrap», либо «Word wrap only in files less then ___ ».
Amo ergo sum
olegvsk
Сообщения: 115
Зарегистрирован: Чт дек 17, 2020 16:34

Сообщение olegvsk »

BeTeP писал(а):Снова вопросик по шрифтам.
Плагин показывает все установленные в системе моноширинные (monospaced) шрифты, которые традиционно используются в редакторах исходного кода. Перечисленные вами шрифты - не моноширинные, и использовать их для структурированного текста обычно не имеет смысла, будет некрасиво и кособоко.
yozhik писал(а):Применение VCL к меню ПКМ смотрится прекрасно, но с ними неожиданно приключился «ой»
Вот тут я недотестировал. Подключил упомянутый вами компонент vcl-styles-utils, который устанавливает свои стилевые хуки именно в момент инициализации. Причём у меня интерфейс TC при этом никак не изменился. Видимо, придётся вернуть меню обратно.
yozhik писал(а):Если получится ограничить область действия VCL-ПКМ-меню только плагином, то очень хорошо.
Подозреваю, здесь без участия Гислера сложно что-то сделать. Я не знаю, как он раскрашивает TC, и не очень понимаю, как стили в dll (плагине) влияют на само приложение.
yozhik писал(а):Быть может было бы последовательным выделять наклонным также и категорию, в которой располагаются это отредактированные ключи?
Действительно.
yozhik писал(а):Понятно что тут двойная ф-ция: и назначение, и выбор темы для редактирования.
Да, здесь есть неоднозначность в интерфейсе. Возможно, ваш вариант лучше.
yozhik писал(а):Но в целом с фолдингом пока не всё ясно.
С фолдингом проблема тянется от базового компонента, прежде всего это именно однострочные составные блоки. Что-то я исправил, но сразу трудно осмыслить довольно объёмный код.
yozhik писал(а):В связи с этим озарила мысль: а можно ли в плагине сделать доп. фильтрацию на WRAP? Т.е. чтобы выше определённого размера она просто блокировалась?
Или честно предупреждать пользователя - "Вы правда этого хотите Да/Нет? Все последствия под вашу ответственность" :).
Аватара пользователя
yozhik
Сообщения: 353
Зарегистрирован: Вс май 04, 2014 20:34
Откуда: Электросталь

Сообщение yozhik »

olegvsk писал(а):Подключил упомянутый вами компонент vcl-styles-utils
Эх, а ведь как гладко было на бумаге... но в реальности опять овраги. Ну да ладно, общей VCL-картины эта маленькая печалька не омрачила.
olegvsk писал(а):С фолдингом проблема тянется от базового компонента, прежде всего это именно однострочные составные блоки.
Спасибо, это важно знать. Значит тут не в хайлайтере дело.
olegvsk писал(а):Или честно предупреждать пользователя - "Вы правда этого хотите Да/Нет?
Да, тоже вариант. Но я то уже себе напридумывал, что как было бы здорово, если бы у меня файлы до 5 Мб молча открывались с WRAP (или как настрою), а в файлах больше 5 Мб WRAP бы молча просто не работал :roll: Приходится постоянно работать и с такими, и с такими. Добро, как получится.

Ещё на одну мелочь обратил внимание: когда команда в меню вызывает дополнительный диалог, её часто (хотя и не всегда, и не везде) пишут с многоточием в конце строчки. Поэтому, может не лишне было бы так:

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

Go to...
Highlighting...
Edit > Replace...

Encoding > All supported...

Highlighters...
Edit Theme...
Settings...
Amo ergo sum
olegvsk
Сообщения: 115
Зарегистрирован: Чт дек 17, 2020 16:34

Сообщение olegvsk »

yozhik писал(а):когда команда в меню вызывает дополнительный диалог, её часто (хотя и не всегда, и не везде) пишут с многоточием в конце строчки
Прошёлся по меню ряда известных программ - и правда, раньше просто не обращал на это внимание. На мой взгляд, совершенно лишний элемент, только добавляющий шума. Но раз уж так принято в т. ч. в TC, то пожалуй.
Аватара пользователя
BeTeP
Сообщения: 135
Зарегистрирован: Чт мар 31, 2005 00:57
Откуда: Санкт-Петербург

Сообщение BeTeP »

olegvsk писал(а):Перечисленные вами шрифты - не моноширинные, и использовать их для структурированного текста обычно не имеет смысла, будет некрасиво и кособоко.
На вкус и цвет, как говорится. Я у себя в текстовых редакторах использую шрифт Verdana и никаких проблем не заметил. По крайней мере с PHP, HTML и JS.

Что ещё вчера заметил. Это подсветка всех видов скобок.
Если курсор слева от скобки, то подсветка есть, если справа от скобки, то подсветка отсутствует. На мой взгляд, это не совсем правильно.
Вот, для наглядности:
Изображение
Аватара пользователя
BlackFox
Сообщения: 75
Зарегистрирован: Сб дек 18, 2004 04:33
Откуда: Mayence

Сообщение BlackFox »

BeTeP писал(а):Если курсор слева от скобки, то подсветка есть, если справа от скобки, то подсветка отсутствует. На мой взгляд, это не совсем правильно.
В VisualStudio пара подвсечивается, если курсор стоит слева от открывающей или справа от закрывающей скобок. Так даже логичнее - особенно, когда есть несколько подряд идущих скобок.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

BeTeP
BeTeP писал(а):Если курсор слева от скобки, то подсветка есть, если справа от скобки, то подсветка отсутствует. На мой взгляд, это не совсем правильно.
Это типичное поведение большинства редакторов. А если курсор стоит между двух закрывающихся скобок, что подсвечивать? Начинаются неоднозначности, поэтому приняли, что учитывается именно скобка после курсора.
Нет, я не сплю. Я просто медленно моргаю.
olegvsk
Сообщения: 115
Зарегистрирован: Чт дек 17, 2020 16:34

Сообщение olegvsk »

BeTeP писал(а):На вкус и цвет, как говорится.
Пожалуй, добавлю остальные шрифты, может быть, после моноширинных.
Аватара пользователя
BeTeP
Сообщения: 135
Зарегистрирован: Чт мар 31, 2005 00:57
Откуда: Санкт-Петербург

Сообщение BeTeP »

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

Сообщение olegvsk »

yozhik писал(а):В скриптах AutoIt я заметил, что если условие If...Then располагается в одну строчку, то фолдинг не воспринимает конструкцию как завершённую, а всё равно ищет EndIf
В json файлах есть настройка "CheckIfThenOneLiner", пример можно посмотреть в Visual Basic.json. Для AutoIt это будет примерно так:

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

{
    "OpenToken":"IF",
    "CloseToken":"ENDIF",
    "Properties":{
        "CheckIfThenOneLiner":true,
        "SharedClose":true
    }
},
Аватара пользователя
Orion9
Сообщения: 1283
Зарегистрирован: Пн янв 01, 2024 17:18

Сообщение Orion9 »

olegvsk писал(а):В json файлах есть настройка "CheckIfThenOneLiner", пример можно посмотреть в Visual Basic.json
А документация какая-нибудь по json файлам ожидается, или только обратным инженерингом? :)
Ответить