Tie all the pieces for symbol cross-references together
Summary: This makes symbol cross-references work in Differential. You need to do a little legwork but I'll document that once the change has baked for a little while. Basically: - Projects are annotated with indexed languages, and "shared library" projects (for example, symbols in Phabricator should be searched for in Arcanist and libphutil). - When we render a changeset, we check if its language is an indexed one. If it is, we invoke the decorator Javascript. - The Javascript takes you to a lookup page, which either gives you a list of matching symbols (if several match) or redirects you instantly to the definition. Test Plan: Clicked class and function symbols in a diff, got jumped into sensible sorts of places in Diffusion. Reviewers: jungejason, nh, tuomaspelkonen, aran Reviewed By: jungejason CC: aran, jungejason Differential Revision: 980
This commit is contained in:
@@ -22,7 +22,10 @@ JX.behavior('repository-crossreference', function(config) {
|
||||
if (JX.DOM.isNode(target, 'span') && (target.className in map)) {
|
||||
var uri = JX.$U('/diffusion/symbol/' + target.innerHTML + '/');
|
||||
uri.addQueryParams({
|
||||
type : map[target.className]
|
||||
type : map[target.className],
|
||||
lang : config.lang,
|
||||
projects : config.projects.join(','),
|
||||
jump : true
|
||||
});
|
||||
window.open(uri);
|
||||
e.kill();
|
||||
|
||||
Reference in New Issue
Block a user