-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathextension.js
More file actions
88 lines (68 loc) · 3.05 KB
/
extension.js
File metadata and controls
88 lines (68 loc) · 3.05 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
const vscode = require('vscode');
const dotenv = require('dotenv');
const WebviewProvider = require('./src/main');
const TelemetryReporter = require('@vscode/extension-telemetry').default;
const debounce = require('lodash.debounce');
// Load environment variables
dotenv.config();
// Connection string for telemetry
let reporter;
function activate(context) {
// Correct initialization of the TelemetryReporter
const extensionId = 'codiai.codi-ai'; // Use your extension's identification
const extensionVersion = '0.0.16'; // Current extension version
//const connectionString = "InstrumentationKey=;IngestionEndpoint=https://brazilsouth-1.in.applicationinsights.azure.com/;LiveEndpoint=https://brazilsouth.livediagnostics.monitor.azure.com/;ApplicationId=b24ee5cc-260e-40ad-8a03-edc599e28cdb";
const instrumentationKey = "InstrumentationKey=6f020474-9a6a-45fd-82ff-4b1b164fb7c9;";
reporter = new TelemetryReporter(instrumentationKey);
context.subscriptions.push(reporter);
reporter.sendTelemetryEvent('extensionActivated',
{ activationSource: 'auto' }, // Propiedades adicionales opcionales
{ initializationTime: 1 } // Medidas opcionales, como tiempo de inicialización
);
// Pass the reporter to WebviewProvider
const provider = new WebviewProvider(context.extensionUri, context, reporter);
provider.setEnvironmentVariables();
context.subscriptions.push(
vscode.window.registerWebviewViewProvider(WebviewProvider.viewType, provider)
);
let disposable = vscode.commands.registerCommand('coder-pro.openAssistant', () => {
vscode.commands.executeCommand('workbench.view.extension.coder-pro-sidebar');
reporter.sendTelemetryEvent('openAssistantCommandExecuted',
{ command: 'openAssistant' },
{ executionTime: 1 }
);
});
const statusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, 100);
statusBarItem.text = "$(comment-discussion) Coder Pro";
statusBarItem.command = 'coder-pro.openAssistant';
statusBarItem.show();
context.subscriptions.push(statusBarItem);
setupFileChangeListener(provider, context);
if (reporter) {
context.subscriptions.push(disposable);
}
}
function deactivate() {
// Clean up any resources
}
function getOpenFilesCount() {
return vscode.workspace.textDocuments.filter(doc => !doc.isUntitled && doc.uri.scheme === 'file').length;
}
function setupFileChangeListener(provider, context) {
const sendFileUpdate = debounce(() => {
const openFilesCount = getOpenFilesCount();
provider.updateOpenFilesCount(openFilesCount);
provider.sendFileInfo();
}, 300);
context.subscriptions.push(
vscode.workspace.onDidOpenTextDocument(sendFileUpdate),
vscode.workspace.onDidCloseTextDocument(sendFileUpdate),
vscode.window.onDidChangeActiveTextEditor(sendFileUpdate)
);
// Initial update
sendFileUpdate();
}
module.exports = {
activate,
deactivate
}