syntax = "proto3"; package github.semantic; option ruby_package = "Semantic::Proto"; message PingRequest { string service = 1; } message PingResponse { string status = 1; string hostname = 2; string timestamp = 3; string sha = 4; } message ParseTreeRequest { repeated Blob blobs = 1; } message ParseTreeSymbolResponse { repeated File files = 1; } message ParseTreeGraphResponse { repeated ParseTreeFileGraph files = 1; } message ParseTreeFileGraph { string path = 1; string language = 2; repeated TermVertex vertices = 3; repeated TermEdge edges = 4; repeated ParseError errors = 5; } message TermEdge { int32 source = 1; int32 target = 2; } message TermVertex { int32 vertex_id = 1; string term = 2; Span span = 3; } message ParseError { string error = 1; } message DiffTreeRequest { repeated BlobPair blobs = 1; } message DiffTreeTOCResponse { repeated TOCSummaryFile files = 1; } message TOCSummaryFile { string path = 1; string language = 2; repeated TOCSummaryChange changes = 3; repeated TOCSummaryError errors = 4; } message TOCSummaryChange { string category = 1; string term = 2; Span span = 3; ChangeType change_type = 4; } message TOCSummaryError { string error = 1; Span span = 2; } enum ChangeType { NONE = 0; ADDED = 1; REMOVED = 2; MODIFIED = 3; } message DiffTreeGraphResponse { repeated DiffTreeFileGraph files = 1; } message DiffTreeFileGraph { string path = 1; string language = 2; repeated DiffTreeVertex vertices = 3; repeated DiffTreeEdge edges = 4; repeated ParseError errors = 5; } message DiffTreeEdge { int32 source = 1; int32 target = 2; } message DiffTreeVertex { int32 diff_vertex_id = 1; oneof diff_term { DeletedTerm deleted = 2; InsertedTerm inserted = 3; ReplacedTerm replaced = 4; MergedTerm merged = 5; } } message DeletedTerm { string term = 1; Span span = 2; } message InsertedTerm { string term = 1; Span span = 2; } message ReplacedTerm { string before_term = 1; Span before_span = 2; string after_term = 3; Span after_span = 4; } message MergedTerm { string term = 1; Span before_span = 2; Span after_span = 3; } message Blob { string content = 1; string path = 2; string language = 3; } message BlobPair { Blob before = 1; Blob after = 2; } message File { string path = 1; string language = 2; repeated Symbol symbols = 3; repeated ParseError errors = 4; string blob_oid = 5; } message Symbol { string symbol = 1; string kind = 2; string line = 3; Span span = 4; Docstring docs = 5; } message Docstring { string docstring = 1; } message Position { int32 line = 1; int32 column = 2; } message Span { Position start = 1; Position end = 2; }