Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Code Viewer - просмотр исходного кода
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
BeTeP



Joined: 31 Mar 2005
Posts: 121
Location: Санкт-Петербург

Post (Separately) Posted: Fri Jun 07, 2024 19:42    Post subject: Reply with quote

olegvsk
Возможно ли добавить в строку состояния информацию об окончании строк (или как это правильно называется): Mac (CR), Unix (LF), Windows (CR+LF).


Orion9 wrote:
А документация какая-нибудь по json файлам ожидается, или только обратным инженерингом? Smile
Мне тоже хотелось бы какую-нибудь документацию по json.
А то я туда залез и понял, что ничего не понял, от слова совсем. Smile
Back to top
View user's profile Send private message
olegvsk



Joined: 17 Dec 2020
Posts: 94

Post (Separately) Posted: Sat Jun 08, 2024 01:39    Post subject: Reply with quote

Orion9 wrote:
А документация какая-нибудь по json файлам ожидается, или только обратным инженерингом?
Именно обратным. Автор компонента не предоставляет никакого описания настроек. Но структура json файлов, на мой взгляд, вполне понятная, и примеров таких файлов достаточно. Возможно, со временем сам сделаю что-то вроде хелпа.

BeTeP wrote:
Возможно ли добавить в строку состояния информацию об окончании строк
Добавил.

Обновление https://totalcmd.net/plugring/CodeViewer.html .
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 305

Post (Separately) Posted: Sat Jun 08, 2024 12:49    Post subject: Reply with quote

olegvsk wrote:
Автор компонента не предоставляет никакого описания настроек.

Ну что тут сказать. Еще одни минус в карму автора Laughing Исходный код компонента хотя бы есть?
olegvsk wrote:
Но структура json файлов, на мой взгляд, вполне понятная, и примеров таких файлов достаточно.

Уже было отмечено, что для тех, кто в теме, оно, может, и выглядит всё простым и понятным. Но даже если не принимать во внимание этот факт, заниматься обратным инженерингом все-равно станут лишь единицы, поскольку дело это трудоёмкое и времязатратное. Это же не компьютерная игра, чтобы бегать по файлам и открывать секретные уровни ее создателей, в самом деле. Laughing
olegvsk wrote:
Возможно, со временем сам сделаю что-то вроде хелпа.

Для начала нужен хотя бы просто перечень и описание всех ключей, значений, аттрибутов, элементов и прочего, чтобы сразу был понятен весь потенциал редактора синтаксисов и то, как им можно воспользоваться. Потому как самостоятельно доходить до подобных умозаключений сможет далеко не каждый:
Loopback wrote:
Некоторые хайлайтеры требуют правки, например Autoit использует один тип для управляющих конструкций и имён функций, что не есть правильно. Добавлять свои типы судя по всему нельзя, приходится выбирать из имеющихся. Понятно, что это вопросы к автору компонента.

