Initial
This commit is contained in:
Родитель
f03db3c8e6
Коммит
c974e8fd40
|
@ -0,0 +1,2 @@
|
|||
out
|
||||
node_modules
|
|
@ -0,0 +1,28 @@
|
|||
// A launch configuration that compiles the extension and then opens it inside a new window
|
||||
{
|
||||
"version": "0.1.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Launch Extension",
|
||||
"type": "extensionHost",
|
||||
"request": "launch",
|
||||
"runtimeExecutable": "${execPath}",
|
||||
"args": ["--extensionDevelopmentPath=${workspaceRoot}" ],
|
||||
"stopOnEntry": false,
|
||||
"sourceMaps": true,
|
||||
"outDir": "${workspaceRoot}/out/src",
|
||||
"preLaunchTask": "npm"
|
||||
},
|
||||
{
|
||||
"name": "Launch Tests",
|
||||
"type": "extensionHost",
|
||||
"request": "launch",
|
||||
"runtimeExecutable": "${execPath}",
|
||||
"args": ["--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/out/test" ],
|
||||
"stopOnEntry": false,
|
||||
"sourceMaps": true,
|
||||
"outDir": "${workspaceRoot}/out/test",
|
||||
"preLaunchTask": "npm"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
// Place your settings in this file to overwrite default and user settings.
|
||||
{
|
||||
"files.exclude": {
|
||||
"out": false // set this to true to hide the "out" folder with the compiled JS files
|
||||
},
|
||||
"search.exclude": {
|
||||
"out": true // set this to false to include "out" folder in search results
|
||||
},
|
||||
"typescript.tsdk": "./node_modules/typescript/lib", // we want to use the TS server from our node_modules folder to control its version
|
||||
"files.trimTrailingWhitespace": true
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
// Available variables which can be used inside of strings.
|
||||
// ${workspaceRoot}: the root folder of the team
|
||||
// ${file}: the current opened file
|
||||
// ${fileBasename}: the current opened file's basename
|
||||
// ${fileDirname}: the current opened file's dirname
|
||||
// ${fileExtname}: the current opened file's extension
|
||||
// ${cwd}: the current working directory of the spawned process
|
||||
|
||||
// A task runner that calls a custom npm script that compiles the extension.
|
||||
{
|
||||
"version": "0.1.0",
|
||||
|
||||
// we want to run npm
|
||||
"command": "npm",
|
||||
|
||||
// the command is a shell script
|
||||
"isShellCommand": true,
|
||||
|
||||
// show the output window only if unrecognized errors occur.
|
||||
"showOutput": "silent",
|
||||
|
||||
// we run the custom script "compile" as defined in package.json
|
||||
"args": ["run", "compile", "--loglevel", "silent"],
|
||||
|
||||
// The tsc compiler is started in watching mode
|
||||
"isWatching": true,
|
||||
|
||||
// use the standard tsc in watch mode problem matcher to find compile problems in the output.
|
||||
"problemMatcher": "$tsc-watch"
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
.vscode/**
|
||||
typings/**
|
||||
out/test/**
|
||||
test/**
|
||||
src/**
|
||||
**/*.map
|
||||
.gitignore
|
||||
tsconfig.json
|
||||
vsc-extension-quickstart.md
|
|
@ -0,0 +1,10 @@
|
|||
# VSCode CMake Tools
|
||||
|
||||
This is a simple Visual Studio Code extension that offers CMake integration. This extension
|
||||
itself *does not* provide language support. For that I recommend
|
||||
[this extension](https://marketplace.visualstudio.com/items?itemName=twxs.cmake).
|
||||
|
||||
This extension can be installed with ``ext install cmake-tools``.
|
||||
|
||||
Issues? Questions? Feature requests? Create an issue on
|
||||
[the github page](https://github.com/vector-of-bool/vscode-cmake-tools).
|
|
@ -0,0 +1,264 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
width="128"
|
||||
height="128"
|
||||
sodipodi:docname="icon.svg"
|
||||
inkscape:export-filename="/home/colby/Documents/Programming/hello-vscode/res/icon.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<metadata
|
||||
id="metadata8">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs6">
|
||||
<filter
|
||||
id="filter3770"
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
inkscape:label="Drop Shadow">
|
||||
<feFlood
|
||||
id="feFlood3772"
|
||||
flood-opacity="0.5"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood" />
|
||||
<feComposite
|
||||
id="feComposite3774"
|
||||
in2="SourceGraphic"
|
||||
in="flood"
|
||||
operator="in"
|
||||
result="composite1" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur3776"
|
||||
in="composite"
|
||||
stdDeviation="2"
|
||||
result="blur" />
|
||||
<feOffset
|
||||
id="feOffset3778"
|
||||
dx="4"
|
||||
dy="4"
|
||||
result="offset" />
|
||||
<feComposite
|
||||
id="feComposite3780"
|
||||
in2="offset"
|
||||
in="SourceGraphic"
|
||||
operator="over"
|
||||
result="composite2" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1376"
|
||||
inkscape:window-height="813"
|
||||
id="namedview4"
|
||||
showgrid="false"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:snap-bbox="true"
|
||||
inkscape:snap-bbox-edge-midpoints="true"
|
||||
inkscape:snap-bbox-midpoints="true"
|
||||
inkscape:zoom="3.421875"
|
||||
inkscape:cx="16.384948"
|
||||
inkscape:cy="72.571875"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg2" />
|
||||
<image
|
||||
width="98.169495"
|
||||
height="98.169495"
|
||||
xlink:href="data:image/png;base64,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
|
||||
"
|
||||
id="image10"
|
||||
x="21.966103"
|
||||
y="8.4067802" />
|
||||
<path
|
||||
style="fill:#00a3db;fill-opacity:1;stroke:#007fab;stroke-width:2.13000011;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter3770)"
|
||||
d="m 15.392896,12.903754 c -4.433665,2.32223 -7.4687495,6.960486 -7.4687495,12.3125 0,5.509605 3.2245275,10.249367 7.8749995,12.5 -0.0025,0.0723 0,0.145809 0,0.21875 l 0,34.3125 c 0,3.34278 2.68847,6.03125 6.03125,6.03125 3.34278,0 6.03125,-2.68847 6.03125,-6.03125 l 0,-34.3125 c 0,-0.07294 0.0025,-0.146451 0,-0.21875 4.641385,-2.250633 7.84375,-6.990395 7.84375,-12.5 0,-5.337192 -2.992655,-9.952631 -7.40625,-12.28125 l 0,14.09375 -6.46875,3.71875 -6.4375,-3.71875 0,-14.125 z"
|
||||
id="rect2987"
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(1.070959,-0.85221386,0.85221386,1.070959,-18.848013,42.412659)" />
|
||||
</svg>
|
После Ширина: | Высота: | Размер: 15 KiB |
|
@ -0,0 +1,270 @@
|
|||
'use strict';
|
||||
|
||||
import * as vscode from 'vscode';
|
||||
import * as proc from 'child_process';
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
|
||||
|
||||
export function activate(context: vscode.ExtensionContext) {
|
||||
// Create an output channel where the configure and build output will go
|
||||
const channel = vscode.window.createOutputChannel('CMake/Build');
|
||||
|
||||
// The diagnostics collection we talk to
|
||||
let cmake_diagnostics = vscode.languages.createDiagnosticCollection('cmake-diags');
|
||||
|
||||
// Get the configuration
|
||||
function cmakeConfig(): vscode.WorkspaceConfiguration {
|
||||
return vscode.workspace.getConfiguration('cmake');
|
||||
}
|
||||
// Get the value of a CMake configuration setting
|
||||
function config<T>(path: string, defaultValue?: T): T {
|
||||
return cmakeConfig().get<T>(path, defaultValue);
|
||||
}
|
||||
|
||||
// Wrap a Node-style function that takes a callback in a promise, making it awaitable
|
||||
function doAsync<T>(fn: Function, ...args): Promise<T> {
|
||||
return new Promise<T>((resolve, reject) => {
|
||||
fn(...args, resolve);
|
||||
});
|
||||
}
|
||||
|
||||
// Returns the build directory
|
||||
function buildDirectory(): string {
|
||||
const build_dir = config<string>('buildDirectory');
|
||||
return build_dir.replace('${workspaceRoot}', vscode.workspace.rootPath);
|
||||
}
|
||||
|
||||
// Test that a command exists
|
||||
const testHaveCommand = async function (command, args: string[] = ['--version']): Promise<Boolean> {
|
||||
return await new Promise<Boolean>((resolve, _) => {
|
||||
const pipe = proc.spawn(command, args);
|
||||
pipe.on('error', () => resolve(false));
|
||||
pipe.on('exit', () => resolve(true));
|
||||
});
|
||||
}
|
||||
|
||||
// Given a list of CMake generators, returns the first on available
|
||||
const pickGenerator = async function (candidates: string[]): Promise<string> {
|
||||
for (const gen of candidates) {
|
||||
const delegate = {
|
||||
Ninja: async function () { return await testHaveCommand('ninja'); },
|
||||
"MinGW Makefiles": async function () {
|
||||
return process.platform === 'win32' && await testHaveCommand('make');
|
||||
},
|
||||
"NMake Makefiles": async function () {
|
||||
return process.platform === 'win32' && await testHaveCommand('nmake', ['/?']);
|
||||
},
|
||||
'Unix Makefiles': async function () {
|
||||
return process.platform !== 'win32' && await testHaveCommand('make');
|
||||
}
|
||||
}[gen];
|
||||
if (delegate === undefined) {
|
||||
vscode.window.showErrorMessage('Unknown CMake generator "' + gen + '"');
|
||||
continue;
|
||||
}
|
||||
if (await delegate())
|
||||
return gen;
|
||||
else
|
||||
console.log('Genereator "' + gen + '" is not supported');
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function executeCMake(args: string[]): void {
|
||||
console.info('Execute cmake with arguments:', args);
|
||||
const pipe = proc.spawn('cmake', args);
|
||||
const status = vscode.window.setStatusBarMessage;
|
||||
status('Executing CMake...', 1000);
|
||||
channel.appendLine('[vscode] Executing cmake command: cmake ' + args.join(' '));
|
||||
let stderr_acc = '';
|
||||
pipe.stdout.on('data', (data: Uint8Array) => {
|
||||
const str = data.toString();
|
||||
console.log('cmake [stdout]: ' + str.trim());
|
||||
channel.append(str);
|
||||
status('cmake: ' + str.trim(), 1000);
|
||||
});
|
||||
pipe.stderr.on('data', (data: Uint8Array) => {
|
||||
const str = data.toString();
|
||||
console.log('cmake [stderr]: ' + str.trim());
|
||||
stderr_acc += str;
|
||||
channel.append(str);
|
||||
status('cmake: ' + str.trim(), 1000);
|
||||
});
|
||||
pipe.on('close', (retc: Number) => {
|
||||
console.log('cmake exited with return code ' + retc);
|
||||
channel.appendLine('[vscode] CMake exited with status ' + retc);
|
||||
status('CMake exited with status ' + retc, 3000);
|
||||
if (retc !== 0) {
|
||||
vscode.window.showErrorMessage('CMake exited with non-zero return code ' + retc + '. See CMake/Build output for details');
|
||||
}
|
||||
|
||||
let rest = stderr_acc;
|
||||
const diag_re = /CMake (.*?) at (.*?):(\d+) .*?:\s+(.*?)\s*\n\n\n((.|\n)*)/;
|
||||
const diags: Object = {};
|
||||
while (true) {
|
||||
if (!rest.length) break;
|
||||
const found = diag_re.exec(rest);
|
||||
if (!found) break;
|
||||
const [level, filename, linestr, what, tail] = found.slice(1);
|
||||
const filepath =
|
||||
path.isAbsolute(filename)
|
||||
? filename
|
||||
: path.join(vscode.workspace.rootPath, filename);
|
||||
|
||||
const line = Number.parseInt(linestr) - 1;
|
||||
if (!(filepath in diags)) {
|
||||
diags[filepath] = [];
|
||||
}
|
||||
const file_diags: vscode.Diagnostic[] = diags[filepath];
|
||||
const diag = new vscode.Diagnostic(
|
||||
new vscode.Range(
|
||||
line,
|
||||
0,
|
||||
line,
|
||||
Number.POSITIVE_INFINITY
|
||||
),
|
||||
what,
|
||||
{
|
||||
"Warning": vscode.DiagnosticSeverity.Warning,
|
||||
"Error": vscode.DiagnosticSeverity.Error,
|
||||
}[level]
|
||||
);
|
||||
diag.source = 'CMake';
|
||||
file_diags.push(diag);
|
||||
rest = tail;
|
||||
}
|
||||
|
||||
cmake_diagnostics.clear();
|
||||
for (const filepath in diags) {
|
||||
cmake_diagnostics.set(vscode.Uri.file(filepath), diags[filepath]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const configure = vscode.commands.registerCommand('cmake.configure', async function (extra_args: string[] = []) {
|
||||
if (!(extra_args instanceof Array)) {
|
||||
extra_args = [];
|
||||
}
|
||||
const source_dir = vscode.workspace.rootPath;
|
||||
if (!source_dir) {
|
||||
vscode.window.showErrorMessage('You do not have a source directory open');
|
||||
return;
|
||||
}
|
||||
const cmake_list = path.join(source_dir, 'CMakeLists.txt');
|
||||
const binary_dir = buildDirectory();
|
||||
|
||||
const cmake_cache = path.join(binary_dir, "CMakeCache.txt");
|
||||
channel.show();
|
||||
|
||||
const settings_args = ['--no-warn-unused-cli'];
|
||||
if (!(await doAsync(fs.exists, cmake_cache))) {
|
||||
channel.appendLine("[vscode] Setting up initial CMake configuration");
|
||||
const generator = await pickGenerator(config<string[]>("preferredGenerators"));
|
||||
if (generator) {
|
||||
channel.appendLine('[vscode] Configuring using the "' + generator + '" CMake generator');
|
||||
settings_args.push("-G" + generator);
|
||||
}
|
||||
else {
|
||||
console.error("None of the preferred generators was selected");
|
||||
}
|
||||
|
||||
settings_args.push("-DCMAKE_BUILD_TYPE=" + config<string>("initialBuildType"));
|
||||
}
|
||||
|
||||
const settings = config<Object>("configureSettings");
|
||||
for (const key in settings) {
|
||||
let value = settings[key];
|
||||
if (value === true || value === false)
|
||||
value = value ? "TRUE" : "FALSE";
|
||||
if (value instanceof Array)
|
||||
value = value.join(';');
|
||||
settings_args.push("-D" + key + "=" + value);
|
||||
}
|
||||
|
||||
await executeCMake(
|
||||
['-H' + source_dir, '-B' + binary_dir]
|
||||
.concat(settings_args)
|
||||
.concat(extra_args)
|
||||
);
|
||||
});
|
||||
|
||||
const build = vscode.commands.registerCommand('cmake.build', async function (target = 'all') {
|
||||
if (target instanceof Object) {
|
||||
target = 'all';
|
||||
}
|
||||
const source_dir = vscode.workspace.rootPath;
|
||||
if (!source_dir) {
|
||||
vscode.window.showErrorMessage('You do not have a source directory open');
|
||||
return;
|
||||
}
|
||||
const binary_dir = buildDirectory();
|
||||
if (!(await doAsync(fs.exists, binary_dir))) {
|
||||
vscode.window.showErrorMessage('You do not yet have a build directory. Configure your project first');
|
||||
return;
|
||||
}
|
||||
|
||||
channel.show();
|
||||
await executeCMake(['--build', binary_dir, '--target', target]);
|
||||
});
|
||||
|
||||
const build_target = vscode.commands.registerCommand('cmake.buildWithTarget', async function () {
|
||||
const target: string = await vscode.window.showInputBox({
|
||||
prompt: 'Enter the name of a target to build',
|
||||
});
|
||||
vscode.commands.executeCommand('cmake.build', target);
|
||||
});
|
||||
|
||||
const set_build_type = vscode.commands.registerCommand('cmake.setBuildType', async function () {
|
||||
const build_type = await vscode.window.showQuickPick<any>([{
|
||||
label: 'Release',
|
||||
description: 'Optimized build with no debugging information',
|
||||
}, {
|
||||
label: 'Debug',
|
||||
description: 'Default build type. No optimizations. Contains debug information',
|
||||
}, {
|
||||
label: 'MinSizeRel',
|
||||
description: 'Release build tweaked for minimum binary code size',
|
||||
}, {
|
||||
label: 'RelWithDebInfo',
|
||||
description: 'Same as "Release", but also generates debugging information',
|
||||
}]);
|
||||
|
||||
vscode.commands.executeCommand('cmake.configure', ['-DCMAKE_BUILD_TYPE=' + build_type.label])
|
||||
})
|
||||
|
||||
const clean_configure = vscode.commands.registerCommand('cmake.cleanConfigure', async function () {
|
||||
const build_dir = buildDirectory();
|
||||
const cmake_cache = path.join(build_dir, 'CMakeCache.txt');
|
||||
const cmake_files = path.join(build_dir, 'CMakeFiles');
|
||||
if (await doAsync(fs.exists, cmake_cache)) {
|
||||
channel.appendLine('[vscode] Removing ' + cmake_cache);
|
||||
await doAsync(fs.unlink, cmake_cache);
|
||||
}
|
||||
if (await doAsync(fs.exists, cmake_files)) {
|
||||
channel.appendLine('[vscode] Removing ' + cmake_files);
|
||||
await doAsync(fs.unlink, cmake_files);
|
||||
}
|
||||
await vscode.commands.executeCommand('cmake.configure');
|
||||
});
|
||||
|
||||
const clean = vscode.commands.registerCommand("cmake.clean", async function () {
|
||||
await vscode.commands.executeCommand('cmake.build', 'clean');
|
||||
});
|
||||
|
||||
const clean_rebuild = vscode.commands.registerCommand('cmake.cleanRebuild', async function () {
|
||||
await vscode.commands.executeCommand('cmake.clean');
|
||||
await vscode.commands.executeCommand('cmake.build');
|
||||
});
|
||||
|
||||
const ctest = vscode.commands.registerCommand('cmake.ctest', async function () {
|
||||
executeCMake(['-E', 'chdir', buildDirectory(), 'ctest', '-j8', '--output-on-failure']);
|
||||
});
|
||||
|
||||
for (const item of [configure, build, build_target, set_build_type, clean_configure, clean, clean_rebuild])
|
||||
context.subscriptions.push(item);
|
||||
}
|
||||
|
||||
// this method is called when your extension is deactivated
|
||||
export function deactivate() {
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"target": "ES5",
|
||||
"outDir": "out",
|
||||
"noLib": true,
|
||||
"sourceMap": true,
|
||||
"rootDir": "."
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
]
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
/// <reference path="../node_modules/vscode/typings/node.d.ts" />
|
|
@ -0,0 +1 @@
|
|||
/// <reference path="../node_modules/vscode/typings/index.d.ts" />
|
Загрузка…
Ссылка в новой задаче