Основной инструмент программиста - редактор кода. Раньше существовало особое разделение между IDE (редактором, который поддерживал специальные фичи для разработки на каком-либо языке программирования) и обычным Editor-ом (редактором, который максимум подсвечивал код). IDE предлагали автодоплнение для названий функций и переменных, подсвечивали ошибки и делали другую полезную работу. Причем каждая IDE делала это на свой лад.
Таким образом вся полезная функциональность была зашита в сам редактор. Так было ровно до тех пор, пока не появился - LSP (Language Server Protocol). LSP - это специальный протокол по которому редактор (или другой софт) может обращаться к языковому серверу, который знает синтаксис и семантику языка, в итоге редактору больше не надо "уметь" самому разбирать код, а нужно лишь передавать LSP серверу нужную информацию и получать от него подсказки, ошибки и предупреждения.
В результате практически все популярные ЯП имеют свои LSP серверы, а редакторы кода неожиданно становятся простыми IDE, подключая LSP в свою функциональность.
На Rust-е есть простенькая IDE, которая еще не вышла даже в Бета стадию, но уже умеет и плагины, и LSP - это Lapce (https://github.com/lapce/lapce)
Качаете исходники, собираете и получаете шустрый редактор, затем ставите плагин, скажем для TypeScript, с поддержкой LSP доступа и получаете IDE. Затем подключаете Rome (https://github.com/rome/tools) и вот уже работает линтер, претифайер и бандлер. А если и этого мало, то используя WASI (WebAssembly System Interface) можете написать свой плагин или использовать плагины других разработчиков.
Кстати, Lapce позволяет использовать Vim режим, который подходит для настоящих гиков.
Такой стиль архитектуры называется "плагинный", когда есть "ядро" и вся дополнительная функциональность получается через плагины. Обычно за такую архитектуру приходится платить производительностью, но Lapce работает не хуже VSCode, а по моим ощущениям даже быстрее.
#tools #editor #soft
Таким образом вся полезная функциональность была зашита в сам редактор. Так было ровно до тех пор, пока не появился - LSP (Language Server Protocol). LSP - это специальный протокол по которому редактор (или другой софт) может обращаться к языковому серверу, который знает синтаксис и семантику языка, в итоге редактору больше не надо "уметь" самому разбирать код, а нужно лишь передавать LSP серверу нужную информацию и получать от него подсказки, ошибки и предупреждения.
В результате практически все популярные ЯП имеют свои LSP серверы, а редакторы кода неожиданно становятся простыми IDE, подключая LSP в свою функциональность.
На Rust-е есть простенькая IDE, которая еще не вышла даже в Бета стадию, но уже умеет и плагины, и LSP - это Lapce (https://github.com/lapce/lapce)
Качаете исходники, собираете и получаете шустрый редактор, затем ставите плагин, скажем для TypeScript, с поддержкой LSP доступа и получаете IDE. Затем подключаете Rome (https://github.com/rome/tools) и вот уже работает линтер, претифайер и бандлер. А если и этого мало, то используя WASI (WebAssembly System Interface) можете написать свой плагин или использовать плагины других разработчиков.
Кстати, Lapce позволяет использовать Vim режим, который подходит для настоящих гиков.
Такой стиль архитектуры называется "плагинный", когда есть "ядро" и вся дополнительная функциональность получается через плагины. Обычно за такую архитектуру приходится платить производительностью, но Lapce работает не хуже VSCode, а по моим ощущениям даже быстрее.
#tools #editor #soft
GitHub
GitHub - lapce/lapce: Lightning-fast and Powerful Code Editor written in Rust
Lightning-fast and Powerful Code Editor written in Rust - lapce/lapce
👍38🔥8🤯4😁1🤔1🤡1