mirror of
https://github.com/golang/go
synced 2024-11-18 19:14:40 -07:00
827390e901
This CL gets code.ts to generate code for $/progress and window/workDoneProgres/create messages. $/progress uses a ProgressParams type which contains one of three new data types, WorkDoneProgressBegin, WorkDonProgressEnd, WorkDoneProgressReport. In addition, a *TextEdit is now generated for CompletionItem.TextEdit. The substantive differences in code.ts are around line 451 and line 682. Everything else is whitespace caused by vscode formatting typescript differently on different OSes. Change-Id: Ide441e6e0029cbc8401d6476f6a939216cc89634 Reviewed-on: https://go-review.googlesource.com/c/tools/+/223743 Run-TryBot: Peter Weinberger <pjw@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rebecca Stambler <rstambler@golang.org>
242 lines
7.9 KiB
Go
242 lines
7.9 KiB
Go
package protocol
|
|
|
|
// Package protocol contains data types and code for LSP jsonrpcs
|
|
// generated automatically from vscode-languageserver-node
|
|
// commit: 151b520c995ee3d76729b5c46258ab273d989726
|
|
// last fetched Fri Mar 13 2020 17:02:20 GMT-0400 (Eastern Daylight Time)
|
|
|
|
// Code generated (see typescript/README.md) DO NOT EDIT.
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
|
|
"golang.org/x/tools/internal/jsonrpc2"
|
|
"golang.org/x/tools/internal/telemetry/event"
|
|
"golang.org/x/tools/internal/xcontext"
|
|
)
|
|
|
|
type Client interface {
|
|
ShowMessage(context.Context, *ShowMessageParams) error
|
|
LogMessage(context.Context, *LogMessageParams) error
|
|
Event(context.Context, *interface{}) error
|
|
PublishDiagnostics(context.Context, *PublishDiagnosticsParams) error
|
|
Progress(context.Context, *ProgressParams) error
|
|
WorkspaceFolders(context.Context) ([]WorkspaceFolder /*WorkspaceFolder[] | null*/, error)
|
|
Configuration(context.Context, *ParamConfiguration) ([]interface{}, error)
|
|
WorkDoneProgressCreate(context.Context, *WorkDoneProgressCreateParams) error
|
|
RegisterCapability(context.Context, *RegistrationParams) error
|
|
UnregisterCapability(context.Context, *UnregistrationParams) error
|
|
ShowMessageRequest(context.Context, *ShowMessageRequestParams) (*MessageActionItem /*MessageActionItem | null*/, error)
|
|
ApplyEdit(context.Context, *ApplyWorkspaceEditParams) (*ApplyWorkspaceEditResponse, error)
|
|
}
|
|
|
|
func (h clientHandler) Deliver(ctx context.Context, r *jsonrpc2.Request, delivered bool) bool {
|
|
if delivered {
|
|
return false
|
|
}
|
|
if ctx.Err() != nil {
|
|
ctx := xcontext.Detach(ctx)
|
|
r.Reply(ctx, nil, jsonrpc2.NewErrorf(RequestCancelledError, ""))
|
|
return true
|
|
}
|
|
switch r.Method {
|
|
case "window/showMessage": // notif
|
|
var params ShowMessageParams
|
|
if err := json.Unmarshal(*r.Params, ¶ms); err != nil {
|
|
sendParseError(ctx, r, err)
|
|
return true
|
|
}
|
|
if err := h.client.ShowMessage(ctx, ¶ms); err != nil {
|
|
event.Error(ctx, "", err)
|
|
}
|
|
return true
|
|
case "window/logMessage": // notif
|
|
var params LogMessageParams
|
|
if err := json.Unmarshal(*r.Params, ¶ms); err != nil {
|
|
sendParseError(ctx, r, err)
|
|
return true
|
|
}
|
|
if err := h.client.LogMessage(ctx, ¶ms); err != nil {
|
|
event.Error(ctx, "", err)
|
|
}
|
|
return true
|
|
case "telemetry/event": // notif
|
|
var params interface{}
|
|
if err := json.Unmarshal(*r.Params, ¶ms); err != nil {
|
|
sendParseError(ctx, r, err)
|
|
return true
|
|
}
|
|
if err := h.client.Event(ctx, ¶ms); err != nil {
|
|
event.Error(ctx, "", err)
|
|
}
|
|
return true
|
|
case "textDocument/publishDiagnostics": // notif
|
|
var params PublishDiagnosticsParams
|
|
if err := json.Unmarshal(*r.Params, ¶ms); err != nil {
|
|
sendParseError(ctx, r, err)
|
|
return true
|
|
}
|
|
if err := h.client.PublishDiagnostics(ctx, ¶ms); err != nil {
|
|
event.Error(ctx, "", err)
|
|
}
|
|
return true
|
|
case "$/progress": // notif
|
|
var params ProgressParams
|
|
if err := json.Unmarshal(*r.Params, ¶ms); err != nil {
|
|
sendParseError(ctx, r, err)
|
|
return true
|
|
}
|
|
if err := h.client.Progress(ctx, ¶ms); err != nil {
|
|
event.Error(ctx, "", err)
|
|
}
|
|
return true
|
|
case "workspace/workspaceFolders": // req
|
|
if r.Params != nil {
|
|
r.Reply(ctx, nil, jsonrpc2.NewErrorf(jsonrpc2.CodeInvalidParams, "Expected no params"))
|
|
return true
|
|
}
|
|
resp, err := h.client.WorkspaceFolders(ctx)
|
|
if err := r.Reply(ctx, resp, err); err != nil {
|
|
event.Error(ctx, "", err)
|
|
}
|
|
return true
|
|
case "workspace/configuration": // req
|
|
var params ParamConfiguration
|
|
if err := json.Unmarshal(*r.Params, ¶ms); err != nil {
|
|
sendParseError(ctx, r, err)
|
|
return true
|
|
}
|
|
resp, err := h.client.Configuration(ctx, ¶ms)
|
|
if err := r.Reply(ctx, resp, err); err != nil {
|
|
event.Error(ctx, "", err)
|
|
}
|
|
return true
|
|
case "window/workDoneProgress/create": // req
|
|
var params WorkDoneProgressCreateParams
|
|
if err := json.Unmarshal(*r.Params, ¶ms); err != nil {
|
|
sendParseError(ctx, r, err)
|
|
return true
|
|
}
|
|
err := h.client.WorkDoneProgressCreate(ctx, ¶ms)
|
|
if err := r.Reply(ctx, nil, err); err != nil {
|
|
event.Error(ctx, "", err)
|
|
}
|
|
return true
|
|
case "client/registerCapability": // req
|
|
var params RegistrationParams
|
|
if err := json.Unmarshal(*r.Params, ¶ms); err != nil {
|
|
sendParseError(ctx, r, err)
|
|
return true
|
|
}
|
|
err := h.client.RegisterCapability(ctx, ¶ms)
|
|
if err := r.Reply(ctx, nil, err); err != nil {
|
|
event.Error(ctx, "", err)
|
|
}
|
|
return true
|
|
case "client/unregisterCapability": // req
|
|
var params UnregistrationParams
|
|
if err := json.Unmarshal(*r.Params, ¶ms); err != nil {
|
|
sendParseError(ctx, r, err)
|
|
return true
|
|
}
|
|
err := h.client.UnregisterCapability(ctx, ¶ms)
|
|
if err := r.Reply(ctx, nil, err); err != nil {
|
|
event.Error(ctx, "", err)
|
|
}
|
|
return true
|
|
case "window/showMessageRequest": // req
|
|
var params ShowMessageRequestParams
|
|
if err := json.Unmarshal(*r.Params, ¶ms); err != nil {
|
|
sendParseError(ctx, r, err)
|
|
return true
|
|
}
|
|
resp, err := h.client.ShowMessageRequest(ctx, ¶ms)
|
|
if err := r.Reply(ctx, resp, err); err != nil {
|
|
event.Error(ctx, "", err)
|
|
}
|
|
return true
|
|
case "workspace/applyEdit": // req
|
|
var params ApplyWorkspaceEditParams
|
|
if err := json.Unmarshal(*r.Params, ¶ms); err != nil {
|
|
sendParseError(ctx, r, err)
|
|
return true
|
|
}
|
|
resp, err := h.client.ApplyEdit(ctx, ¶ms)
|
|
if err := r.Reply(ctx, resp, err); err != nil {
|
|
event.Error(ctx, "", err)
|
|
}
|
|
return true
|
|
default:
|
|
return false
|
|
|
|
}
|
|
}
|
|
|
|
type clientDispatcher struct {
|
|
*jsonrpc2.Conn
|
|
}
|
|
|
|
func (s *clientDispatcher) ShowMessage(ctx context.Context, params *ShowMessageParams) error {
|
|
return s.Conn.Notify(ctx, "window/showMessage", params)
|
|
}
|
|
|
|
func (s *clientDispatcher) LogMessage(ctx context.Context, params *LogMessageParams) error {
|
|
return s.Conn.Notify(ctx, "window/logMessage", params)
|
|
}
|
|
|
|
func (s *clientDispatcher) Event(ctx context.Context, params *interface{}) error {
|
|
return s.Conn.Notify(ctx, "telemetry/event", params)
|
|
}
|
|
|
|
func (s *clientDispatcher) PublishDiagnostics(ctx context.Context, params *PublishDiagnosticsParams) error {
|
|
return s.Conn.Notify(ctx, "textDocument/publishDiagnostics", params)
|
|
}
|
|
|
|
func (s *clientDispatcher) Progress(ctx context.Context, params *ProgressParams) error {
|
|
return s.Conn.Notify(ctx, "$/progress", params)
|
|
}
|
|
func (s *clientDispatcher) WorkspaceFolders(ctx context.Context) ([]WorkspaceFolder /*WorkspaceFolder[] | null*/, error) {
|
|
var result []WorkspaceFolder /*WorkspaceFolder[] | null*/
|
|
if err := s.Conn.Call(ctx, "workspace/workspaceFolders", nil, &result); err != nil {
|
|
return nil, err
|
|
}
|
|
return result, nil
|
|
}
|
|
|
|
func (s *clientDispatcher) Configuration(ctx context.Context, params *ParamConfiguration) ([]interface{}, error) {
|
|
var result []interface{}
|
|
if err := s.Conn.Call(ctx, "workspace/configuration", params, &result); err != nil {
|
|
return nil, err
|
|
}
|
|
return result, nil
|
|
}
|
|
|
|
func (s *clientDispatcher) WorkDoneProgressCreate(ctx context.Context, params *WorkDoneProgressCreateParams) error {
|
|
return s.Conn.Call(ctx, "window/workDoneProgress/create", params, nil) // Call, not Notify
|
|
}
|
|
|
|
func (s *clientDispatcher) RegisterCapability(ctx context.Context, params *RegistrationParams) error {
|
|
return s.Conn.Call(ctx, "client/registerCapability", params, nil) // Call, not Notify
|
|
}
|
|
|
|
func (s *clientDispatcher) UnregisterCapability(ctx context.Context, params *UnregistrationParams) error {
|
|
return s.Conn.Call(ctx, "client/unregisterCapability", params, nil) // Call, not Notify
|
|
}
|
|
|
|
func (s *clientDispatcher) ShowMessageRequest(ctx context.Context, params *ShowMessageRequestParams) (*MessageActionItem /*MessageActionItem | null*/, error) {
|
|
var result *MessageActionItem /*MessageActionItem | null*/
|
|
if err := s.Conn.Call(ctx, "window/showMessageRequest", params, &result); err != nil {
|
|
return nil, err
|
|
}
|
|
return result, nil
|
|
}
|
|
|
|
func (s *clientDispatcher) ApplyEdit(ctx context.Context, params *ApplyWorkspaceEditParams) (*ApplyWorkspaceEditResponse, error) {
|
|
var result *ApplyWorkspaceEditResponse
|
|
if err := s.Conn.Call(ctx, "workspace/applyEdit", params, &result); err != nil {
|
|
return nil, err
|
|
}
|
|
return result, nil
|
|
}
|