@lsp-hover-definitions Feature: LSP hover and definitions methods Verifies that LspClient and LspRuntime implement get_hover and get_definitions with full path coverage. # ── LspClient method existence ───────────────────────── Scenario: LspClient has get_hover method for lsp_hd Then LspClient should have a "get_hover" method for lsp_hd Scenario: LspClient has get_definitions method for lsp_hd Then LspClient should have a "get_definitions" method for lsp_hd # ── LspClient get_hover paths ────────────────────────── Scenario: LspClient get_hover returns dict result for lsp_hd When I call LspClient.get_hover with mock returning a dict for lsp_hd Then the hover result should be a dict for lsp_hd Scenario: LspClient get_hover returns None when server returns null for lsp_hd When I call LspClient.get_hover with mock returning null for lsp_hd Then the hover result should be None for lsp_hd Scenario: LspClient get_hover returns None for unexpected type for lsp_hd When I call LspClient.get_hover with mock returning an integer for lsp_hd Then the hover result should be None for lsp_hd # ── LspClient get_definitions paths ──────────────────── Scenario: LspClient get_definitions returns list of Locations for lsp_hd When I call LspClient.get_definitions with mock returning a list for lsp_hd Then the definitions result should be a list with 1 item for lsp_hd Scenario: LspClient get_definitions wraps single Location in list for lsp_hd When I call LspClient.get_definitions with mock returning a single dict for lsp_hd Then the definitions result should be a list with 1 item for lsp_hd Scenario: LspClient get_definitions returns empty list for null for lsp_hd When I call LspClient.get_definitions with mock returning null for lsp_hd Then the definitions result should be an empty list for lsp_hd Scenario: LspClient get_definitions returns empty for unexpected type for lsp_hd When I call LspClient.get_definitions with mock returning an integer for lsp_hd Then the definitions result should be an empty list for lsp_hd # ── LspRuntime method existence ──────────────────────── Scenario: LspRuntime has get_hover method for lsp_hd Then LspRuntime should have a "get_hover" method for lsp_hd Scenario: LspRuntime has get_definitions method for lsp_hd Then LspRuntime should have a "get_definitions" method for lsp_hd # ── LspRuntime input validation ──────────────────────── Scenario: LspRuntime get_hover rejects empty name for lsp_hd When I call LspRuntime.get_hover with empty name for lsp_hd Then a ValueError should be raised for lsp_hd with message "name" Scenario: LspRuntime get_hover rejects empty file_path for lsp_hd When I call LspRuntime.get_hover with empty file_path for lsp_hd Then a ValueError should be raised for lsp_hd with message "file_path" Scenario: LspRuntime get_hover rejects line 0 for lsp_hd When I call LspRuntime.get_hover with line 0 for lsp_hd Then a ValueError should be raised for lsp_hd with message "line" Scenario: LspRuntime get_hover rejects column 0 for lsp_hd When I call LspRuntime.get_hover with column 0 for lsp_hd Then a ValueError should be raised for lsp_hd with message "column" Scenario: LspRuntime get_definitions rejects empty name for lsp_hd When I call LspRuntime.get_definitions with empty name for lsp_hd Then a ValueError should be raised for lsp_hd with message "name" Scenario: LspRuntime get_definitions rejects empty file_path for lsp_hd When I call LspRuntime.get_definitions with empty file_path for lsp_hd Then a ValueError should be raised for lsp_hd with message "file_path" Scenario: LspRuntime get_definitions rejects line 0 for lsp_hd When I call LspRuntime.get_definitions with line 0 for lsp_hd Then a ValueError should be raised for lsp_hd with message "line" Scenario: LspRuntime get_definitions rejects column 0 for lsp_hd When I call LspRuntime.get_definitions with column 0 for lsp_hd Then a ValueError should be raised for lsp_hd with message "column" # ── Tool adapter wiring ──────────────────────────────── Scenario: Tool adapter maps HOVER capability for lsp_hd Then the tool adapter capability map should include "hover" for lsp_hd Scenario: Tool adapter maps DEFINITIONS capability for lsp_hd Then the tool adapter capability map should include "definitions" for lsp_hd