Как предлагается в документации Eclipse, у меня есть org.eclipse.core.resources.IncrementalProjectBuilder
, который компилирует каждый исходный файл, и отдельно у меня также есть org.eclipse.ui.editors.text.TextEditor
, который может редактировать каждый исходный файл. Каждый исходный файл компилируется в свой собственный модуль компиляции, но он может ссылаться на типы из других (уже скомпилированных) исходных файлов.
Две задачи, для которых это важно:
Для этого я хочу сохранить представление всех скомпилированных типов в памяти (далее именуемой «хранилище типов»).
У меня двоякий вопрос:
Первую задачу выше выполняет строитель, а второй - редактор. Чтобы у них обоих был доступ к этому хранилищу типов, следует ли мне создать статическое хранилище где-нибудь, к которому они оба могут иметь доступ, или Eclipse предоставляет более удобный способ решения этой проблемы? Обратите внимание, что именно eclipse, а не я, создает экземпляры конструкторов и редакторов, когда они необходимы.
При открытии eclipse, Я не хочу перестраивать весь проект только для того, чтобы заново заполнить хранилище типов. На данный момент мое лучшее решение - сохранить эти данные где-нибудь, а затем повторно заполнить мой магазин из них (возможно, после открытия проекта). Это то, как обычно это делают другие инкрементные компиляторы? Я считаю, что подход Java заключается в использовании специального синтаксического анализатора, который эффективно извлекает эти данные из файлов классов.
Любые идеи будут действительно признательны. Это мой первый DSL.