Future Work - mn-mikke/Model-driven-Pretty-Printer-for-Xtext-Framework GitHub Wiki

The thesis has shown that pretty-formatters for DSL still bring many open challenges which can improve DSL usability. However, the thesis has not solved them all, there are still many open questions and possible development directions. For example, the proposals to extent or to improve the solution of this thesis is discussed.

Implementing the WD and ALT Operator

The page of unimplemented operators focuses on the WD and ALT. The result showed that the above-mentioned operators can not be implemented because of current identifying grammar elements and defining elements. Alternative solution is to design a solution integrating these two operators of the ideal meta-model.

Implementing Concepts Improving an Integration of Generic Pretty-printer into Eclipse

Although, the prototype contains realization of concepts (see the Workflow section) facilitating code writing for each from three languages such as Content Assist, Validation, some of possible concepts were not implemented. Hence it should be implemented the Outline View, Labeling, Template Proposals, etc. for each language contained in the prototype.

Furthermore, since the behavioral specification of operator determines operator's behavior, the specification should be expanded by definitions validating a box model from operator's point of view. These definitions would serve for example for validating that an usage of the R operator has to be encapsulated by an usage of the A operator.

Pretty-printing Incorrect Code

The solution of this project is not able to format incorrect code. The next proposal is to design a solution for this issue.

Pretty-printing Individual Segments of Code

Although, the prototype is able to format entire files of code, it is not sufficiently debugged to format individual code segments specified by an user.

More Complex Heuristic Rules

The current version of heuristic rules encapsulates the whole matched sequence of elements by defined usages of operators. The proposal is to improve heuristic rules so that it would be possible to specify a subsequence of the matched sequence, where the subsequence would be encapsulated by defined usages of operators.

Macro Operators

When a developer wants to format a number of boxes by the first operator and some subset of boxes by the second operator, he has to enclose subset of boxes with the usage of the second operator. Thus he obtains a new box formed by the usage of the second operator. Further, he has to enclose the new box and other boxes of the set with an usage of the first operator. The composition of concrete usages of operators may occur very often. Thus macro operators expressing a concrete composition of usages of operators should be introduced.

Macro Operator