110 lines
2.8 KiB
Protocol Buffer
110 lines
2.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package host;
|
|
|
|
import "cline/common.proto";
|
|
|
|
option go_package = "github.com/cline/grpc-go/host";
|
|
option java_multiple_files = true;
|
|
option java_package = "bot.cline.host.proto";
|
|
|
|
// Provides methods for diff views.
|
|
service DiffService {
|
|
// Open the diff view/editor.
|
|
rpc openDiff(OpenDiffRequest) returns (OpenDiffResponse);
|
|
|
|
// Get the contents of the diff view.
|
|
rpc getDocumentText(GetDocumentTextRequest) returns (GetDocumentTextResponse);
|
|
|
|
// Replace a text selection in the diff.
|
|
rpc replaceText(ReplaceTextRequest) returns (ReplaceTextResponse);
|
|
|
|
rpc scrollDiff(ScrollDiffRequest) returns (ScrollDiffResponse);
|
|
|
|
// Truncate the diff document.
|
|
rpc truncateDocument(TruncateDocumentRequest) returns (TruncateDocumentResponse);
|
|
|
|
// Save the diff document.
|
|
rpc saveDocument(SaveDocumentRequest) returns (SaveDocumentResponse);
|
|
|
|
// Close all the diff editor windows/tabs.
|
|
// Any diff editors with unsaved content should not be closed.
|
|
rpc closeAllDiffs(CloseAllDiffsRequest) returns (CloseAllDiffsResponse);
|
|
|
|
// Display a diff view comparing before/after states for multiple files.
|
|
// Content is passed as in-memory data, not read from the file system.
|
|
rpc openMultiFileDiff(OpenMultiFileDiffRequest) returns (OpenMultiFileDiffResponse);
|
|
}
|
|
|
|
message OpenDiffRequest {
|
|
optional cline.Metadata metadata = 1;
|
|
// The absolute path of the document being edited.
|
|
optional string path = 2;
|
|
// The new content for the file.
|
|
optional string content = 3;
|
|
}
|
|
|
|
message OpenDiffResponse {
|
|
// A unique identifier for the diff view that was opened.
|
|
optional string diff_id = 1;
|
|
}
|
|
|
|
message GetDocumentTextRequest {
|
|
optional cline.Metadata metadata = 1;
|
|
optional string diff_id = 2;
|
|
}
|
|
|
|
message GetDocumentTextResponse {
|
|
optional string content = 1;
|
|
}
|
|
|
|
message ReplaceTextRequest {
|
|
optional cline.Metadata metadata = 1;
|
|
optional string diff_id = 2;
|
|
optional string content = 3;
|
|
optional int32 start_line = 4;
|
|
optional int32 end_line = 5;
|
|
}
|
|
|
|
message ReplaceTextResponse {}
|
|
|
|
message ScrollDiffRequest {
|
|
optional string diff_id = 1;
|
|
optional int32 line = 2;
|
|
}
|
|
|
|
message ScrollDiffResponse {}
|
|
|
|
message TruncateDocumentRequest {
|
|
optional cline.Metadata metadata = 1;
|
|
optional string diff_id = 2;
|
|
optional int32 end_line = 3;
|
|
}
|
|
|
|
message TruncateDocumentResponse {}
|
|
|
|
message CloseAllDiffsRequest {}
|
|
|
|
message CloseAllDiffsResponse {}
|
|
|
|
message SaveDocumentRequest {
|
|
optional cline.Metadata metadata = 1;
|
|
optional string diff_id = 2;
|
|
}
|
|
|
|
message SaveDocumentResponse {}
|
|
|
|
message OpenMultiFileDiffRequest {
|
|
optional string title = 1;
|
|
repeated ContentDiff diffs = 2;
|
|
}
|
|
|
|
message ContentDiff {
|
|
// The absolute file path.
|
|
optional string file_path = 1;
|
|
optional string left_content = 2;
|
|
optional string right_content = 3;
|
|
}
|
|
|
|
message OpenMultiFileDiffResponse {}
|