HandleRequest implements Handler.
(ctx context.Context, method string, params json.Value)
| 530 | |
| 531 | // HandleRequest implements Handler. |
| 532 | func (s *Session) HandleRequest(ctx context.Context, method string, params json.Value) (any, error) { |
| 533 | // Handle simple methods that don't need param parsing |
| 534 | switch method { |
| 535 | case "echo": |
| 536 | // Return raw binary for msgpack protocol compatibility |
| 537 | if s.useBinaryResponses { |
| 538 | return RawBinary(params), nil |
| 539 | } |
| 540 | return params, nil |
| 541 | case "ping": |
| 542 | return "pong", nil |
| 543 | } |
| 544 | |
| 545 | parsed, err := unmarshalPayload(method, params) |
| 546 | if err != nil { |
| 547 | return nil, fmt.Errorf("%w: %w", ErrInvalidRequest, err) |
| 548 | } |
| 549 | |
| 550 | switch method { |
| 551 | case string(MethodRelease): |
| 552 | return s.handleRelease(ctx, parsed.(*ReleaseParams)) |
| 553 | case string(MethodInitialize): |
| 554 | return s.handleInitialize(ctx) |
| 555 | case string(MethodUpdateSnapshot): |
| 556 | return s.handleUpdateSnapshot(ctx, parsed.(*UpdateSnapshotParams)) |
| 557 | case string(MethodParseConfigFile): |
| 558 | return s.handleParseConfigFile(ctx, parsed.(*ParseConfigFileParams)) |
| 559 | case string(MethodGetDefaultProjectForFile): |
| 560 | return s.handleGetDefaultProjectForFile(ctx, parsed.(*GetDefaultProjectForFileParams)) |
| 561 | case string(MethodGetSourceFile): |
| 562 | return s.handleGetSourceFile(ctx, parsed.(*GetSourceFileParams)) |
| 563 | case string(MethodGetSourceFileNames): |
| 564 | return s.handleGetSourceFileNames(ctx, parsed.(*GetSourceFileNamesParams)) |
| 565 | case string(MethodGetSourceFileMetadata): |
| 566 | return s.handleGetSourceFileMetadata(ctx, parsed.(*GetSourceFileParams)) |
| 567 | case string(MethodGetSymbolAtPosition): |
| 568 | return s.handleGetSymbolAtPosition(ctx, parsed.(*GetSymbolAtPositionParams)) |
| 569 | case string(MethodGetSymbolsAtPositions): |
| 570 | return s.handleGetSymbolsAtPositions(ctx, parsed.(*GetSymbolsAtPositionsParams)) |
| 571 | case string(MethodGetSymbolAtLocation): |
| 572 | return s.handleGetSymbolAtLocation(ctx, parsed.(*GetSymbolAtLocationParams)) |
| 573 | case string(MethodGetSymbolsAtLocations): |
| 574 | return s.handleGetSymbolsAtLocations(ctx, parsed.(*GetSymbolsAtLocationsParams)) |
| 575 | case string(MethodGetTypeOfSymbol): |
| 576 | return s.handleGetTypeOfSymbol(ctx, parsed.(*GetTypeOfSymbolParams)) |
| 577 | case string(MethodGetTypesOfSymbols): |
| 578 | return s.handleGetTypesOfSymbols(ctx, parsed.(*GetTypesOfSymbolsParams)) |
| 579 | case string(MethodGetDeclaredTypeOfSymbol): |
| 580 | return s.handleGetDeclaredTypeOfSymbol(ctx, parsed.(*GetTypeOfSymbolParams)) |
| 581 | case string(MethodResolveName): |
| 582 | return s.handleResolveName(ctx, parsed.(*ResolveNameParams)) |
| 583 | case string(MethodGetSignaturesOfType): |
| 584 | return s.handleGetSignaturesOfType(ctx, parsed.(*GetSignaturesOfTypeParams)) |
| 585 | case string(MethodGetResolvedSignature): |
| 586 | return s.handleGetResolvedSignature(ctx, parsed.(*GetResolvedSignatureParams)) |
| 587 | case string(MethodGetTypeAtLocation): |
| 588 | return s.handleGetTypeAtLocation(ctx, parsed.(*GetTypeAtLocationParams)) |
| 589 | case string(MethodGetTypeAtLocations): |
nothing calls this directly
no test coverage detected