OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
296 * @param {!Element} anchor | 296 * @param {!Element} anchor |
297 * @param {!Bindings.LiveLocation} liveLocation | 297 * @param {!Bindings.LiveLocation} liveLocation |
298 */ | 298 */ |
299 _updateAnchor(anchor, liveLocation) { | 299 _updateAnchor(anchor, liveLocation) { |
300 Components.Linkifier._unbindUILocation(anchor); | 300 Components.Linkifier._unbindUILocation(anchor); |
301 var uiLocation = liveLocation.uiLocation(); | 301 var uiLocation = liveLocation.uiLocation(); |
302 if (!uiLocation) | 302 if (!uiLocation) |
303 return; | 303 return; |
304 | 304 |
305 Components.Linkifier._bindUILocation(anchor, uiLocation); | 305 Components.Linkifier._bindUILocation(anchor, uiLocation); |
306 var text = uiLocation.linkText(); | |
307 var info = Components.Linkifier._linkInfo(anchor); | 306 var info = Components.Linkifier._linkInfo(anchor); |
308 info.originalLinkText = text; | 307 info.originalLinkText = uiLocation.linkText(true /* skipTrim */); |
309 text = text.replace(/([a-f0-9]{7})[a-f0-9]{13}[a-f0-9]*/g, '$1\u2026'); | 308 var text = info.originalLinkText.replace(/([a-f0-9]{7})[a-f0-9]{13,}/g, '$1\ u2026'); |
310 if (this._maxLength) | 309 if (this._maxLength) |
311 text = text.trimMiddle(this._maxLength); | 310 text = text.trimMiddle(this._maxLength); |
312 anchor.textContent = text; | 311 anchor.textContent = text; |
313 | 312 |
314 var titleText = uiLocation.uiSourceCode.url(); | 313 var titleText = uiLocation.uiSourceCode.url(); |
315 if (typeof uiLocation.lineNumber === 'number') | 314 if (typeof uiLocation.lineNumber === 'number') |
316 titleText += ':' + (uiLocation.lineNumber + 1); | 315 titleText += ':' + (uiLocation.lineNumber + 1); |
317 anchor.title = titleText; | 316 anchor.title = titleText; |
318 anchor.classList.toggle('webkit-html-blackbox-link', liveLocation.isBlackbox ed()); | 317 anchor.classList.toggle('webkit-html-blackbox-link', liveLocation.isBlackbox ed()); |
319 Components.Linkifier._updateLinkDecorations(anchor); | 318 Components.Linkifier._updateLinkDecorations(anchor); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
412 originalLinkText: text | 411 originalLinkText: text |
413 }; | 412 }; |
414 if (!preventClick) | 413 if (!preventClick) |
415 link.addEventListener('click', Components.Linkifier._handleClick, false); | 414 link.addEventListener('click', Components.Linkifier._handleClick, false); |
416 else | 415 else |
417 link.classList.add('devtools-link-prevent-click'); | 416 link.classList.add('devtools-link-prevent-click'); |
418 return link; | 417 return link; |
419 } | 418 } |
420 | 419 |
421 /** | 420 /** |
422 * @param {?Element} link | 421 * @param {!Array<!Node>} nodes |
423 * @return {?string} | 422 * @return {string} |
424 */ | 423 */ |
425 static originalLinkText(link) { | 424 static originalLinkText(nodes) { |
lushnikov
2017/04/11 22:59:34
let's pass a link here
luoe
2017/04/12 22:00:37
Done.
| |
426 var info = this._linkInfo(link); | 425 var text = ''; |
427 return info ? info.originalLinkText : null; | 426 for (var i = 0; i < nodes.length; i++) { |
427 var info = this._linkInfo(nodes[i].parentElement); | |
428 text += info ? info.originalLinkText : nodes[i].textContent; | |
429 } | |
430 return text; | |
428 } | 431 } |
429 | 432 |
430 /** | 433 /** |
434 * @param {number} offset | |
435 * @param {!Node} node | |
436 * @return {number} | |
437 */ | |
438 static selectionOffsetToOriginalOffset(offset, node) { | |
lushnikov
2017/04/11 22:59:34
selectionOffsetToOriginalTextOffset ?
lushnikov
2017/04/11 22:59:34
let's pass link here
luoe
2017/04/12 22:00:37
Done.
luoe
2017/04/12 22:00:37
Done.
| |
439 var link = node.parentElement; | |
440 var info = this._linkInfo(link); | |
441 var originalLinkText = info ? info.originalLinkText : null; | |
442 if (originalLinkText === null) | |
443 return offset; | |
444 | |
445 var truncatedLength = originalLinkText.length - link.textContent.length; | |
446 if (offset > link.textContent.length >> 1) | |
lushnikov
2017/04/11 22:59:34
/2
luoe
2017/04/12 22:00:37
Done.
| |
447 offset += truncatedLength; | |
448 return offset; | |
449 } | |
450 | |
451 /** | |
431 * @param {?Element} link | 452 * @param {?Element} link |
432 * @return {?Components._LinkInfo} | 453 * @return {?Components._LinkInfo} |
433 */ | 454 */ |
434 static _linkInfo(link) { | 455 static _linkInfo(link) { |
435 return /** @type {?Components._LinkInfo} */ (link ? link[Components.Linkifie r._infoSymbol] || null : null); | 456 return /** @type {?Components._LinkInfo} */ (link ? link[Components.Linkifie r._infoSymbol] || null : null); |
436 } | 457 } |
437 | 458 |
438 /** | 459 /** |
439 * @param {!Event} event | 460 * @param {!Event} event |
440 */ | 461 */ |
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
780 contextMenu.appendSeparator(); | 801 contextMenu.appendSeparator(); |
781 contextMenu.appendItem(Common.UIString('Save'), save.bind(null, false)); | 802 contextMenu.appendItem(Common.UIString('Save'), save.bind(null, false)); |
782 | 803 |
783 if (contentProvider instanceof Workspace.UISourceCode) { | 804 if (contentProvider instanceof Workspace.UISourceCode) { |
784 var uiSourceCode = /** @type {!Workspace.UISourceCode} */ (contentProvider ); | 805 var uiSourceCode = /** @type {!Workspace.UISourceCode} */ (contentProvider ); |
785 if (!uiSourceCode.project().canSetFileContent()) | 806 if (!uiSourceCode.project().canSetFileContent()) |
786 contextMenu.appendItem(Common.UIString.capitalize('Save ^as...'), save.b ind(null, true)); | 807 contextMenu.appendItem(Common.UIString.capitalize('Save ^as...'), save.b ind(null, true)); |
787 } | 808 } |
788 } | 809 } |
789 }; | 810 }; |
OLD | NEW |