MCPcopy Create free account
hub / github.com/PHPantom-dev/phpantom_lsp / resolve_class_modifiers

Method resolve_class_modifiers

src/semantic_tokens.rs:416–450  ·  view source on GitHub ↗

Resolve modifiers for a class reference (e.g. deprecated).

(
        &self,
        name: &str,
        is_fqn: bool,
        ctx: &crate::types::FileContext,
        offset: u32,
    )

Source from the content-addressed store, hash-verified

414
415 /// Resolve modifiers for a class reference (e.g. deprecated).
416 fn resolve_class_modifiers(
417 &self,
418 name: &str,
419 is_fqn: bool,
420 ctx: &crate::types::FileContext,
421 offset: u32,
422 ) -> u32 {
423 let fqn = if is_fqn {
424 name.to_string()
425 } else {
426 ctx.resolve_name_at(name, offset)
427 };
428
429 // Check in-file classes.
430 for class in &ctx.classes {
431 let class_fqn = match &class.file_namespace {
432 Some(ns) => format!("{}\\{}", ns, class.name),
433 None => class.name.to_string(),
434 };
435 if class_fqn == fqn || class.name == fqn {
436 if class.deprecation_message.is_some() {
437 return TM_DEPRECATED;
438 }
439 return 0;
440 }
441 }
442
443 if let Some(class_info) = self.find_or_load_class(&fqn)
444 && class_info.deprecation_message.is_some()
445 {
446 return TM_DEPRECATED;
447 }
448
449 0
450 }
451
452 /// Resolve the token type for a class declaration by looking up
453 /// the class in the file's AST.

Callers 1

collect_tokensMethod · 0.80

Calls 2

resolve_name_atMethod · 0.80
find_or_load_classMethod · 0.80

Tested by

no test coverage detected