pub struct LangTypeScript {}Expand description
Language Struct Definition
Implementations§
Source§impl LangTypeScript
Language Constants
impl LangTypeScript
Language Constants
pub const Text_function: u16 = 50u16
pub const Text_class: u16 = 48u16
pub const Text_interface: u16 = 145u16
pub const Text_type: u16 = 6u16
pub const Text_const: u16 = 20u16
pub const Text_let: u16 = 19u16
pub const Text_var: u16 = 18u16
pub const Text_enum: u16 = 146u16
pub const Text_import: u16 = 14u16
pub const Text_export: u16 = 3u16
pub const Text_from: u16 = 15u16
pub const Text_extends: u16 = 142u16
pub const Text_implements: u16 = 143u16
pub const Text_return: u16 = 38u16
pub const Text_async: u16 = 49u16
pub const Text_await: u16 = 29u16
pub const Text_LPAREN: u16 = 26u16
pub const Text_RPAREN: u16 = 28u16
pub const Text_LBRACE: u16 = 10u16
pub const Text_RBRACE: u16 = 12u16
pub const Text_LBRACKET: u16 = 45u16
pub const Text_RBRACKET: u16 = 46u16
pub const Text_SEMI: u16 = 27u16
pub const Text_COLON: u16 = 40u16
pub const Text_COMMA: u16 = 11u16
pub const Text_DOT: u16 = 47u16
pub const Text_ARROW: u16 = 51u16
pub const Text_EQ: u16 = 7u16
pub const Text_QUESTION: u16 = 125u16
pub const Text_LT: u16 = 84u16
pub const Text_GT: u16 = 91u16
pub const program: u16 = 166u16
pub const internal_module: u16 = 284u16
pub const module: u16 = 283u16
pub const class_declaration: u16 = 221u16
pub const abstract_class_declaration: u16 = 282u16
pub const class: u16 = 220u16
pub const class_body: u16 = 256u16
pub const interface_declaration: u16 = 288u16
pub const interface_body: u16 = 376u16
pub const type_alias_declaration: u16 = 293u16
pub const enum_declaration: u16 = 290u16
pub const enum_body: u16 = 291u16
pub const enum_assignment: u16 = 292u16
pub const function_declaration: u16 = 224u16
pub const generator_function_declaration: u16 = 226u16
pub const function_expression: u16 = 223u16
pub const arrow_function: u16 = 227u16
pub const generator_function: u16 = 225u16
pub const function_signature: u16 = 271u16
pub const method_definition: u16 = 261u16
pub const method_signature: u16 = 269u16
pub const abstract_method_signature: u16 = 270u16
pub const call_signature: u16 = 338u16
pub const construct_signature: u16 = 344u16
pub const public_field_definition: u16 = 266u16
pub const property_signature: u16 = 339u16
pub const formal_parameters: u16 = 257u16
pub const required_parameter: u16 = 296u16
pub const optional_parameter: u16 = 297u16
pub const rest_pattern: u16 = 260u16
pub const variable_declaration: u16 = 183u16
pub const lexical_declaration: u16 = 184u16
pub const variable_declarator: u16 = 185u16
pub const statement_block: u16 = 186u16
pub const return_statement: u16 = 200u16
pub const if_statement: u16 = 188u16
pub const for_statement: u16 = 190u16
pub const for_in_statement: u16 = 191u16
pub const while_statement: u16 = 193u16
pub const switch_statement: u16 = 189u16
pub const try_statement: u16 = 195u16
pub const catch_clause: u16 = 207u16
pub const call_expression: u16 = 231u16
pub const new_expression: u16 = 232u16
pub const member_expression: u16 = 234u16
pub const subscript_expression: u16 = 235u16
pub const assignment_expression: u16 = 236u16
pub const binary_expression: u16 = 243u16
pub const unary_expression: u16 = 244u16
pub const ternary_expression: u16 = 242u16
pub const await_expression: u16 = 233u16
pub const as_expression: u16 = 274u16
pub const satisfies_expression: u16 = 275u16
pub const type_assertion: u16 = 273u16
pub const identifier: u16 = 1u16
pub const type_identifier: u16 = 382u16
pub const nested_type_identifier: u16 = 287u16
pub const nested_identifier: u16 = 219u16
pub const property_identifier: u16 = 377u16
pub const shorthand_property_identifier: u16 = 378u16
pub const shorthand_property_identifier_pattern: u16 = 379u16
pub const private_property_identifier: u16 = 111u16
pub const string: u16 = 247u16
pub const number: u16 = 110u16
pub const template_string: u16 = 248u16
pub const regex: u16 = 250u16
pub const type_annotation: u16 = 302u16
pub const type_arguments: u16 = 336u16
pub const type_parameters: u16 = 340u16
pub const type_parameter: u16 = 341u16
pub const constraint: u16 = 343u16
pub const default_type: u16 = 342u16
pub const union_type: u16 = 349u16
pub const intersection_type: u16 = 350u16
pub const function_type: u16 = 351u16
pub const array_type: u16 = 346u16
pub const tuple_type: u16 = 347u16
pub const generic_type: u16 = 319u16
pub const object_type: u16 = 337u16
pub const predefined_type: u16 = 335u16
pub const literal_type: u16 = 330u16
pub const conditional_type: u16 = 318u16
pub const mapped_type: u16 = 0u16
pub const indexed_access_type: u16 = 0u16
pub const infer_type: u16 = 317u16
pub const constructor_type: u16 = 313u16
pub const this_type: u16 = 381u16
pub const object_pattern: u16 = 214u16
pub const array_pattern: u16 = 218u16
pub const assignment_pattern: u16 = 215u16
pub const pair_pattern: u16 = 263u16
pub const object_assignment_pattern: u16 = 216u16
pub const import_statement: u16 = 174u16
pub const import_clause: u16 = 175u16
pub const named_imports: u16 = 178u16
pub const import_specifier: u16 = 179u16
pub const namespace_import: u16 = 177u16
pub const export_statement: u16 = 167u16
pub const export_clause: u16 = 169u16
pub const export_specifier: u16 = 170u16
pub const ambient_declaration: u16 = 281u16
pub const decorator: u16 = 253u16
pub const class_heritage: u16 = 222u16
pub const extends_clause: u16 = 278u16
pub const extends_type_clause: u16 = 289u16
pub const implements_clause: u16 = 280u16
pub const accessibility_modifier: u16 = 294u16
pub const override_modifier: u16 = 295u16
pub const readonly_type: u16 = 348u16
pub const object: u16 = 213u16
pub const array: u16 = 217u16
pub const pair: u16 = 262u16
pub const spread_element: u16 = 241u16
pub const comment: u16 = 104u16
pub const field_name: u16 = 25u16
pub const field_body: u16 = 5u16
pub const field_type: u16 = 37u16
pub const field_value: u16 = 40u16
pub const field_parameters: u16 = 30u16
pub const field_return_type: u16 = 33u16
pub const field_type_parameters: u16 = 39u16
pub const field_type_arguments: u16 = 38u16
pub const field_constraint: u16 = 8u16
pub const field_source: u16 = 36u16
pub const field_alias: u16 = 1u16
pub const field_declaration: u16 = 10u16
pub const field_left: u16 = 23u16
pub const field_right: u16 = 34u16
pub const field_object: u16 = 26u16
pub const field_property: u16 = 32u16
pub const field_function: u16 = 14u16
pub const field_arguments: u16 = 4u16
pub const field_pattern: u16 = 31u16
pub const field_condition: u16 = 6u16
pub const field_consequence: u16 = 7u16
pub const field_alternative: u16 = 2u16
pub const field_index: u16 = 17u16
pub const field_key: u16 = 20u16
pub const field_decorator: u16 = 11u16
pub const field_module: u16 = 24u16
pub const field_constructor: u16 = 9u16
pub const field_trait: u16 = 37u16
Trait Implementations§
Source§impl Debug for LangTypeScript
impl Debug for LangTypeScript
Source§impl LanguageTrait for LangTypeScript
Language Trait Implementation
impl LanguageTrait for LangTypeScript
Language Trait Implementation
Source§fn parse(text: impl AsRef<[u8]>) -> Option<Box<dyn ParseTree>>
fn parse(text: impl AsRef<[u8]>) -> Option<Box<dyn ParseTree>>
Parse source code and return a generic parse tree.
First tries the custom parse_impl from LanguageTraitImpl. If that returns None, falls back to tree-sitter parsing if available.
Source§fn supported_extensions() -> &'static [&'static str]
fn supported_extensions() -> &'static [&'static str]
Return the list of supported file extensions for this language
Source§fn block_kind(kind_id: u16) -> BlockKind
fn block_kind(kind_id: u16) -> BlockKind
Get the Block kind for a given token ID
Source§fn block_kind_with_parent(
kind_id: u16,
field_id: u16,
parent_kind_id: u16,
) -> BlockKind
fn block_kind_with_parent( kind_id: u16, field_id: u16, parent_kind_id: u16, ) -> BlockKind
Get the Block kind for a given token ID with parent context
Source§fn is_test_attribute(node: &dyn ParseNode, source: &[u8]) -> bool
fn is_test_attribute(node: &dyn ParseNode, source: &[u8]) -> bool
Check if a parse node is a test attribute that should cause the next item to be skipped
Source§fn token_str(kind_id: u16) -> Option<&'static str>
fn token_str(kind_id: u16) -> Option<&'static str>
Get the string representation of a token ID
Source§fn is_valid_token(kind_id: u16) -> bool
fn is_valid_token(kind_id: u16) -> bool
Check if a token ID is valid
Source§fn manifest_name() -> &'static str
fn manifest_name() -> &'static str
Get the manifest file name for this language (e.g., “Cargo.toml”, “package.json”).
Source§fn container_dirs() -> &'static [&'static str]
fn container_dirs() -> &'static [&'static str]
Get the container directories that don’t add semantic meaning.
These directories are skipped in module detection (e.g., “src”, “lib”).
fn collect_init<'tcx>(cc: &'tcx CompileCtxt<'tcx>) -> ScopeStack<'tcx>
Source§fn collect_symbols<'tcx, C>(
unit: CompileUnit<'tcx>,
node: HirNode<'tcx>,
scope_stack: ScopeStack<'tcx>,
config: &C,
) -> &'tcx Scope<'tcx>
fn collect_symbols<'tcx, C>( unit: CompileUnit<'tcx>, node: HirNode<'tcx>, scope_stack: ScopeStack<'tcx>, config: &C, ) -> &'tcx Scope<'tcx>
TOOD: can we remove the generics here, we could make a new crate or
bring llmcc-resolver into core to solve the cross dependency
fn bind_symbols<'tcx, C>( unit: CompileUnit<'tcx>, node: HirNode<'tcx>, globals: &'tcx Scope<'tcx>, config: &C, )
Source§fn name_field() -> u16
fn name_field() -> u16
Get the field ID that represents the “name” of a construct.
Source§fn type_field() -> u16
fn type_field() -> u16
Get the field ID that represents the “type” of a construct.
Source§fn trait_field() -> u16
fn trait_field() -> u16
Get the field ID that represents the “trait” in impl blocks.
Used for
impl Trait for Type { } to identify the trait being implemented.Source§fn is_container(name: &str) -> bool
fn is_container(name: &str) -> bool
Check if a directory name is a container directory.
Source§impl LanguageTraitImpl for LangTypeScript
impl LanguageTraitImpl for LangTypeScript
Source§fn block_kind_with_parent_impl(
kind_id: u16,
field_id: u16,
_parent_kind_id: u16,
) -> BlockKind
fn block_kind_with_parent_impl( kind_id: u16, field_id: u16, _parent_kind_id: u16, ) -> BlockKind
Block kind with parent context - handles special TypeScript cases
Source§fn is_test_attribute_impl(node: &dyn ParseNode, source: &[u8]) -> bool
fn is_test_attribute_impl(node: &dyn ParseNode, source: &[u8]) -> bool
Check if the given parse node is a TypeScript test attribute. Detects: @test, describe(), it(), test(), etc.
fn collect_init_impl<'tcx>(cc: &'tcx CompileCtxt<'tcx>) -> ScopeStack<'tcx>
Source§fn parse_impl(text: impl AsRef<[u8]>) -> Option<Box<dyn ParseTree>>
fn parse_impl(text: impl AsRef<[u8]>) -> Option<Box<dyn ParseTree>>
Custom parse implementation for this language.
Source§fn supported_extensions_impl() -> &'static [&'static str]
fn supported_extensions_impl() -> &'static [&'static str]
Supported file extensions for this language.
Source§fn manifest_name_impl() -> &'static str
fn manifest_name_impl() -> &'static str
The manifest file name for this language (e.g., “Cargo.toml”, “package.json”).
Source§fn container_dirs_impl() -> &'static [&'static str]
fn container_dirs_impl() -> &'static [&'static str]
Container directories that don’t add semantic meaning (e.g., “src”, “lib”).
fn collect_symbols_impl<'tcx, C>( unit: CompileUnit<'tcx>, node: HirNode<'tcx>, scope_stack: ScopeStack<'tcx>, config: &C, ) -> &'tcx Scope<'tcx>
fn bind_symbols_impl<'tcx, C>( unit: CompileUnit<'tcx>, node: HirNode<'tcx>, globals: &'tcx Scope<'tcx>, config: &C, )
Auto Trait Implementations§
impl Freeze for LangTypeScript
impl RefUnwindSafe for LangTypeScript
impl Send for LangTypeScript
impl Sync for LangTypeScript
impl Unpin for LangTypeScript
impl UnwindSafe for LangTypeScript
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more