Я проверил Spark View Engine, и они, кажется, сделали общий материал ATL (называемый SparkLanguagePackageLib), который на самом деле, кажется, не содержит ничего специфичного для Spark. Кажется, это просто универсальная библиотека C # intellisense, для которой необходимо следующее:
- Оригинальный код
- Исходный код C #, сгенерированный из исходного кода
- Отображение положения между двумя (например, код в строке 2 поз. 5 отображается в выходных данных в строку 4 поз. 10 и т. Д.)
- Некоторые другие вещи, такие как картины (?)
И после этого вы можете позвонить:
events.OnGenerated(
primaryText, // original source code
entry.SourceCode, // generated sourcecode
cMappings, // mappings between the two
ref mappings[0], // ?
cPaints, // ?
ref paints[0]); // ?
Я пытался найти специфичные для Spark вещи в этой библиотеке C ++, но ничего не смог найти: все, что касается искры, разбивается на отдельный файл кода C #. Я думаю, что это хорошо, потому что:
- Вам не нужно редактировать файлы C ++
- Если установлена поддержка intellisense двигателя искрового обзора, она может использоваться и другими двигателями обзора
- Вам нужно только создать класс, который отображается между исходным файлом nhaml и его сгенерированным аналогом на C #.
Btw. Вы все еще работаете над этой библиотекой NHaml Intellisense? Если нет, я постараюсь исправить их реализацию в надежде, что их легко можно преобразовать в NHaml.