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 typesuper::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§
- Extract
Export Modifier - Extract TypeScript/JavaScript export modifier if present
- Extract
Generic Parameters - Parse TypeScript/JavaScript generic parameters
- Extract
Type Annotation - Extract TypeScript/JavaScript type annotation from a declaration
- Extract
Type Script Symbols - Extract TypeScript/JavaScript symbols (class, interface, function, etc.)
- IsType
Script Class - Check if a line contains a TypeScript/JavaScript class definition
- IsType
Script Function - Check if a line contains a TypeScript/JavaScript function definition
- IsType
Script Interface - Check if a line contains a TypeScript/JavaScript interface definition