Commit d72f4894 authored by semeny@google.com's avatar semeny@google.com

DevTools: Add properties and constants support to "Documentation" module

BUG=391593

Review URL: https://codereview.chromium.org/472483002

git-svn-id: svn://svn.chromium.org/blink/trunk@180184 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 4aaa7a6b
......@@ -26,7 +26,11 @@ WebInspector.DocumentationURLProvider._sources = [
{ source: window.String, url: "javascript/String/", name: "String" },
{ source: window.Date.prototype, url: "javascript/Date/", name: "Date.prototype" },
{ source: window.Date, url: "javascript/Date/", name: "Date" },
{ source: window.JSON, url: "javascript/JSON/", name: "JSON" }
{ source: window.JSON, url: "javascript/JSON/", name: "JSON" },
{ source: window.Number, url: "javascript/Number/", name: "Number"},
{ source: window.Number.prototype, url: "javascript/Number/", name: "Number.prototype"},
{ source: window.Error.prototype, url: "javascript/Error/", name: "Error.prototype"},
{ source: window.RegExp.prototype, url: "javascript/RegExp/", name: "RegExp.prototype"}
];
/**
......@@ -41,17 +45,25 @@ WebInspector.DocumentationURLProvider.prototype = {
*/
itemDescriptors: function(searchTerm)
{
var possibleProperties = [];
var descriptors = [];
for (var i = 0; i < WebInspector.DocumentationURLProvider._sources.length; ++i) {
var sourceRef = WebInspector.DocumentationURLProvider._sources[i];
if (sourceRef.source[searchTerm] instanceof Function) {
var property = {
url: String.sprintf(WebInspector.DocumentationURLProvider._urlFormat, sourceRef.url, searchTerm),
name: sourceRef.name
};
possibleProperties.push(property);
}
if (!sourceRef.source.hasOwnProperty(searchTerm))
continue;
descriptors.push(createDescriptor(searchTerm.toUpperCase() === searchTerm ? "constants" : searchTerm));
}
return descriptors;
/**
* @param {string} searchTerm
* @return {{url: string, name: string}}
*/
function createDescriptor(searchTerm)
{
return {
url: String.sprintf(WebInspector.DocumentationURLProvider._urlFormat, sourceRef.url, searchTerm),
name: sourceRef.name
};
}
return possibleProperties;
}
}
......@@ -50,16 +50,16 @@ WebInspector.DocumentationView.ContextMenuProvider.prototype = {
return;
var selectedText = textEditor.copyRange(selection);
var urlProvider = new WebInspector.DocumentationURLProvider();
var possibleProperties = urlProvider.itemDescriptors(selectedText);
if (!possibleProperties.length)
var descriptors = urlProvider.itemDescriptors(selectedText);
if (!descriptors.length)
return;
if (possibleProperties.length === 1) {
if (descriptors.length === 1) {
var formatString = WebInspector.useLowerCaseMenuTitles() ? "Show documentation for %s.%s" : "Show Documentation for %s.%s";
contextMenu.appendItem(WebInspector.UIString(formatString, possibleProperties[0].name, selectedText), WebInspector.DocumentationView.showDocumentationURL.bind(null, possibleProperties[0].url));
contextMenu.appendItem(WebInspector.UIString(formatString, descriptors[0].name, selectedText), WebInspector.DocumentationView.showDocumentationURL.bind(null, descriptors[0].url));
return;
}
var subMenuItem = contextMenu.appendSubMenuItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles() ? "Show documentation for..." : "Show Documentation for..."));
for (var i = 0; i < possibleProperties.length; ++i)
subMenuItem.appendItem(String.sprintf("%s.%s", possibleProperties[i].name, selectedText), WebInspector.DocumentationView.showDocumentationURL.bind(null, possibleProperties[i].url));
for (var i = 0; i < descriptors.length; ++i)
subMenuItem.appendItem(String.sprintf("%s.%s", descriptors[i].name, selectedText), WebInspector.DocumentationView.showDocumentationURL.bind(null, descriptors[i].url));
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment