Module ParseTypeScript

Module ParseTypeScript 

Source
Expand description

§ParseTypeScript

§File: Indexing/Language/ParseTypeScript.rs

§Role in Air Architecture

Provides TypeScript/JavaScript-specific symbol extraction functionality for the File Indexer service, identifying TS/JS language constructs like classes, interfaces, functions, constants, and types.

§Primary Responsibility

Extract TypeScript/JavaScript code symbols from source files for VSCode Outline View and Go to Symbol features.

§Secondary Responsibilities

  • Extract class definitions
  • Extract interface definitions
  • Extract function declarations
  • Extract arrow functions
  • Extract variable declarations (const, let, var)
  • Extract type definitions
  • Extract enum definitions

§Dependencies

External Crates:

  • None (uses std library)

Internal Modules:

  • crate::Result - Error handling type
  • super::super::SymbolInfo - Symbol structure definitions

§Dependents

  • Indexing::Process::ExtractSymbols - Language routing

§VSCode Pattern Reference

Inspired by VSCode’s TypeScript symbol extraction in src/vs/workbench/services/search/common/

§Security Considerations

  • Line-by-line parsing without eval
  • No code execution during extraction
  • Safe string handling

§Performance Considerations

  • Efficient line-based parsing
  • Minimal allocations per file
  • Early termination for non-TS/JS files

§Error Handling Strategy

Symbol extraction returns empty vectors on parse errors rather than failures, allowing indexing to continue for other files.

§Thread Safety

Symbol extraction functions are pure and safe to call from parallel indexing tasks.

Functions§

ExtractExportModifier
Extract TypeScript/JavaScript export modifier if present
ExtractGenericParameters
Parse TypeScript/JavaScript generic parameters
ExtractTypeAnnotation
Extract TypeScript/JavaScript type annotation from a declaration
ExtractTypeScriptSymbols
Extract TypeScript/JavaScript symbols (class, interface, function, etc.)
IsTypeScriptClass
Check if a line contains a TypeScript/JavaScript class definition
IsTypeScriptFunction
Check if a line contains a TypeScript/JavaScript function definition
IsTypeScriptInterface
Check if a line contains a TypeScript/JavaScript interface definition