← Nieuwste papers
💻 computer science

TypeScript Repository Indexing for Code Agent Retrieval

Dit paper introduceert abcoder-ts-parser, een TypeScript-parser gebaseerd op de Compiler API die de prestaties van het ABCoder-framework voor het indexeren van grote codebases aanzienlijk verbetert door de inefficiëntie van LSP-gebaseerde symboloplossing te omzeilen.

Oorspronkelijke auteurs: Junsong Pu, Yichen Li, Zhuangbin Chen

Gepubliceerd 2026-04-22
📖 4 min leestijd☕ Koffiepauze-leesvoer

Oorspronkelijke auteurs: Junsong Pu, Yichen Li, Zhuangbin Chen

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

🕵️‍♂️ De Probleemstelling: De Zoektocht in de Bibliotheek

Stel je voor dat je een superintelligente robot (een AI-agent) hebt die moet helpen met het bouwen of repareren van een enorm computerprogramma. Dit programma is als een gigantische bibliotheek met miljoenen boeken (de code).

Om een probleem op te lossen, moet de robot niet alleen het boekje vinden waar de fout zit, maar ook:

  1. Wie dat boekje heeft gelezen (de aanroepers).
  2. Welke andere boeken erin worden genoemd (de afhankelijkheden).
  3. Hoe de boeken met elkaar verbonden zijn.

Hoe werkt het nu?
De meeste robots gebruiken twee methoden:

  • Woordzoekers: Ze zoeken naar sleutelwoorden. Dit is als zoeken in een bibliotheek door alleen te kijken of een woord op de rug van een boek staat. Het werkt snel, maar je mist boeken die over hetzelfde gaan maar andere woorden gebruiken.
  • Betekeniszoekers: Ze kijken naar de "sfeer" van de tekst. Dit is beter, maar ze zien vaak niet hoe de boeken fysiek aan elkaar hangen.

Het oude systeem (ABCoder):
Er was al een slimme tool genaamd ABCoder die een kaart (een grafiek) maakte van deze bibliotheek. Maar deze tool werkte op een inefficiënte manier. Het was alsof de robot voor elk woord in een boek naar de bibliothecaris moest rennen om te vragen: "Waar staat dit woord gedefinieerd?".

  • Voor een klein boekje is dat geen probleem.
  • Maar voor een bibliotheek met 1,2 miljoen regels code (zoals het project Sentry in het onderzoek) moet de robot miljoenen keren rennen. Dit kost enorm veel tijd en maakt de robot traag.

🚀 De Oplossing: De "Alles-in-Één" Compiler

De auteurs van dit paper (Junsong Pu, Yichen Li en Zhuangbin Chen) hebben een nieuwe, super-snelle vertaler gemaakt voor TypeScript-programma's, genaamd abcoder-ts-parser.

De Analogie:
In plaats van dat de robot voor elke vraag naar de bibliothecaris rent, nemen ze de hele bibliotheek mee naar huis en leggen ze deze op één grote tafel. Ze hebben een "magische bril" (de TypeScript Compiler API) die ze direct op de boeken kunnen zetten.

  • Het oude systeem: "Ik vraag om de definitie van 'User'." -> Ren, ren, ren, antwoord. "Ik vraag om 'Repo'." -> Ren, ren, ren, antwoord.
  • Het nieuwe systeem: Ze kijken naar de hele stapel boeken tegelijk. Omdat ze de bril van de maker zelf gebruiken, zien ze direct: "Ah, 'User' komt uit dit boek, en dit boek wordt gebruikt in dat boek." Alles is direct zichtbaar zonder te hoeven rennen.

📊 Wat hebben ze ontdekt?

Ze hebben hun nieuwe tool getest op drie echte, grote projecten:

  1. Excalidraw (een online whiteboard).
  2. Outline (een kennisplatform voor teams).
  3. Sentry (een groot systeem voor foutopsporing, met 1,2 miljoen regels code).

De resultaten:

  • Snelheid: Voor het grootste project (Sentry) duurde het indexeren (het maken van de kaart) minder dan 12 minuten.
  • Vergelijking: Het oude systeem zou voor een vergelijkbaar project waarschijnlijk uren nodig hebben gehad, omdat het miljoenen individuele vragen moest stellen.
  • Betrouwbaarheid: De kaart die ze maakten was accuraat. Ze hebben het getest met duizenden testcases en het werkt betrouwbaar.

🌟 Waarom is dit belangrijk?

Stel je voor dat je een auto wilt repareren.

  • Met de oude methode moet je eerst elke schroef losdraaien, kijken of hij loszit, en dan weer vastdraaien voordat je naar de volgende schroef gaat. Het duurt eeuwen.
  • Met de nieuwe methode heb je een 3D-scan van de hele motor. Je ziet direct welke bout de andere vasthoudt en waar de kabels naartoe lopen.

De voordelen voor de AI:

  1. Slimmer denken: Omdat de AI nu de volledige "connectie-kaart" heeft, kan ze veel beter redeneren over complexe fouten. Ze ziet niet alleen het symptoom, maar ook de oorzaak.
  2. Sneller werken: De AI hoeft niet te wachten op de index.
  3. Minder fouten: De AI raakt niet verdwaald in de code en geeft betere oplossingen.

Conclusie

Dit onderzoek toont aan dat je door slimme techniek (het gebruik van de interne taal van de programmeertaal zelf in plaats van externe vragen) een gigantische versnelling kunt bereiken. Het is alsof je van een fiets op een sneltrein springt voor het vinden van informatie in grote software-projecten. Hierdoor kunnen AI-assistenten veel effectiever worden in het helpen van programmeurs.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →