mirror of
https://github.com/atom/atom.git
synced 2026-04-06 03:02:13 -04:00
Upon inserting '(', insert matching ')' character after cursor
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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'
|
||||
|
||||
Reference in New Issue
Block a user