Недавно команда TypeScript представила TypeScript 7 — новую версию, переписанную на Go. Главные обещания: до 10× ускорения компиляции и до 8× более быстрый старт анализа проекта. Но самое интересное спрятано чуть глубже: вместе с TS-Go появляется полноценный LSP-сервер, встроенный прямо в компилятор.
Для многих IDE это шаг вперёд. Для нас, команды OpenIDE, — это ещё и освобождение от ограничений, с которыми TypeScript приходилось поддерживать долгие годы.
В статье делимся контекстом, собственными экспериментами и наблюдениями — что уже работает, что нет и как новый сервер ощущается в реальной IDE.
Мы активно развиваем поддержку TypeScript/JavaScript. И здесь важно помнить исторический факт: официальный tsserver не являлся LSP-сервером. Он появился раньше стандарта LSP и использовал собственный RPC-протокол — идеально для VS Code, но неудобно для всех остальных.
Чтобы интегрировать TS/JS в OpenIDE, приходилось держать «мост» между IDE и нестандартным сервером, вручную сопоставлять команды, обрабатывать исключения и частные случаи. Это была нормальная инженерная реальность… но не самая приятная.
С появлением TypeScript-Go ситуация меняется:
Это означает:
По сути, язык впервые предоставляет «всё в одном»: компилятор + анализатор + языковой сервер, собранные вокруг одного источника истины.
Компилятор — это не просто превращение TS в JS. Чтобы компилировать, нужно:
То есть компилятор обладает наиболее полным и точным знанием о коде. Именно поэтому большинство современных языков (Go, Rust, Kotlin, Swift, Zig) идут в сторону официального LSP поверх компилятора.
Пока в TypeScript-Go заметны недочёты:
То есть если что-то «ломается» — это не проблема конкретной IDE, а состояние экосистемы на ранней стадии.
Цифры Microsoft касаются компилятора. Но поведение IDE определяется временем ответа LSP-сервера на сотни операций:
Поэтому мы решили проверить именно реакцию LSP-сервера.
Мы взяли проект самого TypeScript, открыли его в OpenIDE и:
Запустили одинаковые последовательности действий для двух серверов. (Полная автоматизация через макросы затруднена: они не пишут действия мышью и могут воспроизводиться нестабильно.)
Записали логи времени выполнения запросов.
Сравнили медианы — чтобы исключить редкие лаги.
Статистика проекта Typescript
TypeScript быстрый, запросы обрабатываются в микросекундах–десятках миллисекунд. Но медиана — более честная метрика.
textDocument/definition, textDocument/references, textDocument/implementation

textDocument/typeDefinition
Время выполнения textDocument/typeDefinition
textDocument/completion
Время выполнения textDocument/completion
completionItem/resolve
Время выполнения completionItem/resolve
textDocument/documentHighligt, textDocument/documentSymbol

textDocument/hover
Время выполнения textDocument/hover
Сводный график времени выполнения lsp запросов
Пока можно осторожно сказать:
То есть новых «магических ускорений» в IDE пока нет — но переход на LSP даёт более структурную выгоду: архитектура становится проще, чище и надёжнее.
Мы добавили возможность переключиться на TypeScript-Go в плагине WebTools. Можно протестировать всё прямо в рабочем проекте:
Settings → Languages & Frameworks → Web Tools → TypeScript version → “TypeScript-Go (Experimental)”

Сравните поведение, дайте фидбек — нам важно видеть реальные сценарии.
Мы ожидаем, что в ближайшие месяцы:
Для IDE это долгожданное выравнивание: наконец появится официальный, стандартный, предсказуемый способ интеграции TS/JS.
В OpenIDE мы продолжаем развивать поддержку веб-технологий так, чтобы новые инструменты органично становились частью ежедневной разработки. Следите за обновлениями здесь и в нашем Telegram канале: впереди ещё много улучшений, которые сделают работу с JavaScript и TypeScript в OpenIDE быстрее, стабильнее и удобнее.