@@ -9,71 +9,91 @@ let statusBarManager: StatusBarManager;
99let systemMonitor : SystemMonitor ;
1010let provider : SystemResourcesProvider ;
1111
12+ async function requestSystemPermissions ( ) : Promise < boolean > {
13+ const result = await vscode . window . showInformationMessage (
14+ "System Performance Extension needs access to system resources (CPU, memory, network) to provide monitoring functionality. Grant access?" ,
15+ { modal : true } ,
16+ "Grant Access" ,
17+ "Deny"
18+ ) ;
19+
20+ return result === "Grant Access" ;
21+ }
22+
1223export function activate ( context : vscode . ExtensionContext ) {
13- provider = new SystemResourcesProvider ( context . extensionUri ) ;
14- statusBarManager = new StatusBarManager ( ) ;
15- systemMonitor = new SystemMonitor ( statusBarManager , provider ) ;
24+ requestSystemPermissions ( ) . then ( ( granted ) => {
25+ if ( ! granted ) {
26+ vscode . window . showErrorMessage (
27+ "System Performance Extension requires system access permissions to monitor CPU, memory, and network usage. Please restart VS Code and grant permissions when prompted."
28+ ) ;
29+ return ;
30+ }
1631
17- context . subscriptions . push (
18- vscode . window . registerWebviewViewProvider (
19- SystemResourcesProvider . viewType ,
20- provider
21- )
22- ) ;
32+ provider = new SystemResourcesProvider ( context . extensionUri ) ;
33+ statusBarManager = new StatusBarManager ( ) ;
34+ systemMonitor = new SystemMonitor ( statusBarManager , provider ) ;
2335
24- statusBarItems = statusBarManager . createStatusBarItems ( ) ;
25- systemMonitor . startSystemMonitoring ( statusBarItems ) ;
36+ context . subscriptions . push (
37+ vscode . window . registerWebviewViewProvider (
38+ SystemResourcesProvider . viewType ,
39+ provider
40+ )
41+ ) ;
2642
27- const showGraphDisposable = vscode . commands . registerCommand (
28- "system-performance.showGraph" ,
29- ( ) => {
30- vscode . commands . executeCommand ( "systemResourcesView.focus" ) ;
31- }
32- ) ;
43+ statusBarItems = statusBarManager . createStatusBarItems ( ) ;
44+ systemMonitor . startSystemMonitoring ( statusBarItems ) ;
3345
34- const toggleGraphDisposable = vscode . commands . registerCommand (
35- "system-performance.toggleGraph " ,
36- ( ) => {
37- vscode . commands . executeCommand ( "systemResourcesView.focus" ) ;
38- }
39- ) ;
46+ const showGraphDisposable = vscode . commands . registerCommand (
47+ "system-performance.showGraph " ,
48+ ( ) => {
49+ vscode . commands . executeCommand ( "systemResourcesView.focus" ) ;
50+ }
51+ ) ;
4052
41- const refreshDisposable = vscode . commands . registerCommand (
42- "system-performance.refresh" ,
43- ( ) => {
44- if ( statusBarItems ) {
45- systemMonitor . startSystemMonitoring ( statusBarItems ) ;
53+ const toggleGraphDisposable = vscode . commands . registerCommand (
54+ "system-performance.toggleGraph" ,
55+ ( ) => {
56+ vscode . commands . executeCommand ( "systemResourcesView.focus" ) ;
4657 }
47- }
48- ) ;
58+ ) ;
4959
50- const toggleMonitoringDisposable = vscode . commands . registerCommand (
51- "system-performance.toggleMonitoring" ,
52- ( ) => {
53- if ( statusBarItems ) {
54- systemMonitor . toggleMonitoring ( statusBarItems ) ;
60+ const refreshDisposable = vscode . commands . registerCommand (
61+ "system-performance.refresh" ,
62+ ( ) => {
63+ if ( statusBarItems ) {
64+ systemMonitor . startSystemMonitoring ( statusBarItems ) ;
65+ }
5566 }
56- }
57- ) ;
67+ ) ;
5868
59- context . subscriptions . push (
60- showGraphDisposable ,
61- toggleGraphDisposable ,
62- refreshDisposable ,
63- toggleMonitoringDisposable
64- ) ;
69+ const toggleMonitoringDisposable = vscode . commands . registerCommand (
70+ "system-performance.toggleMonitoring" ,
71+ ( ) => {
72+ if ( statusBarItems ) {
73+ systemMonitor . toggleMonitoring ( statusBarItems ) ;
74+ }
75+ }
76+ ) ;
6577
66- if ( statusBarItems ) {
6778 context . subscriptions . push (
68- statusBarItems . cpu ,
69- statusBarItems . memory ,
70- statusBarItems . vscodeCpu ,
71- statusBarItems . vscodeMemory ,
72- statusBarItems . network ,
73- statusBarItems . disk ,
74- statusBarItems . uptime
79+ showGraphDisposable ,
80+ toggleGraphDisposable ,
81+ refreshDisposable ,
82+ toggleMonitoringDisposable
7583 ) ;
76- }
84+
85+ if ( statusBarItems ) {
86+ context . subscriptions . push (
87+ statusBarItems . cpu ,
88+ statusBarItems . memory ,
89+ statusBarItems . vscodeCpu ,
90+ statusBarItems . vscodeMemory ,
91+ statusBarItems . network ,
92+ statusBarItems . disk ,
93+ statusBarItems . uptime
94+ ) ;
95+ }
96+ } ) ;
7797}
7898
7999export function deactivate ( ) {
0 commit comments