Add generic search result interface, and implement commit and diff search using it
Created by: attfarhan
Part of https://github.com/sourcegraph/sourcegraph/issues/962
This PR adds a generic search result type, and implements repo, diff, and commit search matches using this type. Our normal text search (file matches) and symbol search, are not affected.
The GenericSearchResult
type consists of the following fields:
-
Icon (string)
: different search result types show different icons, so we want to allow providers to select a relevant icon to display next to search results of type. -
Title (string)
: The title is a prominently displayed header. We ask for a markdown string, so that providers can be as flexible as they want with what is displayed, and render the markdown in the Sourcegraph UI. For clients likesrc-cli
, the title is displayed as is. -
URL (string)
: The URL for the search result. This is for clients likesrc-cli
, which will want to display a URL in raw format. -
Detail (string, optional)
: A less prominently displayed header. This is displayed on the right-hand side of search result titles in the Sourcegraph UI. Not displayed insrc-cli
responses, and not required. -
Matches ([SearchMatch])
: The list of matches for a given search result. A single search result can have multiple matches. Each match can link to a different URL.SearchMatch
consists of:-
url (string)
: URL for the individual result match. -
body (string)
: A markdown string containing the contents of the result match. The markdown string is rendered when displayed in the Sourcegraph UI. -
highlights ([{line, character, length}])
: A list of objects containingline
,character
, andlength
. This is used to highlight the actual matches in a line. These are only displayed when the body is a markdown code block.
-
closes https://github.com/sourcegraph/sourcegraph/issues/613