This commit is contained in:
Fabian Jakobs 2012-04-06 15:30:37 +02:00
commit 8c1508ab9b
76 changed files with 764 additions and 696 deletions

File diff suppressed because one or more lines are too long

View file

@ -5408,13 +5408,13 @@ exports.commands = [{
}, { }, {
name: "backspace", name: "backspace",
bindKey: bindKey( bindKey: bindKey(
"Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace", "Command-Backspace|Option-Backspace|Shift-Backspace|Backspace",
"Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H" "Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"
), ),
exec: function(editor) { editor.remove("left"); } exec: function(editor) { editor.remove("left"); }
}, { }, {
name: "removetolinestart", name: "removetolinestart",
bindKey: bindKey("Alt-Backspace", "Option-Backspace"), bindKey: bindKey("Alt-Backspace", "Command-Backspace"),
exec: function(editor) { editor.removeToLineStart(); } exec: function(editor) { editor.removeToLineStart(); }
}, { }, {
name: "removetolineend", name: "removetolineend",
@ -8536,7 +8536,7 @@ var Tokenizer = function(rules, flag) {
}); });
if (matchcount > 1 && state[i].token.length !== matchcount-1) if (matchcount > 1 && state[i].token.length !== matchcount-1)
throw new Error("Matching groups and length of the token array don't match"); throw new Error("Matching groups and length of the token array don't match in rule #" + i + " of state " + key);
mapping[matchTotal] = { mapping[matchTotal] = {
rule: i, rule: i,
@ -11611,7 +11611,7 @@ var CommandManager = function(platform, commands) {
var key = typeof binding == "string" ? binding: binding[this.platform]; var key = typeof binding == "string" ? binding: binding[this.platform];
this.bindKey(key, command); this.bindKey(key, command);
} };
function parseKeys(keys, val, ret) { function parseKeys(keys, val, ret) {
var key; var key;
@ -11628,10 +11628,10 @@ var CommandManager = function(platform, commands) {
return { return {
key: key, key: key,
hashId: hashId hashId: hashId
} };
} }
function splitSafe(s, separator) { function splitSafe(s) {
return (s.toLowerCase() return (s.toLowerCase()
.trim() .trim()
.split(new RegExp("[\\s ]*\\-[\\s ]*", "g"), 999)); .split(new RegExp("[\\s ]*\\-[\\s ]*", "g"), 999));
@ -11645,7 +11645,7 @@ var CommandManager = function(platform, commands) {
var ckbr = this.commmandKeyBinding; var ckbr = this.commmandKeyBinding;
return ckbr[hashId] && ckbr[hashId][textOrKey.toLowerCase()]; return ckbr[hashId] && ckbr[hashId][textOrKey.toLowerCase()];
} };
this.exec = function(command, editor, args) { this.exec = function(command, editor, args) {
if (typeof command === 'string') if (typeof command === 'string')
@ -11697,7 +11697,7 @@ var CommandManager = function(platform, commands) {
this.exec(x, editor); this.exec(x, editor);
else else
this.exec(x[0], editor, x[1]); this.exec(x[0], editor, x[1]);
}, this) }, this);
} finally { } finally {
this.$inReplay = false; this.$inReplay = false;
} }
@ -11709,9 +11709,9 @@ var CommandManager = function(platform, commands) {
x[0] = x[0].name; x[0] = x[0].name;
if (!x[1]) if (!x[1])
x = x[0]; x = x[0];
return x return x;
}) });
} };
}).call(CommandManager.prototype); }).call(CommandManager.prototype);

View file

