mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-20 07:28:08 +03:00
Merge pull request #17521 from Aerijo/patch-1
Support activation hooks by grammar scope
This commit is contained in:
commit
d82c3979ac
@ -1299,6 +1299,34 @@ describe('Workspace', () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe('the root-scope-used hook', () => {
|
||||
it('fires when opening a file or changing the grammar of an open file', async () => {
|
||||
await atom.packages.activatePackage('language-javascript')
|
||||
await atom.packages.activatePackage('language-coffee-script')
|
||||
|
||||
const observeTextEditorsSpy = jasmine.createSpy('observeTextEditors')
|
||||
const javascriptGrammarUsed = jasmine.createSpy('javascript')
|
||||
const coffeeScriptGrammarUsed = jasmine.createSpy('coffeescript')
|
||||
|
||||
atom.packages.triggerDeferredActivationHooks()
|
||||
atom.packages.onDidTriggerActivationHook('source.js:root-scope-used', () => {
|
||||
atom.workspace.observeTextEditors(observeTextEditorsSpy)
|
||||
javascriptGrammarUsed()
|
||||
})
|
||||
atom.packages.onDidTriggerActivationHook('source.coffee:root-scope-used', coffeeScriptGrammarUsed)
|
||||
|
||||
expect(javascriptGrammarUsed).not.toHaveBeenCalled()
|
||||
expect(observeTextEditorsSpy).not.toHaveBeenCalled()
|
||||
const editor = await atom.workspace.open('sample.js', {autoIndent: false})
|
||||
expect(javascriptGrammarUsed).toHaveBeenCalled()
|
||||
expect(observeTextEditorsSpy.callCount).toBe(1)
|
||||
|
||||
expect(coffeeScriptGrammarUsed).not.toHaveBeenCalled()
|
||||
atom.grammars.assignLanguageMode(editor, 'source.coffee')
|
||||
expect(coffeeScriptGrammarUsed).toHaveBeenCalled()
|
||||
})
|
||||
})
|
||||
|
||||
describe('::reopenItem()', () => {
|
||||
it("opens the uri associated with the last closed pane that isn't currently open", () => {
|
||||
const pane = workspace.getActivePane()
|
||||
|
@ -1268,7 +1268,8 @@ module.exports = class Workspace extends Model {
|
||||
|
||||
handleGrammarUsed (grammar) {
|
||||
if (grammar == null) { return }
|
||||
return this.packageManager.triggerActivationHook(`${grammar.packageName}:grammar-used`)
|
||||
this.packageManager.triggerActivationHook(`${grammar.scopeName}:root-scope-used`)
|
||||
this.packageManager.triggerActivationHook(`${grammar.packageName}:grammar-used`)
|
||||
}
|
||||
|
||||
// Public: Returns a {Boolean} that is `true` if `object` is a `TextEditor`.
|
||||
|
Loading…
Reference in New Issue
Block a user