Release notes 0.9.0

Change history (vs v0.8.0)

This release added the CSharp indexer and OpenTypeAction, OpenMethodAction, OpenFieldAction to the sf.blacksun.csharp feature. The goal is to provide basic source code navigation to bootstrap CSharp code development. It, in general, follows the footsteps of Eclipse JDT and borrowed most of the UI from Eclipse. The backend is, however, mostly rewritten. It currently only index source files and only lookup definitions (ie. does not resolve references yet). The indexer listen to resource deltas and update the indexes on resource changes automatically. Simply add the sf.blacksun.csharp.model.csharpnature to the .project file and setup the source folders in the project's CSharp Build Paths properties page and the indexer would comes in to work.

There are some significant additions to the fireant-optional project. See the fireant release notes and the source code for details.

There are significant incompatible changes in the util project CLIUtil class. It now require double dash for --longopt and allow multiple -short options eg. -aeiou. Please double check your command line options.

This version is developed under JDK 1.5.0, Eclipse 3.1.2 Linix/GTK but also tested on Eclipse 3.2M5a Linux/GTK. Unfortunately the plugin binary compiled against Eclipse 3.1.2 is not binary compatible with Eclipse 3.2M5a. Simply unpack the 0.9.0p1-3.2M5a patch over the 0.9.0 binary should fix it. The source code should works for both Eclipse versions. This version also get fixes for Windows/DOS compatibility. However, it is by no mean well tested. Please file bug reports if neccessary.


  • CHANGE - There are many small fixes for Windows/DOS compatibility.


  • NEW - Code model base.


  • NEW - Provide the csharp code model, csharp nature, indexer, ... etc. CSharp projects are identified by the csharp nature:
    All projects with the csharp nature is automatically indexed according to its build path which, for now, means its source folders.


  • NEW - This project provide the UI interfaces to the various wizards and actions (including the OpenTypeAction, OpenMethodAction and OpenFieldAction) to setup and access the CSharp model.


  • NEW - Added formatter options, as inhierited from llk-csharp-model:
    • compactStatementBlock - remove blank lines between statements.
    • compactCloseBrace - put multiple consecutive close braces on the same line.
  • NEW - CSharp editor now has hyperlink to open type definitions, use the usual CTRL-CLICK to open. For now, hyperlinks are available only at limited places.


  • NEW - Added MakeAction to invoke MakeBuilder from active editor. It use the active editor input as makefile and selected text in active editor as target.
  • NEW - Added Preference to specify the make binary executable path.
  • NEW - Added Preference to specify the extra Java VM arguments for FireantAction. An entry with vmargs as key in the .project <buildCommand> spec. can be used to specify extra vmargs for FireantProjectBuilder, eg:
  • FIXED - Problem with Eclispe 3.2 which checks for unsaved editor during background project build and popup anonying dialogs from time to time.

