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 1ff8d481ac3b74264ac215f2aed91bb17c3ee98f..0d119998bd710e190fedb2fe4dbeb49ae75ce597 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() |
vsevik
2014/07/18 13:55:42
Let's split this into two methods - one for adding
lushnikov
2014/07/18 16:34:40
It didn't work out that easy =/
|
+ { |
+ 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(); |
}, |
/** |