Size: a a a

2021 January 22

EG

Emmanuel Goldstein in pro.vim
Yaroslav Schekin
Вот, например: https://buttondown.email/hillelwayne/archive/syntax-highlighting-is-a-waste-of-an-information/
И, кстати, даже в дистрибутиве vim были syntax files, которые генерируют синтаксис (правила подсветки!), читая входной файл.
А что на это может сказать tree-sitter? ;)
Мгновенно заметил круг на первой картинке
источник

G

GNU/Vsevolod in pro.vim
Yaroslav Schekin
Вот, например: https://buttondown.email/hillelwayne/archive/syntax-highlighting-is-a-waste-of-an-information/
И, кстати, даже в дистрибутиве vim были syntax files, которые генерируют синтаксис (правила подсветки!), читая входной файл.
А что на это может сказать tree-sitter? ;)
Я попросил определение, а не статью
источник

G

GNU/Vsevolod in pro.vim
Emmanuel Goldstein
0.5 это вечный найтли, увы
А обещали жеж до 12 декабря
источник

YS

Yaroslav Schekin in pro.vim
GNU/Vsevolod
Вим же тоже не сможет правильно подсветить без синтакс файлов, откуда ему метаданные брать?
Одно дело syntax files (аналоги грамматик tree-sitter, грубо говоря), а другое — если бы пришлось для подсветки разбирать код, написав lexer прямо на vimscript, или, что хуже, на чём-то ещё (как это делают lexers в tree-sitter).
источник

G

GNU/Vsevolod in pro.vim
Yaroslav Schekin
Одно дело syntax files (аналоги грамматик tree-sitter, грубо говоря), а другое — если бы пришлось для подсветки разбирать код, написав lexer прямо на vimscript, или, что хуже, на чём-то ещё (как это делают lexers в tree-sitter).
так лексеры в тс руками не пишутся, их либа генерит из jsника c грамматикой
источник

YS

Yaroslav Schekin in pro.vim
Emmanuel Goldstein
Мгновенно заметил круг на первой картинке
Неплохо. ;) Но статью я привёл для того, чтобы пояснить, о чём речь, вот и всё.
источник

EG

Emmanuel Goldstein in pro.vim
Это решается через LSP-подсветку
источник

EG

Emmanuel Goldstein in pro.vim
Но её нигде толком нет
источник

YS

Yaroslav Schekin in pro.vim
GNU/Vsevolod
так лексеры в тс руками не пишутся, их либа генерит из jsника c грамматикой
Да неужели?!
А вот это что, если не секрет?
https://github.com/tree-sitter/tree-sitter-cpp/blob/master/src/scanner.cc
https://github.com/tree-sitter/tree-sitter-python/blob/master/src/scanner.cc
Ну и так далее. Tree-sitter сам по себе не умеет в контекстно-зависимые конструкции, опять-таки.
источник

YS

Yaroslav Schekin in pro.vim
GNU/Vsevolod
Я попросил определение, а не статью
Хмм... так это и не термин. Вы поняли, о чём речь?
источник

G

GNU/Vsevolod in pro.vim
Yaroslav Schekin
Да неужели?!
А вот это что, если не секрет?
https://github.com/tree-sitter/tree-sitter-cpp/blob/master/src/scanner.cc
https://github.com/tree-sitter/tree-sitter-python/blob/master/src/scanner.cc
Ну и так далее. Tree-sitter сам по себе не умеет в контекстно-зависимые конструкции, опять-таки.
то, что выдает tree-sitter generate
источник

G

GNU/Vsevolod in pro.vim
Yaroslav Schekin
Да неужели?!
А вот это что, если не секрет?
https://github.com/tree-sitter/tree-sitter-cpp/blob/master/src/scanner.cc
https://github.com/tree-sitter/tree-sitter-python/blob/master/src/scanner.cc
Ну и так далее. Tree-sitter сам по себе не умеет в контекстно-зависимые конструкции, опять-таки.
источник

YS

Yaroslav Schekin in pro.vim
GNU/Vsevolod
то, что выдает tree-sitter generate
Правда? Т.е. функция scan в python-овском файле не написана руками, всё это сгенерировано?
Из чего же?
источник

YS

Yaroslav Schekin in pro.vim
Спасибо, я читал. :)
источник

G

GNU/Vsevolod in pro.vim
Yaroslav Schekin
Правда? Т.е. функция scan в python-овском файле не написана руками, всё это сгенерировано?
Из чего же?
В каком py файле?
источник

YS

Yaroslav Schekin in pro.vim
GNU/Vsevolod
В каком py файле?
В файле из грамматики для python, вот в этом: https://github.com/tree-sitter/tree-sitter-python/blob/master/src/scanner.cc
источник

G

GNU/Vsevolod in pro.vim
в scanner.cc обычно хелперы для таких токенов, что невозможно прочитать регексом
источник

YS

Yaroslav Schekin in pro.vim
GNU/Vsevolod
в scanner.cc обычно хелперы для таких токенов, что невозможно прочитать регексом
Вот именно об этом я и писал. Т.е. "так лексеры в тс руками не пишутся" — нет, ещё как пишутся. Все КЗ конструкции описываются исключительно "руками".
источник

G

GNU/Vsevolod in pro.vim
Yaroslav Schekin
Вот именно об этом я и писал. Т.е. "так лексеры в тс руками не пишутся" — нет, ещё как пишутся. Все КЗ конструкции описываются исключительно "руками".
кз это?
источник

YS

Yaroslav Schekin in pro.vim
GNU/Vsevolod
кз это?
Контекстно-зависимые.
источник