•Source code augmentation is visualization located directly in plain-text source code.•We performed a systematic mapping study, resulting in a list of 103 articles.•The surveyed tools were ...categorized in a taxonomy with 7 dimensions.
Source code written in textual programming languages is typically edited in integrated development environments (IDEs) or specialized code editors. These tools often display various visual items, such as icons, color highlights or more advanced graphical overlays directly in the main editable source code view. We call such visualizations source code editor augmentation.
In this paper, we present a first systematic mapping study of source code editor augmentation tools and approaches. We manually reviewed the metadata of 5553 articles published during the last twenty years in two phases – keyword search and references search. The result is a list of 103 relevant articles and a taxonomy of source code editor augmentation tools with seven dimensions, which we used to categorize the resulting list of the surveyed articles.
We also provide the definition of the term source code editor augmentation, along with a brief overview of historical development and augmentations available in current industrial IDEs.
We present our paper published at the 25th International Conference on Model Driven Engineering Languages and Systems (MODELS) Ba22a. Effectively using software languages requires effective editing ...support. Modern IDEs, modeling tools, and code editors typically provide sophisticated support to create, comprehend, or modify instancesof particular languages. Unfortunately, building such editing support is challenging. While the engineering of languages is well understood and supported by modern model-driven techniques, there is a lack of engineering principles and best practices for realizing their editing support. We study practices for implementing editing support in so-called language servers-implementations of the language server protocol (LSP). LSP is a recent de facto standard to realize editing support for languages, separated from the editing tools, enhancing the reusability and quality of the editing support. Witnessing the LSP's popularity, we take this opportunity to analyze the implementations of 30 language servers. We identify concerns that developers need to take into account when developing editing support, and we synthesize implementation practices to address them, based on a systematic analysis of the servers' source code. We hope that our results shed light on an important technology for software language engineering, that facilitates language-oriented programming and systems development, including model-driven engineering.
Editing support for software languages Barros, Djonathan; Peldszus, Sven; Assunção, Wesley K. G. ...
Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems,
10/2022
Conference Proceeding
Odprti dostop
Effectively using software languages, be it programming or domain-specific languages, requires effective editing support. Modern IDEs, modeling tools, and code editors typically provide sophisticated ...support to create, comprehend, or modify instances---programs or models---of particular languages. Unfortunately, building such editing support is challenging. While the engineering of languages is well understood and supported by modern model-driven techniques, there is a lack of engineering principles and best practices for realizing their editing support. Especially domain-specific languages---often created by smaller organizations or individual developers, sometimes even for single projects---would benefit from better methods and tools to create proper editing support.
We study practices for implementing editing support in 30 so-called language servers---implementations of the language server protocol (LSP). The latter is a recent de facto standard to realize editing support for languages, separated from the editing tools (e.g., IDEs or modeling tools), enhancing the reusability and quality of the editing support. Witnessing the LSP's popularity---a whopping 121 language servers are in existence today---we take this opportunity to analyze the implementations of 30 language servers, some of which support multiple languages. We identify concerns that developers need to take into account when developing editing support, and we synthesize implementation practices to address them, based on a systematic analysis of the servers' source code. We hope that our results shed light on an important technology for software language engineering, that facilitates language-oriented programming and systems development, including model-driven engineering.
The maintenance of large, legacy software often results in higher development time and cost due to increasing size and complexity of the codebase and its documentation, their continuously eroding ...quality and fluctuation among developers. Code comprehension tools are designed to tackle this issue by providing various textual information, visualization views and source code metrics on multiple abstraction levels. These tools usually process not only the codebase, but also the build information, the version control repository and other available information sources. Meanwhile source code editors and integrated development environments (IDEs) are not performing well in the field of code comprehension as they are optimized for writing new code, not for effective browsing. This can easily result in frequent switching between environments during development, hindering effective programming and raising development cost. Language Server Protocol (LSP) is an open-source protocol to connect source code editors with servers that provide language-specific features. In this research we analyze how LSP can be utilized to improve the code comprehension experience inside code editors by integrating the features of such tools through remote procedure calls. As a prototype solution we showcase the integration of two open-source applications: Visual Studio Code and the Code Compass code comprehension tool.
Source code editor have different features to ease and speed-up the developer works. This paper proposed the source code editor BUILD integrated with Community Question and Answer (Q&A) and stack ...overflow web service. While programming developer often came across the set of questions, programming errors, thus in order to find the solutions or resolving the errors developers take reference from the different online resources (Documentations, Books, Q & A Services) through web browser. This leads to switching windows between source code editor and web-browser. To reduce development time and effort, neglect web or internet distractions and to get the specific result to questions we form a community. we combine source code editor and community Q & a services (Stack Overflow, institutional CQA). We also understand different learning resources and development tool which preferred by the developers. Explains the important of the Community Question & Answer (CQA) services.
This paper presents a case study for assessing the effect of emoticoding during the students’ first encounter with text-based coding interfaces, in which period a student could have a deeply ...disappointing experience that may lead to “blank page trauma” as well as negative attitude towards the subject. A prototype metaphor-based source code editor was developed using novel human-computer interaction mechanics based on the concept of emoticon-like scripting. Similarly to the use of shortcuts for typing emoticons in social media, visual or textual replacements appear in the proposed text editor when the user types complete valid tokens from a given programming language. Appropriate metaphors can be used in the design of the token replacements so that they are appealing to a particular age, gender, or cultural groups of users. Quantitative analysis of data from 5th-grade students (n = 40) shows that metaphor-based emoticoding improves significantly the students’ performance in terms of syntax recall when they transition from block- to text-based programming in comparison to transitioning without emoticoding.
Emoticoding is a technique for learning computer programming that has been shown to improve student learning outcomes and reduce blank page trauma during the students' first encounter with text ...editing interfaces. In this paper, a generalized method is presented for integrating computer education with other learning topics, such as algebra, geometry, music, and 3D art, using emoticoding. The proposed method is based on the theoretical framework of brain-activating text replacements, which assists students to make connections between the tokens of a typed language (such as computer code) and a set of replacing graphemes (such as interpretative visual or textual replacements). When the computer code is instantly being replaced with graphemes from another learning topic, for example geometric shapes or music notation, the students can build associations between the underlying concepts, which in turn reinforces learning of the associated topics. A work-in-progress user interface with four sets of visual replacements is presented in this paper for substituting the discrete tokens of a computer program (JavaScript) with symbols from algebra, geometry, music notation, and solid shapes. The proposed replacements are demonstrated with computer scripts through the emoticoding framework using learning objectives from K-12 common core standards.
The basic knowledge of computer programming is generally considered a valuable skill for educated citizens outside computer science and engineering professions. However, learning programming can be a ...challenging task for beginners of all ages especially outside of formal CS education. This paper presents a novel source code editing method that assists novice users understand the logic and syntax of the computer code they type. The method is based on the concept of text replacements that interactively provide the learners with declarative knowledge and help them transform it to procedural knowledge, which has been shown to be more robust against decay. An active tokenization algorithm splits the typed code into tokens as they are typed and replaces them with a pre-aligned translation in a human natural language. The feasibility of the proposed method is demonstrated in seven structurally different natural languages (English, Chinese, German, Greek, Italian, Spanish, and Turkish) using examples of computer code in ECMAScript (JavaScript).