Object Usage Analyser for TypeScript
Analyzátor používání objektů pro TypeScript
bachelor thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/184371Identifiers
Study Information System: 250583
Collections
- Kvalifikační práce [11242]
Author
Advisor
Referee
Škoda, Petr
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Computer Science with specialisation in Programming and Software Development
Department
Department of Software Engineering
Date of defense
7. 9. 2023
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
Statická analýza|TypeScript|Visual Studio CodeKeywords (English)
Static analysis|TypeScript|Visual Studio CodePři programování vývojáři často potřebují zjistit, kde a jak se používá určitá proměnná nebo objekt. Pro jazyky TypeScript a JavaScript jsou jedinými dostupnými nástroji pro zodpovězení těchto otázek nástroje pro vyhledávání referencí a zobrazení grafu volání. Tyto nástroje však začínají ztrácet účinnost ve větších pro- jektech, kde mohou vracet stovky nebo dokonce tisíce výsledků setřízených pouze podle názvů zdrojových souborů. V této práci jsme vyvinuli rozšíření pro Visual Studio Code, který dokáže v projektu vyhledat reference na proměnné a roztřídit je do skupin na základě použití. Podobnou analýzu dokáže provést i s argumenty funkcí na základě pozice argumentu. Naše řešení jsme vyhodnotili a předvedli několik reálných příkladů použití.
During a programming change task, developers often need to understand where a certain variable or object is referenced and how it is used in order to implement the change. For languages TypeScript and JavaScript the only available tools to find these points of interest are tools to find variable and property references and to display a call tree. These tools, however, start losing viability in larger codebases, where they can return hundreds or even thousands of results sorted only by the source file names. In this thesis, we have developed an extension for Visual Studio Code that finds these references and categorise them into groups based on usage. It can also perform similar analysis on call arguments based on the position of the argument. We evaluated our solution and showcased it in several real-world use cases.