Download An Eclipse-Based Integrated Development Environment for Curry

Transcript
3.2 The Curry IDE
• Data types in signatures
• Valid expressions in right hand side of functions, i.e., accessible variables, functions,
or constructors
• Existing functions or data types in export declarations.
• Existing functions or data types in import declarations.
Quick fixes are proposals by the IDE to fix existing errors. Again, this feature is hard
to specify, but typically correct suggestions for typing errors should be made. The Curry
IDE should also be able to detect and correct errors such as module names that do not
correspond to file names. None of these features are provided by any existing tools.
Additional Information
The IDE should neatly provide additional information to the developer. For programs
that consist of more than one file, it is important to have an overview of the project’s
file structure. This is provided by the project explorer. Aside from that, the IDE should
offer an overview of the current module. It should contain all defined data types, signatures, functions, imports, and exports. This IDE part is called outline. This kind of
information is provided by the CurryBrowser, which does not allow modifications of the
code. At the same time, Emacs has a project explorer, but does not support a module outline. Modern IDEs also provide additional language-specific information to the
developer. This might be the type of a variable or the needed parameters for a function. Moreover, the Eclipse Java IDE has javadoc 10 integration. Javadoc is a tool for
generating API11 documentation in HTML format from doc comments in source code.
For every element that has a javadoc annotation, Eclipse shows the javadoc wherever
this element is used. The corresponding tool for Curry is called CurryDoc. The Curry
IDE should provide additional information to the developer including the signature of
functions and CurryDoc annotations. This feature becomes very important for huge
projects where developers constantly use code written by other developers. It displays
the needed information to the developer so that in most cases it is not necessary to
browse to the corresponding definition. This feature is not provided up to now and can
be very time-saving.
10
http://www.oracle.com/technetwork/java/javase/documentation/
index-jsp-135444.html,
last visited December 3, 2012
11
application programming interface
17