Problem
The LSP layer duplicates state that should live in Workspace:
- document_texts: HashMap<PathBuf, String> - tracked separately from workspace files
- parse_errors: HashMap<PathBuf, Vec> - tracked separately from workspace files
- Direct std::fs::read_to_string calls bypassing core abstractions
This violates separation of concerns - LSP should be a thin protocol adapter, not a state manager.
Implementation Plan
Benefits
- Single source of truth for document state
- LSP becomes a thin protocol adapter
- Easier testing (mock FileLoader)
- Better separation of concerns
Problem
The LSP layer duplicates state that should live in Workspace:
This violates separation of concerns - LSP should be a thin protocol adapter, not a state manager.
Implementation Plan
Benefits