Title: [196746] trunk/Source/WebInspectorUI
- Revision
- 196746
- Author
- [email protected]
- Date
- 2016-02-17 22:37:45 -0800 (Wed, 17 Feb 2016)
Log Message
Web Inspector: In the styles sidebar, Option-clicking on --css-variable should jump to its definition
https://bugs.webkit.org/show_bug.cgi?id=154082
<rdar://problem/24593361>
Patch by Devin Rousso <[email protected]> on 2016-02-17
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked.showRangeInSourceCode):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
Now tests to see if the highlighted token was a CSS variable and if
so, attempts to show the declaration of the CSS variable instead of
the location where it is used.
Modified Paths
Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (196745 => 196746)
--- trunk/Source/WebInspectorUI/ChangeLog 2016-02-18 06:28:26 UTC (rev 196745)
+++ trunk/Source/WebInspectorUI/ChangeLog 2016-02-18 06:37:45 UTC (rev 196746)
@@ -1,3 +1,18 @@
+2016-02-17 Devin Rousso <[email protected]>
+
+ Web Inspector: In the styles sidebar, Option-clicking on --css-variable should jump to its definition
+ https://bugs.webkit.org/show_bug.cgi?id=154082
+ <rdar://problem/24593361>
+
+ Reviewed by Timothy Hatcher.
+
+ * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
+ (WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked.showRangeInSourceCode):
+ (WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
+ Now tests to see if the highlighted token was a CSS variable and if
+ so, attempts to show the declaration of the CSS variable instead of
+ the location where it is used.
+
2016-02-17 Nikita Vasilyev <[email protected]>
REGRESSION (r196620): Web Inspector: DataGrid headers and resizers are misaligned when the scrollbar is visible
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.js (196745 => 196746)
--- trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.js 2016-02-18 06:28:26 UTC (rev 196745)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationTextEditor.js 2016-02-18 06:37:45 UTC (rev 196746)
@@ -1622,34 +1622,50 @@
tokenTrackingControllerHighlightedRangeWasClicked(tokenTrackingController)
{
- console.assert(this._style.ownerRule.sourceCodeLocation);
- if (!this._style.ownerRule.sourceCodeLocation)
+ let sourceCodeLocation = this._style.ownerRule.sourceCodeLocation;
+ console.assert(sourceCodeLocation);
+ if (!sourceCodeLocation)
return;
+ let candidate = tokenTrackingController.candidate;
+ console.assert(candidate);
+ if (!candidate)
+ return;
+
+ let token = candidate.hoveredToken;
+
// Special case command clicking url(...) links.
- var token = this._tokenTrackingController.candidate.hoveredToken;
- if (/\blink\b/.test(token.type)) {
- var url = ""
- var baseURL = this._style.ownerRule.sourceCodeLocation.sourceCode.url;
+ if (token && /\blink\b/.test(token.type)) {
+ let url = ""
+ let baseURL = sourceCodeLocation.sourceCode.url;
WebInspector.openURL(absoluteURL(url, baseURL));
return;
}
+ function showRangeInSourceCode(sourceCode, range)
+ {
+ if (!sourceCode || !range)
+ return false;
+
+ WebInspector.showSourceCodeLocation(sourceCode.createSourceCodeLocation(range.startLine, range.startColumn));
+ return true;
+ }
+
+ // Special case option clicking CSS variables.
+ if (token && /\bvariable-2\b/.test(token.type)) {
+ let property = this._style.nodeStyles.effectivePropertyForName(token.string);
+ if (property && showRangeInSourceCode(property.ownerStyle.ownerRule.sourceCodeLocation.sourceCode, property.styleSheetTextRange))
+ return;
+ }
+
// Jump to the rule if we can't find a property.
// Find a better source code location from the property that was clicked.
- var sourceCodeLocation = this._style.ownerRule.sourceCodeLocation;
- var marks = this._codeMirror.findMarksAt(this._tokenTrackingController.candidate.hoveredTokenRange.start);
- for (var i = 0; i < marks.length; ++i) {
- var mark = marks[i];
- var property = mark.__cssProperty;
- if (property) {
- var sourceCode = sourceCodeLocation.sourceCode;
- var styleSheetTextRange = property.styleSheetTextRange;
- sourceCodeLocation = sourceCode.createSourceCodeLocation(styleSheetTextRange.startLine, styleSheetTextRange.startColumn);
- }
+ let marks = this._codeMirror.findMarksAt(candidate.hoveredTokenRange.start);
+ for (let mark of marks) {
+ let property = mark.__cssProperty;
+ if (property && showRangeInSourceCode(sourceCodeLocation.sourceCode, property.styleSheetTextRange))
+ return;
}
-
- WebInspector.showSourceCodeLocation(sourceCodeLocation);
}
tokenTrackingControllerNewHighlightCandidate(tokenTrackingController, candidate)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes