当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript workspace.registerTaskProvider方法代码示例

本文整理汇总了TypeScript中vscode.workspace.registerTaskProvider方法的典型用法代码示例。如果您正苦于以下问题:TypeScript workspace.registerTaskProvider方法的具体用法?TypeScript workspace.registerTaskProvider怎么用?TypeScript workspace.registerTaskProvider使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在vscode.workspace的用法示例。


在下文中一共展示了workspace.registerTaskProvider方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: registerTaskProvider

function registerTaskProvider(context: vscode.ExtensionContext): vscode.Disposable | undefined {
	if (vscode.workspace.workspaceFolders) {
		let cachedTasks: vscode.Task[] | undefined = undefined;

		let flushCache = () => cachedTasks = undefined;
		let watcher = vscode.workspace.createFileSystemWatcher('**/package.json');
		watcher.onDidChange((_e) => flushCache());
		watcher.onDidDelete((_e) => flushCache());
		watcher.onDidCreate((_e) => flushCache());
		context.subscriptions.push(watcher);

		let provider: vscode.TaskProvider = {
			provideTasks: async () => {
				if (!cachedTasks) {
					cachedTasks = await provideNpmScripts();
				}
				return cachedTasks;
			},
			resolveTask(_task: vscode.Task): vscode.Task | undefined {
				return undefined;
			}
		};
		return vscode.workspace.registerTaskProvider('npm', provider);
	}
	return undefined;
}
开发者ID:AllureFer,项目名称:vscode,代码行数:26,代码来源:main.ts

示例2: registerTaskProvider

function registerTaskProvider(context: vscode.ExtensionContext): vscode.Disposable | undefined {

	function invalidateScriptCaches() {
		invalidateHoverScriptsCache();
		invalidateTasksCache();
		if (treeDataProvider) {
			treeDataProvider.refresh();
		}
	}

	if (vscode.workspace.workspaceFolders) {
		let watcher = vscode.workspace.createFileSystemWatcher('**/package.json');
		watcher.onDidChange((_e) => invalidateScriptCaches());
		watcher.onDidDelete((_e) => invalidateScriptCaches());
		watcher.onDidCreate((_e) => invalidateScriptCaches());
		context.subscriptions.push(watcher);

		let workspaceWatcher = vscode.workspace.onDidChangeWorkspaceFolders((_e) => invalidateScriptCaches());
		context.subscriptions.push(workspaceWatcher);

		let provider: vscode.TaskProvider = new NpmTaskProvider();
		let disposable = vscode.workspace.registerTaskProvider('npm', provider);
		context.subscriptions.push(disposable);
		return disposable;
	}
	return undefined;
}
开发者ID:sadguruy,项目名称:vscode,代码行数:27,代码来源:main.ts

示例3: registerTaskProvider

export async function registerTaskProvider(ctx: vscode.ExtensionContext) {
	let rakePromise: Thenable<vscode.Task[]> | undefined = undefined;
	let files = await vscode.workspace.findFiles("**/[rR]akefile{,.rb}");
	for (let i = 0; i < files.length; i++) {
		rakeFiles.add(files[i]);
	}

	let fileWatcher = vscode.workspace.createFileSystemWatcher("**/[rR]akefile{,.rb}");
	fileWatcher.onDidChange(() => rakePromise = undefined);
	fileWatcher.onDidCreate((uri) => {
		rakeFiles.add(uri);
		rakePromise = undefined
	});
	fileWatcher.onDidDelete((uri) => {
		rakeFiles.delete(uri);
		rakePromise = undefined
	});

	let taskProvider = vscode.workspace.registerTaskProvider('rake', {
		provideTasks: () => {
			if (!rakePromise) {
				rakePromise = getRakeTasks();
			}
			return rakePromise;
		},
		resolveTask(_task: vscode.Task): vscode.Task | undefined {
			return undefined;
		}
	});
}
开发者ID:rubyide,项目名称:vscode-ruby,代码行数:30,代码来源:rake.ts

示例4: activate

export function activate(context: vscode.ExtensionContext, settings: settings.ISettings) {
    g_context = context;
    g_settings = settings;

    taskProvider = vscode.workspace.registerTaskProvider('julia', {
        provideTasks: () => {
            return provideJuliaTasks();
        },
        resolveTask(_task: vscode.Task): vscode.Task | undefined {
            return undefined;
        }
    });
}
开发者ID:JuliaEditorSupport,项目名称:julia-vscode,代码行数:13,代码来源:tasks.ts

