10 research outputs found
My favorite editor anywhere
How can off-the-shelf editors be reused in applications that need mature editing support? We describe our editor multiplexer which enables interactive, application guided editing sessions using e.g. GNU Emacs and Vim. At a cost of less than 1 KLOC of editor specific glue code, both IDE builders and users benefit. Rapid integration of existing editors reduces application development cost, and users are not confronted with yet another foreign editor with its own learning curv
Language Parametric Module Management for IDEs
An integrated development environment (IDE) monitors all the changes that a user makes to source code modules and responds accordingly by flagging errors, by reparsing, by rechecking, or by recompiling modules and by adjusting visualizations or other information derived from a module. A module manager is the central component of the IDE that is responsible for this behavior. Although the overall functionality of a module manager in a given IDE is fixed, its actual behavior strongly depends on the programming languages it has to support. What is a module? How do modules depend on each other? What is the effect of a change to a module? We propose a concise design for a language parametric module manager: a module manager that is parameterized with the module behavior of a specific language. We describe the design of our module manager and discuss some of its properties. We also report on the application of the module manager in the construction of IDEs for the specification language ASF+SDF as well as for Java. Our overall goal is the rapid development (generation) of IDEs for programming languages and domain specific languages. The module manager presented here represents a next step in the creation of such generic language workbenches
An industrial application of context-sensitive formatting.
Automated formatting is an important technique for the software maintainer. It is either applied separately to improve the readability of source code, or as part of a source code transformation tool chain. In this paper we report on the application of generic tools for constructing formatters. In an industrial setting automated formatters need to be tailored to the requirements of the customer. The (legacy) programming language or dialect and the corporate formatting conventions are specific and non-negotiable. Can generic formatting tools deal with such unexpected requirements? Driven by an industrial case of 78 thousand lines of Cobol code, several limitations in existing formatting technology have been addressed. We improved its flexibility by replacing a generative phase by a generic tool, and we added a little expressiveness to the formatting backend. Most importantly, we employed a multi-stage formatting architecture that can cope with any kind of formatting convention using more computational powe
Language Parametric Module Management for IDEs
An integrated development environment (IDE) monitors all the changes that a user makes
to source code modules and responds accordingly by flagging errors, by reparsing, by
rechecking, or by recompiling modules and by adjusting visualizations or other information
derived from a module. A module manager is the central component of the IDE that
is responsible for this behavior. Although the overall functionality of a module manager in
a given IDE is fixed, its actual behavior strongly depends on the programming languages
it has to support. What is a module? How do modules depend on each other? What is the
effect of a change to a module?
We propose a concise design for a language parametric module manager: a module
manager that is parameterized with the module behavior of a specific language. We describe
the design of our module manager and discuss some of its properties. We also report on
the application of the module manager in the construction of IDEs for the specification
language ASF+SDF as well as for Java.
Our overall goal is the rapid development (generation) of IDEs for programming languages
and domain specific languages. The module manager presented here represents a
next step in the creation of such generic language workbenches