# `Kreuzberg.TreeSitterProcessConfig`
[🔗](https://github.com/kreuzberg-dev/kreuzberg/blob/main/lib/kreuzberg/tree_sitter_config.ex#L1)

Tree-sitter process configuration for code extraction.

Controls which code elements are extracted during tree-sitter parsing.

## Fields

  * `:structure` - Extract structural items (default: true)
  * `:imports` - Extract import statements (default: true)
  * `:exports` - Extract export statements (default: true)
  * `:comments` - Extract comments (default: false)
  * `:docstrings` - Extract docstrings (default: false)
  * `:symbols` - Extract symbol definitions (default: false)
  * `:diagnostics` - Include parse diagnostics (default: false)
  * `:chunk_max_size` - Maximum chunk size in bytes, nil disables chunking

# `t`

```elixir
@type t() :: %Kreuzberg.TreeSitterProcessConfig{
  chunk_max_size: non_neg_integer() | nil,
  comments: boolean(),
  content_mode: String.t() | nil,
  diagnostics: boolean(),
  docstrings: boolean(),
  exports: boolean(),
  imports: boolean(),
  structure: boolean(),
  symbols: boolean()
}
```

# `from_map`

```elixir
@spec from_map(map()) :: t()
```

Creates a TreeSitterProcessConfig struct from a map.

## Examples

    iex> Kreuzberg.TreeSitterProcessConfig.from_map(%{"structure" => true, "comments" => true})
    %Kreuzberg.TreeSitterProcessConfig{structure: true, comments: true}

# `to_map`

```elixir
@spec to_map(t()) :: map()
```

Converts a TreeSitterProcessConfig struct to a map.

---

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