Другими словами, в json-файлах (для синтакса и темы) нельзя создать конструкцию типа:
Code:
        "KeyList": [
          {
            "Type": "MyWord",
            "Words": [
              "myword1",
              "myword3",
              "myword3",
            ],
            "Attributes": {
              "Element": "MyWord"
            }

Code:
"EditorMyWordBackground": "clNavy",
      "EditorMyWordForeground": "clWhite",

И чтобы в редакторе темы она появилась и заработала. А это еще один минус в карму автора компонента и явная его недоработка. Главное, если так сделать, то какие-то попытки выделить ключевые слова есть, но всё черным блоком Laughing
 P.S.
Back to top
View user's profile Send private message
BeTeP



Joined: 31 Mar 2005
Posts: 121
Location: Санкт-Петербург

Post (Separately) Posted: Sun Jun 09, 2024 23:28    Post subject: Reply with quote

olegvsk wrote:
Обновление https://totalcmd.net/plugring/CodeViewer.html .
1. Я быстрым просмотром пользуюсь нечасто, а тут понадобилось и заметил глюк. При БП в строке состояния пропадают все надписи.
То есть, при просмотре первого файла всё присутствует, а при переходе на следующий файл все надписи пропадают.
На версии плагина 1.3 такого нет.

2. Если выбрать какой-нибудь "экзотический" не моноширинный шрифт, например, "Book Antiqua" и в настройках включен WRAP, то файл размером даже в 1 МБ (4800 строк) по F3 открывается 30-40 секунд.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 222
Location: Электросталь

Post (Separately) Posted: Mon Jun 10, 2024 00:53    Post subject: Reply with quote

olegvsk wrote:
Обновление

Спасибо! В исправлении для тёмных меню ПКМ особенно порадовало то, что решение нашлось и обошлись без отказа от компонента. И остальное всё, что обсуждали, я просмотрел у себя бегло — исправно работает. Сокращение CF для окончаний строк — я раньше не видел, чтобы так сокращали, но мне понравилось — понятно и лаконично, и места лишнего не отнимает Smile

В тёмном режиме одно всплывающее меню осталось, кажется, «непереодетым». В статусной строке меню кодировок — оно сейчас отображается без стиля, хотя оно же в ПКМ основного окна, как подменю Encodings — со стилем. Наверное, «потерялось».

Ещё обратил внимание, если ПКМ по линейке, то включается вертикальный пунктир MovingEdge и одновременно всплывает меню ПКМ поля редактирования — тут случайно нет ли противоречия? Возникает впечатление, что есть. Во-1-х контекстное меню линейки обычно либо другое, либо отсутствует, но не дублирует меню ПКМ поля редактирования. А, во-2-х, то, что по ПКМ включается MovingEdge, наводит на мысль, что может там какая ф-ция задумана? Может и нет. Просто «зацепило» внимание.

Ещё там же, на линейке: если щёлкнуть ЛКМ, то курсор в тексте устанавливается по горизонтали не там, где щёлкнул, а на 3 деления правее. Скорее всего так не задумано.

MaxMBSizeForWrap — спасибо! — работает )) когда вызываешь Wrap в окне плагина. Только не сочтите за занудство (а если это оно и есть, то пардон): сделайте, пожалуйста (если это вообще уместно; хотя мне кажется, что да), чтобы срабатывало также при вызове плагина на большом файле с отключенной «Open without wrap». Вообще, изначальная моя мечта была, чтобы комбинацией ключей в ini можно было добиться такого workflow, чтобы файлы выше опр. размера просто молча не открывались с Wrap вне зависимости от состояния настройки «Open without wrap».

За CheckIfThenOneLiner спасибо, работает. Вообще, я тут, кажется, нашёл что за компонент Вы использовали: TTextEditor, верно? Если да, то вижу на GitHub'е за последний месяц доработки появились, правила в Highlighter добавились. И некоторые хайлайтеры обновились с учётом новых правил (в том числе и AutoIt v3.json). Синхронизировать планируете?

Orion9, я тут немного присмотрелся к этим хайлайтерам, и мне показалось, что если и начать пытаться писать для них хелп, то он принципиально ничего полезного к их пониманию не добавит. Названия ключей читабельны и вполне аналитичны, структура тоже ясна (я её в XMLReview.wlx просматриваю, слева в дереве — вполне наглядно). Сколько ни читай объяснений, а пока не начнёшь самостоятельно настраивать, ничего толком не поймёшь. Но парадокс в том, что когда начинаешь самостоятельно настраивать, то в целом всё становится ясно и без описаний. Ну, это субъективно, ясен пень. Но всё же )) Все эти хелпы пишутся не скоро, сами знаете. Вот, простой список всех имеющихся ключей действительно нужен, что просто знать какие они вообще есть. Это всё решается простым экстрактом регулярками из имеющихся json. Для свойств CodeFolding я сделал (в markdown), потом постепенно сделаю и для всего остального.

Code:
## CodeFolding

**Properties** 

```
"BeginWithBreakChar":        bool
"BreakCharFollows":          bool
"BreakIfNotFoundBeforeNextRegion": "):"
"CheckIfThenOneLiner":       bool
"CloseTokenBeginningOfLine": bool
"NoDuplicateClose":          bool
"NoSubs":                    bool
"OpenIsClose":               bool
"OpenTokenBeginningOfLine":  bool
"OpenTokenBreaksLine":       bool
"OpenTokenCanBeFollowedBy":  "PHP"
"OpenTokenEnd":              "]"
              :              "}"
"RemoveRange":               bool
"SharedClose":               bool
"ShowGuideLine":             bool
"SkipIfFoundAfterOpenToken": [";","FUNCTION","PROCEDURE"]
                           : [";"]
                           : ["INSENSITIVE","SENSITIVE"]
"TokenEndIsPreviousLine":    bool
```

