mirror of
https://github.com/Darkrock-Studios/hammer-editor.git
synced 2026-08-21 23:43:14 +00:00
Entry names and aliases become session-only words (AppLocal scope, never the OS dictionary) while their project is open, cleared on close. Words are tokenized to single words and filtered against the base dictionary so only unknown spellings are added. Three levels of control, all live-reactive: - Global toggle in Spell Check settings (SpellCheckerSettings, default on) - Per-project toggle (ProjectData.encyclopediaDictionary, synced; hashed only when false so existing hashes are stable) - Per-entry exclusion (EntryContent.excludeFromDictionary, synced; hashed only when true, same zero-bytes-at-default rule as aliases) SpellCheckRepository holds session words keyed by ProjectDef and emits a fresh checker instance whenever the effective word set changes, so open editors re-run their full scan; the same path re-applies words on locale change and re-enable. ProjectDictionaryService (ProjectDefScope, eagerly started in initializeProjectScope) rebuilds the word set from the encyclopedia on entry changes, debounced, and clears it on scope close. |
||
|---|---|---|
| .. | ||
| src | ||
| build.gradle.kts | ||