Zren / atom-a-package-loader

Load slow loading atom packages in the background.
https://atom.io/packages/a-package-loader
MIT License
2 stars 3 forks source link

A Package Loader

A simple package loader to attempt to load slow packages in the background.

Settings

How It Works

This package works by attempting to be the first package to load (which is why it starts with "a"). We can then insert dummy packages into the package manager to skip loading the real package. This is due to this check return pack if pack = @getLoadedPackage(name) in packageManager.loadPackage().

We then do a fixed delay setTimeout(..., 1500). We used a fixed delay as calling atom.getCurrentWindow() + atom.getCurrentWindow().isLoading() is very slow (can take up to 100ms). This value can be changed in the config.

After loading a package, we then wait a bit (default: 25ms) in order for the UI loop to iterate. This prevents the UI from completely freezing. The UI might freeze if a single package takes forever.

Once completely loaded, we sweep the package load+activation times to see if they are considered slow (default: loadTime + activationTime > 30ms).

TODO