Я начал с , этот . Это был год, когда я использовал его, но концепции остались прежними.
Лучшее, что я могу предложить вместо практических рекомендаций, - это найти язык, который уже интегрирован, и посмотреть, как они это делают. Вот реальный совет - не выбирайте тот, у которого имя пакета начинается с org.eclipse
(как у муравья). Eclipse предоставляет так много поддержки, что гораздо проще увидеть, какой код вам нужно написать, если он начинается с другого префикса пакета. Попробуйте, например, посмотреть groovy или scala .
По моему опыту, именно подсвечивание ошибок сделать труднее всего; следующее самое сложное - это помощь с контентом.
Если вы управляете компилятором или средой исполнения языка, на котором пишете редактор, жизнь станет намного проще, если вы сможете заставить компилятор предоставить вам все данные, которые понадобятся вашей IDE для его представления. пользователь (например, список токенов - для подсветки синтаксиса, всплывающих подсказок; помощник по содержимому будет намного лучше, потому что вы не симулируете компилятор, а используете реальный; то же самое с подсветкой ошибок)
В среде IDE относительно легко работать только с отображением ошибок, раскраски и т. Д.
Как только у вас есть его только для отображения, пример XML-редактора выглядит весьма полезным.
Большая часть правил разбиения, которые я нашел менее полезными; Я всегда заканчивал тем, что строил свой собственный - бинарный поиск по списку токенов чрезвычайно полезен.