[Monodevelop-devel] Working on the monodevelop dom after 2.2

Levi Bard taktaktaktaktaktaktaktaktaktak at gmail.com
Mon Sep 28 10:08:44 EDT 2009

> Some questions:
> 1) How do you do code completion without an own DOM? I mean you need to
> find out which construct the user wants to complete.

Precisely. However, if we already have all the information to populate
an entire symbol tree in the classpad,
why should that be replicated elsewhere for completion?

> 2) How do you do Find References without an own DOM? Don't you need to
> traverse the language specific DOM for it?
> 3) Same for goto definition. (need to find out which construct etc.)

Maybe I'm misunderstanding the proposal. In my mind, any given DOM
schema would be language-specific, but the means of populating,
storing, and querying it would be schema-apathetic.

> Existing refactoring will move to the c# backend :/. I don't see a way
> to generalize them accross languages that don't share a specific 'down
> to expression level' DOM.
> (Otherwise than having a general refactoring API that would be:
> interaface IRefactoring {
>  void ExtractMethod ...
>  void RemoveTemporaryVariable ...
>  void InsertVariable ...
>  void RemoveBackingStore ...
> ..
> }
> I think the general refactoring ends where the 'FindAllReferences'
> function ends :(. But I'm open for ideas here.

Yeah, the "Extract Method" types of refactorings would have to be
implemented for each language, where appropriate
And I would love to see an extensible refactoring framework that
facilitates this.

On the other hand, "Goto Definition" and "Find References" don't
require any more information than completion.


More information about the Monodevelop-devel-list mailing list