дзеркало
https://github.com/l0ng-ai/openidea.git
синхронізовано 2026-11-09 03:05:40 +02:00
Root causes: Typo "Change to" replaced one occurrence even for declared names (breaking references); inspections had no Disable / Edit settings controls anywhere; en_US Hunspell does not derive agent nouns like "checkpointer" and compound identifier words were flagged; local inspections (Typo, file references, SQL) never reached Problems. Fix (IDEA): "Typo: Rename to…" renames via LSP rename, falling back to syntax-based local rename, never a silent single replace, and lists identifier-safe words only; intention submenu (→) with Edit inspection profile setting / Disable inspection for every inspection; Problems and Inspection Results get Disable Inspection, Change Severity, Edit Inspection Profile Setting; Typo options Process code / literals / comments; -er/-ers derivation and identifier compounds accepted, common misspellings still flagged. Siblings covered: all LSP and built-in inspections' intentions, file reference and SQL inspections in Problems, severity counter. Verified: ide-spell tests (issue examples + ~50 real misspellings), vitest (286), in-app on macOS: only 'mesage' flagged, submenu, Rename to → 'message' updated both occurrences. Claude-Session: https://claude.ai/code/session_01VUYsdXA2nkF5v6zsC93dpn
20 рядки
704 B
TypeScript
20 рядки
704 B
TypeScript
/**
|
|
* Diagnostics computed in the UI (Typo, file references, SQL inspections), as
|
|
* full per-(file, producer) replacements like the backend's `diagnostics`
|
|
* event, so the Problems view sees them as well as the editor.
|
|
*/
|
|
import type { Diagnostic } from "@/bindings";
|
|
|
|
type Listener = (path: string, producer: string, items: readonly Diagnostic[]) => void;
|
|
|
|
const listeners = new Set<Listener>();
|
|
|
|
export function publishLocalDiagnostics(path: string, producer: string, items: readonly Diagnostic[]) {
|
|
listeners.forEach((l) => l(path, producer, items));
|
|
}
|
|
|
|
export function onLocalDiagnostics(listener: Listener): () => void {
|
|
listeners.add(listener);
|
|
return () => listeners.delete(listener);
|
|
}
|