Skip to main content

Crate harness_lsp

Crate harness_lsp 

Source
Expand description

LSP tool — Rust port of @agent-sh/harness-lsp.

Conforms to agent-knowledge/design/lsp.md. Same contract as the TS package: 1-indexed position boundary, discriminated-union result, hover/definition/references/documentSymbol/workspaceSymbol/implementation operations, server_starting exponential retry hint, stub client for tests + real spawn client for production.

Structs§

LspDefinitionOk
LspDocumentSymbolOk
LspError
LspHoverOk
LspHoverResult
LspImplementationOk
LspLocation
LspManifest
LspNoResults
LspParams
LspPermissionPolicy
LspReferencesOk
LspServerProfile
LspServerStarting
LspSessionConfig
LspSymbolInfo
LspWorkspaceSymbolOk
Position1
ServerHandle
SpawnLspClient
StubBehavior
StubLspClient
StubResponses

Enums§

LspOperation
LspParseError
LspResult
LspValidateResult
ServerState

Constants§

DEFAULT_HEAD_LIMIT
DEFAULT_TIMEOUT_MS
LSP_SYMBOL_KIND_NAMES
LSP SymbolKind numeric → short name. Index = LSP SymbolKind enum value.
LSP_TOOL_DESCRIPTION
LSP_TOOL_NAME
MANIFEST_FILENAME
MAX_HOVER_MARKDOWN_BYTES
MAX_PREVIEW_LINE_LENGTH
MAX_WORKSPACE_SYMBOLS_SCANNED
SERVER_STARTING_RETRY_BASE_MS
SERVER_STARTING_RETRY_MAX_MS
SERVER_STARTUP_MAX_WAIT_MS
SESSION_BACKSTOP_MS

Traits§

LspClient

Functions§

cap_hover_markdown
cap_preview
find_lsp_root
format_document_symbols
format_hover
format_locations
format_no_results
format_server_starting
format_workspace_symbols
kind_name
load_manifest
Load an .lsp.json manifest from explicit_path if given, else from <workspace_root>/.lsp.json. Returns Ok(None) when the file is missing (that’s not an error; orchestrator returns SERVER_NOT_AVAILABLE). Parse / shape errors are Err(msg).
lsp
no_results_hint
profile_for_path
safe_parse_lsp_params
validate_per_op
Cross-field validation — strictObject passes, now we verify the per-operation required fields.