PescaJ: A projectional editor for Java with overlapping abstract syntax tree views for code and documentation - Lopes, José Miguel Faustino (2023)
Conventionally, source code is simultaneously a storage and editing representation, through files and editors to manipulate them as text. Over the years, IDEs have become increasingly sophisticated, providing features to augment the visible text content with helpful information (e.g., overlay documentation popups, inlay type hints), or on the opposite, to decrease it to reduce clutter (e.g., code folding on documentation, methods, etc.). This is a sign that developers seek more convenient code editing forms than the direct manipulation of text files. We conducted an empirical study that seeks to motivate the design of an editor which enhances code and documentation navigation and editing, beyond source file manipulation. The study addresses code structure, namely method interaction, such as number of methods called and depth of call graph. We also measured the amount of documentation present in source files, quantifying the amount of clutter documentation causes while coding. We present PescaJ, a prototype projectional editor for Java projects that breaks away from fileoriented source code editing, providing the possibility of forming views that aggregate methods that belong to different classes, where single methods may be simultaneously present and edited in multiple views. It features automatic code fragment placement, juxtaposing them according to their interactions in the code. Furthermore, PescaJ provides documentation editors, also aggregating scattered Javadoc comments. The specialized documentation views reduce clutter and relieve the user of syntax, while separating the task of writing code and its documentation, separating the two technical concerns, that may lower cognitive strain on the user.