_________________
Amo ergo sum
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 305

Post (Separately) Posted: Mon Jun 10, 2024 12:30    Post subject: Reply with quote

yozhik
Когда вы пишите такие монументальные посты, даже шутить не хочется.) Но все же не могу в данном случае себя удержать.
Quote:
Это всё решается простым экстрактом регулярками из имеющихся json.

Это понятно. Только почему этим должен озадачиваться пользователь, а не автор плагина или компонента? Mr. Green
Back to top
View user's profile Send private message
olegvsk



Joined: 17 Dec 2020
Posts: 94

Post (Separately) Posted: Mon Jun 10, 2024 12:56    Post subject: Reply with quote

Orion9 wrote:
Исходный код компонента хотя бы есть?
Конечно, https://github.com/TextEditorPro/TTextEditor . Код загрузки синтаксиса и цветов в модуле TextEditor.Highlighter.Import.JSON.pas.

Orion9 wrote:
Другими словами, в json-файлах (для синтакса и темы) нельзя создать конструкцию типа:
Да, набор типов ключевых слов ограничен.

Orion9 wrote:
Короче, придется вам допиливать и допиливать сей компонент.
На свете счастья нет Универсальный описатель синтаксиса, пригодный для всего многообразия языков, вряд ли возможен, и, думаю, это даже можно доказать. Что-то буду допиливать по мере сил, ну уже в нынешнем виде компонент вполне пригоден, тем более для целей быстрого просмотра, а не как профессиональный редактор.

BeTeP wrote:
При БП в строке состояния пропадают все надписи
Что-то не получается у меня сходу воспроизвести проблему. Посмотрю внимательнее.

BeTeP wrote:
Если выбрать какой-нибудь "экзотический" не моноширинный шрифт, например, "Book Antiqua" и в настройках включен WRAP, то файл размером даже в 1 МБ (4800 строк) по F3 открывается 30-40 секунд.
Даже не заглядывая в исходник, можно сразу предположить причину - если шрифт не моноширинный, то необходимо вычислять длину каждого символа, что, понятно, совсем не быстро.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 221

Post (Separately) Posted: Mon Jun 10, 2024 13:22    Post subject: Reply with quote

А не могли бы вы проверить один момент, который скорее на баг смахивает..

Открываем файл, где мини-карта справа точно нужна, т.к. файл большой и надо ориентироваться.
Смотрим на открывшееся/отрисованное - вроде все ровно и красиво и точно.
Для изменения ситуации щелкаем на любое ближайшее место в тексте, чтобы выделение строки
отрисовалось и в тексте и в миникарте. К примеру на 10 строку. Все вроде норм пока что.
Теперь делаем скролл колесом мыши вверх (понятно, что скролл не сработает, потому что мы
и так находимся уже вверху/в начале - дальше некуда скроллить, но тем не менее)
и смотрим внимательно на миникарту и видим как с каждым скроллом вверх происходит
какая-то заливка светло-бежевым вплоть до полного исчезновения на миникарте той части
мини-просмотра кода, что выходит за границы текущего фрейма отрисовки...
Теперь опять тыкаем курсором в точно ту же строку, где уже и так было выделение строки
И чудесным образом миникарта опять отрисовывается более-менее корректно.

Так же все закрашивается и при простом ALT+TAB переключении между просмотром файла и
любым другим открытым приложением в винде.
Back to top
View user's profile Send private message
olegvsk



Joined: 17 Dec 2020
Posts: 94

Post (Separately) Posted: Mon Jun 10, 2024 13:35    Post subject: Reply with quote

yozhik wrote:
В статусной строке меню кодировок — оно сейчас отображается без стиля
Да, потерялось.

yozhik wrote:
если ПКМ по линейке, то включается вертикальный пунктир MovingEdge и одновременно всплывает меню ПКМ поля редактирования
Да, можно убрать меню с линейки.

