Black-sun

Release notes 0.9.1

Change history

This is an update release for Eclipse 3.2 and fixed a few critical bugs.

There are some major refactoring under the hook, eg. in the blacksun.csharp.model and the codedom and lk-csharp-model projects in LLK for resolving references in csharp editor. However, they are mostly work in progress. There is a preference option to enable the experimental resolver in the CSharp Indexer preference page. When enabled, hyperlink to local types and variables may work. However, methods and many others, are not yet properly resolved yet. It is still in very early, sloppy, messy and experimental stage.

General

  • CHANGE - This release require (and is bundled with) gnu.getopt-1.0.10 from jpackage instead of the previous getopt-1.0.9.jar.
  • FIXED - When there is an exception, PluginLogger used to log only to the error log (which can display the stack trace). Now it also create marker for the log event.
  • FIXED - Worked around problem with binary compatibility between 3.1.x and 3.2. Blacksun v0.9.1 binary now works with both Eclipse 3.1.x and 3.2.

blacksun.eclipse.model

  • CHANGE - Refactored index store interfaces to codedom project.
  • CHANGE - IIndexStore.getTypeItemProxies(), getMethodItemProxies() and getFieldItemProxies() methods now takes an wildcard argument to limit the result set.
  • CHANGE - getTypeItemId(String nspace, String name, Long indexid, Collection<Long> ret) and getTypeItems(String nspace, String name, Long indexid, Collection<TypeItem> ret), ... etc now allow nspace, name and indexid to be null. When null, it indicates that the condition should be ignored.

blacksun.csharp.model

  • FIXED - Ignore removing of non-model projects when generating model delta.

blacksun.csharp.ui

  • CHANGE - OpenTypeAction, OpenMethodAction and OpenFieldAction now use selection from active editor as type, method or field name to limit the search scope. The reduced result set speeds up method or field lookup a lot.
  • NEW - CSharp build path property page now has a project reference tab. It limit the csharp reference resolver search scope to only referenced projects.

eclipse.editors

  • FIXED - Now use llk-csharp-model.jar from LLK v.0.6.1 which fixed a few formatter bugs.
  • CHANGE - CustomTextEditor now call createModel(false) on editorSaved().

csharp-editor

  • CHANGE - OutlinePage now shows method parameters and use different icons for interface, class, struct and enum.
  • NEW - When the experimental resolver is enabled, hyperlink to local types and variables may work.

eclipse.builder

  • NEW - black-sun eclipse.builder project now has an IncrementalFireantProjectBuilder builder that same as the FireantProjectBuilder except that it is invoked with information about the resource delta when it is an incremental build. The delta information are passed as arguments to the FireantBuilder:
    • --incremental - If specified, there are delta information. Otherwise builder should perform a full build.
    • --added <file>@ - Full absolute path of files added. This option is repeated multiple times if there are multiple files added. CLIUtil should always return a List<String> for the array options.
    • --removed <file>@ - Full absolute path of files removed.
    • --changed <file>@ - Full absolute path of files that are modified.
    Make sure the IncrementalFireantBuilder.main() accept the above command line options. Example, for CLIUtil, add the following to the option spec.:
    "incremental | added@ | removed@ | changed@"
    
    To use the incremental builder from .project file, simply specify sf.blacksun.eclipse.builder.IncrementalFireantProjectBuilder instead of the sf.blacksun.eclipse.builder.FireantProjectBuilder.
  • FIXED - FireantProjectBuilder now run synchronously and refresh target project (unless suppressed by norefresh option) before return.

eclipse.jdt

  • Now that Eclipse has builtin editor history that works in quite similar fashion, the JDT addon editor history is going to be retired soon.
  • NEW - Added preference option to limit max. number of elements that RegexFind action can load.
  • FIXED - Problem that editor history contribution items has null ID.

eclipse.editors

  • FIXED - CustomEditor now get current line highlight, again :).
  • QuoteAction now recognize quote pairs /*, */ and /**, */.
  • QuoteAction now allow trailing spaces and prefix the end quote with matching spaces. It also allow to use Java String escape sequences (eg. "\t" for tab character).
  • UnquoteAction now also works when there is no active selection if a start quote is found at the current caret location. It search forward for the end quote and take into account nested quotes. Example: (()a) becomes ()a.

LLKEditor

  • NEW - LLKEditor now get hyperlinks which works as GotoAction on references and OpenTypeAction on parser and treeparser rule definitions.

CSSEditor

XML11Editor

  • FIXED - Problem that indent on newline do not indent correctly if line start inside a tag.

HTML4Editor

  • FIXED - Problem that indent on newline do not indent correctly if line start inside a tag.

XHtml10Editor

  • FIXED - Problem that indent on newline do not indent correctly if line start inside a tag.

FixedFontEditor

util

  • FIXED - TextUtil.lastIndexOf() incremented index from end-1 instead of decrement.

fireant

See change history for the fireant project here for details.

llk

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

Requirement to run

  • This release is developed on JDK 1.5.0 and Eclispe 3.2/Linux. It is also briefly tested and should works in Eclipse 3.1.2 and Windows. This release require gnu.getopt-1.0.10 from jpackage instead of the previous getopt 1.0.9.jar.
  • See also release notes for v0.9.0 for other dependency.

Running the binary

  • Make sure environment variables JAVA_HOME, ECLIPSE_HOME and ECLIPSE_WORKSPACE are set to proper values before starting eclipse. ECLIPSE_HOME should point to the eclipse installation directory and ECLIPSE_WORKSPACE should point to the workspace directory.
  • See also release note for v0.9.0 for details.

Compiling the source

  • Make sure environment variables JAVA_HOME, ECLIPSE_HOME and ECLIPSE_WORKSPACE are set to proper values before starting eclipse. ECLIPSE_HOME should point to the eclipse installation directory and ECLIPSE_WORKSPACE should point to the workspace directory.
  • See also release note for v0.9.0 for details.