// 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 // "Text Synchronization" part of the LSP specification. package protocol type DidOpenTextDocumentParams struct { /** * The document that was opened. */ TextDocument TextDocumentItem `json:"textDocument"` } type DidChangeTextDocumentParams struct { /** * The document that did change. The version number points * to the version after all provided content changes have * been applied. */ TextDocument VersionedTextDocumentIdentifier `json:"textDocument"` /** * The actual content changes. The content changes describe single state changes * to the document. So if there are two content changes c1 and c2 for a document * in state S10 then c1 move the document to S11 and c2 to S12. */ ContentChanges []TextDocumentContentChangeEvent `json:"contentChanges"` } /** * An event describing a change to a text document. If range and rangeLength are omitted * the new text is considered to be the full content of the document. */ type TextDocumentContentChangeEvent struct { /** * The range of the document that changed. */ Range Range `json:"range,omitempty"` /** * The length of the range that got replaced. */ RangeLength float64 `json:"rangeLength,omitempty"` /** * The new text of the range/document. */ Text string `json:"text"` } /** * Describe options to be used when registering for text document change events. */ type TextDocumentChangeRegistrationOptions struct { TextDocumentRegistrationOptions /** * How documents are synced to the server. See TextDocumentSyncKind.Full * and TextDocumentSyncKind.Incremental. */ SyncKind float64 `json:"syncKind"` } /** * The parameters send in a will save text document notification. */ type WillSaveTextDocumentParams struct { /** * The document that will be saved. */ TextDocument TextDocumentIdentifier `json:"textDocument"` /** * The 'TextDocumentSaveReason'. */ Reason TextDocumentSaveReason `json:"reason"` } /** * Represents reasons why a text document is saved. */ type TextDocumentSaveReason float64 const ( /** * Manually triggered, e.g. by the user pressing save, by starting debugging, * or by an API call. */ Manual TextDocumentSaveReason = 1 /** * Automatic after a delay. */ AfterDelay TextDocumentSaveReason = 2 /** * When the editor lost focus. */ FocusOut TextDocumentSaveReason = 3 ) type DidSaveTextDocumentParams struct { /** * The document that was saved. */ TextDocument TextDocumentIdentifier `json:"textDocument"` /** * Optional the content when saved. Depends on the includeText value * when the save notification was requested. */ Text string `json:"text,omitempty"` } type TextDocumentSaveRegistrationOptions struct { TextDocumentRegistrationOptions /** * The client is supposed to include the content on save. */ IncludeText bool `json:"includeText,omitempty"` } type DidCloseTextDocumentParams struct { /** * The document that was closed. */ TextDocument TextDocumentIdentifier `json:"textDocument"` }