本文整理汇总了TypeScript中vscode.workspace.getWorkspaceFolder方法的典型用法代码示例。如果您正苦于以下问题:TypeScript workspace.getWorkspaceFolder方法的具体用法?TypeScript workspace.getWorkspaceFolder怎么用?TypeScript workspace.getWorkspaceFolder使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vscode.workspace
的用法示例。
在下文中一共展示了workspace.getWorkspaceFolder方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: constructor
public constructor(workspaceInfo: protocol.WorkspaceInformationResponse, workspaceFolder: vscode.WorkspaceFolder = undefined) {
if (workspaceFolder) {
this.workspaceFolder = workspaceFolder;
}
else {
let resourcePath: string = undefined;
if (!resourcePath && workspaceInfo.Cake) {
resourcePath = workspaceInfo.Cake.Path;
}
if (!resourcePath && workspaceInfo.ScriptCs) {
resourcePath = workspaceInfo.ScriptCs.Path;
}
if (!resourcePath && workspaceInfo.DotNet && workspaceInfo.DotNet.Projects.length > 0) {
resourcePath = workspaceInfo.DotNet.Projects[0].Path;
}
if (!resourcePath && workspaceInfo.MsBuild) {
resourcePath = workspaceInfo.MsBuild.SolutionPath;
}
this.workspaceFolder = vscode.workspace.getWorkspaceFolder(vscode.Uri.file(resourcePath));
}
this.vscodeFolder = path.join(this.workspaceFolder.uri.fsPath, '.vscode');
this.tasksJsonPath = path.join(this.vscodeFolder, 'tasks.json');
this.launchJsonPath = path.join(this.vscodeFolder, 'launch.json');
this.initializeProjectData(workspaceInfo);
}
示例2: runTest
function runTest(sourceUri: string, className: string, methodName: string): Thenable<TaskExecution> {
let file = Uri.parse(sourceUri).fsPath;
file = Path.relative(workspace.rootPath, file);
let kind: JavaTestTask = {
type: 'java.task.test',
className: className,
methodName: methodName,
}
var shell;
let config = workspace.getConfiguration('java')
// Run method or class
if (methodName != null) {
let command = config.get('testMethod') as string[]
if (command.length == 0) {
window.showErrorMessage('Set "java.testMethod" in .vscode/settings.json')
shell = new ShellExecution('echo', ['Set "java.testMethod" in .vscode/settings.json, for example ["mvn", "test", "-Dtest=${class}#${method}"]'])
} else {
shell = templateCommand(command, file, className, methodName)
}
} else {
let command = config.get('testClass') as string[]
if (command.length == 0) {
window.showErrorMessage('Set "java.testClass" in .vscode/settings.json')
shell = new ShellExecution('echo', ['Set "java.testClass" in .vscode/settings.json, for example ["mvn", "test", "-Dtest=${class}"]'])
} else {
shell = templateCommand(command, file, className, methodName)
}
}
let workspaceFolder = workspace.getWorkspaceFolder(Uri.parse(sourceUri))
let task = new Task(kind, workspaceFolder, 'Java Test', 'Java Language Server', shell)
return tasks.executeTask(task)
}
示例3:
return compilerPaths.map<vscode.Task>(compilerPath => {
// Handle compiler args in compilerPath.
let compilerPathAndArgs: util.CompilerPathAndArgs = util.extractCompilerPathAndArgs(compilerPath);
compilerPath = compilerPathAndArgs.compilerPath;
const filePath: string = path.join('${fileDirname}', '${fileBasenameNoExtension}');
const compilerPathBase: string = path.basename(compilerPath);
const taskName: string = compilerPathBase + " build active file";
const isCl: boolean = taskName.startsWith("cl.exe");
let args: string[] = isCl ? [ '/Zi', '/EHsc', '/Fe:', filePath + '.exe', '${file}' ] : ['-g', '${file}', '-o', filePath + (isWindows ? '.exe' : '')];
if (compilerPathAndArgs.additionalArgs) {
args = args.concat(compilerPathAndArgs.additionalArgs);
}
const cwd: string = isCl ? "" : path.dirname(compilerPath);
const kind: BuildTaskDefinition = {
type: 'shell',
label: taskName,
command: isCl ? compilerPathBase : compilerPath,
args: args,
options: isCl ? undefined : {"cwd": cwd},
compilerPath: isCl ? compilerPathBase : compilerPath
};
const command: vscode.ShellExecution = new vscode.ShellExecution(compilerPath, [...args], { cwd: cwd });
const target: vscode.WorkspaceFolder = vscode.workspace.getWorkspaceFolder(clients.ActiveClient.RootUri);
let task: vscode.Task = new vscode.Task(kind, target, taskName, taskSourceStr, command, '$gcc');
task.definition = kind; // The constructor for vscode.Task will eat the definition. Reset it by reassigning.
task.group = vscode.TaskGroup.Build;
if (!returnComplerPath) {
delete task.definition.compilerPath;
}
return task;
});
示例4: provideNpmScriptsForFolder
async function provideNpmScriptsForFolder(packageJsonUri: Uri): Promise<Task[]> {
let emptyTasks: Task[] = [];
let folder = workspace.getWorkspaceFolder(packageJsonUri);
if (!folder) {
return emptyTasks;
}
let scripts = await getScripts(packageJsonUri);
if (!scripts) {
return emptyTasks;
}
const result: Task[] = [];
const prePostScripts = getPrePostScripts(scripts);
Object.keys(scripts).forEach(each => {
const task = createTask(each, `run ${each}`, folder!, packageJsonUri);
const lowerCaseTaskName = each.toLowerCase();
if (isBuildTask(lowerCaseTaskName)) {
task.group = TaskGroup.Build;
} else if (isTestTask(lowerCaseTaskName)) {
task.group = TaskGroup.Test;
}
if (prePostScripts.has(each)) {
task.group = TaskGroup.Clean; // hack: use Clean group to tag pre/post scripts
}
if (isDebugScript(scripts![each])) {
task.group = TaskGroup.Rebuild; // hack: use Rebuild group to tag debug scripts
}
result.push(task);
});
// always add npm install (without a problem matcher)
result.push(createTask('install', 'install', folder, packageJsonUri, []));
return result;
}
示例5: createDisplayPath
private createDisplayPath(inputPath: string): string {
// HACK: The AS returns paths to the PUB_CACHE folder, which Code can't
// convert to relative paths (so they look terrible). If the file exists in
// workspace.rootPath we rewrite the path to there which gives us a nice
// relative path.
// Currently I only do this for "hosted\pub.dartlang.org" as I'm not sure of the
// rules for these paths!
const pubCachePath = "hosted" + path.sep + "pub.dartlang.org";
const pubCachePathIndex = inputPath.indexOf(pubCachePath);
if (pubCachePathIndex > -1) {
const relativePath = inputPath.substring(pubCachePathIndex + pubCachePath.length + 1);
// Packages in pubcache are versioned so trim the "-x.x.x" off the end of the foldername.
const pathComponents = relativePath.split(path.sep);
pathComponents[0] = pathComponents[0].split("-")[0];
// Symlink goes into the lib folder, so strip that out of the path.
if (pathComponents[1] === "lib")
pathComponents.splice(1, 1);
// Return 'package:foo/bar.dart'.
inputPath = `package:${pathComponents[0]}/${pathComponents.slice(1).join("/")}`;
} else {
const root = workspace.getWorkspaceFolder(Uri.file(inputPath));
inputPath = root && path.relative(fsPath(root.uri), inputPath);
}
return inputPath;
}
示例6: next
configuration: (params, token, next) => {
if (!params.items) {
return [];
}
const result = next(params, token);
let scopeUri = "";
for (const item of params.items) {
if (!item.scopeUri) {
continue;
} else {
scopeUri = item.scopeUri;
}
}
const resource = client.protocol2CodeConverter.asUri(scopeUri);
const workspaceFolder = workspace.getWorkspaceFolder(resource);
if (workspaceFolder) {
convertToAbsolutePaths(result[0], workspaceFolder);
if (workspaceFolder.uri.scheme === "file") {
result[0].workspaceFolderPath = workspaceFolder.uri.fsPath;
}
}
return result;
}
示例7: findSettingsFiles
export function findSettingsFiles(uri?: Uri): Thenable<Uri[]> {
const { workspaceFolders } = workspace;
if (!workspaceFolders || !hasWorkspaceLocation()) {
return Promise.resolve([]);
}
const folders = uri
? [workspace.getWorkspaceFolder(uri)!].filter(a => !!a)
: workspaceFolders;
const possibleLocations = folders
.map(folder => folder.uri.fsPath)
.map(root => configFileLocations.map(rel => path.join(root, rel)))
.reduce((a, b) => a.concat(b));
const found = possibleLocations
.map(filename => fs.pathExists(filename)
.then(exists => ({ filename, exists })));
return Promise.all(found).then(found => found
.filter(found => found.exists)
.map(found => found.filename)
.map(filename => Uri.file(filename))
);
}
示例8: fixHref
private fixHref(resource: vscode.Uri, href: string): string {
if (!href) {
return href;
}
// Use href if it is already an URL
const hrefUri = vscode.Uri.parse(href);
if (['http', 'https'].indexOf(hrefUri.scheme) >= 0) {
return hrefUri.toString();
}
// Use href as file URI if it is absolute
if (path.isAbsolute(href) || hrefUri.scheme === 'file') {
return vscode.Uri.file(href)
.with({ scheme: 'vscode-resource' })
.toString();
}
// Use a workspace relative path if there is a workspace
let root = vscode.workspace.getWorkspaceFolder(resource);
if (root) {
return vscode.Uri.file(path.join(root.uri.fsPath, href))
.with({ scheme: 'vscode-resource' })
.toString();
}
// Otherwise look relative to the markdown file
return vscode.Uri.file(path.join(path.dirname(resource.fsPath), href))
.with({ scheme: 'vscode-resource' })
.toString();
}
示例9: getEditorInfo
function getEditorInfo(): { text: string; tooltip: string; color: string; } {
const editor = window.activeTextEditor;
// If no workspace is opened or just a single folder, we return without any status label
// because our extension only works when more than one folder is opened in a workspace.
if (!editor || !workspace.workspaceFolders || workspace.workspaceFolders.length < 2) {
return null;
}
let text: string;
let tooltip: string;
let color: string;
// If we have a file:// resource we resolve the WorkspaceFolder this file is from and update
// the status accordingly.
const resource = editor.document.uri;
if (resource.scheme === 'file') {
const folder = workspace.getWorkspaceFolder(resource);
if (!folder) {
text = `$(alert) <outside workspace> â ${basename(resource.fsPath)}`;
} else {
text = `$(file-submodule) ${basename(folder.uri.fsPath)} (${folder.index + 1} of ${workspace.workspaceFolders.length}) â $(file-code) ${basename(resource.fsPath)}`;
tooltip = resource.fsPath;
const multiRootConfigForResource = workspace.getConfiguration('multiRootSample', resource);
color = multiRootConfigForResource.get('statusColor');
}
}
return { text, tooltip, color };
}
示例10: fixHref
private fixHref(resource: vscode.Uri, href: string): string {
if (!href) {
return href;
}
if (href.startsWith('http:') || href.startsWith('https:') || href.startsWith('file:')) {
return href;
}
// Assume it must be a local file
if (path.isAbsolute(href)) {
return vscode.Uri.file(href)
.with({ scheme: 'vscode-resource' })
.toString();
}
// Use a workspace relative path if there is a workspace
const root = vscode.workspace.getWorkspaceFolder(resource);
if (root) {
return vscode.Uri.file(path.join(root.uri.fsPath, href))
.with({ scheme: 'vscode-resource' })
.toString();
}
// Otherwise look relative to the markdown file
return vscode.Uri.file(path.join(path.dirname(resource.fsPath), href))
.with({ scheme: 'vscode-resource' })
.toString();
}