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


TypeScript modelService.IModelService类代码示例

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


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

示例1: getConfiguredLangId

export function getConfiguredLangId(modelService: IModelService, modeService: IModeService, resource: uri): string | null {
	let configuredLangId: string | null = null;
	if (resource) {
		let modeId: string | null = null;

		// Data URI: check for encoded metadata
		if (resource.scheme === Schemas.data) {
			const metadata = DataUri.parseMetaData(resource);
			const mime = metadata.get(DataUri.META_DATA_MIME);

			if (mime) {
				modeId = modeService.getModeId(mime);
			}
		}

		// Any other URI: check for model if existing
		else {
			const model = modelService.getModel(resource);
			if (model) {
				modeId = model.getLanguageIdentifier().language;
			}
		}

		if (modeId && modeId !== PLAINTEXT_MODE_ID) {
			configuredLangId = modeId; // only take if the mode is specific (aka no just plain text)
		}
	}

	return configuredLangId;
}
开发者ID:eamodio,项目名称:vscode,代码行数:30,代码来源:getIconClasses.ts

示例2: constructor

	constructor(problemMatchers: ProblemMatcher[], protected markerService: IMarkerService, private modelService: IModelService) {
		this.matchers = Object.create(null);
		this.bufferLength = 1;
		problemMatchers.map(elem => createLineMatcher(elem)).forEach((matcher) => {
			let length = matcher.matchLength;
			if (length > this.bufferLength) {
				this.bufferLength = length;
			}
			let value = this.matchers[length];
			if (!value) {
				value = [];
				this.matchers[length] = value;
			}
			value.push(matcher);
		});
		this.buffer = [];
		this.activeMatcher = null;
		this._numberOfMatches = 0;
		this._maxMarkerSeverity = undefined;
		this.openModels = Object.create(null);
		this.modelListeners = [];
		this.applyToByOwner = new Map<string, ApplyToKind>();
		for (let problemMatcher of problemMatchers) {
			let current = this.applyToByOwner.get(problemMatcher.owner);
			if (current === void 0) {
				this.applyToByOwner.set(problemMatcher.owner, problemMatcher.applyTo);
			} else {
				this.applyToByOwner.set(problemMatcher.owner, this.mergeApplyTo(current, problemMatcher.applyTo));
			}
		}
		this.resourcesToClean = new Map<string, Map<string, URI>>();
		this.markers = new Map<string, Map<string, Map<string, IMarkerData>>>();
		this.deliveredMarkers = new Map<string, Map<string, number>>();
		this.modelService.onModelAdded((model) => {
			this.openModels[model.uri.toString()] = true;
		}, this, this.modelListeners);
		this.modelService.onModelRemoved((model) => {
			delete this.openModels[model.uri.toString()];
		}, this, this.modelListeners);
		this.modelService.getModels().forEach(model => this.openModels[model.uri.toString()] = true);

		this._onDidStateChange = new Emitter();
	}
开发者ID:developers23,项目名称:vscode,代码行数:43,代码来源:problemCollectors.ts

示例3: getConfiguredLangId

export function getConfiguredLangId(modelService: IModelService, resource: uri): string | null {
	let configuredLangId: string | null = null;
	if (resource) {
		const model = modelService.getModel(resource);
		if (model) {
			const modeId = model.getLanguageIdentifier().language;
			if (modeId && modeId !== PLAINTEXT_MODE_ID) {
				configuredLangId = modeId; // only take if the mode is specific (aka no just plain text)
			}
		}
	}

	return configuredLangId;
}
开发者ID:KTXSoftware,项目名称:KodeStudio,代码行数:14,代码来源:getIconClasses.ts

示例4: detectModeId

export function detectModeId(modelService: IModelService, modeService: IModeService, resource: uri): string | null {
	if (!resource) {
		return null; // we need a resource at least
	}

	let modeId: string | null = null;

	// Data URI: check for encoded metadata
	if (resource.scheme === Schemas.data) {
		const metadata = DataUri.parseMetaData(resource);
		const mime = metadata.get(DataUri.META_DATA_MIME);

		if (mime) {
			modeId = modeService.getModeId(mime);
		}
	}

	// Any other URI: check for model if existing
	else {
		const model = modelService.getModel(resource);
		if (model) {
			modeId = model.getModeId();
		}
	}

	// only take if the mode is specific (aka no just plain text)
	if (modeId && modeId !== PLAINTEXT_MODE_ID) {
		return modeId;
	}

	// otherwise fallback to path based detection
	let path: string | undefined;
	if (resource.scheme === Schemas.data) {
		const metadata = DataUri.parseMetaData(resource);
		path = metadata.get(DataUri.META_DATA_LABEL);
	} else {
		path = resource.path.toLowerCase();
	}

	if (path) {
		return modeService.getModeIdByFilepathOrFirstLine(path);
	}

	return null; // finally - we do not know the mode id
}
开发者ID:PKRoma,项目名称:vscode,代码行数:45,代码来源:getIconClasses.ts

示例5: _setIndentConfiguration

	private _setIndentConfiguration(newConfiguration: ITextEditorConfigurationUpdate): void {
		if (newConfiguration.tabSize === 'auto' || newConfiguration.insertSpaces === 'auto') {
			// one of the options was set to 'auto' => detect indentation

			let creationOpts = this._modelService.getCreationOptions(this._model.getLanguageIdentifier().language, this._model.uri, this._model.isForSimpleWidget);
			let insertSpaces = creationOpts.insertSpaces;
			let tabSize = creationOpts.tabSize;

			if (newConfiguration.insertSpaces !== 'auto' && typeof newConfiguration.insertSpaces !== 'undefined') {
				insertSpaces = newConfiguration.insertSpaces;
			}

			if (newConfiguration.tabSize !== 'auto' && typeof newConfiguration.tabSize !== 'undefined') {
				tabSize = newConfiguration.tabSize;
			}

			this._model.detectIndentation(insertSpaces, tabSize);
			return;
		}

		let newOpts: ITextModelUpdateOptions = {};
		if (typeof newConfiguration.insertSpaces !== 'undefined') {
			newOpts.insertSpaces = newConfiguration.insertSpaces;
		}
		if (typeof newConfiguration.tabSize !== 'undefined') {
			newOpts.tabSize = newConfiguration.tabSize;
		}
		this._model.updateOptions(newOpts);
	}
开发者ID:developers23,项目名称:vscode,代码行数:29,代码来源:mainThreadEditor.ts

示例6:

				return editorWorkerService.textualSuggest(resource, position).then((textualSuggestions) => {
					let model = modelService.getModel(resource);
					let result = _addSuggestionsAtPosition(model, position, predefined, textualSuggestions);
					return result;
				});
开发者ID:KingJiangNet,项目名称:vscode,代码行数:5,代码来源:suggestSupport.ts


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