code folding in ssms?

  • Hello - What are some techniques you use for code folding in SSMS? For example, in Visual Studio you can add regions like this:

    #region Protected Methods

    //some code here

    #endregion

    Then a developer can use the context menu in VS to auto-expand and auto-collapse all regions on the page.

    For example, a new developer can choose to auto-collapse all regions of a class in order to understand the high-level structure of the class. I'm not aware of a similar way to do this in SSMS but I'm not a full-time SQL developer.

    I've read that SSMS Tool Pack provides code folding capabilities. I used SSMS Tool Pack on a previous project and I liked it a lot. Unfortunately, it's no longer free 🙁

    So do you know if code folding is available in SSMS through a free external plugin or maybe in the latest or upcoming version? I'm currently using SS2008 R2....

  • http://www.ssmstoolspack.com/Download

    http://www.ssmstoolspack.com/Licensing


    Licensing is only applicable to SSMS 2012 and higher versions.

    For previous SSMS versions the SSMS Tools Pack is still FREE.

    Lowell


    --help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!

  • I downloaded SSMS Tools Pack and the region functionality seems to be a bit quirky. For example, for 2 regions on top of each other, collapsing the top region seems to collapse the bottom region as part of it. Have you noticed this behavior? Also, if I just type:

    --#region test

    -- some sql

    --#endregion

    Then the region doesn't seem to get automatically "activated" - ie it doesn't collapse and expand. There seem to be other basic quirks as well. Have you found these regions to be buggy as well - a nice thought but not ready for prime time?

    Also, do you know if there is any momentum for SSMS to include built-in regions in an upcoming release? Seems like it would be really nice to have considering Visual Studio has had this functionality for over 10 years?

  • sqlguy-736318 (5/10/2013)


    I downloaded SSMS Tools Pack and the region functionality seems to be a bit quirky. For example, for 2 regions on top of each other, collapsing the top region seems to collapse the bottom region as part of it. Have you noticed this behavior? Also, if I just type:

    --#region test

    -- some sql

    --#endregion

    Then the region doesn't seem to get automatically "activated" - ie it doesn't collapse and expand. There seem to be other basic quirks as well. Have you found these regions to be buggy as well - a nice thought but not ready for prime time?

    Also, do you know if there is any momentum for SSMS to include built-in regions in an upcoming release? Seems like it would be really nice to have considering Visual Studio has had this functionality for over 10 years?

    Region handling - code folding - is present in SSMS 2012, but it is awful, sorry to say.

    What I would say is that if your code is long enough to warrant code folding, perhaps you should consider making it more modular - very long procedures can become a nightmare for support - just a thought 😛

    MM



    select geometry::STGeomFromWKB(0x0106000000020000000103000000010000000B0000001000000000000840000000000000003DD8CCCCCCCCCC0840000000000000003DD8CCCCCCCCCC08408014AE47E17AFC3F040000000000104000CDCCCCCCCCEC3F9C999999999913408014AE47E17AFC3F9C99999999991340000000000000003D0000000000001440000000000000003D000000000000144000000000000000400400000000001040000000000000F03F100000000000084000000000000000401000000000000840000000000000003D0103000000010000000B000000000000000000143D000000000000003D009E99999999B93F000000000000003D009E99999999B93F8014AE47E17AFC3F400000000000F03F00CDCCCCCCCCEC3FA06666666666FE3F8014AE47E17AFC3FA06666666666FE3F000000000000003D1800000000000040000000000000003D18000000000000400000000000000040400000000000F03F000000000000F03F000000000000143D0000000000000040000000000000143D000000000000003D, 0);

  • Forum Etiquette: How to post Reporting Services problems
  • [/url]
  • Forum Etiquette: How to post data/code on a forum to get the best help - by Jeff Moden
  • [/url]
  • How to Post Performance Problems - by Gail Shaw
  • [/url]

  • How is region handling awful in SSMS 2012?

    Is it quirky and inconsistent or does it have a poor overall design?

  • sqlguy-736318 (5/11/2013)


    How is region handling awful in SSMS 2012?

    Is it quirky and inconsistent or does it have a poor overall design?

    Both.

    It is single level and automatic, so you can't define your own regions, it tries to guess based on parsing the query window, which also leads to poor performance when editing, and it gets it's guesses badly wrong a lot of the time.

    Here is a simple example of how it gets it wrong:

    Thankfully SSMS 2012 is built on VS2010, so you can write your own addins quite easily, including a region handler. I had a go myself a while back using a sample on MSDN and it worked ok (similar to VS, using #region flags with titles and previews) but in the end I don't use it because I just don't need it/like it.

    MM



    select geometry::STGeomFromWKB(0x0106000000020000000103000000010000000B0000001000000000000840000000000000003DD8CCCCCCCCCC0840000000000000003DD8CCCCCCCCCC08408014AE47E17AFC3F040000000000104000CDCCCCCCCCEC3F9C999999999913408014AE47E17AFC3F9C99999999991340000000000000003D0000000000001440000000000000003D000000000000144000000000000000400400000000001040000000000000F03F100000000000084000000000000000401000000000000840000000000000003D0103000000010000000B000000000000000000143D000000000000003D009E99999999B93F000000000000003D009E99999999B93F8014AE47E17AFC3F400000000000F03F00CDCCCCCCCCEC3FA06666666666FE3F8014AE47E17AFC3FA06666666666FE3F000000000000003D1800000000000040000000000000003D18000000000000400000000000000040400000000000F03F000000000000F03F000000000000143D0000000000000040000000000000143D000000000000003D, 0);

  • Forum Etiquette: How to post Reporting Services problems
  • [/url]
  • Forum Etiquette: How to post data/code on a forum to get the best help - by Jeff Moden
  • [/url]
  • How to Post Performance Problems - by Gail Shaw
  • [/url]

  • yes - the code folding in that screenshot appears to do more harm than good.

    However, you mentioned a plugin could be written to use regions in a way that's more similar to the ones implemented in VS2010.

    You also mentioned that there was some existing code floating around for this implementation.

    Is there some kind of codeproject page, etc, with a working plugin and code that I can download and tweak for my own use?

  • sqlguy-736318 (5/15/2013)


    yes - the code folding in that screenshot appears to do more harm than good.

    However, you mentioned a plugin could be written to use regions in a way that's more similar to the ones implemented in VS2010.

    You also mentioned that there was some existing code floating around for this implementation.

    Is there some kind of codeproject page, etc, with a working plugin and code that I can download and tweak for my own use?

    I don't know about a full project you could use, but this is the page I followed when I tried it - however I am pretty sure this will only work with SSMS 2012 because it is based on VS2010, whereas SSMS 2008 is based on VS 2008 and I don't think that had MEF...

    http://msdn.microsoft.com/en-us/library/vstudio/ee197665(v=vs.100).aspx

    If you do try it yourself, make sure you put the region handling code in a separate thread and be prepared to handle that code being called a lot when editing...you may want to delay activation of your code and/or kill an "in progress" parsing run in order to start again.

    MM



    select geometry::STGeomFromWKB(0x0106000000020000000103000000010000000B0000001000000000000840000000000000003DD8CCCCCCCCCC0840000000000000003DD8CCCCCCCCCC08408014AE47E17AFC3F040000000000104000CDCCCCCCCCEC3F9C999999999913408014AE47E17AFC3F9C99999999991340000000000000003D0000000000001440000000000000003D000000000000144000000000000000400400000000001040000000000000F03F100000000000084000000000000000401000000000000840000000000000003D0103000000010000000B000000000000000000143D000000000000003D009E99999999B93F000000000000003D009E99999999B93F8014AE47E17AFC3F400000000000F03F00CDCCCCCCCCEC3FA06666666666FE3F8014AE47E17AFC3FA06666666666FE3F000000000000003D1800000000000040000000000000003D18000000000000400000000000000040400000000000F03F000000000000F03F000000000000143D0000000000000040000000000000143D000000000000003D, 0);

  • Forum Etiquette: How to post Reporting Services problems
  • [/url]
  • Forum Etiquette: How to post data/code on a forum to get the best help - by Jeff Moden
  • [/url]
  • How to Post Performance Problems - by Gail Shaw
  • [/url]

  • SSMSBoost is another free add-in for SSMS and we have recently added support for Regions syntax:

    --#region [Optional Name]

    --#endregion

    It has also an option to automatically "recognize" regions when opening scripts.

    Add-in works with SSMS 2008/R2/2012. 2014 support is coming with next version.

  • This was removed by the editor as SPAM

  • Viewing 10 posts - 1 through 9 (of 9 total)

    You must be logged in to reply to this topic. Login to reply