mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 18:46:40 -05:00
Refresh master with initial release/0.24 snapshot (#332)
* Initial port of release/0.24 source code * Fix additional headers * Fix a typo in launch.json
This commit is contained in:
@@ -94,8 +94,8 @@ export class ThemeRule {
|
||||
return aParentScopesLen - bParentScopesLen;
|
||||
}
|
||||
for (let i = 0; i < aParentScopesLen; i++) {
|
||||
var aLen = a.parentScopes[i].length;
|
||||
var bLen = b.parentScopes[i].length;
|
||||
const aLen = a.parentScopes[i].length;
|
||||
const bLen = b.parentScopes[i].length;
|
||||
if (aLen !== bLen) {
|
||||
return aLen - bLen;
|
||||
}
|
||||
|
||||
@@ -105,6 +105,8 @@ export class TextMateService implements ITextMateService {
|
||||
private _themeService: IWorkbenchThemeService;
|
||||
private _scopeRegistry: TMScopeRegistry;
|
||||
private _injections: { [scopeName: string]: string[]; };
|
||||
private _injectedEmbeddedLanguages: { [scopeName: string]: IEmbeddedLanguagesMap[]; };
|
||||
|
||||
private _languageToScope: Map<string, string>;
|
||||
private _styleElement: HTMLStyleElement;
|
||||
|
||||
@@ -123,6 +125,7 @@ export class TextMateService implements ITextMateService {
|
||||
this._scopeRegistry = new TMScopeRegistry();
|
||||
this.onDidEncounterLanguage = this._scopeRegistry.onDidEncounterLanguage;
|
||||
this._injections = {};
|
||||
this._injectedEmbeddedLanguages = {};
|
||||
this._languageToScope = new Map<string, string>();
|
||||
|
||||
this._grammarRegistry = new Registry({
|
||||
@@ -237,6 +240,16 @@ export class TextMateService implements ITextMateService {
|
||||
}
|
||||
injections.push(syntax.scopeName);
|
||||
}
|
||||
|
||||
if (syntax.embeddedLanguages) {
|
||||
for (let injectScope of syntax.injectTo) {
|
||||
let injectedEmbeddedLanguages = this._injectedEmbeddedLanguages[injectScope];
|
||||
if (!injectedEmbeddedLanguages) {
|
||||
this._injectedEmbeddedLanguages[injectScope] = injectedEmbeddedLanguages = [];
|
||||
}
|
||||
injectedEmbeddedLanguages.push(syntax.embeddedLanguages);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let modeId = syntax.language;
|
||||
@@ -271,6 +284,15 @@ export class TextMateService implements ITextMateService {
|
||||
return TPromise.wrapError<ICreateGrammarResult>(new Error(nls.localize('no-tm-grammar', "No TM Grammar registered for this language.")));
|
||||
}
|
||||
let embeddedLanguages = this._resolveEmbeddedLanguages(languageRegistration.embeddedLanguages);
|
||||
let injectedEmbeddedLanguages = this._injectedEmbeddedLanguages[scopeName];
|
||||
if (injectedEmbeddedLanguages) {
|
||||
for (const injected of injectedEmbeddedLanguages.map(this._resolveEmbeddedLanguages.bind(this))) {
|
||||
for (const scope of Object.keys(injected)) {
|
||||
embeddedLanguages[scope] = injected[scope];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let languageId = this._modeService.getLanguageIdentifier(modeId).id;
|
||||
let containsEmbeddedLanguages = (Object.keys(embeddedLanguages).length > 0);
|
||||
return new TPromise<ICreateGrammarResult>((c, e, p) => {
|
||||
|
||||
@@ -10,7 +10,7 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'
|
||||
import { IGrammar } from 'vscode-textmate';
|
||||
import { LanguageId } from 'vs/editor/common/modes';
|
||||
|
||||
export var ITextMateService = createDecorator<ITextMateService>('textMateService');
|
||||
export const ITextMateService = createDecorator<ITextMateService>('textMateService');
|
||||
|
||||
export interface ITextMateService {
|
||||
_serviceBrand: any;
|
||||
|
||||
Reference in New Issue
Block a user