示例5: activate

export function activate(_context: vscode.ExtensionContext): void {
	if (!vscode.workspace.workspaceFolders) {
		return;
	}

	taskProvider = vscode.workspace.registerTaskProvider('npm', {
		provideTasks: () => {
			return provideNpmScripts();
		},
		resolveTask(_task: vscode.Task): vscode.Task | undefined {
			return undefined;
		}
	});
}
开发者ID:elibarzilay,项目名称:vscode,代码行数:14,代码来源:main.ts

示例6: onConfigurationChanged

	function onConfigurationChanged() {
		let autoDetect = vscode.workspace.getConfiguration('npm').get<AutoDetect>('autoDetect');
		if (taskProvider && autoDetect === 'off') {
			taskProvider.dispose();
			taskProvider = undefined;
		} else if (!taskProvider && autoDetect === 'on') {
			taskProvider = vscode.workspace.registerTaskProvider('npm', {
				provideTasks: () => {
					return provideNpmScripts();
				},
				resolveTask(_task: vscode.Task): vscode.Task | undefined {
					return undefined;
				}
			});
		}
	}
开发者ID:Chan-PH,项目名称:vscode,代码行数:16,代码来源:main.ts

示例7: onConfigurationChanged

 function onConfigurationChanged() {
     let autoDetect = vscode.workspace.getConfiguration('cake').get('taskRunner.autoDetect');
     if (taskProvider  && !autoDetect) {
         taskProvider.dispose();
         taskProvider = undefined;
     } else if (!taskProvider && autoDetect) {
         taskProvider = vscode.workspace.registerTaskProvider('cake', {
             provideTasks: async () => {
                 return await getCakeScriptsAsTasks();
             },
             resolveTask(_task: vscode.Task): vscode.Task | undefined {
                 return undefined;
             }
         });
     }
 }
开发者ID:patriksvensson,项目名称:cake-vscode,代码行数:16,代码来源:cakeMain.ts

示例8: onConfigurationChanged

	function onConfigurationChanged() {
		let autoDetect = vscode.workspace.getConfiguration('grunt').get<AutoDetect>('autoDetect');
		if (taskProvider && autoDetect === 'off') {
			detectorPromise = undefined;
			taskProvider.dispose();
			taskProvider = undefined;
		} else if (!taskProvider && autoDetect === 'on') {
			taskProvider = vscode.workspace.registerTaskProvider({
				provideTasks: () => {
					if (!detectorPromise) {
						detectorPromise = getGruntTasks();
					}
					return detectorPromise;
				}
			});
		}
	}
开发者ID:hungys,项目名称:vscode,代码行数:17,代码来源:main.ts

示例9: activate

export function activate(context: vscode.ExtensionContext): void {
	if (!vscode.workspace.workspaceFolders) {
		return;
	}

	taskProvider = vscode.workspace.registerTaskProvider('npm', {
		provideTasks: () => {
			return provideNpmScripts();
		},
		resolveTask(_task: vscode.Task): vscode.Task | undefined {
			return undefined;
		}
	});
	configureHttpRequest();
	vscode.workspace.onDidChangeConfiguration(() => configureHttpRequest());

	context.subscriptions.push(addJSONProviders(httpRequest.xhr));
}
开发者ID:sameer-coder,项目名称:vscode,代码行数:18,代码来源:main.ts

示例10: onConfigurationChanged

	function onConfigurationChanged() {
		let autoDetect = vscode.workspace.getConfiguration('gulp').get<AutoDetect>('autoDetect');
		if (taskProvider && autoDetect === 'off') {
			gulpPromise = undefined;
			taskProvider.dispose();
			taskProvider = undefined;
		} else if (!taskProvider && autoDetect === 'on') {
			taskProvider = vscode.workspace.registerTaskProvider('gulp', {
				provideTasks: () => {
					if (!gulpPromise) {
						gulpPromise = getGulpTasks();
					}
					return gulpPromise;
				},
				resolveTask(_task: vscode.Task): vscode.Task | undefined {
					return undefined;
				}
			});
		}
	}
开发者ID:Chan-PH,项目名称:vscode,代码行数:20,代码来源:main.ts


注:本文中的vscode.workspace.registerTaskProvider方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。