提交 fb032eb0 编写于 作者: P Pine Wu

Remove unused go outline stuff

上级 8e9982c1
/*---------------------------------------------------------
* Copyright (C) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------*/
'use strict';
import cp = require('child_process');
import path = require('path');
import { getBinPath } from './goPath';
import { TreeViewNode } from './treeViewModel';
// Keep in sync with https://github.com/lukehoban/go-outline
export interface GoOutlineRange {
start: number;
end: number;
}
export interface GoOutlineDeclaration {
label: string;
type: string;
receiverType?: string;
icon?: string; // icon class or null to use the default images based on the type
start: number;
end: number;
children?: GoOutlineDeclaration[];
signature?: GoOutlineRange;
comment?: GoOutlineRange;
}
// function documentSymbolToSymbolStat(decl: GoOutlineDeclaration): TreeViewNode {
// const children = decl.children && decl.children.length > 0
// ? decl.children.map(documentSymbolToSymbolStat)
// : [];
// return new TreeViewNode(decl.label, decl.type, decl.start, decl.end, children);
// }
// export function documentSymbols(filename: string): Promise<TreeViewNode[]> {
// return new Promise<GoOutlineDeclaration[]>((resolve, reject) => {
// let gooutline = getBinPath('go-outline');
// // Spawn `go-outline` process
// let p = cp.execFile(gooutline, ['-f', filename], {}, (err, stdout, stderr) => {
// try {
// if (err && (<any>err).code === 'ENOENT') {
// console.log('Go-outline not installed');
// // promptForMissingTool('go-outline');
// }
// if (err) return resolve(null);
// let result = stdout.toString();
// let decls = <GoOutlineDeclaration[]>JSON.parse(result);
// let symbols = decls.map(documentSymbolToSymbolStat);
// return resolve(symbols);
// } catch (e) {
// reject(e);
// }
// });
// });
// }
\ No newline at end of file
/*---------------------------------------------------------
* Copyright (C) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------*/
'use strict';
import fs = require('fs');
import path = require('path');
import os = require('os');
let binPathCache: { [bin: string]: string; } = {};
let runtimePathCache: string = null;
export function getBinPath(binname: string) {
binname = correctBinname(binname);
if (binPathCache[binname]) return binPathCache[binname];
// First search each GOPATH workspace's bin folder
if (process.env['GOPATH']) {
let workspaces = process.env['GOPATH'].split(path.delimiter);
for (let i = 0; i < workspaces.length; i++) {
let binpath = path.join(workspaces[i], 'bin', binname);
if (fs.existsSync(binpath)) {
binPathCache[binname] = binpath;
return binpath;
}
}
}
// Then search PATH parts
if (process.env['PATH']) {
let pathparts = process.env['PATH'].split(path.delimiter);
for (let i = 0; i < pathparts.length; i++) {
let binpath = path.join(pathparts[i], binname);
if (fs.existsSync(binpath)) {
binPathCache[binname] = binpath;
return binpath;
}
}
}
// Finally check GOROOT just in case
if (process.env['GOROOT']) {
let binpath = path.join(process.env['GOROOT'], 'bin', binname);
if (fs.existsSync(binpath)) {
binPathCache[binname] = binpath;
return binpath;
}
}
// Else return the binary name directly (this will likely always fail downstream)
binPathCache[binname] = binname;
return binname;
}
function correctBinname(binname: string) {
if (process.platform === 'win32')
return binname + '.exe';
else
return binname;
}
/**
* Returns Go runtime binary path.
*
* @return the path to the Go binary.
*/
export function getGoRuntimePath(): string {
if (runtimePathCache) return runtimePathCache;
if (process.env['GOROOT']) {
runtimePathCache = path.join(process.env['GOROOT'], 'bin', correctBinname('go'));
} else if (process.env['PATH']) {
let pathparts = (<string>process.env.PATH).split(path.delimiter);
runtimePathCache = pathparts.map(dir => path.join(dir, correctBinname('go'))).filter(candidate => fs.existsSync(candidate))[0];
}
return runtimePathCache;
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册