yozhik wrote:
Ещё там же, на линейке: если щёлкнуть ЛКМ, то курсор в тексте устанавливается по горизонтали не там, где щёлкнул, а на 3 деления правее.
Странно, у меня курсор встаёт точно по клику. Но проверю ещё.

yozhik wrote:
сделайте, пожалуйста (если это вообще уместно; хотя мне кажется, что да), чтобы срабатывало также при вызове плагина на большом файле с отключенной «Open without wrap»
Согласен, при открытии тоже должно работать. Но теперь опция «Open without wrap» кажется уже лишней.

yozhik wrote:
TTextEditor, верно?
Он.

yozhik wrote:
Синхронизировать планируете?
Не уверен, что вообще хочу обновлять хайлайтеры (темы точно не буду). Кому-то достаточно того, что есть, кто-то допиливает их сам, и обновления только повредят. Разве только складывать их в архив как *_new.json, но это усложнит для пользователя процесс обновления.

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

Destiny wrote:
А не могли бы вы проверить один момент, который скорее на баг смахивает
У меня текст совсем не исчезает, но проблему с отрисовкой карты вижу. Посмотрю.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 221

Post (Separately) Posted: Mon Jun 10, 2024 14:59    Post subject: Reply with quote


У меня вот так полностью заливает цветом курсора всю область "ЗА"
пределами текущего видимого фрейма просмотра содержимого.


Но и еще есть вопрос.
На фотке представлено - стрелками указана текущая выделенная строка
И в оригинальном отображении текста и в миникарте.
Прямоугольником выделена первичная подкраска невидимой пока что части текста открытого файла
(то, что будет потом закрашено)
а вот в кружочке отрисована нечто серое, что не имеет сопоставления ни с чем на экране, но есть в миникарте.
Причем это "серое" будет каждый раз сдвигаться вниз, при переустановке мышкой текущей строки/курсора.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 222
Location: Электросталь

Post (Separately) Posted: Mon Jun 10, 2024 15:23    Post subject: Reply with quote

Orion9 wrote:
Когда вы пишите такие монументальные посты, даже шутить не хочется.)

По-другому у меня почему-то не получается )) И из-за этого у меня комплекс полноценности Crying or Very sad Smile
Orion9 wrote:
а не автор плагина или компонента?

Ну, за автора компонента (кстати, финна) могу только сказать, что у него, вероятно, характер такой. Полюбуйтесь, какие у него информативные и красноречивые коммиты ))
olegvsk wrote:
Но теперь опция «Open without wrap» кажется уже лишней.

Вообще, в идеале хотелось бы, чтобы был доступен след. workflow:
1) Есть настройка границы размера файла.
2) Файлы, кот. больше этой границы, открываются всегда без Wrap. Это обусловлено исключительно тем «ограничением», что плагин — не полноценный редактор и долго думает (причём это и не только от плагина зависит, но и от выбранного шрифта).
3) Файлы, кот. меньше этой границы, можно открывать и с Wrap, и без. Они не обременены «ограничением» и с ними возможность переключения Wrap и возможность запоминания состояния Wrap вполне уместны.

Сейчас получается, что поведение Wrap глобально и для больших, и для маленьких. А хотелось бы, чтобы это было разграничено: для маленьких одно, для больших другое, а порог большие/маленькие устанавливается самостоятельно. И этот наворот только потому, что есть «ограничение» — долгое думание на больших. Думал бы быстрее — так ладно. Сейчас, с одной стороны не хочется удобства управления Wrap терять, с другой — хочется и большие файлы тоже плагином открывать, пусть и с ограничением на Wrap. Большие то сейчас отлично открываются, только Wrap тормозит (и ой-ёй как тормозит).
olegvsk wrote:
Не уверен, что вообще хочу обновлять хайлайтеры (темы точно не буду)

Ну, я только потому спросил, что финн обработку новых правил в механизм подсветки добавляет. Подсветка становится гибче, ширше, лучше )) Ну, дело то хозяйское, Вам решать. Вы, вот, про темы сказали, а ведь и точно, если в механизм подсветки добавятся новые Element'ы, то придётся их и в темы прописывать. Но с другой стороны, если доработки не трогают Element'ы, а добавляют только новые Properties и Options, то почему бы не взять их? Старые хайлайтеры от этого не пострадают, а новые возможности прибавятся.

