Languages / VHDL · Edit queries/tags.scm

Tier 2 · Declarative tags.scm

VHDL

Declarative tree-sitter query plugin powered by QueryLanguagePlugin (rgctl-lang-runtime) and crates/rgctl-lang-vhdl/queries/tags.scm. Compiles once at startup, validates captures against the Tier-2 vocabulary gate, and extracts symbols, container hierarchy (Container::member), imports, and call edges.

Grammar Crate
tree-sitter-vhdl
Plugin
QueryLanguagePlugin (rgctl-lang-vhdl)
Extensions
.vhd, .vhdl
Discover
rgctl discover . -l vhdl
Function Kinds
subprogram_definition
Class / Container Kinds
component_declaration

Capture summary

CapturePatternsGraph mapping
@definition.class1Emits SymbolType::Class (acts as enclosing container).
@definition.function2Emits SymbolType::Function (acts as caller scope & container).
@definition.module2Emits SymbolType::Module (acts as enclosing container).
@name7Symbol identifier or target callee/type name.
@reference.call1Emits RelationType::Calls from innermost enclosing function to @name.
@reference.class1Emits RelationType::References to @name.

Query source (crates/rgctl-lang-vhdl/queries/tags.scm)

; Tier-2 VHDL tags for rgctl.

(entity_declaration
  entity: (identifier) @name) @definition.module

(architecture_definition
  architecture: (identifier) @name) @definition.module

(component_declaration
  component: (identifier) @name) @definition.class

(subprogram_definition
  (function_specification
    function: (identifier) @name)) @definition.function

(subprogram_definition
  (procedure_specification
    procedure: (identifier) @name)) @definition.function

(procedure_call_statement
  (name) @name) @reference.call

(component_instantiation_statement
  (instantiated_unit
    entity: (name) @name)) @reference.class

Related: Tier 2 language support · Tier 1 language support · Discovering and indexing