1
0
mirror of https://github.com/golang/go synced 2024-11-19 01:34:40 -07:00
go/internal/lsp/protocol/workspace.go
Ian Cottrell ff3f684ce0 internal/lsp: the core lsp protocol
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>
2018-09-25 15:17:08 +00:00

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"`
}