In my first post on VB .NET I presented what features I wanted to implement for VB .NET. Now it is time to sum up, what I managed to achieve. In this post I will keep text short, but add a lot of screenshots.
1. Context sensitive code completion
The code completion list will now pop up as soon as you start typing a word. It will not pop up, if you want to enter a new identifier. That is after: Dim, Public, Private, Protected, Friend, Partial, Const, Class, Function, Sub, ... and so on.
... and statements:
2. Hidden feature: Question mark
A hidden feature implemented in SharpDevelop 2 is "As ?". Basically it works like this:
Enter a new local variable and instead of the type use ?. If you use an initializer, SharpDevelop will automatically resolve the type after pressing <Enter>:
To make this feature more visible, I've added a special item in code completion:
3. Type Inference
SharpDevelop will now respect project options and option statements on the file level. If you set Infer On (this is the default for new projects), SharpDevelop will try to infer the type of a variable:
If you disable Type Inference, SharpDevelop will resolve the type to Object:
4. Highlighting of current parameter in code completion tooltips
This is a very new feature and not very well tested so far. It basically highlights the currently entered parameter in the tooltip:
Known bugs / incomplete features
Please note that there are some things that don't work properly right now:
- Block highlighting only works backwards, e. g. in End If/End Sub
- No XML code completion
- Indentation does not work with XML literals
- End-Tag insertion does not respect automatic properties
I will try to implement some of these before the end of GSoC, but I cannot promise anything.
Please try out the new features and report bugs.