func()

in src/ulsp/handler/ulsp-daemon/router.go [24:131]


func (r *jsonRPCRouter) HandleReq(ctx context.Context, reply jsonrpc2.Replier, req jsonrpc2.Request) error {
	ctx = context.WithValue(ctx, entity.SessionContextKey, r.uuid)

	// Routing to each of the available methods in go.lsp.dev/protocol will occur here.
	// Results are passed back to reply to be returned to the client.
	switch req.Method() {
	// Lifecycle related methods.
	case protocol.MethodInitialize:
		return r.Initialize(ctx, reply, req)

	case protocol.MethodInitialized:
		return r.Initialized(ctx, reply, req)

	case protocol.MethodShutdown:
		return r.Shutdown(ctx, reply, req)

	case protocol.MethodExit:
		return r.Exit(ctx, reply, req)

	case MethodRequestFullShutdown:
		return r.RequestFullShutdown(ctx, reply, req)

	// Document related methods.
	case protocol.MethodTextDocumentDidChange:
		return r.DidChange(ctx, reply, req)

	case protocol.MethodWorkspaceDidChangeWatchedFiles:
		return r.DidChangeWatchedFiles(ctx, reply, req)

	case protocol.MethodTextDocumentDidOpen:
		return r.DidOpen(ctx, reply, req)

	case protocol.MethodTextDocumentDidClose:
		return r.DidClose(ctx, reply, req)

	case protocol.MethodTextDocumentWillSave:
		return r.WillSave(ctx, reply, req)

	case protocol.MethodTextDocumentWillSaveWaitUntil:
		return r.WillSaveWaitUntil(ctx, reply, req)

	case protocol.MethodTextDocumentDidSave:
		return r.DidSave(ctx, reply, req)

	case protocol.MethodWillRenameFiles:
		return r.WillRenameFiles(ctx, reply, req)

	case protocol.MethodDidRenameFiles:
		return r.DidRenameFiles(ctx, reply, req)

	case protocol.MethodWillCreateFiles:
		return r.WillCreateFiles(ctx, reply, req)

	case protocol.MethodDidCreateFiles:
		return r.DidCreateFiles(ctx, reply, req)

	case protocol.MethodWillDeleteFiles:
		return r.WillDeleteFiles(ctx, reply, req)

	case protocol.MethodDidDeleteFiles:
		return r.DidDeleteFiles(ctx, reply, req)

	// Code intel related methods
	case protocol.MethodTextDocumentCodeAction:
		return r.CodeAction(ctx, reply, req)

	case protocol.MethodTextDocumentCodeLens:
		return r.CodeLens(ctx, reply, req)

	case protocol.MethodCodeLensRefresh:
		return r.CodeLensRefresh(ctx, reply, req)

	case protocol.MethodCodeLensResolve:
		return r.CodeLensResolve(ctx, reply, req)

	case protocol.MethodTextDocumentDeclaration:
		return r.GotoDeclaration(ctx, reply, req)

	case protocol.MethodTextDocumentDefinition:
		return r.GotoDefinition(ctx, reply, req)

	case protocol.MethodTextDocumentTypeDefinition:
		return r.GotoTypeDefinition(ctx, reply, req)

	case protocol.MethodTextDocumentImplementation:
		return r.GotoImplementation(ctx, reply, req)

	case protocol.MethodTextDocumentReferences:
		return r.References(ctx, reply, req)

	case protocol.MethodTextDocumentHover:
		return r.Hover(ctx, reply, req)

	case protocol.MethodTextDocumentDocumentSymbol:
		return r.DocumentSymbol(ctx, reply, req)

	// Workspace methods
	case protocol.MethodWorkspaceExecuteCommand:
		return r.ExecuteCommand(ctx, reply, req)

	// Window methods
	case protocol.MethodWorkDoneProgressCancel:
		return r.WorkDoneProgressCancel(ctx, reply, req)

	default:
		return jsonrpc2.MethodNotFoundHandler(ctx, reply, req)
	}
}