🐎 Avoid building unnecessary scope chains

This commit is contained in:
Max Brunsfeld
2016-07-11 13:51:08 -07:00
parent f327a4f95d
commit 1ecc61bebf
2 changed files with 10 additions and 2 deletions

View File

@@ -47,3 +47,11 @@ class ScopeDescriptor
toString: ->
@getScopeChain()
isEqual: (other) ->
if @scopes.length isnt other.scopes.length
return false
for scope, i in @scopes
if scope isnt other.scopes[i]
return false
true

View File

@@ -116,7 +116,7 @@ export default class TextEditorRegistry {
this.subscriptions.add(
this.config.onDidChange(settingKey, configOptions, ({newValue}) => {
this.editorsWithMaintainedConfig.forEach(editor => {
if (editor.getRootScopeDescriptor().getScopeChain() === scopeChain) {
if (editor.getRootScopeDescriptor().isEqual(scopeDescriptor)) {
editor[setterName](newValue)
}
})
@@ -129,7 +129,7 @@ export default class TextEditorRegistry {
const softTabs = this.config.get('editor.softTabs', configOptions)
this.editorsWithMaintainedConfig.forEach(editor => {
if (editor.getRootScopeDescriptor().getScopeChain() === scopeChain) {
if (editor.getRootScopeDescriptor().isEqual(scopeDescriptor)) {
editor.setSoftTabs(shouldEditorUseSoftTabs(editor, tabType, softTabs))
}
})