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