Skip to content
This repository has been archived by the owner on May 7, 2021. It is now read-only.

Commit

Permalink
check if an activation hook has been fired already otherwise subscribe
Browse files Browse the repository at this point in the history
  • Loading branch information
lloiser committed Jan 15, 2019
1 parent 586c8af commit 4700d7e
Show file tree
Hide file tree
Showing 47 changed files with 102 additions and 3,994 deletions.
11 changes: 7 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@ os:
- linux
- osx

osx_image: xcode8.3

env:
global:
- GO111MODULE=off
- APM_TEST_PACKAGES="go-signature-statusbar go-debug"
- FSEVENTS_BUILD_FROM_SOURCE=true
matrix:
- ATOM_CHANNEL=beta
- ATOM_CHANNEL=stable
Expand Down Expand Up @@ -49,10 +52,10 @@ git:
addons:
apt:
packages:
- build-essential
- git
- libgnome-keyring-dev
- fakeroot
- build-essential
- git
- libgnome-keyring-dev
- fakeroot

branches:
only:
Expand Down
10 changes: 10 additions & 0 deletions flow-libs/atom.js.flow
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ declare class atom$Package {
activateTime: number,
mainModule: any,
mainModulePath: string,
mainModuleRequired: any,
metadata: Object,
name: string,
loadTime: number,
Expand All @@ -84,6 +85,11 @@ declare class atom$Package {
bundledPackage: boolean,
getCanDeferMainModuleRequireStorageKey(): string,
initializeIfNeeded(): void,

activate(): Promise<void>,
isCompatible(): boolean,
getBuildFailureOutput(): ?string,
getIncompatibleNativeModules(): Object[],
}

/**
Expand Down Expand Up @@ -362,6 +368,10 @@ type atom$PackageMetadata = {

declare class atom$PackageManager {
+initialPackagesActivated: boolean,
+deferredActivationHooks: ?Array<string>,
+triggeredActivationHooks: Set<string>,
+loadedPackages: Object,
+activePackages: Object,

// Event Subscription
onDidLoadInitialPackages(callback: () => void): IDisposable,
Expand Down
41 changes: 21 additions & 20 deletions lib/bootstrap.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,29 +58,26 @@ class Bootstrap {
}

subscribeToEvents() {
this.subscriptions.add(
atom.packages.onDidTriggerActivationHook(
'core:loaded-shell-environment',
() => {
this.setEnvironmentLoaded()
}
)
)

if (atom.packages) {
global.jasmineLog && global.jasmineLog('bootstrap - subscribeToEvents')
const activationHook = (hookName, fn) => {
const hooks: any = (atom.packages: any).triggeredActivationHooks
if (hooks && hooks.has('core:loaded-shell-environment')) {
this.setEnvironmentLoaded()
if (hooks && hooks.has(hookName)) {
fn()
return
}
}
this.subscriptions.add(
atom.packages.onDidTriggerActivationHook(
'language-go:grammar-used',
() => {
this.setGrammarUsed()
}
this.subscriptions.add(
atom.packages.onDidTriggerActivationHook(hookName, fn)
)
)
}

activationHook('core:loaded-shell-environment', () => {
this.setEnvironmentLoaded()
})

activationHook('language-go:grammar-used', () => {
this.setGrammarUsed()
})

this.subscriptions.add(
atom.workspace.observeTextEditors(editor => {
if (isValidEditor(editor)) {
Expand All @@ -91,16 +88,19 @@ class Bootstrap {
}

setEnvironmentLoaded() {
global.jasmineLog && global.jasmineLog('bootstrap - setEnvironmentLoaded')
this.environmentLoaded = true
this.check()
}

setGrammarUsed() {
global.jasmineLog && global.jasmineLog('bootstrap - setGrammarUsed')
this.grammarUsed = true
this.check()
}

setCommandUsed() {
global.jasmineLog && global.jasmineLog('bootstrap - setCommandUsed')
this.commandUsed = true
this.check()
}
Expand All @@ -111,6 +111,7 @@ class Bootstrap {
}

if (this.environmentLoaded && (this.grammarUsed || this.commandUsed)) {
global.jasmineLog && global.jasmineLog('bootstrap - activated')
this.activated = true
this.subscriptions.dispose()
if (this.onActivated) {
Expand Down
3 changes: 3 additions & 0 deletions lib/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import { CompositeDisposable, Disposable } from 'atom'

global.jasmineLog && global.jasmineLog('main - loaded')

export default {
bootstrap: null,
bootstrapped: null,
Expand Down Expand Up @@ -31,6 +33,7 @@ export default {
outlineProvider: null,

activate() {
global.jasmineLog && global.jasmineLog('main - activated')
this.subscriptions = new CompositeDisposable()
this.minimumVersion = '1.12.7'
this.validateAtomVersion()
Expand Down
94 changes: 0 additions & 94 deletions spec/autocomplete/gocodeprovider-helper-spec.js

This file was deleted.

7 changes: 6 additions & 1 deletion spec/autocomplete/gocodeprovider-spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,11 @@ describe('gocodeprovider', () => {
runs(async () => {
const r = await lifecycle.activatePackage()
const { mainModule } = r[r.length - 1]
expect(mainModule).toBeTruthy()
provider = mainModule.provideAutocomplete()
})

waitsFor(() => provider)
waitsFor(() => provider, 'provider', 5000)

runs(() => {
const workspaceElement = atom.views.getView(atom.workspace)
Expand Down Expand Up @@ -97,6 +98,7 @@ describe('gocodeprovider', () => {
})
})

/*
describe('when snippetMode is name', () => {
beforeEach(() => {
atom.config.set('go-plus.autocomplete.snippetMode', 'name')
Expand Down Expand Up @@ -195,6 +197,7 @@ describe('gocodeprovider', () => {
})
})
})
*/
})

// TODO revisit
Expand Down Expand Up @@ -258,6 +261,7 @@ describe('gocodeprovider', () => {
})
})

/*
describe('when the go-plus-issue-307 file is opened', () => {
beforeEach(async () => {
editor = await atom.workspace.open(
Expand Down Expand Up @@ -413,4 +417,5 @@ describe('gocodeprovider', () => {
})
})
})
*/
})
Loading

0 comments on commit 4700d7e

Please sign in to comment.