mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-11-13 08:44:12 +03:00
Update .content.indentGuidesVisible when editor’s grammar changes
This commit is contained in:
parent
d0b52538b2
commit
590391a0ce
@ -87,6 +87,22 @@ describe "TextEditorPresenter", ->
|
||||
atom.config.set('editor.showIndentGuide', false)
|
||||
expect(presenter.state.content.indentGuidesVisible).toBe false
|
||||
|
||||
describe "when the editor's grammar changes", ->
|
||||
it "updates .indentGuidesVisible based on the grammar's root scope", ->
|
||||
atom.config.set('editor.showIndentGuide', true, scopeSelector: ".source.js")
|
||||
|
||||
presenter = new TextEditorPresenter(model: editor, clientHeight: 25, clientWidth: 50, scrollTop: 0, baseCharacterWidth: 10, lineHeight: 10, lineOverdrawMargin: 0)
|
||||
expect(presenter.state.content.indentGuidesVisible).toBe false
|
||||
|
||||
waitsForPromise -> atom.packages.activatePackage('language-javascript')
|
||||
|
||||
runs ->
|
||||
editor.setGrammar(atom.grammars.selectGrammar('.js'))
|
||||
expect(presenter.state.content.indentGuidesVisible).toBe true
|
||||
|
||||
editor.setGrammar(atom.grammars.selectGrammar('.txt'))
|
||||
expect(presenter.state.content.indentGuidesVisible).toBe false
|
||||
|
||||
describe "::state.content.lines", ->
|
||||
describe "on initialization", ->
|
||||
it "contains the lines that are visible on screen, plus the overdraw margin", ->
|
||||
|
@ -18,9 +18,10 @@ class TextEditorPresenter
|
||||
@disposables.add @model.onDidChangeSoftWrapped =>
|
||||
@updateContentState()
|
||||
@updateLinesState()
|
||||
@disposables.add @model.onDidChangeGrammar(@updateContentState.bind(this))
|
||||
|
||||
observeConfig: ->
|
||||
@disposables.add atom.config.onDidChange 'editor.showIndentGuide', @updateContentState.bind(this)
|
||||
@disposables.add atom.config.onDidChange 'editor.showIndentGuide', scope: @model.getRootScopeDescriptor(), @updateContentState.bind(this)
|
||||
|
||||
buildState: ->
|
||||
@state = {}
|
||||
@ -30,7 +31,7 @@ class TextEditorPresenter
|
||||
buildContentState: ->
|
||||
@state.content =
|
||||
scrollWidth: @computeScrollWidth()
|
||||
indentGuidesVisible: atom.config.get('editor.showIndentGuide')
|
||||
indentGuidesVisible: atom.config.get('editor.showIndentGuide', scope: @model.getRootScopeDescriptor())
|
||||
|
||||
buildLinesState: ->
|
||||
@state.content.lines = {}
|
||||
@ -38,7 +39,7 @@ class TextEditorPresenter
|
||||
|
||||
updateContentState: ->
|
||||
@state.content.scrollWidth = @computeScrollWidth()
|
||||
@state.content.indentGuidesVisible = atom.config.get('editor.showIndentGuide')
|
||||
@state.content.indentGuidesVisible = atom.config.get('editor.showIndentGuide', scope: @model.getRootScopeDescriptor())
|
||||
|
||||
updateLinesState: ->
|
||||
visibleLineIds = {}
|
||||
|
Loading…
Reference in New Issue
Block a user