CAL
Eclipse Plug-in Release Notes
This document includes information about the CAL Eclipse
Plug-in. This is a set of plug-ins which together comprise an
IDE for CAL development within Eclipse. For instance, bundled
functionality includes CAL-specific Eclipse views, error
detection, and refactoring support.
"Using CAL with Eclipse" is the fundamental document that
describes how to install the CAL Eclipse Plug-in, and how to
use it to develop, run, and test new CAL modules. It is a PDF
included in the Open Quark Platform release.
1. What's new in the Quark Platform's CAL Eclipse
Plug-in:
version 1.7.1_0 (November 15, 2007)
- Compatibility update for Open Quark 1.7.1_0.
version 1.7.0_0 (October 26, 2007)
- Eclipse 3.3 is now required to use the plug-in.
- Generalized renaming support
- expanded to include local variables, type variables
and data cons field names
- new renaming algorithms address a number of issues
that may arise:
- local definitions which are shadowed by the
renamed identifier, and those which shadow the
renamed identifier, are also renamed so that they do
not conflict with the renaming
- unqualified references to top-level functions
which are shadowed by the renamed identifier are
qualified to avoid conflicts
- when renaming a punned data cons field name, the
user is given a choice to rename either the data cons
field, or the local variable
- when a data cons field name is associated with
more than one data cons (e.g. when the field name
appears in a case alternative containing multiple
data cons names), the renamer detects that and
confirms with the user that the refactoring operation
will rename the named field in all affected data
constructors
- CALDoc tooltips are now available for all identifiers
(including local variables, field names, type
variables)
- Auto-complete
- new auto-completion for CALDoc using templates
- new @arg tag auto-completion
- bug fixes:
- suggestions for friend statements
- inserts fully-qualified name in import and friend
statements
- New Generate Element Comment action (Alt-Shift-J)
- New templates for type and data constructors, class and
class member definitions
- New icon decorator for foreign functions/data
- Improved editor position tracking
- tooltips and actions such as Open Declaration now
track document edits so that for instance inserting
characters no longer causes these to have positions which
are off by the number of typed characters
- Refactorings now use incremental file changes
- undoing a refactoring (such as Clean Imports) causes
the last affected text to be selected instead of the
entire document.
- New content for using the Quark environment in an Eclipse
plugin
- new document "Using the Quark Environment Within the
Context of an Eclipse Plugin"
- new project CAL_Eclipse_Bridge_Example now included
in source distribution
-
- this is a sample project which shows how to use
CAL in an Eclipse action
- Bug fixes, including:
- Compatibility update for Embedded CAL
version 1.6.1_0 (September 21, 2007)
- CAL Console
- unqualified symbols in entered code expressions are
now automatically qualified if unambiguous
- CAFs are now automatically cached
- added new commands:
:t – display the type of a CAL
expression
:rs – reset cached CAFs
:spc and :pc –
display and execute from command history
- no longer blocks UI when invoked from
Workspace/Outline views
- now accessible from the Run menu
- Quick Outline view
- new quick view (similar to Java's quick outline view)
displays the outline of the current module in-place in
the editor area
- invoke using Ctrl-O or select Navigate → Quick
Outline
- Rename refactoring can now rename entire modules
- Quick fixes
- new fix for
"Unexpected token '='. Was the
equality operator ('==') intended?"
- new fix for
"The module X has not been imported
into Y."
- Goto next and previous elements (Ctrl-Shift-Up/Down
arrow)
- new commands to move the cursor to the next/previous
top level element definition
- Source distribution now includes source for archived
update site
- Bug fixes, including:
- New Module Wizard validation improvements
- handling for files with names ending with .cal but
invalid module name as file name
- unmanagement of CAL build artifacts in the workspace
(.cmi and lecc_runtime files)
version 1.6.0_0 (August 29, 2007)
- CAL Console page in the Console view
- new console page allows CAL expressions to be entered
and evaluated with respect to the CAL modules in the
Eclipse workspace
- Clean all CAL action
- new item in the Project menu to clear all build state
specific to CAL
- support for access to CAL modules in JARs
- now possible to navigate to CAL files which aren't
files in the file system.
- supports Car-jars for packaged sets of CAL modules as
Eclipse referenced libraries
- hyperlink detection
- if the hyperlink modifier is held down and the source
element under the mouse can be opened then the element
displays as a hyperlink
- New Module wizard
- improvements in the selection of default values
- Content assist
- improved logic for choosing between qualified and
unqualified names
- sources updated to Java 5
- various bug fixes
version 1.5.1_0 (July 19, 2007)
- source formatter
- pretty print an entire CAL module using the
Source/Format action
- search
- new option to find all occurrences where a data
constructor is used to construct a value (i.e. excludes
locations where unpacking a value)
- dialog initialized with fully-qualified name of
symbol under cursor if any (if no text is selected)
- quick fix
- new quick fix to insert the fully qualified name of
an unimported symbol (as an alternative to the quick fix
for importing the symbol)
- new quick fix for cases where you import a module and
do not qualify it properly
- auto-complete
- new auto-complete for module name segments
- added icons for auto-complete hover suggestions (as
with workspace/outline views)
- auto-completed expressions now support argument
tabbing
- improved auto-activation behaviour
- improved logic for making (and filtering)
suggestions
- workspace and outline views
- improvements to CAL source text selection when
selecting nodes in these views
- improved sorting of class instances
- added icons for warnings and errors in CAL
module
- CAL Builder
- now enabled by default when creating new
workspaces
- various bug fixes
version 1.5.0_0 (June 15, 2007)
- new features in the CAL Eclipse Plug-in
- inclusion of help in the CAL Eclipse Plug-in
- the CAL User's Guide, Using CAL with Eclipse, CAL
for Haskell Programmers and Effective CAL are all now
available in Eclipse help
- New Module dialog that can be used for creating new
CAL modules
- New Quark Binaries wizard. Creates .classpath and
.project files automatically. Verifies the Java compiler
settings as well.
- shift or control-hover now shows the source code for
the symbol in the CAL editor.
- templates for commonly used CAL syntactic
structures.
- insert type declarations action for functions. Works
over functions in selected range or whole file if no
range is selected.
- improvements to existing CAL Eclipse Plug-in features
- tooltips on local function names. Tooltips on module
names in import and module statements.
- auto-complete
- having auto-complete turn on when '.' is
pressed.
- property page for auto-complete behavior.
- auto-import symbols for auto-completion.
- open declaration
- open declaration now works for foreign
functions.
- implement control-click for open declaration
action
- workspace and outline view
- add rename to the workspace and outline
views.
- overlays show the scope of the CAL entities on
the icon.
- CAL compiler error messages
- nicer error message for when the VM is an older
version and the CAL compiler cannot handle projects
set to a later version.
- highlights all the text that caused the
compilation error instead of just the first
character.
version 1.4.0-0 (Apr 11, 2007)
- the CAL Eclipse Plug-in is now open-sourced. This is a
separate download, with its own release notes.
- CAL Workspace view provides a categorized tree of all CAL
entities in the workspace
- outline view shows the CAL entities in a particular
module
- editors for CAL metadata
- auto-complete
- rename refactoring
- organize imports refactoring, quick fix
- improved tooltips, open declaration
- CAL Perspective
- branding plug-in
- documentation:
- new "Using CAL with Eclipse" document
- new video "CAL Eclipse Plug-in Features"
- compiler update
- various bug fixes, library enhancements and documentation
updates
version 1.3.0-0 (Jan 24, 2007)
- enhanced search - search terms can be specified as CAL
syntactic elements
- open declaration action - navigate to the declaration of
an indicated CAL element
- editor tooltips with caldoc
- compiler update
- various bug fixes
version 1.2.0-140 (Nov 30, 2006)
version 1.2.0-135 (Oct 27, 2006)
- now available simultaneously with the release of Quark
1.2.0_135
- compiler update
- various bug fixes
version 1.2.0-133 (Oct 19, 2006)
- the initial release of the CAL Eclipse Dev Tools
2. Contact information:
The Quark Platform main site: http://labs.businessobjects.com/cal/.
Check here for updates and announcements as well.
There is a Google Group on
the CAL Language and Quark Platform.
This is the primary place for discussions, announcements, and
questions about CAL and Quark.
In addition, please feel free to send comments or questions
to Luke Evans (luke.evans@businessobjects.com)
or Bo Ilic (bo.ilic@businessobjects.com
).
3. System requirements:
- Eclipse 3.3 or greater.
- Java 5 update 8 or greater.
- additional memory may be required when the CAL builder is
enabled
Quark has been tested by us mainly on Windows XP, Linux and
Mac OS X, but as a pure Java application may work on other
platforms supporting Java 1.4 or greater.
4. License:
See the notice.html file at the root of the distribution for
the Software User Agreement.
The plug-ins comprising the CAL Eclipse Plug-in are
available with the following licensing:
- Eclipse Public License v1.0
- org.openquark.cal.eclipse.core
- org.openquark.cal.eclipse.ui
- BSD license
- org.openquark.cal.eclipse
- org.openquark.cal.eclipse.bridge
- org.openquark.cal.eclipse.doc
- org.openquark.cal.platform
- org.openquark.cal.runtime
- org.openquark.import
- org.openquark.util
For the precise license terms for each plug-in, please refer
to the about.html at the root of the plug-in.
Note that the CAL Eclipse Plug-in is technically an Eclipse
feature that is implemented as a set of Eclipse plug-ins. Some
of these plug-ins are derived from the implementation of
Eclipse's Java Tooling and are thus licensed under the Eclipse
Public License v1.0. The plug-ins that are wrappers around the
BSD-licensed Open Quark Framework are themselves BSD-licensed.
There are also some plug-ins that are BSD-licensed since they
do not derive from any existing EPL-licensed plug-in. It is
possible for clients to implement an Eclipse plug-in that makes
use of CAL and Open Quark, for example to compile and execute
CAL programs, using only the BSD-licensed plug-ins.
5. Known issues:
Changes in Java classes referred to by CAL foreign
references (eg. caused by edits to Java files) will not be
picked up until Eclipse is restarted