Раскраска файла при его просмотре Topic is solved

Столкнулись с проблемой в использовании Far? Здесь можно получить помощь.
User avatar
HaRT
Moderator
Posts: 10900
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 223 times
Been thanked: 359 times

Раскраска файла при его просмотре

Post by HaRT »

Latest post of the previous page:

zg wrote: Tue 14 May, 2024 10:55 правильно ли я вас понимаю, что в редакторе настолько кривое апи, что за 25 лет никто не захотел возится с прикручиванием чего-то готового?
Я этого не говорил. Просто для нужд редактора уже есть свой движок, Колорер. Почему никто не прикрутил какой-то ещё готовый, я не знаю, сам такую задачу решать не пытался.
zg wrote: Tue 14 May, 2024 10:55 хотя бы пример того, какое должно быть апи, чтобы интеграция существующих движков была лёгкой и непринуждённой можно увидеть?
Про лёгкость и непринуждённость никто и не говорит. Более того, подозреваю, что для разных движков были бы благоприятны несколько разные API со стороны Фара. Опять же, подробности я не копал.

Фактически же моё сообщение было не утверждением, как надо делать, а выражением моего мнения о характере мотивации потенциальных делателей.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
zg
zero-gravity
Posts: 6049
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 186 times
Contact:

Раскраска файла при его просмотре

Post by zg »

HaRT wrote: Tue 14 May, 2024 12:02Я этого не говорил. Просто для нужд редактора уже есть свой движок, Колорер. Почему никто не прикрутил какой-то ещё готовый, я не знаю, сам такую задачу решать не пытался.
про себя могу сказать, что раньше всё плохо было, а сейчас проще на луа написать простую подсветку, на сях сложную, чем мучится в рамках чужих описаний (и сильно лучше тоже не стало). миллион типов файлов мне подсвечивать не надо, так что справляюсь.
HaRT wrote: Tue 14 May, 2024 12:02а выражением моего мнения о характере мотивации потенциальных делателей.
делателей чего?
User avatar
HaRT
Moderator
Posts: 10900
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 223 times
Been thanked: 359 times

Раскраска файла при его просмотре

Post by HaRT »

zg wrote: Tue 14 May, 2024 15:58 миллион типов файлов мне подсвечивать не надо, так что справляюсь.
Я-то надеюсь на интеграцию с готовым популярным движком в основном ради того, чтобы получить большое сообщество, которое создаёт и поддерживает разнообразные описания синтаксисов. А то у Колорера схемы развивать готовы совсем мало людей. Я вот и сам попытался на днях найти, почему в Питоне закрывающая скобка в F-строке неправильно красится, — потыркался-потыркался и забил. Возможно, ещё попрошу в профильной теме совета, как лучше подступиться к задаче.
zg wrote: Tue 14 May, 2024 15:58делателей чего?
Раскрасчиков, вестимо.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
ctapmex
Posts: 1249
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Раскраска файла при его просмотре

Post by ctapmex »

HaRT wrote: Tue 14 May, 2024 01:01 А вот если сделать такой API, к которому не слишком сложно написать адаптер для уже существующего движка раскраски (наподобие KSyntaxHighlighting, Pygments или ещё какого-то широко распространённого), то шансы нешуточно повысятся.
посмотрел по приведенным ссылкам, немного поизучал тематику. Описанные проблемы присущи не только для редактора Far. В том же vim не первый год ломают копья по поводу прикрутить textmate (как в vscode) , или взять от neovim. И скорость меряют всё на том же sqllite.c . и вывод делают следующий
  • если нужна правильная раскраска, то надо последовательно всё разбирать, а это медленно.
  • Зачем пытаться сделать IDE из редактора, когда уже есть куча современных IDE, поздно уже.
посмотрел как vscode работает с тем же sqllite.c . Фоном он запускает парсинг файла полный. Одно ядро cpu загружено. Но в то же время успешно со всеми парными скобками отображает конец файла. Это по наблюдениям, сам код не ковырял. Интересно понять ,какой подход они используют для этого.
Но это точно не "парсер textmate быстрее/правильнее colorer". Принцип работы textmate грамматик очень похож на colorer (кто у кого списывал? -)) ) . Различается подход к описанию схем, и некоторые тонкости решены по разному. (используется negative look behind для того, чтобы вовремя остановиться на вложенных конструкциях, в colorer же это параметр priority)
в отзывах на написание грамматик и движок куча негатива. Что не так просто это всё пишется. Регулярки в готовых грамматиках громадные, тяжело понять (в colorer они существенно проще). И для того чтобы сделать эти грамматики, в начале пишут упрощенные на "нормальном языке", а затем натравливают генератор, для преобразования . тут я ни как не защищаю colorer, сухие факты. По началу у меня была мысль , что круто было бы попробовать textmate. Но чем дальше читал, тем больше понимал, что основной плюс в нем только то, что грамматики используются во многих редакторах.
пример описания для cpp

