diff --git a/lib/ace/mode/behaviour/behaviour_test.js b/lib/ace/mode/behaviour/behaviour_test.js index ea2d6232..9dc27bf8 100644 --- a/lib/ace/mode/behaviour/behaviour_test.js +++ b/lib/ace/mode/behaviour/behaviour_test.js @@ -43,6 +43,7 @@ var Editor = require("../../editor").Editor; var EditSession = require("../../edit_session").EditSession; var MockRenderer = require("../../test/mockrenderer").MockRenderer; var JavaScriptMode = require("../javascript").Mode; +var XMLMode = require("../xml").Mode; var editor; var exec = function(name, times, args) { do { @@ -143,6 +144,21 @@ module.exports = { exec("selectleft", 1); exec("insertstring", 1, '"'); assert.equal(editor.getValue(), '("foo")'); + }, + "test: xml": function() { + editor = new Editor(new MockRenderer()); + editor.setValue(["", + " " + ].join("\n")); + editor.session.setMode(new XMLMode); + exec("gotolinedown", 1); + exec("gotolineend", 1); + exec("insertstring", 1, '\n'); + assert.equal(editor.session.getLine(2), " "); + exec("gotolineup", 1); + exec("gotolineend", 1); + exec("insertstring", 1, '\n'); + assert.equal(editor.session.getLine(2), " "); } }; diff --git a/lib/ace/mode/behaviour/xml.js b/lib/ace/mode/behaviour/xml.js index fc46a240..068fdb31 100644 --- a/lib/ace/mode/behaviour/xml.js +++ b/lib/ace/mode/behaviour/xml.js @@ -155,6 +155,8 @@ var XmlBehaviour = function () { var token = iterator.getCurrentToken(); if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; //get tag name while (token && token.type.indexOf("tag-name") === -1) { token = iterator.stepBackward();