mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-22 00:19:24 +03:00
Make LanguageMode unsubscribe from syntax global when destroyed
This commit is contained in:
parent
1b56cfb270
commit
144984c726
@ -83,6 +83,7 @@ class EditSession
|
|||||||
@buffer.release()
|
@buffer.release()
|
||||||
selection.destroy() for selection in @getSelections()
|
selection.destroy() for selection in @getSelections()
|
||||||
@displayBuffer.destroy()
|
@displayBuffer.destroy()
|
||||||
|
@languageMode.destroy()
|
||||||
@project?.removeEditSession(this)
|
@project?.removeEditSession(this)
|
||||||
@trigger 'destroyed'
|
@trigger 'destroyed'
|
||||||
@off()
|
@off()
|
||||||
|
@ -3,6 +3,7 @@ _ = require 'underscore'
|
|||||||
require 'underscore-extensions'
|
require 'underscore-extensions'
|
||||||
{OnigRegExp} = require 'oniguruma'
|
{OnigRegExp} = require 'oniguruma'
|
||||||
EventEmitter = require 'event-emitter'
|
EventEmitter = require 'event-emitter'
|
||||||
|
Subscriber = require 'subscriber'
|
||||||
|
|
||||||
module.exports =
|
module.exports =
|
||||||
class LanguageMode
|
class LanguageMode
|
||||||
@ -14,10 +15,13 @@ class LanguageMode
|
|||||||
constructor: (@editSession) ->
|
constructor: (@editSession) ->
|
||||||
@buffer = @editSession.buffer
|
@buffer = @editSession.buffer
|
||||||
@reloadGrammar()
|
@reloadGrammar()
|
||||||
syntax.on 'grammar-added', (grammar) =>
|
@subscribe syntax, 'grammar-added', (grammar) =>
|
||||||
newScore = grammar.getScore(@buffer.getPath(), @buffer.getText())
|
newScore = grammar.getScore(@buffer.getPath(), @buffer.getText())
|
||||||
@setGrammar(grammar, newScore) if newScore > @currentGrammarScore
|
@setGrammar(grammar, newScore) if newScore > @currentGrammarScore
|
||||||
|
|
||||||
|
destroy: ->
|
||||||
|
@unsubscribe()
|
||||||
|
|
||||||
setGrammar: (grammar, score) ->
|
setGrammar: (grammar, score) ->
|
||||||
return if grammar is @grammar
|
return if grammar is @grammar
|
||||||
@grammar = grammar
|
@grammar = grammar
|
||||||
@ -169,3 +173,4 @@ class LanguageMode
|
|||||||
new OnigRegExp(foldEndPattern)
|
new OnigRegExp(foldEndPattern)
|
||||||
|
|
||||||
_.extend LanguageMode.prototype, EventEmitter
|
_.extend LanguageMode.prototype, EventEmitter
|
||||||
|
_.extend LanguageMode.prototype, Subscriber
|
||||||
|
Loading…
Reference in New Issue
Block a user