August 14th, 2012

glider

Sublime Text + ENSIME

Рад представить результат пары месяцев хакатонов: http://sublimescala.org.

Теперь с исходниками нашего компилятора можно эффективно работать в сублайме. Уже поддерживаются базовые фичи, которые обычно характерны для IDE: подсветка ошибок, автокомплит и go to definition. Само собой, раз все работает на нашем кодебейзе, то скорее всего плагин подойдет и для менее сложных проектов на Скале.

Самая главная цель проекта - сохранить легковесность и скорость сублайма. По первым впечатлениям все ок - энсайм запускается за пару секунд, инстанс компилятора сидит в фоновом процессе, практически весь процессинг (за исключением комплишенов) происходит вне потока, обслуживающего UI. Ежедневное использование плагина покажет что и как, но в любом случае перфоманс это не та вещь, которой мы настроены жертвовать.

Лично у меня впечатления просто замечательные. Старый-добрый сублайм теперь поддерживает навигацию по неизвестным мне местам компилятора и отлавливает ошибки на лету - это просто праздник. Надеюсь скоро появится время наколбасить дебаггер для тех редких случаев, когда он нужен.

upd. Еще хочу сказать, что наш плагин это форк давно существующего прототипа по имени sublime-ensime (правда пришлось до кучи переписать и еще больше дописать) + использует написанный гораздо раньше ENSIME сервер, который через сокет предоставляет семантические сервисы для программ на Скале. Работы было навалом, но идея даже близко не моя - по сути мы просто приделали к энсайму человеческое лицо.