[MonoDevelop] Better monodoc integration

Jacob Ilsø Christensen jacobilsoe at gmail.com
Mon Jan 30 16:22:25 EST 2006


On 1/30/06, Lluis Sanchez <lluis at ximian.com> wrote:
>
> El lun, 30-01-2006 a las 18:10 +0100, Jacob Ilsø Christensen escribió:
> > Ok, here is the first attempt!
> >
> > The service has been renamed to DocumentationService and it implements
> > IDocumentationService which again implements IService.
> > IDocumentationService is placed in:
> >
> > Core/src/MonoDevelop.Projects/MonoDevelop.Projects.Documentation
> >
> > MonoDevelop.Projects no longer references MonoDevelop.Documentation
> > (but has to reference Monodoc).
>
> This reference shouldn't be needed. I guess it is due to the HelpTree
> property in IDocumentationService which returns a type from Monodoc,
> right? Since this property is not used in MonoDevelop.Projects it could
> be removed from the interface (but not from the class).
>
> However, MonoDevelop.Ide does use that property. I see two solutions for
> this.
>
>       * The easy one: In MonoDevelop.Ide use the class
>         DocumentationService instead of IDocumentationService (it is
>         possible to reference MonoDevelop.Documentation there).
>       * The complex/good one: Move HelpViewer and MonodocTreePad from
>         MonoDevelop.Ide to MonoDevelop.Documentation. Move the handling
>         of the F1 key from MonoDevelop.SourceEditor to
>         MonoDevelop.Documentation.
>
> In any case those changes don't need to be done right now. Removing the
> MonoDevelop.Documentation dependency is a first step. Removing the
> Monodoc can be done in a later step.
>
> > Instead MonoDevelop.Documentation references MonoDevelop.Projects.
> >
> > I have one issue in:
> >
> >
> Core/src/MonoDevelop.Projects/MonoDevelop.Projects.Parser/AssemblyCodeCompletionDatabase.cs
> >
> > Here a new instance of MonodocService is made. This is no longer
> > possible due to the broken dependency. I need some help as to how to
> > resolve this. Maybe it is not necessary as the ServiceManager does
> > this?
>
> Yes, the service should be created through the service manager. I'll
> take a look at this.


Sounds good. So shall I commit the stuff now or wait for you to look into
this? I'll fix the MonoDevelop.Projects reference to monodoc afterwards
then.

/Jacob

>
> > Apart from that issue is this good to commit (along with the mandatory
> > ChangeLog files... :-) )?
> >
> > /Jacob
> >
> > On 1/29/06, Jacob Ilsø Christensen <jacobilsoe at gmail.com> wrote:
> >
> >
> >         On 1/29/06, Lluis Sanchez <lluis at ximian.com> wrote:
> >                 El sáb, 28-01-2006 a las 18:15 +0100, Jacob Ilsø
> >                 Christensen escribió:
> >                 > Hi.
> >                 >
> >                 > In current MonoDevelop hitting F1 will always show
> >                 help for the type
> >                 > of the item the cursor is at instead of showing help
> >                 for the item
> >                 > itself. I have begun working on a patch to make sure
> >                 that the correct
> >                 > help will always be shown. I have attached some
> >                 preliminary work and
> >                 > would like some comments as to whether this is the
> >                 way to go.
> >                 >
> >                 > A few things:
> >                 >
> >                 > I have made it the responsibility of the
> >                 MonodocService to translate
> >                 > ILanguageItems into a relevant monodoc "help url".
> >                 For this I needed
> >                 > to add a reference from the
> >                 MonoDevelop.Documentation assembly to the
> >                 > MonoDevelop.Projects assemby. Is this reference ok?
> >
> >                 I think that the approach is good, but the problem is
> >                 that
> >                 MonoDevelop.Projects already has a reference to
> >                 MonoDevelop.Documentation, and we can't add a circular
> >                 reference.
> >
> >         Ahh, didn't see that.
> >
> >
> >                 I propose the following solution:
> >                       * Add in MonoDevelop.Projects a new interface
> >                 named
> >                         IDocumentationService, which defines the same
> >                 methods as in
> >                         MonodocService.
> >                       * Replace MonodocService by
> >                 IDocumentationService in
> >                         MonoDevelop.Projects, and remove the reference
> >                 to
> >                         MonoDevelop.Documentation.
> >                       * In MonoDevelop.Documentation add a reference
> >                 to
> >                         MonoDevelop.Projects and make MonodocService
> >                 implement
> >                         IDocumentationService.
> >
> >                 This would fix the issue.
> >
> >         Yes, that will do it. Thanks.
> >
> >         /Jacob
> >
> >
> >                 Lluis.
> >
> >                 >
> >                 > There is in MonoDevelop currently some functionality
> >                 based on the
> >                 > MonodocResolver method which I will phase out when
> >                 the above patch
> >                 > stabilizes.
> >                 >
> >                 > Oh, and don't try to apply the patch since it won't
> >                 work due to the
> >                 > above reference issue. :-)
> >                 >
> >                 > Just wanted the opinion of someone else.
> >                 >
> >                 > Thanks,
> >                 > Jacob
> >                 > _______________________________________________
> >                 > Monodevelop-list mailing list
> >                 > Monodevelop-list at lists.ximian.com
> >                 >
> >
> http://lists.ximian.com/mailman/listinfo/monodevelop-list
> >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/monodevelop-list/attachments/20060130/2f2dabbb/attachment.html


More information about the Monodevelop-list mailing list