Перейти к содержимому
Korean Random

Рекомендуемые сообщения

(изменено)



Как-то увидел language server protocol и захотел понять, насколько вообще сложно написать поддержку своего языка (автокомплит, подсказки по наведению)

Может кто пробовал что-то такое сделать?

Я так понял, что для этого нужно построить AST дерево из токенов и таблицу - позиция токена в коде -> токен (уже почти написал лексер к языку)

От lsp приходят сообщения через json-rpc с позицией курсора и типом сообщения, и их уже надо обработать

В общем хочется обсудить иидеи, как проще всего реализовать автокомплит, подсказки и кэширование, чтобы не парсить каждый раз из-за изменения одного символа

Изменено пользователем SkepticalFox

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Зачем оно нужно?

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)
5 hours ago, Pavel3333 said:

Зачем оно нужно?

ну на маленьких проектах это и не к чему, а вот на больших очень полезная штука

не все языки поддерживают автокомплит, подсказки, да и даже подсветку кода

у меня сейчас как раз ситуация с большим проектом и языком, который не имеет поддержки никакими IDE

 

сейчас читаю теорию по Flex/Bison, но пока не нашел никаких статей по созданию на их основе чего-то вроде умных подсказок и прочего.

Изменено пользователем SkepticalFox

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

@SkepticalFox ну можно ведь написать на той же Делфи или C# свой редактор кода для своего языка. с подсветкой кода. ну и по желанию финтиплюшки типа

 

6 минут назад, SkepticalFox сказал:

автокомплит, подсказки

 

Изменено пользователем Pavel3333

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)
9 hours ago, Pavel3333 said:

ну можно ведь написать на той же Делфи или C# свой редактор кода для своего языка. с подсветкой кода

Свой текстовый редактор мне не нужен, когда есть очень удобный готовый инструмент и продуманный протокол.

 

9 hours ago, Pavel3333 said:

ну и по желанию финтиплюшки типа 

On 8/30/2018 at 8:19 AM, SkepticalFox said:

автокомплит, подсказки

Так в них и есть все дело и к языку оно никак не относится.

Эта часть крайне нетривиальна, чтобы сказать, "по желанию"

Вот как пример автодополнение кода для питона - https://github.com/davidhalter/jedi

Что-то многовато там кода - у кого столько желания будет?)

 

Изменено пользователем SkepticalFox
  • Нравится 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, SkepticalFox сказал:

Что-то многовато там кода - у кого столько желания будет?)

хм, действительно. удачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×