add behaviours to demo and fix exceptions in cstyle behaviours

This commit is contained in:
nightwing 2011-07-25 01:47:18 +05:00 • committed by Fabian Jakobs
commit 77db0be7f8
3 changed files with 37 additions and 20 deletions

View file

@ -245,6 +245,7 @@ exports.launch = function(env) {
var highlightSelectedWordE = document.getElementById("highlight_selected_word"); var highlightSelectedWordE = document.getElementById("highlight_selected_word");
var showHScrollEl = document.getElementById("show_hscroll"); var showHScrollEl = document.getElementById("show_hscroll");
var softTabEl = document.getElementById("soft_tab"); var softTabEl = document.getElementById("soft_tab");
var behavioursEl = document.getElementById("enable_behaviours");
bindDropdown("doc", function(value) { bindDropdown("doc", function(value) {
var doc = docs[value]; var doc = docs[value];
@ -342,6 +343,7 @@ exports.launch = function(env) {
highlightSelectedWordE.checked = editor.getHighlightSelectedWord(); highlightSelectedWordE.checked = editor.getHighlightSelectedWord();
showHScrollEl.checked = editor.renderer.getHScrollBarAlwaysVisible(); showHScrollEl.checked = editor.renderer.getHScrollBarAlwaysVisible();
softTabEl.checked = session.getUseSoftTabs(); softTabEl.checked = session.getUseSoftTabs();
behavioursEl.checked = editor.getBehavioursEnabled()
} }
bindDropdown("mode", function(value) { bindDropdown("mode", function(value) {
@ -418,6 +420,10 @@ exports.launch = function(env) {
env.editor.getSession().setUseSoftTabs(checked); env.editor.getSession().setUseSoftTabs(checked);
}); });
bindCheckbox("enable_behaviours", function(checked) {
env.editor.setBehavioursEnabled(checked);
});
var secondSession = null; var secondSession = null;
bindDropdown("split", function(value) { bindDropdown("split", function(value) {
var sp = env.split; var sp = env.split;

View file

@ -196,10 +196,19 @@
<tr> <tr>
<td > <td >
<label for="highlight_selected_word">Highlight selected word</label> <label for="highlight_selected_word">Highlight selected word</label>
</td><td> </td>
<td>
<input type="checkbox" id="highlight_selected_word" checked> <input type="checkbox" id="highlight_selected_word" checked>
</td> </td>
</tr> </tr>
<tr>
<td >
<label for="enable_behaviours">Enable Behaviours</label>
</td>
<td>
<input type="checkbox" id="enable_behaviours">
</td>
</tr>
</table> </table>
<div id="editor"> <div id="editor">

View file

@ -76,7 +76,9 @@ var CstyleBehaviour = function () {
var line = session.doc.getLine(cursor.row); var line = session.doc.getLine(cursor.row);
var rightChar = line.substring(cursor.column, cursor.column + 1); var rightChar = line.substring(cursor.column, cursor.column + 1);
if (rightChar == '}') { if (rightChar == '}') {
var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column}); var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1});
if (!openBracePos)
return false;
var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString()); var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString());
var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row)); var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row));
@ -96,8 +98,8 @@ var CstyleBehaviour = function () {
var line = session.doc.getLine(range.start.row); var line = session.doc.getLine(range.start.row);
var rightChar = line.substring(range.end.column, range.end.column + 1); var rightChar = line.substring(range.end.column, range.end.column + 1);
if (rightChar == '}') { if (rightChar == '}') {
return new Range(range.start.row, range.start.column, range.end.column++;
range.start.row, range.end.column + 1); return range;
} }
} }
return false; return false;
@ -141,8 +143,8 @@ var CstyleBehaviour = function () {
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 == ')') {
return new Range(range.start.row, range.start.column, range.end.column++;
range.start.row, range.end.column + 1); return range;
} }
} }
return false; return false;
@ -212,8 +214,8 @@ var CstyleBehaviour = function () {
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 == '"') {
return new Range(range.start.row, range.start.column, range.end.column++;
range.start.row, range.end.column + 1); return range;
} }
} }
return false; return false;