Чтобы что-то прикрутить другое , надо хотя бы найти это другое. И чтобы парсер был готовый на c/c++. Прикручивать питон/go/js кажется плохим вариантом. Зависимостей на систему может потянуть. Ну и у этого парсера/грамматики должны быть очень простые правила (если речь про не скомпилированные правила). Иначе получаем те же проблемы. Проще тогда уж для colorer сделать lite схемы, раскрашивающий совсем типовые вещи. Тогда и скорость точно вырастет.

textmate я еще поковыряю, интересно очень
Last edited by ctapmex on Wed 15 May, 2024 07:30, edited 1 time in total.
User avatar
zg
zero-gravity
Posts: 6049
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 186 times
Contact:

Раскраска файла при его просмотре

Post by zg »

ctapmex wrote: Wed 15 May, 2024 07:29Но в то же время успешно со всеми парными скобками отображает конец файла.
с огромной долей вероятности файл заканчивается основным регионом.
User avatar
HaRT
Moderator
Posts: 10900
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 223 times
Been thanked: 359 times

Раскраска файла при его просмотре

Post by HaRT »

ctapmex wrote: Wed 15 May, 2024 07:29 Чтобы что-то прикрутить другое , надо хотя бы найти это другое. И чтобы парсер был готовый на c/c++.
Тогда стоит взглянуть и на KSyntaxHighlighting — он как раз на C/C++ (а используется много где, в т.ч., например, в Qt Creator).
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
ctapmex
Posts: 1249
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Раскраска файла при его просмотре

Post by ctapmex »

а что от него ожидается ? что он будет быстрее, или проще в описании?
вот примеры его синтаксисов
User avatar
HaRT
Moderator
Posts: 10900
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 223 times
Been thanked: 359 times

Раскраска файла при его просмотре

Post by HaRT »

ctapmex wrote: Wed 15 May, 2024 12:12 что от него ожидается ? что он будет быстрее, или проще в описании?
Что у него гораздо большее сообщество, которое коллективно куда более оперативно исправляет и дополняет описания синтаксисов.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13900
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 75 times
Been thanked: 431 times
Contact:

Раскраска файла при его просмотре

Post by John Doe »

ctapmex, zg

А PEG-грамматики не будут ли тут производительнее, или хотя бы выразительнее регэкспов?
https://t.me/FarManager — Telegram чат
User avatar
ctapmex
Posts: 1249
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Раскраска файла при его просмотре

Post by ctapmex »

zg wrote: Wed 15 May, 2024 08:40
ctapmex wrote: Wed 15 May, 2024 07:29Но в то же время успешно со всеми парными скобками отображает конец файла.
с огромной долей вероятности файл заканчивается основным регионом.
да, так и есть. закомментировал большой кусок кода в конце файла и переоткрыл - в начале раскраска без учета того, что это внутри комментария. После обработки фоном поменялось на актуальную.

кстати, там не совсем асинхронная работа. Оно работает отдельно от редактора, но считается синхронным. Полный асинхрон пока как выключена фича, которая должна включаться на очень больших файлах .
вообще интересно было глянуть. Все те же проблемы решали, и размер файла, и максимальный размер строки , после которого раскраска не производится.
User avatar
ctapmex
Posts: 1249
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Раскраска файла при его просмотре

Post by ctapmex »

John Doe wrote: Wed 15 May, 2024 12:47 А PEG-грамматики не будут ли тут производительнее, или хотя бы выразительнее регэкспов?
не знаком с ними. Но поверхностно - возможно и будут, но такую грамматику еще и составить надо.
gotar
Posts: 427
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 19 times
Been thanked: 3 times

Раскраска файла при его просмотре

Post by gotar »

интересно, а что народ думает о Language Server Protocol? Насколько я понял он поддерживает, в том числе, и раскраску.
Last edited by gotar on Fri 17 May, 2024 10:02, edited 2 times in total.
User avatar
HaRT
Moderator
Posts: 10900
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 223 times
Been thanked: 359 times

Раскраска файла при его просмотре

Post by HaRT »

gotar wrote: Fri 17 May, 2024 09:58 что народ думает о Language Server Protocol? Насколько я понял он поддерживает, в том числе, и раскраску.
Сам я его не щупал, но видел упоминания его использования в нескольких продуктах, которыми пользуюсь. Если я ничего не путаю, использование LSP требует запуска отдельного процесса-сервера (а возможно, и по одному на каждый язык), а это может оказаться слишком тяжеловесно для просмотрщика, от которого мы ждём быстроты. Кроме того, что-то я не слышал о реализации этих собственно серверов для большого количества языков. А мы-то хотим раскраску для очень разнообразных файлов.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13900
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 75 times
Been thanked: 431 times
Contact:

Раскраска файла при его просмотре

Post by John Doe »

https://tree-sitter.github.io/tree-sitter/

@HaRT
LSP тоже было бы здорово, там много функций. Для каждого языка конечно свой сервер нужен, и это не замена универсальному раскрасчику.
https://t.me/FarManager — Telegram чат
Post Reply

Return to “Нужна помощь”