Files
atom/packages/git-diff/package.json
Ruby Allison Rose b079194478 Fix git diff subscriptions (#21968)
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.
2021-03-08 21:12:07 +03:00

31 lines
887 B
JSON

{
"name": "git-diff",
"version": "1.3.9",
"main": "./lib/main",
"description": "Marks lines in the editor gutter that have been added, edited, or deleted since the last commit.",
"repository": "https://github.com/atom/atom",
"license": "MIT",
"engines": {
"atom": "*"
},
"dependencies": {
"atom-select-list": "^0.7.0"
},
"devDependencies": {
"fs-plus": "^3.0.0",
"temp": "~0.8.1"
},
"configSchema": {
"showIconsInEditorGutter": {
"type": "boolean",
"default": false,
"description": "Show colored icons for added (`+`), modified (`·`) and removed (`-`) lines in the editor's gutter, instead of colored markers (`|`)."
},
"wrapAroundOnMoveToDiff": {
"type": "boolean",
"default": true,
"description": "Wraps around to the first/last diff in the file when moving to next/previous diff."
}
}
}