# `Minga.Language.Symbol`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga/language/symbol.ex#L1)

A document symbol extracted from a tree-sitter `tags.scm` query.

Symbols are flat parser facts: name, kind, and source range. Presentation layers can derive hierarchy from range containment when they need breadcrumbs or outlines.

# `kind`

```elixir
@type kind() :: :function | :module | :method | :interface | :test
```

Symbol kind normalized from `@definition.*` captures.

# `range`

```elixir
@type range() ::
  {non_neg_integer(), non_neg_integer(), non_neg_integer(), non_neg_integer()}
```

Zero-based source range `{start_row, start_col, end_row, end_col}`.

# `t`

```elixir
@type t() :: %Minga.Language.Symbol{kind: kind(), name: String.t(), range: range()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
