bundles/org.eclipse.orion.client.editor/web/orion/editor/actions.js
function() {
			var editor = this.editor;
			var textView = editor.getTextView();
			if (textView.getOptions("readonly")) { return false; } //$NON-NLS-0$
			var model = editor.getModel();
			forEachSelection(this, false, function(selection, setText) {
				if (selection.start !== selection.end) { return; }
			
				var prevChar = (selection.start === 0) ? "" : model.getText(selection.start - 1, selection.start); //$NON-NLS-0$
				var nextChar = (selection.start === model.getCharCount()) ? "" : model.getText(selection.start, selection.start + 1); //$NON-NLS-0$
	
				if (prevChar === "(" && nextChar === ")" || //$NON-NLS-1$ //$NON-NLS-2$
					prevChar === "[" && nextChar === "]" || //$NON-NLS-1$ //$NON-NLS-2$
					prevChar === "{" && nextChar === "}" || //$NON-NLS-1$ //$NON-NLS-2$
					prevChar === "<" && nextChar === ">" || //$NON-NLS-1$ //$NON-NLS-2$
					prevChar === '"' && nextChar === '"' || //$NON-NLS-1$ //$NON-NLS-2$
					prevChar === "'" && nextChar === "'") { //$NON-NLS-1$ //$NON-NLS-2$
					setText("", selection.start, selection.start + 1); //$NON-NLS-0$
				}
			}, true);
			return false;
		}
function() {
			var editor = this.editor;
			var textView = editor.getTextView();
			if (textView.getOptions("readonly")) { return false; } //$NON-NLS-0$
			var model = editor.getModel();
			forEachSelection(this, false, function(selection, setText) {
				if (selection.start !== selection.end) { return; }
			
				var prevChar = (selection.start === 0) ? "" : model.getText(selection.start - 1, selection.start); //$NON-NLS-0$
				var nextChar = (selection.start === model.getCharCount()) ? "" : model.getText(selection.start, selection.start + 1); //$NON-NLS-0$
	
				if (prevChar === "(" && nextChar === ")" || //$NON-NLS-1$ //$NON-NLS-2$
					prevChar === "[" && nextChar === "]" || //$NON-NLS-1$ //$NON-NLS-2$
					prevChar === "{" && nextChar === "}" || //$NON-NLS-1$ //$NON-NLS-2$
					prevChar === "<" && nextChar === ">" || //$NON-NLS-1$ //$NON-NLS-2$
					prevChar === '"' && nextChar === '"' || //$NON-NLS-1$ //$NON-NLS-2$
					prevChar === "'" && nextChar === "'") { //$NON-NLS-1$ //$NON-NLS-2$
					setText("", selection.start, selection.start + 1); //$NON-NLS-0$
				}
			}, true);
			return false;
		}
function ( ) { var editor = this . editor ; var textView = editor . getTextView ( ) ; if ( textView . getOptions ( "readonly" ) ) { return false ; } //$NON-NLS-0$
 var model = editor . getModel ( ) ; forEachSelection ( this , false , function ( selection , setText ) { if ( selection . start !== selection . end ) { return ; } var prevChar = ( selection . start === 0 ) ? "" : model . getText ( selection . start - 1 , selection . start ) ; //$NON-NLS-0$
 var nextChar = ( selection . start === model . getCharCount ( ) ) ? "" : model . getText ( selection . start , selection . start + 1 ) ; //$NON-NLS-0$
 if ( prevChar === "(" && nextChar === ")" || //$NON-NLS-1$ //$NON-NLS-2$
 prevChar === "[" && nextChar === "]" || //$NON-NLS-1$ //$NON-NLS-2$
 prevChar === "{" && nextChar === "}" || //$NON-NLS-1$ //$NON-NLS-2$
 prevChar === "<" && nextChar === ">" || //$NON-NLS-1$ //$NON-NLS-2$
 prevChar === '"' && nextChar === '"' || //$NON-NLS-1$ //$NON-NLS-2$
 prevChar === "'" && nextChar === "'" ) { //$NON-NLS-1$ //$NON-NLS-2$
 setText ( "" , selection . start , selection . start + 1 ) ; //$NON-NLS-0$
 } } , true ) ; return false ; }
On backspace keypress, checks if there are a pair of brackets or quotation marks to be deleted
On backspace keypress checks if there are a pair of brackets or quotation marks to be deleted