Posted
3 days
ago
by
DanielGrunwald
Last Saturday, we migrated our self-hosted Subversion repository to git and started using github for hosting.
As part of this change, the SharpDevelop repository was split up in three parts:
SharpDevelop - main
... [More]
repository
SharpDevelop-Servers - build server configuration, server-side code for UDC, etc.
SharpDevelop-Vendor - what used to be the vendor branches in SVN: source code archives of libraries which SharpDevelop uses in binary form
The SharpZipLib repository was migrated as well.
You only need the main repository to compile and extend the SharpDevelop code.
As part of this change, I also added a simple Git AddIn to SharpDevelop 4.0. It allows invoking the TortoiseGit commit dialog from the SharpDevelop project browser.
With the move from Subversion to git, we also had to change the way we handle version numbers. Git allows distributed development and encourages branching, so it impossible to assign a simple increasing number to commits.
So instead, we now calculate revision numbers based on the history: we count the number of commits between a known starting point and the current version. At least for the builds produced by our build server, this gives the illusion of an increasing revision number. Moreover, anyone checking out the same commit from git will calculate the same revision number. However, the numbers are not unique for builds created on different branches.
The counting is done using: git rev-list 6eceaaafce5ed9b45d19a1645b1b012675aac996..HEAD | wc -l (the hash is the known starting commit)
In fact, the numbers are now counting independently on each branch, synchronizing only when branches are merged into each other. For this reason, SharpDevelop now stores additional information about the commit it was built from:
Version number
Branch name (for feature branches)
Short commit hash
The same information is shown in the version info inside crash reports. Note that the branch name is included only for feature branches - the "master" branch and branches starting with a digit are considered version branches and will not be shown. The feature branch name will also be shown on the SharpDevelop splash screen.
For the purpose of looking up "which build corresponds to this commit" (or vice versa), we made our build server push this information into the git repository. For example, if you take a look at the commit b6f4ade7, you will see a "git note" at the end of the github page which says "Build 4.0.0.6500 on master successful". [Less]
Posted
26 days
ago
by
MattWard
SharpDevelop 4.0 now includes templates to create WPF and
Silverlight applications for IronRuby and IronPython.
The WPF template will create a basic WPF application that loads
its main window from disk by using
... [More]
XamlReader.Load and then displays it.
The Silverlight template will create a basic Silverlight project
with an IronPython or IronRuby script file and a web page. The web
page (index.html) will open up the IronPython or IronRuby console
in the browser and run the script. The script file does not do much
apart from change the text in the browser.
On running the Silverlight project SharpDevelop will launch
Chiron and allow you to browse to the project's web page.
Chiron is an application that can be used as a personal web server
to host your silverlight application. It can also be used to
package up your Silverlight application ready for deployment.
All the existing IronPython project templates have also changed.
When a new IronPython project is run, by selecting the menu item
Debug | Run, it will now run the IronPython console
(ipy.exe) instead of starting the project's executable. This
change makes IronPython projects consistent with IronRuby projects.
It also means you can debug a new IronPython application straight
away without having to change the project options.
To switch back to the previous behaviour, and launch the
project's executable instead of ipy.exe, change the Start
Action in the project options to Start project. Note
that debugging the project's executable is not supported.
The screenshot below shows the project options for a new
IronPython project.
For more information on writing Silverlight applications in
IronPython and IronRuby see the following web sites.
http://ironpython.net/ironpython/browser/
http://ironruby.net/Browser
[Less]
Posted
about 1 month
ago
by
martinkonicek
As we are releasing Beta2 today, here is an overview of new features you can already take advantage of:
1. Context actions
These are useful actions in the code editor which SharpDevelop offers based on
... [More]
context.
Let's say I want my class to implement an interface. A pencil icon appears telling me that there is some action available:
Let's click the pencil icon, or simply press Ctrl+T:
Let's just click it or press Enter:
And we get the expected result.
Another example of context action is introduce new method. When I type a name of unknown method:
Context action is offered (press Ctrl+T):
Selecting it again produces the expected result:
These features were previously available in editor context menu. They are being moved from context menu to context popup. The reason is that it is much faster to access them this way.
The Context Actions offered in the popup are extensible, so you can write addins to add your own. I wil write a blogpost about this.
2. Menu restructuring and shorcuts
The context menus in code editor had unnecessary submenus. They now look like this:
The actions for the clicked symbol are on the top level. Also many items got keyboard shortcuts (these shortcuts are still subject to change), so that you can trigger e.g. Find References by one key press. Other useful new shortuts are F5 to Run/Continue debugging and Shift+F5 to End debugging.
Now, Let's see what the new item "Find overrides" in the menu does:
3. Find overrides
Many times, you have code working with interfaces. The IInvestor in the previous screenshot might have only 1 or 2 implementations and you know which one is going to be returned from Service.GetInvestor(). If you want to see the implementation of the DecideWhatToBuy method, just press F6 for Find overrides.
That's it, just press Enter. Note that before this feature it was quite annoying as Go to definition would just take you to the empty definition of the method in the interface.
4. New code completion
I already blogged about this, check out this blog post.
5. Highlight symbol
I already blogged about this, check out this blog post. [Less]
Posted
about 1 month
ago
by
Peter Forstmeier
As you can read in another blog post, Philipp Maihart wrote the new Data addin for SharpDevelop 4.0. Using this addin, I can remove the very old SharpQuery addin. Result: we have no ComInterop reference anymore. Currently only SQLServer is supported
... [More]
, but you are invited to write providers for other databases (template in the blog of Philipp).
Features I am working on at the moment:
Started
Adjust Designer to create Grouped Reports
Grouping
Better formatting of expression results.
Pending
Filtering [Less]
Posted
about 1 month
ago
by
siegi44
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
... [More]
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.
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. [Less]