Products, the Universe and Everything

The Riverblade Developer's Blog

Beth demonstrating Visual Lint at the ACCU Conference 2008  Anna taking part in a discussion panel at the European Software Conference 2007 

Welcome to our developer's blog. We hope that this forum provides an insight into us, our products and how we develop them. Please feel free to write to us if you have anything to add to any of the posts here.

Current Entries | Archives |


ResOrg 2.0.3.18 has been released
Tuesday, August 21, 2012

The following changes are included in this build:

  • When a symbol which occurs multiple times in a Visual Studio 2010 ribbon resource is renumbered, all instances of the symbol will now be renumbered rather than just the first one.
     
  • Added basic support for Visual Studio 2012. Note that this version of ResOrg does not include support for the Visual Studio 2012 dark and light themes, and instead uses the default operating system theme. Direct support for Visual Studio 2012 themes is however under development - please see Visual Studio 2012 theme support for details.

Posted by Anna at 13:29 | Get Link

 

Visual Lint 3.5.6.184 has been released

The following changes are included in this build:

  • Added basic support for Visual Studio 2012. Note that this version of Visual Lint does not include support for the Visual Studio 2012 dark and light themes, and instead uses the default operating system theme. Direct support for Visual Studio 2012 themes is however under development – please see Visual Studio 2012 theme support for details.
     
  • Added support for Green Hills Eclipse projects.
     
  • Fixed a bug in the handling of "excluded from build" properties in Eclipse/CDT (.cproject) project files.
     
  • Fixed a bug in VisualLintConsole which affected the writing of updated analysis reports after analysis tasks had completed.
     
  • VisualLintConsole will now report an error if an analysis run is attempted before the appropriate analysis tool has been configured.

Posted by Anna at 11:04 | Get Link

 

Visual Studio 2012 theme support
Thursday, Aug 2, 2012

One of the unexpected (and I would suggest from the comments, unwelcome) changes sprung on developers in the Visual Studio 2012 Beta back in February was the Metroification of the development environment.

However, eye candy (and eyesores!) come and go, and within that change is a more fundamental one - direct support for themes within the Visual Studio IDE. The Visual Studio 2012 Beta and RC include two themes - light (i.e. grey) and dark. Whilst the latter has an obvious appeal within the developer community (we all know devs who prefer green text on a black background) the former hasn't exactly been welcomed, to say the least.

Personally, rather than develop custom theme support for each tool individually I wish they'd just add a "dark" theme to Windows instead and respect the theme settings of the operating system. Obviously my view just isn't "cool" enough for the Visual Studio UX team, but I digress...

Although a campaign to retain the existing Visual Studio 2010 theme has been running on the UserVoice site since the beta arrived (see Add some color to Visual Studio 11 and Leave VS 2010 theme (and the theme editor extension) as an option) Microsoft have not indicated what - if any - changes will be made to the Visual Studio 2012 themes at RTM.

Our working assumption therefore has to be that the themes in the RTM will be broadly comparable with those in the RC (i.e. light and dark). We will find out whether that assumption is correct later this month, of course.

With that in mind, we have been working on theme support in the development branch for Visual Lint for some time now, and things are now beginning to come together:

Visual Lint running with the Visual Studio 2012 RC dark theme

Visual Lint running with the Visual Studio 2012 RC light theme

As Visual Lint uses standard Win32 controls for most of the UI (which for the most part do not support custom text/background colours), to get this far we have had to write custom painted WTL checkbox, radio button, combobox and header controls in addition to the usual WM_CTLCOLORxxxx voodoo. Other UI elements such as menus, scrollbars, command buttons etc. yet haven't yet been looked at, but hopefully will be in due course (there seems to be some indication in the MSDN blogs that scollbars will be auto-themed by the RTM, but we'll see).

Within the displays themselves, the text and background colours of each item are checked for adequate contrast, and the text colour adjusted (by tweaking the luminance) automatically if need be.

Although the Visual Studio interfaces expose the colours used in the active theme (via IVsUIShell2::GetVSSysColorEx() ), they do not seem to provide any way of detecting if the theme has changed (or indeed, finding out which theme is actually running at the time). Our workaround for this is simply to reload the colour scheme whenever the "Tools|Options" command has been executed. We don't really care which theme is running after all - just what colour values it uses, and where.

Indeed, one of the first things we did while working on this was to dump all of the colour values used by the VS2012 RC light & dark themes, as well as the default VS2010 theme, into spreadsheets so we could use them for testing without firing up a host instance of the IDE (developing add-ins may be fun, but it is also much slower than working on your own executable).

Finally, it is a little known fact that the Visual Studio IDE has had colour scheme support internally for some time, so the scheme we have designed will also work with Visual Studio 2010 if you have the theme editor extension installed:

Visual Lint running with Visual Studio 2010 with a modified 'Expression' theme

Needless to say, all of this is proving to be a major task, and it has therefore diverted significant resources from other things we should really have been working on this summer. As a consolation, the theme code we're developing is generic (albeit only on Windows), so can also be used with Eclipse 4.0 (I note that themes are coming to that IDE as well) when the time comes.

Another obvious benefit is of course that there's potentially at least one new CodeProject article (want a themed XP button with a custom background colour? We know how to do it now) in all of this once the dust settles and the inevitable bugs have crawled away. It's about time I wrote a new one, anyway.

Once Visual Lint theme support is complete, we'll obviously also take a look at ResOrg. Beyond that, I think a new article is a foregone conclusion, once we've cleaned the code up a bit and built a good enough demo project...


Posted by Anna at 12:45 | Get Link

 

Visual Studio 2012 RTM release date announced

Well, it's official - Visual Studio 2012 has been released to manufacturing and the RTM build should become available to MSDN subscribers on 15th August:

...but: what's a virtual launch event, and (more importantly, for those who regularly attend such events) does it entail free stuff?

We've been working on support for the new IDE version in the Visual Lint development branch since February, and quite honestly with all of the IDE changes it's been like pulling teeth (a different sort of teeth from the bloated buggy ones we pulled while working with the VS2010 beta, but teeth regardless).

Although there's no word yet on whether the RTM is any less grey than the RC (though the smart money says they're not listening, thankfully it doesn't look like the Beta anymore) it's a done deal either way, and as such we're stuck with it until the next fad (Metro++ ? Metro# ?) comes along.

Regardless of how the RTM ends up looking, we will be releasing Visual Lint 3.5 and ResOrg 2.0 builds compatible with it as soon as we can confirm that the RTM does not require any code changes over the VS2012 release candidate (which we have already tested against, obviously).

Visual Lint running within Visual Studio 2012 RC

Note that this version will not (yet) include support for Visual Studio 2012 themes - dropping that particular bombshell on us at beta in February was just too short notice to develop and test the control and framework changes necessary to do this in time for the RTM.

However, theme support is being actively worked on in our development branch (see http://pic.twitter.com/DfGoTeD3) and will come later (more on that in the next blog post, with a possible CodeProject article as a nice spin off).


Posted by Anna at 11:08 | Get Link