Visual Studio Developer Center > Visual Studio Forums > Visual Studio Extensibility > Missing member calls on IVsQueryEditQuerySave2 under Vs Isolated Shell
Ask a questionAsk a question
 

AnswerMissing member calls on IVsQueryEditQuerySave2 under Vs Isolated Shell

  • Thursday, October 29, 2009 9:53 PMnorbert.laszlo Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    I am developing a VS Isolated Shell based IDE which uses an MPFProj based custom project type. The IDE and the custom project type work together well.

    Now I want to add my custom scc provider to the system. I tried the Example.SccProvider SDK sample. When I run my IDE the Managed Source Control Sample Provider can be selected in the Tools/Options dialog, its custom tool window shows up when the sample scc provider is activated, scc menu items also displayed both in the main and in the context menu. Project items can add to scc control, check in and out, but there are several gaps in the scc operation:

    - Scc glyphs are displayed only on the solution and solution folder file nodes. There are no glyphs displayed on any other project nodes.
    - IVsQueryEditQuerySave2 interface members aren't called.
    - When a Managed Source Control Sample Provider associated project is re-opened in the IDE, the system cannot identify the Scc Provider.

    The following interfaces are called by the shell: IVsSccProvider, IVsSccManager2, IVsSolutionEvents, IVsSolutionEvents2, IVsTrackProjectDocumentsEvents2.

    If I try this Scc Provider sample running under the Visual Studio 2008 IDE (not under my isolated shell based IDE), then everything works well.

    Could it be possible that VS Scc management does not work very well under an Isolated Shell based IDE?

    I have found this issue:
    http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=422912

    Thanks,
    Norbert

Answers

  • Wednesday, November 04, 2009 8:54 AMNancy ShaoMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Hi Norbert,

    Sorry for the delay.

    As you found in our connect website, SVsQueryEditQuerySave does not work as expected in VS Shell project, this is a bug of the sample SCCI provider, and it will not be fixed in Visual Studio 2010. And in my opinion, VS SCC management does not work in Isolated Shell. So I would suggest you try another way.

    Best Regards,
    Nancy
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
  • Wednesday, November 04, 2009 5:18 PMFBNitro Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    It's nice to see my connect issue getting noticed. 

    If you only use custom editors and a specific SccProvider, then you can do what we did for those, which was basically to add a direct reference to the custom SccProvider and use the interfaces directly, rather than trying to get the service via SVsQueryEditQuerySave.  But if you use any of the build in editors (In my case the text editor and the project properties dialog) they won't auto-checkout the files when the user makes modifications. (thus my connect issue).

    In my editors, added the reference and called the following (VB):
    Dim queryEditQuerySave As IVsQueryEditQuerySave2 = CType(GetService(GetType(MySccProviderService)), IVsQueryEditQuerySave2)
    

    - Scc glyphs are displayed only on the solution and solution folder file nodes. There are no glyphs displayed on any other project nodes.
    I don't have the issue with glyphs, I'm not sure why you would be encountering this one.

    - When a Managed Source Control Sample Provider associated project is re-opened in the IDE, the system cannot identify the Scc Provider.
    In my case I only support a single specific Scc Provider and pretty much hard coded it, so I've avoided that issue.


    Nancy, "...this is a bug of the sample SCCI provider, ...".... I believe it's a bug in the Shell itself, not the sample.  The sample works fine in the experimental hive.

All Replies

  • Wednesday, November 04, 2009 8:54 AMNancy ShaoMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Hi Norbert,

    Sorry for the delay.

    As you found in our connect website, SVsQueryEditQuerySave does not work as expected in VS Shell project, this is a bug of the sample SCCI provider, and it will not be fixed in Visual Studio 2010. And in my opinion, VS SCC management does not work in Isolated Shell. So I would suggest you try another way.

    Best Regards,
    Nancy
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
  • Wednesday, November 04, 2009 5:18 PMFBNitro Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    It's nice to see my connect issue getting noticed. 

    If you only use custom editors and a specific SccProvider, then you can do what we did for those, which was basically to add a direct reference to the custom SccProvider and use the interfaces directly, rather than trying to get the service via SVsQueryEditQuerySave.  But if you use any of the build in editors (In my case the text editor and the project properties dialog) they won't auto-checkout the files when the user makes modifications. (thus my connect issue).

    In my editors, added the reference and called the following (VB):
    Dim queryEditQuerySave As IVsQueryEditQuerySave2 = CType(GetService(GetType(MySccProviderService)), IVsQueryEditQuerySave2)
    

    - Scc glyphs are displayed only on the solution and solution folder file nodes. There are no glyphs displayed on any other project nodes.
    I don't have the issue with glyphs, I'm not sure why you would be encountering this one.

    - When a Managed Source Control Sample Provider associated project is re-opened in the IDE, the system cannot identify the Scc Provider.
    In my case I only support a single specific Scc Provider and pretty much hard coded it, so I've avoided that issue.


    Nancy, "...this is a bug of the sample SCCI provider, ...".... I believe it's a bug in the Shell itself, not the sample.  The sample works fine in the experimental hive.

  • Tuesday, November 10, 2009 11:55 AMnorbert.laszlo Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Thank you for the replies,

    Since then, I have worked around scc glyphs and other problems, except the missing QEQS calls. Fortunately, I am also using custom editors only (or I can substitute some VS Shell shipped basic editors for my ones), so a work around may also be produced.

    Thanks for FBNitro's suggestion about how can it be carried out.

    I'am using "custom editors" based on the managed babilon language pack.

    Does somebody know any suitable point, event or interface inside the language pack which is suitable to manage QEQS interface calls and their result (edit cancelation, etc.)?

    About my glyph problem:

    I think this problem is only happen when you use an MPFProj based custom project type. In this scenario, the scc glyphs properly work (displayed, changed, etc) only on the solution contained nodes (solution node, solution items under soltion folders), but not work on any project item node. Nothing is displayed at the place of glyphs next to the project nodes. After, when you directly checks in or out only one project item, the associated glyph is immediately gets displayed or refreshed. If you check out the project file node (the root node of the project) or a project folder, then nothing happens with glyphs. It seems to be a refresh problem only.

    I tested the above glyph problem under the VS 2008 experimental hive too, but experienced the same problem as under my isolated shell. My glyph display problem can only be experienced with the custom project type, but not with other project types.

    My custom project type has been built upon the SDK example. Despite this, it's imaginable that my custom project implementation has some problem, however it's simple like a rod, and there are few points to put out of order somthing. :)

    I have worked around the above problem by some class inharitance and overrides in my MPFProj project implementation.

    Best regards,
    Norbert