Feature: LSP Tool Adapter uncovered-line coverage Exercise runtime-handler branches, workspace-symbols paths, missing-argument guards, and the None-config check in LspToolAdapter.generate_tool_specs (tool_adapter.py lines 126-153 and 198). Scenario: ltacov generate_tool_specs raises ValueError when config is None Given ltacov an LspToolAdapter with no runtime When ltacov generate_tool_specs is called with None config Then ltacov a ValueError with message "config must not be None" is raised Scenario: ltacov workspace-symbols handler returns error when query is empty Given ltacov a mock LspRuntime And ltacov a runtime handler for workspace_symbols capability When ltacov the handler is called with no query argument Then ltacov the result is an error dict saying "query is required" Scenario: ltacov workspace-symbols handler raises LspNotAvailableError with valid query Given ltacov a mock LspRuntime And ltacov a runtime handler for workspace_symbols capability When ltacov the handler is called with query "MyClass" Then ltacov an LspNotAvailableError is raised mentioning "workspace_symbols" Scenario: ltacov runtime handler returns error when file_path is missing Given ltacov a mock LspRuntime And ltacov a runtime handler for diagnostics capability When ltacov the handler is called with no file_path argument Then ltacov the result is an error dict saying "file_path is required" Scenario: ltacov runtime handler delegates diagnostics to runtime Given ltacov a mock LspRuntime And ltacov the runtime get_diagnostics returns sample items And ltacov a runtime handler for diagnostics capability When ltacov the handler is called with file_path "src/main.py" Then ltacov the result contains a "diagnostics" key with the sample items Scenario: ltacov runtime handler delegates completions to runtime Given ltacov a mock LspRuntime And ltacov the runtime get_completions returns sample items And ltacov a runtime handler for completions capability When ltacov the handler is called with file_path "src/main.py" line 10 column 5 Then ltacov the result contains a "completions" key with the sample items Scenario: ltacov runtime handler raises LspNotAvailableError for unimplemented capability Given ltacov a mock LspRuntime And ltacov a runtime handler for references capability When ltacov the handler is called with file_path "src/main.py" Then ltacov an LspNotAvailableError is raised mentioning "references"