-
-
Notifications
You must be signed in to change notification settings - Fork 67
/
Copy pathApp.js
71 lines (52 loc) · 1.83 KB
/
App.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
const { CompositeDisposable } = require('atom');
const ScrollMarkersService = require('./scroll-markers/scroll-markers-service');
const StatusBarService = require('./status-bar/status-bar-service');
const SelectionManager = require('./selection-manager');
const { commands } = atom;
module.exports = {
selectionManager: null,
activate (){
this.selectionManager = new SelectionManager;
this.subscriptions = new CompositeDisposable;
this.subscriptions.add(this.listenForCommands());
this.scrollMarkersService = new ScrollMarkersService(this.selectionManager);
},
deactivate (){
this.scrollMarkersService?.destroy();
this.selectionManager?.destroy();
this.statusBarService?.destroy();
this.subscriptions?.dispose();
this.scrollMarkersService = null;
this.selectionManager = null;
this.statusBarService = null;
this.subscriptions = null;
},
provideHighlightSelectedV1Deprecated (){
return this.selectionManager
},
provideHighlightSelectedV2 (){
return this.selectionManager
},
consumeStatusBar(statusBar){
this.statusBarService =
new StatusBarService(statusBar,this.selectionManager);
},
toggle (){
return (this.selectionManager.disabled)
? this.selectionManager.enable()
: this.selectionManager.disable()
},
selectAll (){
return this.selectionManager.selectAll()
},
consumeScrollMarker ( scrollMarkerAPI ){
this.scrollMarkersService
.setScrollMarkerAPI(scrollMarkerAPI);
},
listenForCommands (){
return commands.add('atom-workspace',{
'highlight-selected:select-all': () => this.selectAll() ,
'highlight-selected:toggle': () => this.toggle()
})
}
};