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


TypeScript pluginsRegistry.IPluginsMessageCollector类代码示例

本文整理汇总了TypeScript中vs/platform/plugins/common/pluginsRegistry.IPluginsMessageCollector的典型用法代码示例。如果您正苦于以下问题:TypeScript IPluginsMessageCollector类的具体用法?TypeScript IPluginsMessageCollector怎么用?TypeScript IPluginsMessageCollector使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: scanPlugin

	/**
	 * Scan the plugin defined in `absoluteFolderPath`
	 */
	public static scanPlugin(
		version: string,
		collector: IPluginsMessageCollector,
		absoluteFolderPath:string,
		isBuiltin:boolean
	) : TPromise<IPluginDescription>
	{
		absoluteFolderPath = paths.normalize(absoluteFolderPath);
		let builder = collector.scopeTo(absoluteFolderPath);
		let absoluteManifestPath = paths.join(absoluteFolderPath, MANIFEST_FILE);

		return pfs.readFile(absoluteManifestPath).then((manifestContents) => {
			let errors: string[] = [];
			let pluginDescFromFile: IPluginDescription = json.parse(manifestContents.toString(), errors);
			if (errors.length > 0) {
				errors.forEach((error) => {
					builder.error('Failed to parse ' + absoluteManifestPath + ': ' + error);
				});
				return null;
			}
			return pluginDescFromFile;
		}).then((pluginDescFromFile) => {
			if (pluginDescFromFile === null) {
				return null;
			}

			pluginDescFromFile.isBuiltin = isBuiltin;

			let notices: string[] = [];
			if (!isValidPluginDescription(version, absoluteFolderPath, pluginDescFromFile, notices)) {
				notices.forEach((error) => {
					builder.error(error);
				});
				return null;
			}

			// in this case the notices are warnings
			notices.forEach((error) => {
				builder.warn(error);
			});

			// id := `publisher.name`
			pluginDescFromFile.id = `${ pluginDescFromFile.publisher }.${ pluginDescFromFile.name }`;

			// main := absolutePath(`main`)
			if (pluginDescFromFile.main) {
				pluginDescFromFile.main = paths.normalize(paths.join(absoluteFolderPath, pluginDescFromFile.main));
			}

			pluginDescFromFile.extensionFolderPath = absoluteFolderPath;

			return pluginDescFromFile;
		}, (err) => {
			builder.error('Cannot read file ' + absoluteManifestPath + ': ' + err.message);
			return null;
		});
	}
开发者ID:sangohan,项目名称:KodeStudio,代码行数:60,代码来源:extensionPoints.ts

示例2: scanPlugin

	/**
	 * Scan the plugin defined in `absoluteFolderPath`
	 */
	public static scanPlugin(
		version: string,
		collector: IPluginsMessageCollector,
		absoluteFolderPath:string,
		isBuiltin:boolean
	) : TPromise<IPluginDescription>
	{
		absoluteFolderPath = paths.normalize(absoluteFolderPath);
		let builder = collector.scopeTo(absoluteFolderPath);
		let absoluteManifestPath = paths.join(absoluteFolderPath, MANIFEST_FILE);

		return pfs.readFile(absoluteManifestPath).then((manifestContents) => {
			let errors: string[] = [];
			let pluginDescFromFile: IPluginDescription = json.parse(manifestContents.toString(), errors);
			if (errors.length > 0) {
				errors.forEach((error) => {
					builder.error('Failed to parse ' + absoluteManifestPath + ': ' + error);
				});
				return null;
			}
			// This is a workaround to enable Salsa and avoid TS extension loading
			// for JavaScript (see https://github.com/Microsoft/vscode/issues/2225)
			if (pluginDescFromFile.name === 'typescript' && pluginDescFromFile.publisher === 'vscode' && (!!process.env['CODE_TSJS'] || !!process.env['VSCODE_TSJS'])) {
				pluginDescFromFile.activationEvents = pluginDescFromFile.activationEvents || [];
				if (pluginDescFromFile.activationEvents.indexOf('onLanguage:javascript') === -1) {
					pluginDescFromFile.activationEvents.push('onLanguage:javascript');
				}
				if (pluginDescFromFile.activationEvents.indexOf('onLanguage:javascriptreact') === -1) {
					pluginDescFromFile.activationEvents.push('onLanguage:javascriptreact');
				}
			}
			return pluginDescFromFile;
		}).then((pluginDescFromFile) => {
			if (pluginDescFromFile === null) {
				return null;
			}

			pluginDescFromFile.isBuiltin = isBuiltin;

			let notices: string[] = [];
			if (!isValidPluginDescription(version, absoluteFolderPath, pluginDescFromFile, notices)) {
				notices.forEach((error) => {
					builder.error(error);
				});
				return null;
			}

			// in this case the notices are warnings
			notices.forEach((error) => {
				builder.warn(error);
			});

			// id := `publisher.name`
			pluginDescFromFile.id = `${ pluginDescFromFile.publisher }.${ pluginDescFromFile.name }`;

			// main := absolutePath(`main`)
			if (pluginDescFromFile.main) {
				pluginDescFromFile.main = paths.normalize(paths.join(absoluteFolderPath, pluginDescFromFile.main));
			}

			pluginDescFromFile.extensionFolderPath = absoluteFolderPath;

			return pluginDescFromFile;
		}, (err) => {
			builder.error('Cannot read file ' + absoluteManifestPath + ': ' + err.message);
			return null;
		});
	}
开发者ID:amamut,项目名称:vscode,代码行数:71,代码来源:extensionPoints.ts

示例3:

		}, (err) => {
			collector.error(absoluteFolderPath, err);
			return [];
		});
开发者ID:amamut,项目名称:vscode,代码行数:4,代码来源:extensionPoints.ts

示例4:

		}, (err) => {
			collector.error(absoluteFolderPath, err);
			return [];
		}).then((results) => results.filter(item => (item !== null)));
开发者ID:gaoxiaojun,项目名称:vscode,代码行数:4,代码来源:extensionPoints.ts


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