@ -5408,13 +5408,13 @@ exports.commands = [{
}, { }, {
name: "backspace", name: "backspace",
bindKey: bindKey( bindKey: bindKey(
"Ctrl-Backspace|Command-Backspace|Option-Backspace|Shift-Backspace|Backspace", "Command-Backspace|Option-Backspace|Shift-Backspace|Backspace",
"Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H" "Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"
), ),
exec: function(editor) { editor.remove("left"); } exec: function(editor) { editor.remove("left"); }
}, { }, {
name: "removetolinestart", name: "removetolinestart",
bindKey: bindKey("Alt-Backspace", "Option-Backspace"), bindKey: bindKey("Alt-Backspace", "Command-Backspace"),
exec: function(editor) { editor.removeToLineStart(); } exec: function(editor) { editor.removeToLineStart(); }
}, { }, {
name: "removetolineend", name: "removetolineend",
@ -8536,7 +8536,7 @@ var Tokenizer = function(rules, flag) {
}); });
if (matchcount > 1 && state[i].token.length !== matchcount-1) if (matchcount > 1 && state[i].token.length !== matchcount-1)
throw new Error("Matching groups and length of the token array don't match"); throw new Error("Matching groups and length of the token array don't match in rule #" + i + " of state " + key);
mapping[matchTotal] = { mapping[matchTotal] = {
rule: i, rule: i,
@ -11611,7 +11611,7 @@ var CommandManager = function(platform, commands) {
var key = typeof binding == "string" ? binding: binding[this.platform]; var key = typeof binding == "string" ? binding: binding[this.platform];
this.bindKey(key, command); this.bindKey(key, command);
} };
function parseKeys(keys, val, ret) { function parseKeys(keys, val, ret) {
var key; var key;
@ -11628,10 +11628,10 @@ var CommandManager = function(platform, commands) {
return { return {
key: key, key: key,
hashId: hashId hashId: hashId
} };
} }
function splitSafe(s, separator) { function splitSafe(s) {
return (s.toLowerCase() return (s.toLowerCase()
.trim() .trim()
.split(new RegExp("[\\s ]*\\-[\\s ]*", "g"), 999)); .split(new RegExp("[\\s ]*\\-[\\s ]*", "g"), 999));
@ -11645,7 +11645,7 @@ var CommandManager = function(platform, commands) {
var ckbr = this.commmandKeyBinding; var ckbr = this.commmandKeyBinding;
return ckbr[hashId] && ckbr[hashId][textOrKey.toLowerCase()]; return ckbr[hashId] && ckbr[hashId][textOrKey.toLowerCase()];
} };
this.exec = function(command, editor, args) { this.exec = function(command, editor, args) {
if (typeof command === 'string') if (typeof command === 'string')
@ -11697,7 +11697,7 @@ var CommandManager = function(platform, commands) {
this.exec(x, editor); this.exec(x, editor);
else else
this.exec(x[0], editor, x[1]); this.exec(x[0], editor, x[1]);
}, this) }, this);
} finally { } finally {
this.$inReplay = false; this.$inReplay = false;
} }
@ -11709,9 +11709,9 @@ var CommandManager = function(platform, commands) {
x[0] = x[0].name; x[0] = x[0].name;
if (!x[1]) if (!x[1])
x = x[0]; x = x[0];
return x return x;
}) });
} };
}).call(CommandManager.prototype); }).call(CommandManager.prototype);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -541,12 +541,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -558,7 +558,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -576,7 +576,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -601,12 +601,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -618,7 +618,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -637,14 +637,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -665,7 +666,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -674,19 +675,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -695,7 +696,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -705,7 +706,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -541,12 +541,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -558,7 +558,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -576,7 +576,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -601,12 +601,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -618,7 +618,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -637,14 +637,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -665,7 +666,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -674,19 +675,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -695,7 +696,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -705,7 +706,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -259,9 +259,9 @@ var ClojureHighlightRules = function() {
token : "comment", token : "comment",
regex : ";.*$" regex : ";.*$"
}, { }, {
token : "comment", // multi line comment token : "comment", // multi line comment
regex : "^\=begin$", regex : "^=begin$",
next : "comment" next : "comment"
}, { }, {
token : "keyword", //parens token : "keyword", //parens
regex : "[\\(|\\)]" regex : "[\\(|\\)]"
@ -314,17 +314,17 @@ var ClojureHighlightRules = function() {
regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
}, { }, {
token : "string", // symbol token : "string", // symbol
regex : "[:](?:[a-zA-Z]|\d)+" regex : "[:](?:[a-zA-Z]|\\d)+"
}, { }, {
token : "string.regexp", //Regular Expressions token : "string.regexp", //Regular Expressions
regex : '/#"(?:\.|(\\\")|[^\""\n])*"/g' regex : '/#"(?:\\.|(?:\\\")|[^\""\n])*"/g'
} }
], ],
"comment" : [ "comment" : [
{ {
token : "comment", // closing comment token : "comment", // closing comment
regex : "^\=end$", regex : "^=end$",
next : "start" next : "start"
}, { }, {
token : "comment", // comment spanning whole line token : "comment", // comment spanning whole line

View file

@ -259,9 +259,9 @@ var ClojureHighlightRules = function() {
token : "comment", token : "comment",
regex : ";.*$" regex : ";.*$"
}, { }, {
token : "comment", // multi line comment token : "comment", // multi line comment
regex : "^\=begin$", regex : "^=begin$",
next : "comment" next : "comment"
}, { }, {
token : "keyword", //parens token : "keyword", //parens
regex : "[\\(|\\)]" regex : "[\\(|\\)]"
@ -314,17 +314,17 @@ var ClojureHighlightRules = function() {
regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
}, { }, {
token : "string", // symbol token : "string", // symbol
regex : "[:](?:[a-zA-Z]|\d)+" regex : "[:](?:[a-zA-Z]|\\d)+"
}, { }, {
token : "string.regexp", //Regular Expressions token : "string.regexp", //Regular Expressions
regex : '/#"(?:\.|(\\\")|[^\""\n])*"/g' regex : '/#"(?:\\.|(?:\\\")|[^\""\n])*"/g'
} }
], ],
"comment" : [ "comment" : [
{ {
token : "comment", // closing comment token : "comment", // closing comment
regex : "^\=end$", regex : "^=end$",
next : "start" next : "start"
}, { }, {
token : "comment", // comment spanning whole line token : "comment", // comment spanning whole line

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -528,12 +528,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -545,7 +545,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -563,7 +563,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -588,12 +588,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -605,7 +605,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -624,14 +624,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -652,7 +653,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -661,19 +662,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -682,7 +683,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -692,7 +693,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -528,12 +528,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -545,7 +545,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -563,7 +563,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -588,12 +588,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -605,7 +605,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -624,14 +624,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -652,7 +653,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -661,19 +662,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -682,7 +683,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -692,7 +693,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -391,12 +391,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -408,7 +408,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -426,7 +426,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -451,12 +451,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -468,7 +468,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -487,14 +487,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -515,7 +516,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -524,19 +525,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -545,7 +546,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -555,7 +556,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -391,12 +391,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -408,7 +408,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -426,7 +426,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -451,12 +451,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -468,7 +468,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -487,14 +487,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -515,7 +516,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -524,19 +525,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -545,7 +546,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -555,7 +556,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -849,12 +849,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -866,7 +866,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -884,7 +884,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -909,12 +909,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -926,7 +926,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -945,14 +945,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -973,7 +974,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -982,19 +983,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1003,7 +1004,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -1013,7 +1014,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -849,12 +849,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -866,7 +866,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -884,7 +884,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -909,12 +909,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -926,7 +926,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -945,14 +945,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -973,7 +974,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -982,19 +983,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1003,7 +1004,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -1013,7 +1014,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -391,12 +391,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -408,7 +408,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -426,7 +426,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -451,12 +451,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -468,7 +468,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -487,14 +487,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -515,7 +516,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -524,19 +525,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -545,7 +546,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -555,7 +556,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -391,12 +391,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -408,7 +408,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -426,7 +426,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -451,12 +451,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -468,7 +468,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -487,14 +487,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -515,7 +516,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -524,19 +525,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -545,7 +546,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -555,7 +556,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -908,12 +908,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -925,7 +925,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -943,7 +943,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -968,12 +968,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -985,7 +985,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1004,14 +1004,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -1032,7 +1033,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -1041,19 +1042,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1062,7 +1063,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -1072,7 +1073,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -908,12 +908,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -925,7 +925,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -943,7 +943,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -968,12 +968,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -985,7 +985,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1004,14 +1004,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -1032,7 +1033,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -1041,19 +1042,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1062,7 +1063,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -1072,7 +1073,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -850,12 +850,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -867,7 +867,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -885,7 +885,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -910,12 +910,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -927,7 +927,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -946,14 +946,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -974,7 +975,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -983,19 +984,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1004,7 +1005,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -1014,7 +1015,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -850,12 +850,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -867,7 +867,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -885,7 +885,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -910,12 +910,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -927,7 +927,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -946,14 +946,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -974,7 +975,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -983,19 +984,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1004,7 +1005,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -1014,7 +1015,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -825,12 +825,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -842,7 +842,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -860,7 +860,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -885,12 +885,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -902,7 +902,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -921,14 +921,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -949,7 +950,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -958,19 +959,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -979,7 +980,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -989,7 +990,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -825,12 +825,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -842,7 +842,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -860,7 +860,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -885,12 +885,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -902,7 +902,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -921,14 +921,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -949,7 +950,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -958,19 +959,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -979,7 +980,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -989,7 +990,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -319,12 +319,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -336,7 +336,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -354,7 +354,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -379,12 +379,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -396,7 +396,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -415,14 +415,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -443,7 +444,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -452,19 +453,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -473,7 +474,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -483,7 +484,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -319,12 +319,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -336,7 +336,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -354,7 +354,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -379,12 +379,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -396,7 +396,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -415,14 +415,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -443,7 +444,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -452,19 +453,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -473,7 +474,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -483,7 +484,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -905,12 +905,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -922,7 +922,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -940,7 +940,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -965,12 +965,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -982,7 +982,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1001,14 +1001,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -1029,7 +1030,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -1038,19 +1039,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1059,7 +1060,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -1069,7 +1070,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;
@ -2789,7 +2791,7 @@ var MarkdownHighlightRules = function() {
token : "empty_line", token : "empty_line",
regex : '^$' regex : '^$'
}, { // code span ` }, { // code span `
token : "support.function", token : ["support.function", "support.function", "support.function"],
regex : "(`+)([^\\r]*?[^`])(\\1)" regex : "(`+)([^\\r]*?[^`])(\\1)"
}, { // code block }, { // code block
token : "support.function", token : "support.function",
@ -2819,7 +2821,7 @@ var MarkdownHighlightRules = function() {
next : "blockquote" next : "blockquote"
}, { // reference }, { // reference
token : ["text", "constant", "text", "url", "string", "text"], token : ["text", "constant", "text", "url", "string", "text"],
regex : "^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:[\"][^\"]+[\"])?\\s*)$" regex : "^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:[\"][^\"]+[\"])?(\\s*))$"
}, { // link by reference }, { // link by reference
token : ["text", "string", "text", "constant", "text"], token : ["text", "string", "text", "constant", "text"],
regex : "(\\[)((?:[[^\\]]*\\]|[^\\[\\]])*)(\\][ ]?(?:\\n[ ]*)?\\[)(.*?)(\\])" regex : "(\\[)((?:[[^\\]]*\\]|[^\\[\\]])*)(\\][ ]?(?:\\n[ ]*)?\\[)(.*?)(\\])"
@ -2845,10 +2847,10 @@ var MarkdownHighlightRules = function() {
regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+", regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",
next : "listblock" next : "listblock"
}, { // strong ** __ }, { // strong ** __
token : "string", token : ["string", "string", "string"],
regex : "([*]{2}|[_]{2}(?=\\S))([^\\r]*?\\S[*_]*)(\\1)" regex : "([*]{2}|[_]{2}(?=\\S))([^\\r]*?\\S[*_]*)(\\1)"
}, { // emphasis * _ }, { // emphasis * _
token : "string", token : ["string", "string", "string"],
regex : "([*]|[_](?=\\S))([^\\r]*?\\S[*_]*)(\\1)" regex : "([*]|[_](?=\\S))([^\\r]*?\\S[*_]*)(\\1)"
}, { // }, { //
token : ["text", "url", "text"], token : ["text", "url", "text"],

View file

@ -905,12 +905,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -922,7 +922,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -940,7 +940,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -965,12 +965,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -982,7 +982,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1001,14 +1001,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -1029,7 +1030,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -1038,19 +1039,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1059,7 +1060,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -1069,7 +1070,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;
@ -2789,7 +2791,7 @@ var MarkdownHighlightRules = function() {
token : "empty_line", token : "empty_line",
regex : '^$' regex : '^$'
}, { // code span ` }, { // code span `
token : "support.function", token : ["support.function", "support.function", "support.function"],
regex : "(`+)([^\\r]*?[^`])(\\1)" regex : "(`+)([^\\r]*?[^`])(\\1)"
}, { // code block }, { // code block
token : "support.function", token : "support.function",
@ -2819,7 +2821,7 @@ var MarkdownHighlightRules = function() {
next : "blockquote" next : "blockquote"
}, { // reference }, { // reference
token : ["text", "constant", "text", "url", "string", "text"], token : ["text", "constant", "text", "url", "string", "text"],
regex : "^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:[\"][^\"]+[\"])?\\s*)$" regex : "^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:[\"][^\"]+[\"])?(\\s*))$"
}, { // link by reference }, { // link by reference
token : ["text", "string", "text", "constant", "text"], token : ["text", "string", "text", "constant", "text"],
regex : "(\\[)((?:[[^\\]]*\\]|[^\\[\\]])*)(\\][ ]?(?:\\n[ ]*)?\\[)(.*?)(\\])" regex : "(\\[)((?:[[^\\]]*\\]|[^\\[\\]])*)(\\][ ]?(?:\\n[ ]*)?\\[)(.*?)(\\])"
@ -2845,10 +2847,10 @@ var MarkdownHighlightRules = function() {
regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+", regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+",
next : "listblock" next : "listblock"
}, { // strong ** __ }, { // strong ** __
token : "string", token : ["string", "string", "string"],
regex : "([*]{2}|[_]{2}(?=\\S))([^\\r]*?\\S[*_]*)(\\1)" regex : "([*]{2}|[_]{2}(?=\\S))([^\\r]*?\\S[*_]*)(\\1)"
}, { // emphasis * _ }, { // emphasis * _
token : "string", token : ["string", "string", "string"],
regex : "([*]|[_](?=\\S))([^\\r]*?\\S[*_]*)(\\1)" regex : "([*]|[_](?=\\S))([^\\r]*?\\S[*_]*)(\\1)"
}, { // }, { //
token : ["text", "url", "text"], token : ["text", "url", "text"],

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1507,12 +1507,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -1524,7 +1524,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -1542,7 +1542,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -1567,12 +1567,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -1584,7 +1584,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1603,14 +1603,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -1631,7 +1632,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -1640,19 +1641,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1661,7 +1662,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -1671,7 +1672,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -1507,12 +1507,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -1524,7 +1524,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -1542,7 +1542,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -1567,12 +1567,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -1584,7 +1584,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1603,14 +1603,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -1631,7 +1632,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -1640,19 +1641,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1661,7 +1662,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -1671,7 +1672,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -329,12 +329,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -346,7 +346,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -364,7 +364,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -389,12 +389,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -406,7 +406,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -425,14 +425,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -453,7 +454,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -462,19 +463,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -483,7 +484,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -493,7 +494,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -329,12 +329,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -346,7 +346,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -364,7 +364,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -389,12 +389,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -406,7 +406,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -425,14 +425,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -453,7 +454,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -462,19 +463,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -483,7 +484,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -493,7 +494,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -529,12 +529,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -546,7 +546,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -564,7 +564,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -589,12 +589,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -606,7 +606,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -625,14 +625,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -653,7 +654,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -662,19 +663,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -683,7 +684,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -693,7 +694,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -529,12 +529,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -546,7 +546,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -564,7 +564,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -589,12 +589,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -606,7 +606,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -625,14 +625,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -653,7 +654,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -662,19 +663,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -683,7 +684,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -693,7 +694,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -850,12 +850,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -867,7 +867,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -885,7 +885,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -910,12 +910,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -927,7 +927,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -946,14 +946,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -974,7 +975,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -983,19 +984,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1004,7 +1005,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -1014,7 +1015,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -850,12 +850,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -867,7 +867,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -885,7 +885,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -910,12 +910,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -927,7 +927,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -946,14 +946,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -974,7 +975,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -983,19 +984,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -1004,7 +1005,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -1014,7 +1015,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -535,12 +535,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -552,7 +552,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -570,7 +570,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -595,12 +595,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -612,7 +612,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -631,14 +631,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -659,7 +660,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -668,19 +669,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -689,7 +690,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -699,7 +700,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -535,12 +535,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -552,7 +552,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -570,7 +570,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -595,12 +595,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -612,7 +612,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -631,14 +631,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -659,7 +660,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -668,19 +669,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -689,7 +690,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -699,7 +700,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -457,12 +457,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -474,7 +474,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -492,7 +492,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -517,12 +517,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -534,7 +534,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -553,14 +553,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -581,7 +582,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -590,19 +591,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -611,7 +612,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -621,7 +622,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -457,12 +457,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -474,7 +474,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -492,7 +492,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -517,12 +517,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -534,7 +534,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -553,14 +553,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -581,7 +582,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -590,19 +591,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -611,7 +612,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -621,7 +622,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -367,12 +367,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -384,7 +384,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -402,7 +402,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -427,12 +427,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -444,7 +444,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -463,14 +463,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -491,7 +492,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -500,19 +501,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -521,7 +522,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -531,7 +532,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

View file

@ -367,12 +367,12 @@ var CstyleBehaviour = function () {
return { return {
text: '{' + selected + '}', text: '{' + selected + '}',
selection: false selection: false
} };
} else { } else {
return { return {
text: '{}', text: '{}',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == '}') { } else if (text == '}') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -384,7 +384,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} else if (text == "\n") { } else if (text == "\n") {
@ -402,7 +402,7 @@ var CstyleBehaviour = function () {
return { return {
text: '\n' + indent + '\n' + next_indent, text: '\n' + indent + '\n' + next_indent,
selection: [1, indent.length, 1, indent.length] selection: [1, indent.length, 1, indent.length]
} };
} }
} }
}); });
@ -427,12 +427,12 @@ var CstyleBehaviour = function () {
return { return {
text: '(' + selected + ')', text: '(' + selected + ')',
selection: false selection: false
} };
} else { } else {
return { return {
text: '()', text: '()',
selection: [1, 1] selection: [1, 1]
} };
} }
} else if (text == ')') { } else if (text == ')') {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
@ -444,7 +444,7 @@ var CstyleBehaviour = function () {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -463,14 +463,15 @@ var CstyleBehaviour = function () {
}); });
this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
if (text == '"') { if (text == '"' || text == "'") {
var quote = text;
var selection = editor.getSelectionRange(); var selection = editor.getSelectionRange();
var selected = session.doc.getTextRange(selection); var selected = session.doc.getTextRange(selection);
if (selected !== "") { if (selected !== "") {
return { return {
text: '"' + selected + '"', text: quote + selected + quote,
selection: false selection: false
} };
} else { } else {
var cursor = editor.getCursorPosition(); var cursor = editor.getCursorPosition();
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
@ -491,7 +492,7 @@ var CstyleBehaviour = function () {
if (token.type == "string") { if (token.type == "string") {
quotepos = -1; quotepos = -1;
} else if (quotepos < 0) { } else if (quotepos < 0) {
quotepos = token.value.indexOf('"'); quotepos = token.value.indexOf(quote);
} }
if ((token.value.length + col) > selection.start.column) { if ((token.value.length + col) > selection.start.column) {
break; break;
@ -500,19 +501,19 @@ var CstyleBehaviour = function () {
} }
// Try and be smart about when we auto insert. // Try and be smart about when we auto insert.
if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf('"') === token.value.length-1)))) { if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
return { return {
text: '""', text: quote + quote,
selection: [1,1] selection: [1,1]
} };
} else if (token && token.type === "string") { } else if (token && token.type === "string") {
// Ignore input and move right one if we're typing over the closing quote. // Ignore input and move right one if we're typing over the closing quote.
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '"') { if (rightChar == quote) {
return { return {
text: '', text: '',
selection: [1, 1] selection: [1, 1]
} };
} }
} }
} }
@ -521,7 +522,7 @@ var CstyleBehaviour = function () {
this.add("string_dquotes", "deletion", function (state, action, editor, session, range) { this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
var selected = session.doc.getTextRange(range); var selected = session.doc.getTextRange(range);
if (!range.isMultiLine() && selected == '"') { if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.start.column + 1, range.start.column + 2); var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
if (rightChar == '"') { if (rightChar == '"') {
@ -531,7 +532,8 @@ var CstyleBehaviour = function () {
} }
}); });
} };
oop.inherits(CstyleBehaviour, Behaviour); oop.inherits(CstyleBehaviour, Behaviour);
exports.CstyleBehaviour = CstyleBehaviour; exports.CstyleBehaviour = CstyleBehaviour;

File diff suppressed because one or more lines are too long