Internships
Register
Copyright © 2000—2025 JetBrains s.r.o.

Реализация Language server protocol'a для нового Kotlin компилятора. Прототипирование плагина для поддержки Kotlin в Eclipse IDE.

Description

Задача 1: Eclipse плагин.

У языка Kotlin есть большие перспективы на JVM Servers-side рынке. 20-30% рынка занимает IDE Eclipse. Среда, вопреки некоторым убеждениям, имеет стабильные ниши, и с ними нельзя не считаться при освоении этого рынка.

Кроме того, наши партнёры (разработчики фреймворков, билд-тулов, ...), имеющие поддержку в Eclipse (например, gradle.kts) ожидают там поддержку и от нас, чтоб их технологии работали корректно.

У JetBrains есть Kotlin плагин для Eclipse написанный давно на старых технологиях. Он работает из рук вон плохо, и мы пришли к выводу, что нужно писать новый с нуля, используя последние возможности компилятора и IDE. Новое решение не будет использовать все возможные фичи IDE, но даст набор необходимых фич в хорошем качестве, что и нужно текущим пользователям.

Есть предположение, что задачу можно решить эффективно, интегрировав реализацию Language Server Protocol'а (LSP) для Kotlin в соответствующие интерфейсы Eclipse. Это первая большая задача.

Если получается - прототипируем плагин дальше, выпускаем ранние версии, собираем фидбэк.
Если не получается - исследуем другие варианты - системы анализа кода из IntelliJ. Это точно рабочий сценарий, но требует больше сил.

UPD. Задача 2: Kotlin LSP для нового компилятора.

В проекте появилась вторая большая задача. В видеоролике про это не сказано. Выше было написано о существующей реализации LSP для Kotlin. Она сделана на базе компилятора, который нами выпущен и доступен для всех пользователей. Возможно вы знаете, что команда Kotlin'а разрабатывает новый компилятор, с улучшенными характеристиками и API.

Вторая задача заключается в реализации LSP для нового компилятора. Она так же важна как и первая, потому что эта работа принесёт ценный фидбэк, как для для разработчиков компилятора, так и для плагина из первой задачи. В идеале, IDE плагин должен будет работать и на существующем Kotlin LSP, и на разработанном во второй задаче.

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

Requirements

Опыт реальной разработки на Java / Kotlin

Попытка решения тестового задания

--

Будет плюсом:

Продвинутое знание IDE

Опыт написания IDE плагинов

Admission

Разработчики: Лето 2021

Mentor

Anton Yalyshev, Mikhail Zarechenskiy

Mentor's location

Remote

Product/Team

Kotlin

Tags

Kotlin