From 0d08edc3c28ac071c5eb6ba37f6ed0a105962bb1 Mon Sep 17 00:00:00 2001 From: DanyaPostfactum Date: Wed, 6 Feb 2013 12:54:49 +1000 Subject: [PATCH] fix colon deletion behavior --- lib/ace/mode/behaviour/css.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/ace/mode/behaviour/css.js b/lib/ace/mode/behaviour/css.js index fd1f4041..1c35f744 100644 --- a/lib/ace/mode/behaviour/css.js +++ b/lib/ace/mode/behaviour/css.js @@ -70,11 +70,19 @@ var CssBehaviour = function () { this.add("colon", "deletion", function (state, action, editor, session, range) { var selected = session.doc.getTextRange(range); if (!range.isMultiLine() && selected === ':') { - var line = session.doc.getLine(range.start.row); - var rightChar = line.substring(range.end.column, range.end.column + 1); - if (rightChar === ';') { - range.end.column ++; - return range; + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } } } });