Vim — текстовый редактор с 30-летней историей и необычным подходом к редактированию текста. Многие редакторы и IDE создают свои эмуляторы Vim, чтобы поддержать у себя этот режим редактирования. В случае с IntelliJ IDEA таким эмулятором является плагин IdeaVim. Он уже насчитывает около полумиллиона пользователей, и мы продолжаем активно развивать его.
Помимо возможностей редактирования текста Vim предоставляет встроенный язык программирования Vim script. В основном Vim script используется для настройки Vim под конкретные нужды пользователя. Однако это также полноценный язык. Поддержав исполнение Vim script в IdeaVim, мы улучшим возможности эмулятора. Задачу можно разделить на две части: парсинг кода (построение AST) и непосредственно его исполнение. Плагин уже включает примитивный построчный парсинг команд, который, однако, не позволяет поддержать полноценное выполнение Vim script.
Цели данного проекта:
Задача написания парсера может оказаться непростой и потребовать времени. В рамках данного проекта мы бы хотели создать парсер, который поддержит текущий набор команд (уже присутствующих в IdeaVim). На данный момент никаких серьезных наработок у нас нет — необходимо разработать подход к решению ряда вопросов, касающихся как особенностей языка, так и сложностей, которые возникают в контексте IdeaVim. Этот проект позволит нам улучшить имеющиеся возможности парсинга и даст хорошую базу для дальнейшего развития парсера.
По любым вопросам можно обратиться по адресу aleksei.plate@jetbrains.com.