Languages / Clojure · Edit queries/tags.scm

Tier 2 · Declarative tags.scm

Clojure

Declarative tree-sitter query plugin powered by QueryLanguagePlugin (rgctl-lang-runtime) and crates/rgctl-lang-clojure/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-clojure
Plugin
QueryLanguagePlugin (rgctl-lang-clojure)
Extensions
.clj, .cljs, .cljc
Discover
rgctl discover . -l clojure
Function Kinds
list_lit
Class / Container Kinds
—

Capture summary

CapturePatternsGraph mapping
@_def2Lexical scope capture.
@_ns2Lexical scope capture.
@definition.function1Emits SymbolType::Function (acts as caller scope & container).
@definition.module1Emits SymbolType::Module (acts as enclosing container).
@name4Symbol identifier or target callee/type name.
@reference.call1Emits RelationType::Calls from innermost enclosing function to @name.

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

; Tier-2 Clojure tags for rgctl (`handler = "queries"`).

(list_lit
  . (sym_lit) @_def (#any-of? @_def "defn" "defn-" "defmacro")
  . (sym_lit) @name) @definition.function

(list_lit
  . (sym_lit) @_ns (#eq? @_ns "ns")
  . (sym_lit) @name) @definition.module

(list_lit
  . (sym_lit) @name
  (#not-any-of? @name "ns" "def" "defn" "defn-" "defmacro" "defprotocol" "defrecord" "deftype" "let" "if" "when" "cond" "do" "fn" "quote" "require" "import" "use")) @reference.call

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