github.com/april1989/origin-go-tools@v0.0.32/internal/lsp/protocol/tsclient.go (about)

     1  package protocol
     2  
     3  // Package protocol contains data types and code for LSP jsonrpcs
     4  // generated automatically from vscode-languageserver-node
     5  // commit: 399de64448129835b53c7efe8962de91681d6cde
     6  // last fetched Wed Aug 26 2020 20:34:24 GMT-0400 (Eastern Daylight Time)
     7  
     8  // Code generated (see typescript/README.md) DO NOT EDIT.
     9  
    10  import (
    11  	"context"
    12  	"encoding/json"
    13  
    14  	"github.com/april1989/origin-go-tools/internal/jsonrpc2"
    15  	errors "golang.org/x/xerrors"
    16  )
    17  
    18  type Client interface {
    19  	ShowMessage(context.Context, *ShowMessageParams) error
    20  	LogMessage(context.Context, *LogMessageParams) error
    21  	Event(context.Context, *interface{}) error
    22  	PublishDiagnostics(context.Context, *PublishDiagnosticsParams) error
    23  	Progress(context.Context, *ProgressParams) error
    24  	WorkspaceFolders(context.Context) ([]WorkspaceFolder /*WorkspaceFolder[] | null*/, error)
    25  	Configuration(context.Context, *ParamConfiguration) ([]interface{}, error)
    26  	WorkDoneProgressCreate(context.Context, *WorkDoneProgressCreateParams) error
    27  	RegisterCapability(context.Context, *RegistrationParams) error
    28  	UnregisterCapability(context.Context, *UnregistrationParams) error
    29  	ShowMessageRequest(context.Context, *ShowMessageRequestParams) (*MessageActionItem /*MessageActionItem | null*/, error)
    30  	ApplyEdit(context.Context, *ApplyWorkspaceEditParams) (*ApplyWorkspaceEditResponse, error)
    31  }
    32  
    33  func clientDispatch(ctx context.Context, client Client, reply jsonrpc2.Replier, r jsonrpc2.Request) (bool, error) {
    34  	switch r.Method() {
    35  	case "window/showMessage": // notif
    36  		var params ShowMessageParams
    37  		if err := json.Unmarshal(r.Params(), &params); err != nil {
    38  			return true, sendParseError(ctx, reply, err)
    39  		}
    40  		err := client.ShowMessage(ctx, &params)
    41  		return true, reply(ctx, nil, err)
    42  	case "window/logMessage": // notif
    43  		var params LogMessageParams
    44  		if err := json.Unmarshal(r.Params(), &params); err != nil {
    45  			return true, sendParseError(ctx, reply, err)
    46  		}
    47  		err := client.LogMessage(ctx, &params)
    48  		return true, reply(ctx, nil, err)
    49  	case "telemetry/event": // notif
    50  		var params interface{}
    51  		if err := json.Unmarshal(r.Params(), &params); err != nil {
    52  			return true, sendParseError(ctx, reply, err)
    53  		}
    54  		err := client.Event(ctx, &params)
    55  		return true, reply(ctx, nil, err)
    56  	case "textDocument/publishDiagnostics": // notif
    57  		var params PublishDiagnosticsParams
    58  		if err := json.Unmarshal(r.Params(), &params); err != nil {
    59  			return true, sendParseError(ctx, reply, err)
    60  		}
    61  		err := client.PublishDiagnostics(ctx, &params)
    62  		return true, reply(ctx, nil, err)
    63  	case "$/progress": // notif
    64  		var params ProgressParams
    65  		if err := json.Unmarshal(r.Params(), &params); err != nil {
    66  			return true, sendParseError(ctx, reply, err)
    67  		}
    68  		err := client.Progress(ctx, &params)
    69  		return true, reply(ctx, nil, err)
    70  	case "workspace/workspaceFolders": // req
    71  		if len(r.Params()) > 0 {
    72  			return true, reply(ctx, nil, errors.Errorf("%w: expected no params", jsonrpc2.ErrInvalidParams))
    73  		}
    74  		resp, err := client.WorkspaceFolders(ctx)
    75  		return true, reply(ctx, resp, err)
    76  	case "workspace/configuration": // req
    77  		var params ParamConfiguration
    78  		if err := json.Unmarshal(r.Params(), &params); err != nil {
    79  			return true, sendParseError(ctx, reply, err)
    80  		}
    81  		resp, err := client.Configuration(ctx, &params)
    82  		return true, reply(ctx, resp, err)
    83  	case "window/workDoneProgress/create": // req
    84  		var params WorkDoneProgressCreateParams
    85  		if err := json.Unmarshal(r.Params(), &params); err != nil {
    86  			return true, sendParseError(ctx, reply, err)
    87  		}
    88  		err := client.WorkDoneProgressCreate(ctx, &params)
    89  		return true, reply(ctx, nil, err)
    90  	case "client/registerCapability": // req
    91  		var params RegistrationParams
    92  		if err := json.Unmarshal(r.Params(), &params); err != nil {
    93  			return true, sendParseError(ctx, reply, err)
    94  		}
    95  		err := client.RegisterCapability(ctx, &params)
    96  		return true, reply(ctx, nil, err)
    97  	case "client/unregisterCapability": // req
    98  		var params UnregistrationParams
    99  		if err := json.Unmarshal(r.Params(), &params); err != nil {
   100  			return true, sendParseError(ctx, reply, err)
   101  		}
   102  		err := client.UnregisterCapability(ctx, &params)
   103  		return true, reply(ctx, nil, err)
   104  	case "window/showMessageRequest": // req
   105  		var params ShowMessageRequestParams
   106  		if err := json.Unmarshal(r.Params(), &params); err != nil {
   107  			return true, sendParseError(ctx, reply, err)
   108  		}
   109  		resp, err := client.ShowMessageRequest(ctx, &params)
   110  		return true, reply(ctx, resp, err)
   111  	case "workspace/applyEdit": // req
   112  		var params ApplyWorkspaceEditParams
   113  		if err := json.Unmarshal(r.Params(), &params); err != nil {
   114  			return true, sendParseError(ctx, reply, err)
   115  		}
   116  		resp, err := client.ApplyEdit(ctx, &params)
   117  		return true, reply(ctx, resp, err)
   118  
   119  	default:
   120  		return false, nil
   121  	}
   122  }
   123  
   124  func (s *clientDispatcher) ShowMessage(ctx context.Context, params *ShowMessageParams) error {
   125  	return s.Conn.Notify(ctx, "window/showMessage", params)
   126  }
   127  
   128  func (s *clientDispatcher) LogMessage(ctx context.Context, params *LogMessageParams) error {
   129  	return s.Conn.Notify(ctx, "window/logMessage", params)
   130  }
   131  
   132  func (s *clientDispatcher) Event(ctx context.Context, params *interface{}) error {
   133  	return s.Conn.Notify(ctx, "telemetry/event", params)
   134  }
   135  
   136  func (s *clientDispatcher) PublishDiagnostics(ctx context.Context, params *PublishDiagnosticsParams) error {
   137  	return s.Conn.Notify(ctx, "textDocument/publishDiagnostics", params)
   138  }
   139  
   140  func (s *clientDispatcher) Progress(ctx context.Context, params *ProgressParams) error {
   141  	return s.Conn.Notify(ctx, "$/progress", params)
   142  }
   143  func (s *clientDispatcher) WorkspaceFolders(ctx context.Context) ([]WorkspaceFolder /*WorkspaceFolder[] | null*/, error) {
   144  	var result []WorkspaceFolder /*WorkspaceFolder[] | null*/
   145  	if err := Call(ctx, s.Conn, "workspace/workspaceFolders", nil, &result); err != nil {
   146  		return nil, err
   147  	}
   148  	return result, nil
   149  }
   150  
   151  func (s *clientDispatcher) Configuration(ctx context.Context, params *ParamConfiguration) ([]interface{}, error) {
   152  	var result []interface{}
   153  	if err := Call(ctx, s.Conn, "workspace/configuration", params, &result); err != nil {
   154  		return nil, err
   155  	}
   156  	return result, nil
   157  }
   158  
   159  func (s *clientDispatcher) WorkDoneProgressCreate(ctx context.Context, params *WorkDoneProgressCreateParams) error {
   160  	return Call(ctx, s.Conn, "window/workDoneProgress/create", params, nil) // Call, not Notify
   161  }
   162  
   163  func (s *clientDispatcher) RegisterCapability(ctx context.Context, params *RegistrationParams) error {
   164  	return Call(ctx, s.Conn, "client/registerCapability", params, nil) // Call, not Notify
   165  }
   166  
   167  func (s *clientDispatcher) UnregisterCapability(ctx context.Context, params *UnregistrationParams) error {
   168  	return Call(ctx, s.Conn, "client/unregisterCapability", params, nil) // Call, not Notify
   169  }
   170  
   171  func (s *clientDispatcher) ShowMessageRequest(ctx context.Context, params *ShowMessageRequestParams) (*MessageActionItem /*MessageActionItem | null*/, error) {
   172  	var result *MessageActionItem /*MessageActionItem | null*/
   173  	if err := Call(ctx, s.Conn, "window/showMessageRequest", params, &result); err != nil {
   174  		return nil, err
   175  	}
   176  	return result, nil
   177  }
   178  
   179  func (s *clientDispatcher) ApplyEdit(ctx context.Context, params *ApplyWorkspaceEditParams) (*ApplyWorkspaceEditResponse, error) {
   180  	var result *ApplyWorkspaceEditResponse
   181  	if err := Call(ctx, s.Conn, "workspace/applyEdit", params, &result); err != nil {
   182  		return nil, err
   183  	}
   184  	return result, nil
   185  }