Jdt Addon

  • CHANGE - VersionLogAction and VersionStatusAction %name field is renamed to %filename.
  • CHANGE - VersionStatusAction hot keys from CTRL+F CTRL+V to CTRL+F CTRL+Z to avoid conflict with validate actions.
  • FIXED - VersionLogAction and VersionStatusAction that they do not format %rpath and %filename field correctly.
  • FIXED - VersionLogAction and VersionStatusAction now convert \n, \r, \t in for format string to the corresponding control characters.
  • FIXED - RegexReplaceAction now escape meta character '^' and '$'.
  • FIXED - MethodView NullPointerException due to missing AnnotationAction that has been removed.
  • FIXED - HistoryAction coolbar items started in the second row of the toolbar (for Eclipse 3.1.2).


  • NEW - Added SelectFont action to change the font of an individual CustomTextEditor instance. Unlike the preference setting, this only change the font of the active editor (unfortunately, it only works for editors derived from CustomTextEditor, which includes all Blacksun editors). This can be useful to switch editor between proportional and fixed font when required.
  • NEW - Refactored Quote and Unquote action in LLKEditor as global editor action for all AbstractTextEditor.
  • CHANGE - QuoteAction, AddTagAction now remember previous input.
  • FIXED - Problem that editor model not recreated after RevertToSaved action.


  • FIXED - LLKEditor format action not removing previous model problem markers.
  • CHANGE - Now works with LLK v0.6, see LLK release notes here for details.



  • CHANGE - XMLFormatter now would not put more than one element on the same line and only try to format leaf elements as oneliner.
  • CHANGE - XMLFormatter compact and non-compact mode now only differ in that compact mode wrap long text lines while non-compact mode keep long lines intact.


  • NEW - Added preference to suppress warning about XML style empty tags.



  • NEW - A basic text editor with preference setting for font, background color, ... etc. and default to use fixed fonts. As with all CustomTextEditor, font can be changed through the new Blacksun SelectFont action for each individual instance of the editor.


  • CHANGE- Moved Msg.getArgs() and related getopt stuffs to CLIUtil.getArgs() use a different option spec. format that allow option description in the spec. so that CLIUtil.sprintUsage() can print option with description.
  • CHANGE- CLIUtil.getArgs() now require long options to always be prefixed by -- to avoid confusion with multiple short options and allow multiple short options in single word (ie. -abc for -a -b -c). This affect all command line utilities in blacksun projects.
  • CHANGE- TextUtil.splitLines() and TextUtil.removeFirstLine() now ignore \ escaped CR and LF.
  • CHANGE - Refactored TextUtil.readFile() methods to FileUtil.asChars(), ... etc. methods.


See Fireant release notes here for details.


See also LLK v0.6 release notes here for details changes in LLK.


  • There is a problem with Eclipse 3.2RC1 which sometimes gets into busy wait loop (in a background thread) when there are terminated launches. Remove all the terminated launches would usually stop the loop. This do not happens with Eclipse 3.1.2 and Eclipse 3.2M5a. So be careful and not to get fried.
  • See also bug tracking in sourceforge project page.

Requirement to run

See release notes for v0.8.0 for other dependency.

Running the binary

See release note for v0.8.0 for details.

Compiling the source

  • Build and install is now easier than ever if you have the standard setup and directory structure as described in v0.8.0 release note. A shell script (fireant.bat for DOS) under the blacksun-fireant project can build and install the plugin without even starting Eclipse. Make sure the ECLIPSE_HOME and ECLIPSE_WORKSPACE environment variable is correct and double check the paths in the scripts. Then from the blacksun-fireant project directory, run (for Linux):
        bash Build
        bash Install
    or for Windows:
        fireant.bat Build
        fireant.bat Install
    After installation, start Eclipse and check the Help/Software Updates/Management Configuration dialog to make sure that the plugins are enabled properly. If this is an update to an old version of the plugins, it is recommended to disable the plugins, restart Eclipse and then reenable the black-sun and black-sun CSharp plugins to make sure that Eclipse do not keep any cached configuration from the old version.
  • This version has many fixes for Windows compatibility but it is by no means throughly tested. To build and run in Windows, setup environment variables JAVA_HOME, ECLIPSE_HOME and ECLIPSE_WORKSPACE to the proper JDK and Eclipse installation locations. Otherwise, it should be similar to the procedure in Linux. There are however, a few minor issues when working in Windows:
    • CSharp indexer print some verbose message to the console. Use eclipse.exe -consolelog option to see the console messages if neccessary.
    • Apparently, when install overwrite files that is being used by the builder, Windows bailout and fail. Just try again and it should install the rest fine (since files that got overwritten are not copied again). This is not a problem in Linux which seems to keep a copy of the overwritten files and keep on running.
See release notes for v0.8.0 for details build procedures.

NOTE: All web pages and documents are available in source distribution under blacksun.doc/doc/black-sun directory.

Status and plans