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 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 var selections = codeMirror.listSelections(); | 241 var selections = codeMirror.listSelections(); |
242 var replacements = []; | 242 var replacements = []; |
243 for (var i = 0; i < selections.length; ++i) { | 243 for (var i = 0; i < selections.length; ++i) { |
244 var selection = selections[i]; | 244 var selection = selections[i]; |
245 var cur = CodeMirror.cmpPos(selection.head, selection.anchor) < 0 ?
selection.head : selection.anchor; | 245 var cur = CodeMirror.cmpPos(selection.head, selection.anchor) < 0 ?
selection.head : selection.anchor; |
246 var line = codeMirror.getLine(cur.line); | 246 var line = codeMirror.getLine(cur.line); |
247 var indent = WebInspector.TextUtils.lineIndent(line); | 247 var indent = WebInspector.TextUtils.lineIndent(line); |
248 replacements.push("\n" + indent.substring(0, Math.min(cur.ch, indent
.length))); | 248 replacements.push("\n" + indent.substring(0, Math.min(cur.ch, indent
.length))); |
249 } | 249 } |
250 codeMirror.replaceSelections(replacements); | 250 codeMirror.replaceSelections(replacements); |
| 251 codeMirror._codeMirrorTextEditor._onAutoAppendedSpaces(); |
251 } | 252 } |
252 } | 253 } |
253 | 254 |
254 /** | 255 /** |
255 * @param {!CodeMirror} codeMirror | 256 * @param {!CodeMirror} codeMirror |
256 */ | 257 */ |
257 CodeMirror.commands.gotoMatchingBracket = function(codeMirror) | 258 CodeMirror.commands.gotoMatchingBracket = function(codeMirror) |
258 { | 259 { |
259 var updatedSelections = []; | 260 var updatedSelections = []; |
260 var selections = codeMirror.listSelections(); | 261 var selections = codeMirror.listSelections(); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
318 | 319 |
319 codemirror.setSelection(selection.anchor, selection.head, {scroll: false}); | 320 codemirror.setSelection(selection.anchor, selection.head, {scroll: false}); |
320 codemirror._codeMirrorTextEditor._revealLine(selection.anchor.line); | 321 codemirror._codeMirrorTextEditor._revealLine(selection.anchor.line); |
321 } | 322 } |
322 | 323 |
323 WebInspector.CodeMirrorTextEditor.LongLineModeLineLengthThreshold = 2000; | 324 WebInspector.CodeMirrorTextEditor.LongLineModeLineLengthThreshold = 2000; |
324 WebInspector.CodeMirrorTextEditor.MaximumNumberOfWhitespacesPerSingleSpan = 16; | 325 WebInspector.CodeMirrorTextEditor.MaximumNumberOfWhitespacesPerSingleSpan = 16; |
325 WebInspector.CodeMirrorTextEditor.MaxEditableTextSize = 1024 * 1024 * 10; | 326 WebInspector.CodeMirrorTextEditor.MaxEditableTextSize = 1024 * 1024 * 10; |
326 | 327 |
327 WebInspector.CodeMirrorTextEditor.prototype = { | 328 WebInspector.CodeMirrorTextEditor.prototype = { |
| 329 _onAutoAppendedSpaces: function() |
| 330 { |
| 331 this._autoAppendedSpaces = this._autoAppendedSpaces || []; |
| 332 for (var i = 0; i < this._autoAppendedSpaces.length; ++i) { |
| 333 var position = this._autoAppendedSpaces[i].resolve(); |
| 334 if (!position) |
| 335 continue; |
| 336 var line = this.line(position.lineNumber); |
| 337 if (line.length === position.columnNumber && WebInspector.TextUtils.
lineIndent(line).length === line.length) |
| 338 this._codeMirror.replaceRange("", new CodeMirror.Pos(position.li
neNumber, 0), new CodeMirror.Pos(position.lineNumber, position.columnNumber)); |
| 339 } |
| 340 this._autoAppendedSpaces = []; |
| 341 var selections = this.selections(); |
| 342 for (var i = 0; i < selections.length; ++i) { |
| 343 var selection = selections[i]; |
| 344 this._autoAppendedSpaces.push(this.textEditorPositionHandle(selectio
n.startLine, selection.startColumn)); |
| 345 } |
| 346 }, |
| 347 |
328 /** | 348 /** |
329 * @param {number} lineNumber | 349 * @param {number} lineNumber |
330 * @param {number} lineLength | 350 * @param {number} lineLength |
331 * @param {number} charNumber | 351 * @param {number} charNumber |
332 * @return {{lineNumber: number, columnNumber: number}} | 352 * @return {{lineNumber: number, columnNumber: number}} |
333 */ | 353 */ |
334 _normalizePositionForOverlappingColumn: function(lineNumber, lineLength, cha
rNumber) | 354 _normalizePositionForOverlappingColumn: function(lineNumber, lineLength, cha
rNumber) |
335 { | 355 { |
336 var linesCount = this._codeMirror.lineCount(); | 356 var linesCount = this._codeMirror.lineCount(); |
337 var columnNumber = charNumber; | 357 var columnNumber = charNumber; |
(...skipping 1356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1694 isCollapsedBlock = true; | 1714 isCollapsedBlock = true; |
1695 } else if (line.substr(selection.head.ch - 1, 1) !== "{") { | 1715 } else if (line.substr(selection.head.ch - 1, 1) !== "{") { |
1696 return CodeMirror.Pass; | 1716 return CodeMirror.Pass; |
1697 } | 1717 } |
1698 if (i > 0 && allSelectionsAreCollapsedBlocks !== isCollapsedBlock) | 1718 if (i > 0 && allSelectionsAreCollapsedBlocks !== isCollapsedBlock) |
1699 return CodeMirror.Pass; | 1719 return CodeMirror.Pass; |
1700 replacements.push(indentToInsert); | 1720 replacements.push(indentToInsert); |
1701 allSelectionsAreCollapsedBlocks = isCollapsedBlock; | 1721 allSelectionsAreCollapsedBlocks = isCollapsedBlock; |
1702 } | 1722 } |
1703 codeMirror.replaceSelections(replacements); | 1723 codeMirror.replaceSelections(replacements); |
1704 if (!allSelectionsAreCollapsedBlocks) | 1724 if (!allSelectionsAreCollapsedBlocks) { |
| 1725 codeMirror._codeMirrorTextEditor._onAutoAppendedSpaces(); |
1705 return; | 1726 return; |
| 1727 } |
1706 selections = codeMirror.listSelections(); | 1728 selections = codeMirror.listSelections(); |
1707 var updatedSelections = []; | 1729 var updatedSelections = []; |
1708 for (var i = 0; i < selections.length; ++i) { | 1730 for (var i = 0; i < selections.length; ++i) { |
1709 var selection = selections[i]; | 1731 var selection = selections[i]; |
1710 var line = codeMirror.getLine(selection.head.line - 1); | 1732 var line = codeMirror.getLine(selection.head.line - 1); |
1711 var position = new CodeMirror.Pos(selection.head.line - 1, line.leng
th); | 1733 var position = new CodeMirror.Pos(selection.head.line - 1, line.leng
th); |
1712 updatedSelections.push({ | 1734 updatedSelections.push({ |
1713 head: position, | 1735 head: position, |
1714 anchor: position | 1736 anchor: position |
1715 }); | 1737 }); |
1716 } | 1738 } |
1717 codeMirror.setSelections(updatedSelections); | 1739 codeMirror.setSelections(updatedSelections); |
| 1740 codeMirror._codeMirrorTextEditor._onAutoAppendedSpaces(); |
1718 }, | 1741 }, |
1719 | 1742 |
1720 /** | 1743 /** |
1721 * @return {*} | 1744 * @return {*} |
1722 */ | 1745 */ |
1723 "'}'": function(codeMirror) | 1746 "'}'": function(codeMirror) |
1724 { | 1747 { |
1725 if (codeMirror.somethingSelected()) | 1748 if (codeMirror.somethingSelected()) |
1726 return CodeMirror.Pass; | 1749 return CodeMirror.Pass; |
1727 | 1750 |
(...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2382 var backgroundColorRule = backgroundColor ? ".CodeMirror .CodeMirror-selecte
d { background-color: " + backgroundColor + ";}" : ""; | 2405 var backgroundColorRule = backgroundColor ? ".CodeMirror .CodeMirror-selecte
d { background-color: " + backgroundColor + ";}" : ""; |
2383 var foregroundColor = InspectorFrontendHost.getSelectionForegroundColor(); | 2406 var foregroundColor = InspectorFrontendHost.getSelectionForegroundColor(); |
2384 var foregroundColorRule = foregroundColor ? ".CodeMirror .CodeMirror-selecte
dtext:not(.CodeMirror-persist-highlight) { color: " + foregroundColor + "!import
ant;}" : ""; | 2407 var foregroundColorRule = foregroundColor ? ".CodeMirror .CodeMirror-selecte
dtext:not(.CodeMirror-persist-highlight) { color: " + foregroundColor + "!import
ant;}" : ""; |
2385 if (!foregroundColorRule && !backgroundColorRule) | 2408 if (!foregroundColorRule && !backgroundColorRule) |
2386 return; | 2409 return; |
2387 | 2410 |
2388 var style = document.createElement("style"); | 2411 var style = document.createElement("style"); |
2389 style.textContent = backgroundColorRule + foregroundColorRule; | 2412 style.textContent = backgroundColorRule + foregroundColorRule; |
2390 document.head.appendChild(style); | 2413 document.head.appendChild(style); |
2391 })(); | 2414 })(); |
OLD | NEW |