SharpDevelop Community

Get your problems solved!
Welcome to SharpDevelop Community Sign in | Join | Help
in Search

Christoph Wille

January 2014 - Posts

  • What's New in SD5: Richtext XML DocumentationTooltips

    The best way to get started is to look at a screenshot:

    Please note that tooltips are no longer plain text but are rich-text formatted including clickable links for <see cref="..."> elements. Those links today take you to the definition of the respective element. But for framework assemblies (for which XML docs are locally installed), we consider changing that to XmlDoc: Links should open MSDN documentation or go to definition. Let us know in the comments to this blog post if you think that this is not a good idea, and why instead you'd like to go to the decompiled source.


  • What's New in SD5: Enhanced Scrollbar

    This one is a visual enhancement - compiler errors, breakpoints, and 'code issues' are displayed in the editor's scroll bar:

    Please note that the entire length of the scrollbar is used to display the relative positions of the respective elements. For example, in this screenshot I hovered with the mouse over the inspection (blue triangle) to see the information, clicking will take you to the position in the source file. The enhanced scrollbar also displays the position of the compiler error (red triangle) as well as the breakpoint (red circle)

    Posted Jan 28 2014, 06:05 PM by ChristophWille with no comments
    Filed under:
  • What's New in SD5: Code Inspections

    SharpDevelop 5 comes with background detection of almost 200 'code issues' that go above and beyond what the C# compiler reports as warnings. For example, redundant using declarations, calls to virtual methods from constructors, or the missing StringComparison argument in culture-aware string operations (e.g. string.IndexOf). Many issues come with automatic fixes in the context action menu (Ctrl+T).

    To see which inspections are available, go to Tools / Options / Coding / C# / Code Inspections:

    As you can see, various severity levels are available - issues that lead to compiler errors are flagged as errors here too, softening to suggestion or hint when it is considered bad practice.

    For example, if you have an empty constructor, you are notified of the issue and can fix it:

    Take a few minutes to browse through the code issues to learn what SharpDevelop can do for you automatically.

  • What's New in SD5: Ctrl+F7 for Adding Watch Expressions

    Ok, on to a new feature in the debugger. Adding watch expressions has become extremely easy in SharpDevelop 5. Simply select an expression, press Ctrl+F7

    and it will be added to the Watch window:

    As we are not debugging (yet), SharpDevelop has no idea about the value of the expression. So let's put a breakpoint the line above the if statement and start the debugger:

    As you can see, the expressions are evaluated although we didn't yet hit the if statement. This feature is really useful if you are looking at complex if statements or otherwise involved algorithmic expressions.

    But - be cautious! Take the following example:

    When you hit the breakpoint the first time, there will be "Guess what..." on the console already - because the expression is being evaluated by the debugger too, not only your code!

    Posted Jan 27 2014, 01:28 PM by ChristophWille with no comments
    Filed under:
  • What's New in SD5: Context Actions

    In the last post, I showed off Insert with cursor. In this post we are going to look a bit more at those new productivity helpers, the Context Actions. You can find a list of those under Tools / Options / Coding / C# / Context Actions, where you can selectively disable ones:

    We are going to take a look at "Extract Method" with the following sample:

    You simply select an expression, and you get the options to either assign it to a local variable or to extract it as a method. I chose Extract Method, and then you get the now familiar blue line, which let's you select the insert location of the new method (press Enter to create the method at the selected location).

    Obviously, NewMethod isn't exactly the name I wanted - conveniently, SharpDevelop kept the method name selected, and I press Ctrl+R to open the Rename dialog and give it an appropriate name. Done!

    Posted Jan 27 2014, 07:48 AM by ChristophWille with no comments
    Filed under:
  • What's New in SD5: Insert With Cursor

    The "Insert with cursor" feature is one of the new features and works eg with Extract Method or Implement Interface. Let's look at this in action - assume you have a value class like this and want to add the IComparable interface to it:

    Either clicking on the pencil symbol or pressing Ctrl+T will open the context menu for actions that can be performed:

    Once you select this option, a "blue line" (Insert with cursor) will appear together with usage information in the lower-right corner of the text editor window (I shrunk the window down to get everything into one single screenshot):

    I followed the instructions and used Cursor down to go below FirstName property and pressed Enter - et voila, the interface definition is right where I wanted it to be:

    Now that is quite a productivity feature!

    Posted Jan 26 2014, 07:41 PM by ChristophWille with no comments
    Filed under:
  • SharpDevelop 5 Beta 1 Available

    Finally.(tl;dr Download)

    It has been (too) long in the making, but our major rearchitecting of SharpDevelop is close to being done, with only a few functional areas not in this Beta release:

    • EnvDTE.FileCodeModel is missing, thus our custom NuGet packages will be broken (T4MVC, MVCScaffolding and EF)
    • Code Quality Analysis and SharpDevelop Reports are missing (due to a rewrite of SDR)

    Please note that Beta 2 is not too far off, and these will be in Beta 2.

    As pointed out in the blog post SharpDevelop 5 C# Tech Preview, we are still shipping with C# only in SharpDevelop 5 – and this will most likely remain true for RTM too. (VB.NET will compile, but it won’t have code completion nor refactoring) SharpDevelop 5 installs in parallel to older versions, and if you have the patience: give it a dry run with a copy of an existing project (at least backup and/or use source control before you let a beta IDE touch your source code).

    For further information on what’s new, please consult this list of select blog posts from the team members (I'll be doing a few "What's New" blog posts in the coming days, because obviously these are only a few big-ticket items - check back!):

    With regards to the last bullet item, I'd like to introduce you to our "xcopyable installation" that you can find now as a third download option: as with ILSpy, you can now simply unpack a zip file and are up and running debugging IL assemblies (after all, we yanked debugging from ILSpy - so we thought it'd be nice to add a light-weight installation for SharpDevelop to get the debugging feature back).

  • License Change for SharpDevelop 5

    With commit hash 1300bac39c (corresponding to build number, our Beta 1 release) we have switched the license for SharpDevelop from LGPL to MIT. (SharpDevelop 4.x and older remain LGPL licensed)

    This means one very important thing: You can use our source code in your projects (not only the assemblies).

    As a user of SharpDevelop, nothing really changes. You still can build applications of any license flavor.

    Changes for Contributors

    If you want to contribute to SharpDevelop, there are a few things to note:

    • For SharpDevelop 4.x, we still require the JCA (otherwise we couldn’t merge from 4.x to 5).
    • For SharpDevelop 5, you can sign the JCA or add the following statement to your pull request:

      I certify that I own, and have sufficient rights to contribute, all source code and related material intended to be compiled or integrated with the source code for the #develop open source product (the "Contribution"). My Contribution is licensed under the MIT License.

      Unless we have a JCA on file or this statement is in your pull request, we cannot accept it.


  • Forum Change: New Users Are Moderated

    Given the all-time high of forum spam we are encountering, we decided to switch new user's to being moderated. Thus, your initial post will show up only after it has been reviewed by one of the team members assigned the moderator role. Once your post is verified, your account's moderation requirement will be lifted.

    Our team does its best to release your posts in a timely manner, but given that we do not span all time zones, it sometimes might take a few hours for your post to be approved. Thank you for your understanding.

Powered by Community Server (Commercial Edition), by Telligent Systems
Don't contact us via this ( email address.