Другое дело, как обновляться... Тут думать надо.
BeTeP wrote:
при переходе на следующий файл все надписи пропадают

Забыл в предыдущем посте дописать: у меня тоже не воспроизводится. Я открываю в БП файл, а потом стрелками перемещаюсь по файлам и у меня в БП они по очереди открываются — так?

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

Destiny wrote:
а вот в кружочке отрисована нечто серое, что не имеет сопоставления ни с чем на экране, но есть в миникарте

Это в настройках темы (Ctrl+T): Colors -> Search -> MapActiveLine.
_________________
Amo ergo sum
Back to top
View user's profile Send private message
BeTeP



Joined: 31 Mar 2005
Posts: 121
Location: Санкт-Петербург

Post (Separately) Posted: Mon Jun 10, 2024 15:44    Post subject: Reply with quote

yozhik wrote:
Забыл в предыдущем посте дописать: у меня тоже не воспроизводится. Я открываю в БП файл, а потом стрелками перемещаюсь по файлам и у меня в БП они по очереди открываются — так?
Открываю в БП файл, все надписи в строке состояния присутствуют. Перехожу на следующий файл - все надписи в строке состояния пропадают. От размера файлов не зависит. Если в строке состояния нажать мышкой на какое-нибудь поле, например, WRAP, то надписи проявляются, но при переходе на следующий файл опять пропадают.

У меня Windows 7 (x64). Проверял на ТС11.03 (х86) и ТС11.03 (х64) - поведение одинаковое.
Если откатится на версию плагина 1.3, то всё работает отлично, все надписи наместе.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 221

Post (Separately) Posted: Mon Jun 10, 2024 16:44    Post subject: Reply with quote

И еще вопрос - папки Highlighters.upd и Themes.upd - их содержимое теперь вручную перегонять в прежние папки Highlighters и Themes?
Или так и надо теперь - а старые папки наоборот стоит "убить"?

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

yozhik wrote:
Это в настройках темы (Ctrl+T): Colors -> Search -> MapActiveLine.

Так, и что же это?
Даже если брать и переводить тупо Map Active Line - Карта активной линии выходит. Но это же никакая не карта)))
Это милипусечный серый квадратик. И его смысл нахождения там, где он рисуется мне не понятен до сих пор.
Да и вообще - почти многое из всего там предлагаемого на выбор к перекраске - без визуального примера рядом
совсем не понятно. В итоге вроде возможность поправить тему есть, а что и куда править - ни к хренам не ясно.
Back to top
View user's profile Send private message
olegvsk



Joined: 17 Dec 2020
Posts: 94

Post (Separately) Posted: Mon Jun 10, 2024 17:14    Post subject: Reply with quote

Destiny wrote:
И еще вопрос - папки Highlighters.upd и Themes.upd - их содержимое теперь вручную перегонять в прежние папки Highlighters и Themes?
Или так и надо теперь - а старые папки наоборот стоит "убить"?

Не надо ничего перегонять и убивать. В *.upd папках лежат файлы, которые будут скопированы в основные папки Highlighters и Themes, если этих файлов там ещё нет. Сделано для того, чтобы установить необходимые файлы при установке плагина и не затереть изменённые пользователем файлы при обновлении. После этого папки *.upd плагин удалит сам. Если не удалил, можно удалить руками.
Back to top
View user's profile Send private message
yozhik



Joined: 04 May 2014
Posts: 222
Location: Электросталь

Post (Separately) Posted: Mon Jun 10, 2024 17:29    Post subject: Reply with quote

Destiny wrote:
Карта активной линии... милипусечный серый квадратик

Это всё «горяччий финнский» программист придумал. Евонный компонент. Мы только прикрутили (попутно пару финских багов исправили).
Destiny wrote:
без визуального примера рядом совсем не понятно

Так есть же визуальный. Если цвет поменять, он сразу к тексту файла в окне плагина применяется. Я красный выставляю и смотрю где «зажглось», и если попал не туда, куда метил — откат кнопкой. Ноу хау ))
_________________
Amo ergo sum
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Next
Page 8 of 10

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group