Object Usage Analyser for TypeScript
Analyzátor používání objektů pro TypeScript
bakalářská práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/184371Identifikátory
SIS: 250583
Kolekce
- Kvalifikační práce [11242]
Autor
Vedoucí práce
Oponent práce
Škoda, Petr
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Informatika se specializací Programování a vývoj software
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
7. 9. 2023
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
Statická analýza|TypeScript|Visual Studio CodeKlíčová slova (anglicky)
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.