diff --git a/extensions/html/server/src/htmlServerMain.ts b/extensions/html/server/src/htmlServerMain.ts
index 8081a5ee302..6687ddad854 100644
--- a/extensions/html/server/src/htmlServerMain.ts
+++ b/extensions/html/server/src/htmlServerMain.ts
@@ -23,7 +23,7 @@ import * as nls from 'vscode-nls';
nls.config(process.env['VSCODE_NLS_CONFIG']);
namespace TagCloseRequest {
- export const type: RequestType = new RequestType('html/tag');
+ export const type: RequestType = new RequestType('html/tag');
}
// Create a connection for the server
diff --git a/extensions/html/server/src/languageModelCache.ts b/extensions/html/server/src/languageModelCache.ts
index b12f77b52a6..7496244c3bb 100644
--- a/extensions/html/server/src/languageModelCache.ts
+++ b/extensions/html/server/src/languageModelCache.ts
@@ -16,7 +16,7 @@ export function getLanguageModelCache(maxEntries: number, cleanupIntervalTime
let languageModels: { [uri: string]: { version: number, languageId: string, cTime: number, languageModel: T } } = {};
let nModels = 0;
- let cleanupInterval = void 0;
+ let cleanupInterval: NodeJS.Timer | undefined = void 0;
if (cleanupIntervalTimeInSec > 0) {
cleanupInterval = setInterval(() => {
let cutoffTime = Date.now() - cleanupIntervalTimeInSec * 1000;
diff --git a/extensions/html/server/src/modes/cssMode.ts b/extensions/html/server/src/modes/cssMode.ts
index f787b9c2742..79565426a32 100644
--- a/extensions/html/server/src/modes/cssMode.ts
+++ b/extensions/html/server/src/modes/cssMode.ts
@@ -23,7 +23,7 @@ export function getCSSMode(documentRegions: LanguageModelCache range.mode && range.mode.getId() === 'html';
+
+ while (i < allRanges.length && !isHTML(allRanges[i])) {
let range = allRanges[i];
- if (!range.attributeValue && range.mode.format) {
+ if (!range.attributeValue && range.mode && range.mode.format) {
let edits = range.mode.format(document, Range.create(startPos, range.end), formattingOptions, settings);
pushAll(result, edits);
}
diff --git a/extensions/html/server/src/modes/htmlMode.ts b/extensions/html/server/src/modes/htmlMode.ts
index e45aea8bc11..c0146423d67 100644
--- a/extensions/html/server/src/modes/htmlMode.ts
+++ b/extensions/html/server/src/modes/htmlMode.ts
@@ -60,6 +60,7 @@ export function getHTMLMode(htmlLanguageService: HTMLLanguageService): LanguageM
if (offset > 0 && text.charAt(offset - 1).match(/[>\/]/g)) {
return htmlLanguageService.doTagComplete(document, position, htmlDocuments.get(document));
}
+ return null;
},
onDocumentRemoved(document: TextDocument) {
htmlDocuments.onDocumentRemoved(document);
diff --git a/extensions/html/server/src/modes/languageModes.ts b/extensions/html/server/src/modes/languageModes.ts
index e4d420bf1f6..d1a461a1648 100644
--- a/extensions/html/server/src/modes/languageModes.ts
+++ b/extensions/html/server/src/modes/languageModes.ts
@@ -43,7 +43,7 @@ export interface LanguageMode {
findDocumentLinks?: (document: TextDocument, documentContext: DocumentContext) => DocumentLink[];
findDefinition?: (document: TextDocument, position: Position) => Definition | null;
findReferences?: (document: TextDocument, position: Position) => Location[];
- format?: (document: TextDocument, range: Range, options: FormattingOptions, settings: Settings) => TextEdit[];
+ format?: (document: TextDocument, range: Range, options: FormattingOptions, settings?: Settings) => TextEdit[];
findDocumentColors?: (document: TextDocument) => ColorInformation[];
getColorPresentations?: (document: TextDocument, color: Color, range: Range) => ColorPresentation[];
doAutoClose?: (document: TextDocument, position: Position) => string | null;
@@ -62,7 +62,7 @@ export interface LanguageModes {
}
export interface LanguageModeRange extends Range {
- mode: LanguageMode;
+ mode: LanguageMode | undefined;
attributeValue?: boolean;
}
@@ -92,10 +92,10 @@ export function getLanguageModes(supportedLanguages: { [languageId: string]: boo
},
getModesInRange(document: TextDocument, range: Range): LanguageModeRange[] {
return documentRegions.get(document).getLanguageRanges(range).map(r => {
- return {
+ return {
start: r.start,
end: r.end,
- mode: modes[r.languageId],
+ mode: r.languageId && modes[r.languageId],
attributeValue: r.attributeValue
};
});