| Index: Source/devtools/front_end/source_frame/CodeMirrorTextEditor.js
|
| diff --git a/Source/devtools/front_end/source_frame/CodeMirrorTextEditor.js b/Source/devtools/front_end/source_frame/CodeMirrorTextEditor.js
|
| index 8d6755e76878ea93a4928231960dc2f6c35540b4..f72cd5031e34b99f0409edad5ce3efe339c5c51b 100644
|
| --- a/Source/devtools/front_end/source_frame/CodeMirrorTextEditor.js
|
| +++ b/Source/devtools/front_end/source_frame/CodeMirrorTextEditor.js
|
| @@ -248,6 +248,7 @@ CodeMirror.commands.smartNewlineAndIndent = function(codeMirror)
|
| replacements.push("\n" + indent.substring(0, Math.min(cur.ch, indent.length)));
|
| }
|
| codeMirror.replaceSelections(replacements);
|
| + codeMirror._codeMirrorTextEditor._onAutoAppendedSpaces();
|
| }
|
| }
|
|
|
| @@ -325,6 +326,25 @@ WebInspector.CodeMirrorTextEditor.MaximumNumberOfWhitespacesPerSingleSpan = 16;
|
| WebInspector.CodeMirrorTextEditor.MaxEditableTextSize = 1024 * 1024 * 10;
|
|
|
| WebInspector.CodeMirrorTextEditor.prototype = {
|
| + _onAutoAppendedSpaces: function()
|
| + {
|
| + this._autoAppendedSpaces = this._autoAppendedSpaces || [];
|
| + for (var i = 0; i < this._autoAppendedSpaces.length; ++i) {
|
| + var position = this._autoAppendedSpaces[i].resolve();
|
| + if (!position)
|
| + continue;
|
| + var line = this.line(position.lineNumber);
|
| + if (line.length === position.columnNumber && WebInspector.TextUtils.lineIndent(line).length === line.length)
|
| + this._codeMirror.replaceRange("", new CodeMirror.Pos(position.lineNumber, 0), new CodeMirror.Pos(position.lineNumber, position.columnNumber));
|
| + }
|
| + this._autoAppendedSpaces = [];
|
| + var selections = this.selections();
|
| + for (var i = 0; i < selections.length; ++i) {
|
| + var selection = selections[i];
|
| + this._autoAppendedSpaces.push(this.textEditorPositionHandle(selection.startLine, selection.startColumn));
|
| + }
|
| + },
|
| +
|
| /**
|
| * @param {number} lineNumber
|
| * @param {number} lineLength
|
| @@ -1701,8 +1721,10 @@ WebInspector.CodeMirrorTextEditor.BlockIndentController.prototype = {
|
| allSelectionsAreCollapsedBlocks = isCollapsedBlock;
|
| }
|
| codeMirror.replaceSelections(replacements);
|
| - if (!allSelectionsAreCollapsedBlocks)
|
| + if (!allSelectionsAreCollapsedBlocks) {
|
| + codeMirror._codeMirrorTextEditor._onAutoAppendedSpaces();
|
| return;
|
| + }
|
| selections = codeMirror.listSelections();
|
| var updatedSelections = [];
|
| for (var i = 0; i < selections.length; ++i) {
|
| @@ -1715,6 +1737,7 @@ WebInspector.CodeMirrorTextEditor.BlockIndentController.prototype = {
|
| });
|
| }
|
| codeMirror.setSelections(updatedSelections);
|
| + codeMirror._codeMirrorTextEditor._onAutoAppendedSpaces();
|
| },
|
|
|
| /**
|
|
|