Upon inserting '(', insert matching ')' character after cursor

This commit is contained in:
Nathan Sobo
2012-07-27 13:02:26 -06:00
parent d0d5cb534f
commit 87f4d8c6e9
2 changed files with 18 additions and 0 deletions

View File

@@ -8,6 +8,17 @@ describe "LanguageMode", ->
afterEach ->
editSession.destroy()
describe "common behavior", ->
beforeEach ->
editSession = fixturesProject.buildEditSessionForPath('sample.js', autoIndent: false)
{ buffer, languageMode } = editSession
describe "matching character insertion", ->
describe "when ( is inserted", ->
it "inserts a matching ) following the cursor", ->
editSession.insertText '('
expect(buffer.lineForRow(0)).toMatch /^\(\)/
describe "javascript", ->
beforeEach ->
editSession = fixturesProject.buildEditSessionForPath('sample.js', autoIndent: false)

View File

@@ -1,5 +1,6 @@
AceAdaptor = require 'ace-adaptor'
Range = require 'range'
_ = require 'underscore'
module.exports =
class LanguageMode
@@ -8,6 +9,12 @@ class LanguageMode
@aceMode = @requireAceMode()
@aceAdaptor = new AceAdaptor(@editSession)
_.adviseBefore @editSession, 'insertText', (text) ->
if text == '('
@insertText '()'
@moveCursorLeft()
false
requireAceMode: (fileExtension) ->
modeName = switch @editSession.buffer.getExtension()
when 'js' then 'javascript'