Repository navigation
Expand file tree
/
Copy pathextension.js
More file actions
55 lines (48 loc) · 1.97 KB
/
Copy pathextension.js
File metadata and controls
55 lines (48 loc) · 1.97 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
const vscode = require('vscode');
const fs = require('fs');
const path = require('path');
function activate(context) {
context.subscriptions.push(
vscode.tasks.registerTaskProvider('cyrus', {
provideTasks() {
const workspaceFolders = vscode.workspace.workspaceFolders;
const tasks = [];
const activeEditor = vscode.window.activeTextEditor;
const activeFile = activeEditor ? activeEditor.document.fileName : undefined;
// Project build task (uses Project.toml if present)
const projectTask = new vscode.Task(
{ type: 'cyrus', task: 'build-project' },
vscode.TaskScope.Workspace,
'Cyrus: Build Project (Project.toml)',
'cyrus',
new vscode.ShellExecution('cyrus build --profile=debug --sanitize=address -g --optimize=o0')
);
projectTask.group = vscode.TaskGroup.Build;
projectTask.isDefault = true;
tasks.push(projectTask);
// Current file build task
const shellCmd = activeFile
? `cyrus build "${activeFile}" --profile=debug --sanitize=address -g --optimize=o0`
: `cyrus build --profile=debug --sanitize=address -g --optimize=o0`;
const fileTask = new vscode.Task(
{ type: 'cyrus', task: 'build-file' },
vscode.TaskScope.Workspace,
'Cyrus: Build Current File',
'cyrus',
new vscode.ShellExecution(shellCmd)
);
fileTask.group = vscode.TaskGroup.Build;
tasks.push(fileTask);
return tasks;
},
resolveTask(task) {
return task;
}
})
);
}
function deactivate() {}
module.exports = {
activate,
deactivate
};