docolint-dictionary 0.1.5

Workspace-root ignore-word dictionary for docolint
Documentation
# Architecture

## Purpose

Provide local ignore-word filtering based on a workspace-root `.docolint-ignore` file.

## Public API

- `Dictionary::new()`: empty dictionary.
- `Dictionary::load()`: load the workspace-root ignore file.
- `Dictionary::is_ignored()`: case-insensitive membership check.
- `Dictionary::add_word()`: append word to target ignore file.
- `Dictionary::filter_errors()`: remove ignored `GrammarError` matches from result set.

## Internal Map

- Root load: read only `workspace_root/.docolint-ignore`.
- Normalization: lowercase stored words for case-insensitive matching.
- Offset translation: convert character offsets to byte offsets before slicing checked text.

## Key Flows

- File open/change -> load workspace-root ignore set for current document.
- Ignore-word action -> append to workspace-root file -> keep in-memory set aligned.
- Grammar result filter -> drop matches whose text resolves to ignored words.

## Tests

- In-module tests cover root-only loading, case-insensitive matching, file creation, filtering, Unicode-safe offsets.

## Update When

- `.docolint-ignore` lookup rules change.
- Filtering behavior or normalization changes.
- Ignore file write behavior changes.