mirror of
https://github.com/golang/go
synced 2024-11-18 19:54:44 -07:00
ff3f684ce0
This is not intended to be a user friendly package, just the rawest correct implemenation of the protocol as a building block Change-Id: Ib672b7f1e2fd8284be422dc7964f1876e94c9578 Reviewed-on: https://go-review.googlesource.com/136676 Reviewed-by: Alan Donovan <adonovan@google.com> Reviewed-by: Rebecca Stambler <rstambler@golang.org>
204 lines
3.7 KiB
Go
204 lines
3.7 KiB
Go
// Copyright 2018 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// This file contains the corresponding structures to the
|
|
// "Workspace" part of the LSP specification.
|
|
|
|
package protocol
|
|
|
|
type WorkspaceFolder struct {
|
|
/**
|
|
* The associated URI for this workspace folder.
|
|
*/
|
|
URI string `json:"uri"`
|
|
|
|
/**
|
|
* The name of the workspace folder. Defaults to the
|
|
* uri's basename.
|
|
*/
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
type DidChangeWorkspaceFoldersParams struct {
|
|
/**
|
|
* The actual workspace folder change event.
|
|
*/
|
|
Event WorkspaceFoldersChangeEvent `json:"event"`
|
|
}
|
|
|
|
/**
|
|
* The workspace folder change event.
|
|
*/
|
|
type WorkspaceFoldersChangeEvent struct {
|
|
/**
|
|
* The array of added workspace folders
|
|
*/
|
|
Added []WorkspaceFolder `json:"added"`
|
|
|
|
/**
|
|
* The array of the removed workspace folders
|
|
*/
|
|
Removed []WorkspaceFolder `json:"removed"`
|
|
}
|
|
|
|
type DidChangeConfigurationParams struct {
|
|
/**
|
|
* The actual changed settings
|
|
*/
|
|
Settings interface{} `json:"settings"`
|
|
}
|
|
|
|
type ConfigurationParams struct {
|
|
Items []ConfigurationItem `json:"items"`
|
|
}
|
|
|
|
type ConfigurationItem struct {
|
|
/**
|
|
* The scope to get the configuration section for.
|
|
*/
|
|
ScopeURI string `json:"scopeURI,omitempty"`
|
|
|
|
/**
|
|
* The configuration section asked for.
|
|
*/
|
|
Section string `json:"section,omitempty"`
|
|
}
|
|
|
|
type DidChangeWatchedFilesParams struct {
|
|
/**
|
|
* The actual file events.
|
|
*/
|
|
Changes []FileEvent `json:"changes"`
|
|
}
|
|
|
|
/**
|
|
* An event describing a file change.
|
|
*/
|
|
type FileEvent struct {
|
|
/**
|
|
* The file's URI.
|
|
*/
|
|
URI DocumentURI `json:"uri"`
|
|
/**
|
|
* The change type.
|
|
*/
|
|
Type float64 `json:"type"`
|
|
}
|
|
|
|
/**
|
|
* The file event type.
|
|
*/
|
|
type FileChangeType float64
|
|
|
|
const (
|
|
/**
|
|
* The file got created.
|
|
*/
|
|
Created FileChangeType = 1
|
|
/**
|
|
* The file got changed.
|
|
*/
|
|
Changed FileChangeType = 2
|
|
/**
|
|
* The file got deleted.
|
|
*/
|
|
Deleted FileChangeType = 3
|
|
)
|
|
|
|
/**
|
|
* Describe options to be used when registering for text document change events.
|
|
*/
|
|
type DidChangeWatchedFilesRegistrationOptions struct {
|
|
/**
|
|
* The watchers to register.
|
|
*/
|
|
Watchers []FileSystemWatcher `json:"watchers"`
|
|
}
|
|
|
|
type FileSystemWatcher struct {
|
|
/**
|
|
* The glob pattern to watch
|
|
*/
|
|
GlobPattern string `json:"globPattern"`
|
|
|
|
/**
|
|
* The kind of events of interest. If omitted it defaults
|
|
* to WatchKind.Create | WatchKind.Change | WatchKind.Delete
|
|
* which is 7.
|
|
*/
|
|
Kind float64 `json:"kind,omitempty"`
|
|
}
|
|
|
|
type WatchKind float64
|
|
|
|
const (
|
|
/**
|
|
* Interested in create events.
|
|
*/
|
|
Create WatchKind = 1
|
|
|
|
/**
|
|
* Interested in change events
|
|
*/
|
|
Change WatchKind = 2
|
|
|
|
/**
|
|
* Interested in delete events
|
|
*/
|
|
Delete WatchKind = 4
|
|
)
|
|
|
|
/**
|
|
* The parameters of a Workspace Symbol Request.
|
|
*/
|
|
type WorkspaceSymbolParams struct {
|
|
/**
|
|
* A non-empty query string
|
|
*/
|
|
Query string `json:"query"`
|
|
}
|
|
|
|
type ExecuteCommandParams struct {
|
|
|
|
/**
|
|
* The identifier of the actual command handler.
|
|
*/
|
|
Command string `json:"command"`
|
|
/**
|
|
* Arguments that the command should be invoked with.
|
|
*/
|
|
Arguments []interface{} `json:"arguments,omitempty"`
|
|
}
|
|
|
|
/**
|
|
* Execute command registration options.
|
|
*/
|
|
type ExecuteCommandRegistrationOptions struct {
|
|
/**
|
|
* The commands to be executed on the server
|
|
*/
|
|
Commands []string `json:"commands"`
|
|
}
|
|
|
|
type ApplyWorkspaceEditParams struct {
|
|
/**
|
|
* An optional label of the workspace edit. This label is
|
|
* presented in the user interface for example on an undo
|
|
* stack to undo the workspace edit.
|
|
*/
|
|
Label string `json:"label,omitempty"`
|
|
|
|
/**
|
|
* The edits to apply.
|
|
*/
|
|
Edit WorkspaceEdit `json:"edit"`
|
|
}
|
|
|
|
type ApplyWorkspaceEditResponse struct {
|
|
/**
|
|
* Indicates whether the edit was applied or not.
|
|
*/
|
|
Applied bool `json:"applied"`
|
|
}
|