Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller interface { StartupInfo(ctx context.Context) (ulspplugin.PluginInfo, error) // Returns the current version of the text document as of the last received DidChange event. GetTextDocument(ctx context.Context, doc protocol.TextDocumentIdentifier) (protocol.TextDocumentItem, error) // Returns the current status of a given document within a session. GetDocumentState(ctx context.Context, doc protocol.TextDocumentIdentifier) (DocumentState, error) // Adds edits to the pending edits for the current version of the text document. // Returns true if the edits were added, false if edits were ignored (e.g. due to outdated document version). AddPendingEdits(ctx context.Context, doc protocol.TextDocumentItem, edits []protocol.TextEdit) (bool, error) // Returns a position mapper that can be used to LSP positions between base and current versions of the document.. GetPositionMapper(ctx context.Context, doc protocol.TextDocumentIdentifier) (PositionMapper, error) // ResetBase resets the base for a given document. ResetBase(ctx context.Context, workspaceRoot string, doc protocol.TextDocumentIdentifier) error }
Controller defines the interface for a document sync controller.
type DocumentState ¶
type DocumentState int
DocumentState keeps track of the current state of a document.
const ( // DocumentStateOpenClean indicates that the document is open and has no modifications in the editor. DocumentStateOpenClean DocumentState = iota // DocumentStateOpenDirty indicates that the document is open and has unsaved modifications in the editor. DocumentStateOpenDirty // DocumentStateClosed indicates that the document is closed. DocumentStateClosed )
type Params ¶
type Params struct { fx.In Sessions session.Repository IdeGateway ideclient.Gateway Logger *zap.SugaredLogger Stats tally.Scope Config config.Provider FS fs.UlspFS }
Params are inbound parameters to initialize a new plugin.
type PositionMapper ¶
type PositionMapper interface { // MapCurrentPositionToBase maps a position in the current document to the equivalent position in the base version MapCurrentPositionToBase(currentPosition protocol.Position) (basePosition protocol.Position, isNew bool, err error) // MapBasePositionToCurrent maps a position in the base document to the equivalent position in the current version MapBasePositionToCurrent(basePosition protocol.Position) (currentPosition protocol.Position, err error) }
PositionMapper is used to map corresponding LSP protocol positions between two versions of the same document.
func NewPositionMapper ¶
func NewPositionMapper(baseText, updatedText string) PositionMapper
NewPositionMapper creates a new position mapper using precomputed diffs
Click to show internal directories.
Click to hide internal directories.