mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-20 07:28:08 +03:00
b079194478
The startup script now uses a `Set` to manage `GitDiffView`s held in memory and destroy them when `deactivate` is called. There are now four major subscription blocks. 1. The outer subscriptions held by `activate`. 2. The per-editor subscriptions held within `activate`. 3. The per-editor repository event subscriptions held within each `GitDIffView` instance. 4. The per-editor modification event subscriptions held within each `GitDiffView` are only active when the editor content is bound to a valid git repository. Teardowns of any editor or the module now result in `disposal` of the respective editor's subscriptions or all subscriptions authored within the module. I removed some of `GitDiffView`'s unnecessary methods such as the `start`, `cancleUpdate`, `addDecoration` and `removeDecorations`; The last two methods were combined into the body of `updateDiffs`. `scheduleUpdate` now calls `requestAnimationFrame` instead of `setImmediate` because it's native, standard, and yields to other more important browser processes. I know Atom Core implements setImmediate, but rAF seems to work just as fast if not faster. The memory management of the editor markers and diffs have been joined using a WeakMap. When the diffs are destroyed, so too are the editor markers. Finally, I added the `destroy` method to handle the teardown of subscriptions and other destroyable objects contained within the `GitDiffViews` before object release. |
||
---|---|---|
.. | ||
about | ||
atom-dark-syntax | ||
atom-dark-ui | ||
atom-light-syntax | ||
atom-light-ui | ||
autoflow | ||
base16-tomorrow-dark-theme | ||
base16-tomorrow-light-theme | ||
dalek | ||
deprecation-cop | ||
dev-live-reload | ||
exception-reporting | ||
git-diff | ||
go-to-line | ||
grammar-selector | ||
incompatible-packages | ||
language-rust-bundled | ||
line-ending-selector | ||
link | ||
one-dark-syntax | ||
one-dark-ui | ||
one-light-syntax | ||
one-light-ui | ||
solarized-dark-syntax | ||
solarized-light-syntax | ||
update-package-dependencies | ||
welcome | ||
README.md |
Atom Core Packages
This folder contains core packages that are bundled with Atom releases. Not all Atom core packages are kept here; please see the table below for the location of every core Atom package.
NOTE: There is an ongoing effort to migrate more Atom packages from their individual repositories to this folder. See RFC 003 for more details.