Release notes 0.10.0

Change history

This release mostly updated the CSharp resolver to resolve references. Hyperlinks now works for method references, with overload resolution, in most cases. Also added CSharpTypeHierarchyView, which however is mostly untested.

Note that these features require projects with the sf.blacksun.csharp.model.csharpnature to work properly since they depends on the build paths setttings. Obviously, the source code for the libraries (eg. the corlib) need to be indexed in order for the resolver to resolve references to them. This can be done by setting up a CSharp project for the libraries. The indexer and resolver currently only works for source code, indexing and resolving to binary libraries are not yet supported.

While the csharp resolver starts being usable/useful, be warned that it is still in early stage, lots of code are quite sloppy and lots features are not yet completed.

NOTE: The csharp indexer database schema is changed, so any old index databases need to be regenerated. Also since the plugins has configuration changes, start with --clean option once or at least disable the black-sun plugins, restart, enable the plugins again and restart to make sure old configuration data are flushed. In case of any doubt, try starting from a clean workspace (ie. with .metadata directory).





  • NEW - Added CSharpTypeHierarchyView.


  • NEW - Hyperlinks now works, most of the time, for method references and generic types. There are also massive refactoring and update of the csharp resolver in the llk-csharp-model project. See the release notes for llk-csharp-model in the LLK project here for details. Here is an abstract for your convenient:
    • NEW - There has been lots of refactoring and update to the CSharp resolver and related code in the related projects. It now resolve method references properly, most of the time.
    • NEW - Added format options to add space before parameters and arguments.
    • NEW - Added format options for whether to break before open brace in accessors, property and indexer delarations.
    • CHANGE - Method signature now get a space before '('.
    • CHANGE - The format option defaults are changed.
    • CHANGE - Now use '+' instead of '/' as inner type signature separator.
    • CHANGE - Index database schema is changed.
    • FIXED - Problem with formatting of indexer declaration.
    • FIXED - Updated unicode character set for IdentifierStart, IdentifierPart and SPACES in CSharpLexer according to C# 2.0 spec..
    • FIXED - Ambiguity resolution between type arguments and relational operation as described in C# 2.0 spec. 9.2.3.
    • FIXED - Ambigurity resolution between CastExpression and ParenthesizedExpression.
    • FIXED - CSharpLexer now allow unicode escaped sequences as IdentifierStart and IdentifierPart according to C# 2.0 spec.
    • FIXED - CSharp formatter to allow for spaces between '#' and preprocessor directives.
    • TODO - Many less used features, eg. partial types, attributes, delegate overload resolution, visibility resolution, user defined conversions, operator overloading, type inference ... etc., just to name a few, are not yet properly handled in the resolver.
  • NEW - Added OpenTypeHierarchyAction which opens a CSharpTypeHierarchyView.
  • NEW - CSharpEditor outline page now has items for namespace imports.
  • CHANGE - CSharp resolver is now always enabled, the enable/disable preference is removed.
  • FIXED - Local references and target locations are now tracked and remain valid during minor editing and before model is recreated. The code model is not recreated on editing due to efficiency constraint. To force recreation of the code model, use the refresh action in the outline page, the format action or save.

eclipse.builder and eclipse.builder.fireant

  • NEW - FireantBase now define -DECLIPSE_HOME=<eclipse-install-dir> when invoking fireant builders. WorkspaceBase in the fireant-optional project now try the ECLIPSE_HOME system property if the ECLIPSE_HOME environment variable is not defined or not pointing to a valid directory.
  • CHANGE - FireantProjectBuilder and IncrementalFireantProjectBuilder now assume builder class, if not specified in the .project builder spec., is the outer class of the specified target class. Thus the builder key is now optional.


  • FIXED - Format action now check that marker exists before trying to delete format markers, to avoid triggering workspace delta uneccessarily.


  • FIXED - Hyperlink for treeparser rule now works even if the treeparser grammar do not generate AST, provided the treeparser rule specify (implicitly or explicitly) a node descriptor.


  • NEW - CSSEditor finally get an outline page.






  • FIXED - JDT editor history action coolbar not appear even if enabled.


  • Added CLIOptions class which is a wrapper around CLIUtil to further abstract command line processing.


See change history for the fireant project here for details.


See change history for llk-share, llk-share-formatter and llk-csharp-model, ... etc. from the LLK project, see LLK v0.7.0 project release notes here for details.

Requirement to run

  • This release is developed with Eclipse 3.2. It is also tested briefly with Eclipse 3.1.2 and Eclipse 3.2.1.
  • See also release notes for v0.9.1 for other dependency.

Running the binary

  • See also release note for v0.9.1 for details.

Compiling the source

  • See also release note for v0.9.1 for details.