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 fluctuati...
详细信息
ISBN:
(纸本)9789532330984
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 CodeCompass code comprehension tool.
There are many factors for the success of a newprogramming language implementation. Existing language implementation frameworks such as Truffle or RPython have focused on run-time performance and security, or on provi...
详细信息
ISBN:
(纸本)9781450369961
There are many factors for the success of a newprogramming language implementation. Existing language implementation frameworks such as Truffle or RPython have focused on run-time performance and security, or on providing a comprehensive set of libraries. The tools that language users need to be productive are also an important factor for the adoption of a programming language. The aforementioned frameworks, however, provide limited support for creating comprehensive development tools. This is an impediment to language adoption that can be as serious as performance issues or lack of libraries. Both Truffle and RPython already provide run-time tools such as for debugging, profiling, or coverage in a language-independent manner, but neither support static development tasks carried out in code editors. In this work, we propose a language-agnostic approach to add this missing tooling by making the language server protocol available automatically to all language implementations on the Truffle framework. Furthermore, we show how our approach can utilize runtime information to provide IDE features rarely available for dynamic programming languages.
A programming language is only as good at its tooling. Traditionally, tooling has always been an after-thought of language design since developing good tools take significant development efforts. Dotty is an experimen...
详细信息
ISBN:
(纸本)9781450355292
A programming language is only as good at its tooling. Traditionally, tooling has always been an after-thought of language design since developing good tools take significant development efforts. Dotty is an experimental compiler for what will one day be called Scala 3, and Scala already has established and functional tooling. For Dotty to be seen as a viable alternative to Scala 2, it needs to deliver a developer experience at least as good. In particular, good support for Integrated Development Environments (IDEs) is crucial. In this paper we report our progress on providing IDE support for Dotty.
Diplomová práce se zabývá protokolem Microsoft language server protocol. V teoretické části práce je popsána architektura a vlastnosti protokolu, popis implementace protokolu LS...
详细信息
Diplomová práce se zabývá protokolem Microsoft language server protocol. V teoretické části práce je popsána architektura a vlastnosti protokolu, popis implementace protokolu LSP uvnitř vývojových prostředí Eclipse a VS Code a postup pro vytvoření nového zásuvného modulu do vývojových prostředí Eclipse a VS Code. Dále se teoretická část práce věnuje seznámení s projektem Apache Camel a implementací Camel languageserveru a Camel language klientů pro rozšířenou jazykovou podporu. Poslední zmínka teoretické části je věnována nástroji pro usnadnění vytváření nových projektů Yeoman. Popis praktické části práce se zabývá vlastnostmi a implementací vytvořeného generátoru klientů pro language server protocol.
暂无评论