vscode-html-languageservice
Advanced tools
Comparing version 3.1.5 to 3.2.0
@@ -0,1 +1,6 @@ | ||
3.2.0 / 2020-11-30 | ||
================== | ||
* New parameter `HoverSettings` for `LanguageService.doHover`: Defines whether the hover contains element documentation and/or a reference to MDN. | ||
* Deprecated `LanguageService.findOnTypeRenameRanges`, replaced by New API `LanguageService.findLinkedEditingRanges`. | ||
3.1.0 / 2020-07-29 | ||
@@ -2,0 +7,0 @@ ================== |
@@ -1,2 +0,2 @@ | ||
import { Scanner, HTMLDocument, CompletionConfiguration, ICompletionParticipant, HTMLFormatConfiguration, DocumentContext, IHTMLDataProvider, HTMLDataV1, LanguageServiceOptions, TextDocument, SelectionRange, WorkspaceEdit, Position, CompletionList, Hover, Range, SymbolInformation, TextEdit, DocumentHighlight, DocumentLink, FoldingRange } from './htmlLanguageTypes'; | ||
import { Scanner, HTMLDocument, CompletionConfiguration, ICompletionParticipant, HTMLFormatConfiguration, DocumentContext, IHTMLDataProvider, HTMLDataV1, LanguageServiceOptions, TextDocument, SelectionRange, WorkspaceEdit, Position, CompletionList, Hover, Range, SymbolInformation, TextEdit, DocumentHighlight, DocumentLink, FoldingRange, HoverSettings } from './htmlLanguageTypes'; | ||
export * from './htmlLanguageTypes'; | ||
@@ -11,3 +11,3 @@ export interface LanguageService { | ||
setCompletionParticipants(registeredCompletionParticipants: ICompletionParticipant[]): void; | ||
doHover(document: TextDocument, position: Position, htmlDocument: HTMLDocument): Hover | null; | ||
doHover(document: TextDocument, position: Position, htmlDocument: HTMLDocument, options?: HoverSettings): Hover | null; | ||
format(document: TextDocument, range: Range | undefined, options: HTMLFormatConfiguration): TextEdit[]; | ||
@@ -23,3 +23,5 @@ findDocumentLinks(document: TextDocument, documentContext: DocumentContext): DocumentLink[]; | ||
findMatchingTagPosition(document: TextDocument, position: Position, htmlDocument: HTMLDocument): Position | null; | ||
/** Deprecated, Use findLinkedEditingRanges instead */ | ||
findOnTypeRenameRanges(document: TextDocument, position: Position, htmlDocument: HTMLDocument): Range[] | null; | ||
findLinkedEditingRanges(document: TextDocument, position: Position, htmlDocument: HTMLDocument): Range[] | null; | ||
} | ||
@@ -26,0 +28,0 @@ export declare function getLanguageService(options?: LanguageServiceOptions): LanguageService; |
@@ -15,3 +15,3 @@ /*--------------------------------------------------------------------------------------------- | ||
import { findMatchingTagPosition } from './services/htmlMatchingTagPosition'; | ||
import { findOnTypeRenameRanges } from './services/htmlSyncedRegions'; | ||
import { findLinkedEditingRanges } from './services/htmlLinkedEditing'; | ||
import { getFoldingRanges } from './services/htmlFolding'; | ||
@@ -46,3 +46,4 @@ import { getSelectionRanges } from './services/htmlSelectionRange'; | ||
findMatchingTagPosition: findMatchingTagPosition, | ||
findOnTypeRenameRanges: findOnTypeRenameRanges | ||
findOnTypeRenameRanges: findLinkedEditingRanges, | ||
findLinkedEditingRanges: findLinkedEditingRanges | ||
}; | ||
@@ -49,0 +50,0 @@ } |
@@ -24,2 +24,6 @@ import { Position, Range, MarkupContent, MarkupKind, DocumentUri } from 'vscode-languageserver-types'; | ||
} | ||
export interface HoverSettings { | ||
documentation?: boolean; | ||
references?: boolean; | ||
} | ||
export interface CompletionConfiguration { | ||
@@ -26,0 +30,0 @@ [provider: string]: boolean | undefined; |
@@ -87,3 +87,4 @@ /*--------------------------------------------------------------------------------------------- | ||
*/ | ||
export function generateDocumentation(item, doesSupportMarkdown) { | ||
export function generateDocumentation(item, settings, doesSupportMarkdown) { | ||
if (settings === void 0) { settings = {}; } | ||
var result = { | ||
@@ -93,3 +94,3 @@ kind: doesSupportMarkdown ? 'markdown' : 'plaintext', | ||
}; | ||
if (item.description) { | ||
if (item.description && settings.documentation !== false) { | ||
var normalizedDescription = normalizeMarkupContent(item.description); | ||
@@ -100,4 +101,6 @@ if (normalizedDescription) { | ||
} | ||
if (item.references && item.references.length > 0) { | ||
result.value += "\n\n"; | ||
if (item.references && item.references.length > 0 && settings.references !== false) { | ||
if (result.value.length) { | ||
result.value += "\n\n"; | ||
} | ||
if (doesSupportMarkdown) { | ||
@@ -104,0 +107,0 @@ result.value += item.references.map(function (r) { |
@@ -41,5 +41,4 @@ /*--------------------------------------------------------------------------------------------- | ||
}; | ||
import { Position, CompletionItemKind, Range, TextEdit, InsertTextFormat, MarkupKind } from 'vscode-languageserver-types'; | ||
import { createScanner } from '../parser/htmlScanner'; | ||
import { ScannerState, TokenType } from '../htmlLanguageTypes'; | ||
import { ScannerState, TokenType, Position, CompletionItemKind, Range, TextEdit, InsertTextFormat, MarkupKind } from '../htmlLanguageTypes'; | ||
import { entities } from '../parser/htmlEntities'; | ||
@@ -128,3 +127,3 @@ import * as nls from 'vscode-nls'; | ||
kind: CompletionItemKind.Property, | ||
documentation: generateDocumentation(tag, doesSupportMarkdown), | ||
documentation: generateDocumentation(tag, undefined, doesSupportMarkdown), | ||
textEdit: TextEdit.replace(range, tag.name), | ||
@@ -189,3 +188,3 @@ insertTextFormat: InsertTextFormat.PlainText | ||
kind: CompletionItemKind.Property, | ||
documentation: generateDocumentation(tag, doesSupportMarkdown), | ||
documentation: generateDocumentation(tag, undefined, doesSupportMarkdown), | ||
filterText: '/' + tag + closeTag, | ||
@@ -249,3 +248,3 @@ textEdit: TextEdit.replace(range, '/' + tag + closeTag), | ||
kind: attr.valueSet === 'handler' ? CompletionItemKind.Function : CompletionItemKind.Value, | ||
documentation: generateDocumentation(attr, doesSupportMarkdown), | ||
documentation: generateDocumentation(attr, undefined, doesSupportMarkdown), | ||
textEdit: TextEdit.replace(range, codeSnippet), | ||
@@ -324,3 +323,3 @@ insertTextFormat: InsertTextFormat.Snippet, | ||
kind: CompletionItemKind.Unit, | ||
documentation: generateDocumentation(value, doesSupportMarkdown), | ||
documentation: generateDocumentation(value, undefined, doesSupportMarkdown), | ||
textEdit: TextEdit.replace(range, insertText), | ||
@@ -327,0 +326,0 @@ insertTextFormat: InsertTextFormat.PlainText |
@@ -5,4 +5,3 @@ /*--------------------------------------------------------------------------------------------- | ||
*--------------------------------------------------------------------------------------------*/ | ||
import { FoldingRangeKind } from 'vscode-languageserver-types'; | ||
import { TokenType } from '../htmlLanguageTypes'; | ||
import { TokenType, FoldingRangeKind } from '../htmlLanguageTypes'; | ||
import { createScanner } from '../parser/htmlScanner'; | ||
@@ -9,0 +8,0 @@ import { isVoidElement } from '../languageFacts/fact'; |
@@ -5,3 +5,3 @@ /*--------------------------------------------------------------------------------------------- | ||
*--------------------------------------------------------------------------------------------*/ | ||
import { Range, Position } from 'vscode-languageserver-types'; | ||
import { Range, Position } from '../htmlLanguageTypes'; | ||
import { html_beautify } from '../beautify/beautify-html'; | ||
@@ -8,0 +8,0 @@ import { repeat } from '../utils/strings'; |
@@ -6,4 +6,3 @@ /*--------------------------------------------------------------------------------------------- | ||
import { createScanner } from '../parser/htmlScanner'; | ||
import { DocumentHighlightKind } from 'vscode-languageserver-types'; | ||
import { TokenType } from '../htmlLanguageTypes'; | ||
import { TokenType, DocumentHighlightKind } from '../htmlLanguageTypes'; | ||
export function findDocumentHighlights(document, position, htmlDocument) { | ||
@@ -10,0 +9,0 @@ var offset = document.offsetAt(position); |
@@ -6,4 +6,3 @@ /*--------------------------------------------------------------------------------------------- | ||
import { createScanner } from '../parser/htmlScanner'; | ||
import { Range, Position, MarkupKind } from 'vscode-languageserver-types'; | ||
import { TokenType } from '../htmlLanguageTypes'; | ||
import { TokenType, Range, Position, MarkupKind } from '../htmlLanguageTypes'; | ||
import { isDefined } from '../utils/object'; | ||
@@ -20,3 +19,3 @@ import { generateDocumentation } from '../languageFacts/dataProvider'; | ||
} | ||
HTMLHover.prototype.doHover = function (document, position, htmlDocument) { | ||
HTMLHover.prototype.doHover = function (document, position, htmlDocument, options) { | ||
var convertContents = this.convertContents.bind(this); | ||
@@ -36,3 +35,3 @@ var doesSupportMarkdown = this.doesSupportMarkdown(); | ||
if (tag.name.toLowerCase() === currTag.toLowerCase()) { | ||
var markupContent = generateDocumentation(tag, doesSupportMarkdown); | ||
var markupContent = generateDocumentation(tag, options, doesSupportMarkdown); | ||
if (!markupContent) { | ||
@@ -65,3 +64,3 @@ markupContent = { | ||
if (currAttr === attr.name && attr.description) { | ||
var contentsDoc = generateDocumentation(attr, doesSupportMarkdown); | ||
var contentsDoc = generateDocumentation(attr, options, doesSupportMarkdown); | ||
if (contentsDoc) { | ||
@@ -93,3 +92,3 @@ hover = { contents: contentsDoc, range: range }; | ||
if (currAttrValue === attrValue.name && attrValue.description) { | ||
var contentsDoc = generateDocumentation(attrValue, doesSupportMarkdown); | ||
var contentsDoc = generateDocumentation(attrValue, options, doesSupportMarkdown); | ||
if (contentsDoc) { | ||
@@ -96,0 +95,0 @@ hover = { contents: contentsDoc, range: range }; |
@@ -6,6 +6,5 @@ /*--------------------------------------------------------------------------------------------- | ||
import { createScanner } from '../parser/htmlScanner'; | ||
import { Range } from 'vscode-languageserver-types'; | ||
import * as strings from '../utils/strings'; | ||
import { URI as Uri } from 'vscode-uri'; | ||
import { TokenType } from '../htmlLanguageTypes'; | ||
import { TokenType, Range } from '../htmlLanguageTypes'; | ||
function normalizeRef(url) { | ||
@@ -12,0 +11,0 @@ var first = url[0]; |
@@ -1,9 +0,8 @@ | ||
/** | ||
* Until SelectionRange lands in LSP, we'll return Range from server and convert it to | ||
* SelectionRange on client side | ||
*/ | ||
import { Range, SelectionRange } from 'vscode-languageserver-types'; | ||
/*--------------------------------------------------------------------------------------------- | ||
* Copyright (c) Microsoft Corporation. All rights reserved. | ||
* Licensed under the MIT License. See License.txt in the project root for license information. | ||
*--------------------------------------------------------------------------------------------*/ | ||
import { createScanner } from '../parser/htmlScanner'; | ||
import { parse } from '../parser/htmlParser'; | ||
import { TokenType } from '../htmlLanguageTypes'; | ||
import { TokenType, Range, SelectionRange } from '../htmlLanguageTypes'; | ||
export function getSelectionRanges(document, positions) { | ||
@@ -10,0 +9,0 @@ function getSelectionRange(position) { |
@@ -5,3 +5,3 @@ /*--------------------------------------------------------------------------------------------- | ||
*--------------------------------------------------------------------------------------------*/ | ||
import { Location, Range, SymbolKind } from 'vscode-languageserver-types'; | ||
import { Location, Range, SymbolKind } from '../htmlLanguageTypes'; | ||
export function findDocumentSymbols(document, htmlDocument) { | ||
@@ -8,0 +8,0 @@ var symbols = []; |
@@ -5,5 +5,4 @@ /*--------------------------------------------------------------------------------------------- | ||
*--------------------------------------------------------------------------------------------*/ | ||
'use strict'; | ||
export function isDefined(obj) { | ||
return typeof obj !== 'undefined'; | ||
} |
@@ -5,3 +5,3 @@ /*--------------------------------------------------------------------------------------------- | ||
*--------------------------------------------------------------------------------------------*/ | ||
import { URI } from "vscode-uri"; | ||
import { URI } from 'vscode-uri'; | ||
var Slash = '/'.charCodeAt(0); | ||
@@ -8,0 +8,0 @@ var Dot = '.'.charCodeAt(0); |
@@ -1,2 +0,2 @@ | ||
import { Scanner, HTMLDocument, CompletionConfiguration, ICompletionParticipant, HTMLFormatConfiguration, DocumentContext, IHTMLDataProvider, HTMLDataV1, LanguageServiceOptions, TextDocument, SelectionRange, WorkspaceEdit, Position, CompletionList, Hover, Range, SymbolInformation, TextEdit, DocumentHighlight, DocumentLink, FoldingRange } from './htmlLanguageTypes'; | ||
import { Scanner, HTMLDocument, CompletionConfiguration, ICompletionParticipant, HTMLFormatConfiguration, DocumentContext, IHTMLDataProvider, HTMLDataV1, LanguageServiceOptions, TextDocument, SelectionRange, WorkspaceEdit, Position, CompletionList, Hover, Range, SymbolInformation, TextEdit, DocumentHighlight, DocumentLink, FoldingRange, HoverSettings } from './htmlLanguageTypes'; | ||
export * from './htmlLanguageTypes'; | ||
@@ -11,3 +11,3 @@ export interface LanguageService { | ||
setCompletionParticipants(registeredCompletionParticipants: ICompletionParticipant[]): void; | ||
doHover(document: TextDocument, position: Position, htmlDocument: HTMLDocument): Hover | null; | ||
doHover(document: TextDocument, position: Position, htmlDocument: HTMLDocument, options?: HoverSettings): Hover | null; | ||
format(document: TextDocument, range: Range | undefined, options: HTMLFormatConfiguration): TextEdit[]; | ||
@@ -23,3 +23,5 @@ findDocumentLinks(document: TextDocument, documentContext: DocumentContext): DocumentLink[]; | ||
findMatchingTagPosition(document: TextDocument, position: Position, htmlDocument: HTMLDocument): Position | null; | ||
/** Deprecated, Use findLinkedEditingRanges instead */ | ||
findOnTypeRenameRanges(document: TextDocument, position: Position, htmlDocument: HTMLDocument): Range[] | null; | ||
findLinkedEditingRanges(document: TextDocument, position: Position, htmlDocument: HTMLDocument): Range[] | null; | ||
} | ||
@@ -26,0 +28,0 @@ export declare function getLanguageService(options?: LanguageServiceOptions): LanguageService; |
@@ -21,3 +21,3 @@ /*--------------------------------------------------------------------------------------------- | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "./parser/htmlScanner", "./parser/htmlParser", "./services/htmlCompletion", "./services/htmlHover", "./services/htmlFormatter", "./services/htmlLinks", "./services/htmlHighlighting", "./services/htmlSymbolsProvider", "./services/htmlRename", "./services/htmlMatchingTagPosition", "./services/htmlSyncedRegions", "./services/htmlFolding", "./services/htmlSelectionRange", "./languageFacts/dataProvider", "./languageFacts/dataManager", "./languageFacts/data/webCustomData", "./htmlLanguageTypes"], factory); | ||
define(["require", "exports", "./parser/htmlScanner", "./parser/htmlParser", "./services/htmlCompletion", "./services/htmlHover", "./services/htmlFormatter", "./services/htmlLinks", "./services/htmlHighlighting", "./services/htmlSymbolsProvider", "./services/htmlRename", "./services/htmlMatchingTagPosition", "./services/htmlLinkedEditing", "./services/htmlFolding", "./services/htmlSelectionRange", "./languageFacts/dataProvider", "./languageFacts/dataManager", "./languageFacts/data/webCustomData", "./htmlLanguageTypes"], factory); | ||
} | ||
@@ -38,3 +38,3 @@ })(function (require, exports) { | ||
var htmlMatchingTagPosition_1 = require("./services/htmlMatchingTagPosition"); | ||
var htmlSyncedRegions_1 = require("./services/htmlSyncedRegions"); | ||
var htmlLinkedEditing_1 = require("./services/htmlLinkedEditing"); | ||
var htmlFolding_1 = require("./services/htmlFolding"); | ||
@@ -69,3 +69,4 @@ var htmlSelectionRange_1 = require("./services/htmlSelectionRange"); | ||
findMatchingTagPosition: htmlMatchingTagPosition_1.findMatchingTagPosition, | ||
findOnTypeRenameRanges: htmlSyncedRegions_1.findOnTypeRenameRanges | ||
findOnTypeRenameRanges: htmlLinkedEditing_1.findLinkedEditingRanges, | ||
findLinkedEditingRanges: htmlLinkedEditing_1.findLinkedEditingRanges | ||
}; | ||
@@ -72,0 +73,0 @@ } |
@@ -24,2 +24,6 @@ import { Position, Range, MarkupContent, MarkupKind, DocumentUri } from 'vscode-languageserver-types'; | ||
} | ||
export interface HoverSettings { | ||
documentation?: boolean; | ||
references?: boolean; | ||
} | ||
export interface CompletionConfiguration { | ||
@@ -26,0 +30,0 @@ [provider: string]: boolean | undefined; |
@@ -99,3 +99,4 @@ /*--------------------------------------------------------------------------------------------- | ||
*/ | ||
function generateDocumentation(item, doesSupportMarkdown) { | ||
function generateDocumentation(item, settings, doesSupportMarkdown) { | ||
if (settings === void 0) { settings = {}; } | ||
var result = { | ||
@@ -105,3 +106,3 @@ kind: doesSupportMarkdown ? 'markdown' : 'plaintext', | ||
}; | ||
if (item.description) { | ||
if (item.description && settings.documentation !== false) { | ||
var normalizedDescription = markup_1.normalizeMarkupContent(item.description); | ||
@@ -112,4 +113,6 @@ if (normalizedDescription) { | ||
} | ||
if (item.references && item.references.length > 0) { | ||
result.value += "\n\n"; | ||
if (item.references && item.references.length > 0 && settings.references !== false) { | ||
if (result.value.length) { | ||
result.value += "\n\n"; | ||
} | ||
if (doesSupportMarkdown) { | ||
@@ -116,0 +119,0 @@ result.value += item.references.map(function (r) { |
@@ -47,3 +47,3 @@ /*--------------------------------------------------------------------------------------------- | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "vscode-languageserver-types", "../parser/htmlScanner", "../htmlLanguageTypes", "../parser/htmlEntities", "vscode-nls", "../utils/strings", "../languageFacts/fact", "../utils/object", "../languageFacts/dataProvider", "./pathCompletion"], factory); | ||
define(["require", "exports", "../parser/htmlScanner", "../htmlLanguageTypes", "../parser/htmlEntities", "vscode-nls", "../utils/strings", "../languageFacts/fact", "../utils/object", "../languageFacts/dataProvider", "./pathCompletion"], factory); | ||
} | ||
@@ -54,3 +54,2 @@ })(function (require, exports) { | ||
exports.HTMLCompletion = void 0; | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
var htmlScanner_1 = require("../parser/htmlScanner"); | ||
@@ -140,6 +139,6 @@ var htmlLanguageTypes_1 = require("../htmlLanguageTypes"); | ||
label: tag.name, | ||
kind: vscode_languageserver_types_1.CompletionItemKind.Property, | ||
documentation: dataProvider_1.generateDocumentation(tag, doesSupportMarkdown), | ||
textEdit: vscode_languageserver_types_1.TextEdit.replace(range, tag.name), | ||
insertTextFormat: vscode_languageserver_types_1.InsertTextFormat.PlainText | ||
kind: htmlLanguageTypes_1.CompletionItemKind.Property, | ||
documentation: dataProvider_1.generateDocumentation(tag, undefined, doesSupportMarkdown), | ||
textEdit: htmlLanguageTypes_1.TextEdit.replace(range, tag.name), | ||
insertTextFormat: htmlLanguageTypes_1.InsertTextFormat.PlainText | ||
}); | ||
@@ -177,6 +176,6 @@ }); | ||
label: '/' + tag, | ||
kind: vscode_languageserver_types_1.CompletionItemKind.Property, | ||
kind: htmlLanguageTypes_1.CompletionItemKind.Property, | ||
filterText: '/' + tag, | ||
textEdit: vscode_languageserver_types_1.TextEdit.replace(range, '/' + tag + closeTag), | ||
insertTextFormat: vscode_languageserver_types_1.InsertTextFormat.PlainText | ||
textEdit: htmlLanguageTypes_1.TextEdit.replace(range, '/' + tag + closeTag), | ||
insertTextFormat: htmlLanguageTypes_1.InsertTextFormat.PlainText | ||
}; | ||
@@ -187,3 +186,3 @@ var startIndent = getLineIndent(curr.start); | ||
var insertText = startIndent + '</' + tag + closeTag; | ||
item.textEdit = vscode_languageserver_types_1.TextEdit.replace(getReplaceRange(afterOpenBracket - 1 - endIndent.length), insertText); | ||
item.textEdit = htmlLanguageTypes_1.TextEdit.replace(getReplaceRange(afterOpenBracket - 1 - endIndent.length), insertText); | ||
item.filterText = endIndent + '</' + tag; | ||
@@ -203,7 +202,7 @@ } | ||
label: '/' + tag.name, | ||
kind: vscode_languageserver_types_1.CompletionItemKind.Property, | ||
documentation: dataProvider_1.generateDocumentation(tag, doesSupportMarkdown), | ||
kind: htmlLanguageTypes_1.CompletionItemKind.Property, | ||
documentation: dataProvider_1.generateDocumentation(tag, undefined, doesSupportMarkdown), | ||
filterText: '/' + tag + closeTag, | ||
textEdit: vscode_languageserver_types_1.TextEdit.replace(range, '/' + tag + closeTag), | ||
insertTextFormat: vscode_languageserver_types_1.InsertTextFormat.PlainText | ||
textEdit: htmlLanguageTypes_1.TextEdit.replace(range, '/' + tag + closeTag), | ||
insertTextFormat: htmlLanguageTypes_1.InsertTextFormat.PlainText | ||
}); | ||
@@ -222,6 +221,6 @@ }); | ||
label: '</' + tag + '>', | ||
kind: vscode_languageserver_types_1.CompletionItemKind.Property, | ||
kind: htmlLanguageTypes_1.CompletionItemKind.Property, | ||
filterText: '</' + tag + '>', | ||
textEdit: vscode_languageserver_types_1.TextEdit.insert(pos, '$0</' + tag + '>'), | ||
insertTextFormat: vscode_languageserver_types_1.InsertTextFormat.Snippet | ||
textEdit: htmlLanguageTypes_1.TextEdit.insert(pos, '$0</' + tag + '>'), | ||
insertTextFormat: htmlLanguageTypes_1.InsertTextFormat.Snippet | ||
}); | ||
@@ -264,6 +263,6 @@ } | ||
label: attr.name, | ||
kind: attr.valueSet === 'handler' ? vscode_languageserver_types_1.CompletionItemKind.Function : vscode_languageserver_types_1.CompletionItemKind.Value, | ||
documentation: dataProvider_1.generateDocumentation(attr, doesSupportMarkdown), | ||
textEdit: vscode_languageserver_types_1.TextEdit.replace(range, codeSnippet), | ||
insertTextFormat: vscode_languageserver_types_1.InsertTextFormat.Snippet, | ||
kind: attr.valueSet === 'handler' ? htmlLanguageTypes_1.CompletionItemKind.Function : htmlLanguageTypes_1.CompletionItemKind.Value, | ||
documentation: dataProvider_1.generateDocumentation(attr, undefined, doesSupportMarkdown), | ||
textEdit: htmlLanguageTypes_1.TextEdit.replace(range, codeSnippet), | ||
insertTextFormat: htmlLanguageTypes_1.InsertTextFormat.Snippet, | ||
command: command | ||
@@ -293,5 +292,5 @@ }); | ||
label: attr, | ||
kind: vscode_languageserver_types_1.CompletionItemKind.Value, | ||
textEdit: vscode_languageserver_types_1.TextEdit.replace(range, dataAttributes[attr]), | ||
insertTextFormat: vscode_languageserver_types_1.InsertTextFormat.Snippet | ||
kind: htmlLanguageTypes_1.CompletionItemKind.Value, | ||
textEdit: htmlLanguageTypes_1.TextEdit.replace(range, dataAttributes[attr]), | ||
insertTextFormat: htmlLanguageTypes_1.InsertTextFormat.Snippet | ||
}); }); | ||
@@ -340,6 +339,6 @@ } | ||
filterText: insertText, | ||
kind: vscode_languageserver_types_1.CompletionItemKind.Unit, | ||
documentation: dataProvider_1.generateDocumentation(value, doesSupportMarkdown), | ||
textEdit: vscode_languageserver_types_1.TextEdit.replace(range, insertText), | ||
insertTextFormat: vscode_languageserver_types_1.InsertTextFormat.PlainText | ||
kind: htmlLanguageTypes_1.CompletionItemKind.Unit, | ||
documentation: dataProvider_1.generateDocumentation(value, undefined, doesSupportMarkdown), | ||
textEdit: htmlLanguageTypes_1.TextEdit.replace(range, insertText), | ||
insertTextFormat: htmlLanguageTypes_1.InsertTextFormat.PlainText | ||
}); | ||
@@ -378,3 +377,3 @@ }); | ||
if (k >= 0 && text[k] === '&') { | ||
var range = vscode_languageserver_types_1.Range.create(vscode_languageserver_types_1.Position.create(position.line, characterStart - 1), position); | ||
var range = htmlLanguageTypes_1.Range.create(htmlLanguageTypes_1.Position.create(position.line, characterStart - 1), position); | ||
for (var entity in htmlEntities_1.entities) { | ||
@@ -385,6 +384,6 @@ if (strings_1.endsWith(entity, ';')) { | ||
label: label, | ||
kind: vscode_languageserver_types_1.CompletionItemKind.Keyword, | ||
kind: htmlLanguageTypes_1.CompletionItemKind.Keyword, | ||
documentation: localize('entity.propose', "Character entity representing '" + htmlEntities_1.entities[entity] + "'"), | ||
textEdit: vscode_languageserver_types_1.TextEdit.replace(range, label), | ||
insertTextFormat: vscode_languageserver_types_1.InsertTextFormat.PlainText | ||
textEdit: htmlLanguageTypes_1.TextEdit.replace(range, label), | ||
insertTextFormat: htmlLanguageTypes_1.InsertTextFormat.PlainText | ||
}); | ||
@@ -400,6 +399,6 @@ } | ||
label: '!DOCTYPE', | ||
kind: vscode_languageserver_types_1.CompletionItemKind.Property, | ||
kind: htmlLanguageTypes_1.CompletionItemKind.Property, | ||
documentation: 'A preamble for an HTML document.', | ||
textEdit: vscode_languageserver_types_1.TextEdit.replace(range, '!DOCTYPE html>'), | ||
insertTextFormat: vscode_languageserver_types_1.InsertTextFormat.PlainText | ||
textEdit: htmlLanguageTypes_1.TextEdit.replace(range, '!DOCTYPE html>'), | ||
insertTextFormat: htmlLanguageTypes_1.InsertTextFormat.PlainText | ||
}); | ||
@@ -563,3 +562,3 @@ } | ||
var documentationFormat = (_c = (_b = (_a = this.lsOptions.clientCapabilities.textDocument) === null || _a === void 0 ? void 0 : _a.completion) === null || _b === void 0 ? void 0 : _b.completionItem) === null || _c === void 0 ? void 0 : _c.documentationFormat; | ||
this.supportsMarkdown = Array.isArray(documentationFormat) && documentationFormat.indexOf(vscode_languageserver_types_1.MarkupKind.Markdown) !== -1; | ||
this.supportsMarkdown = Array.isArray(documentationFormat) && documentationFormat.indexOf(htmlLanguageTypes_1.MarkupKind.Markdown) !== -1; | ||
} | ||
@@ -566,0 +565,0 @@ return this.supportsMarkdown; |
@@ -11,3 +11,3 @@ /*--------------------------------------------------------------------------------------------- | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "vscode-languageserver-types", "../htmlLanguageTypes", "../parser/htmlScanner", "../languageFacts/fact"], factory); | ||
define(["require", "exports", "../htmlLanguageTypes", "../parser/htmlScanner", "../languageFacts/fact"], factory); | ||
} | ||
@@ -18,3 +18,2 @@ })(function (require, exports) { | ||
exports.getFoldingRanges = void 0; | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
var htmlLanguageTypes_1 = require("../htmlLanguageTypes"); | ||
@@ -159,3 +158,3 @@ var htmlScanner_1 = require("../parser/htmlScanner"); | ||
if (endLine > startLine && prevStart !== startLine) { | ||
addRange({ startLine: startLine, endLine: endLine, kind: vscode_languageserver_types_1.FoldingRangeKind.Region }); | ||
addRange({ startLine: startLine, endLine: endLine, kind: htmlLanguageTypes_1.FoldingRangeKind.Region }); | ||
} | ||
@@ -168,3 +167,3 @@ } | ||
if (startLine < endLine) { | ||
addRange({ startLine: startLine, endLine: endLine, kind: vscode_languageserver_types_1.FoldingRangeKind.Comment }); | ||
addRange({ startLine: startLine, endLine: endLine, kind: htmlLanguageTypes_1.FoldingRangeKind.Comment }); | ||
} | ||
@@ -171,0 +170,0 @@ } |
@@ -11,3 +11,3 @@ /*--------------------------------------------------------------------------------------------- | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "vscode-languageserver-types", "../beautify/beautify-html", "../utils/strings"], factory); | ||
define(["require", "exports", "../htmlLanguageTypes", "../beautify/beautify-html", "../utils/strings"], factory); | ||
} | ||
@@ -18,3 +18,3 @@ })(function (require, exports) { | ||
exports.format = void 0; | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
var htmlLanguageTypes_1 = require("../htmlLanguageTypes"); | ||
var beautify_html_1 = require("../beautify/beautify-html"); | ||
@@ -52,3 +52,3 @@ var strings_1 = require("../utils/strings"); | ||
} | ||
range = vscode_languageserver_types_1.Range.create(document.positionAt(startOffset), document.positionAt(endOffset)); | ||
range = htmlLanguageTypes_1.Range.create(document.positionAt(startOffset), document.positionAt(endOffset)); | ||
// Do not modify if substring starts in inside an element | ||
@@ -68,3 +68,3 @@ // Ending inside an element is fine as it doesn't cause formatting errors | ||
if (startOffset !== 0) { | ||
var startOfLineOffset = document.offsetAt(vscode_languageserver_types_1.Position.create(range.start.line, 0)); | ||
var startOfLineOffset = document.offsetAt(htmlLanguageTypes_1.Position.create(range.start.line, 0)); | ||
initialIndentLevel = computeIndentLevel(document.getText(), startOfLineOffset, options); | ||
@@ -74,3 +74,3 @@ } | ||
else { | ||
range = vscode_languageserver_types_1.Range.create(vscode_languageserver_types_1.Position.create(0, 0), document.positionAt(value.length)); | ||
range = htmlLanguageTypes_1.Range.create(htmlLanguageTypes_1.Position.create(0, 0), document.positionAt(value.length)); | ||
} | ||
@@ -162,3 +162,3 @@ var htmlOptions = { | ||
if (document.lineCount > 1) { | ||
var to = document.offsetAt(vscode_languageserver_types_1.Position.create(1, 0)); | ||
var to = document.offsetAt(htmlLanguageTypes_1.Position.create(1, 0)); | ||
var from = to; | ||
@@ -165,0 +165,0 @@ while (from > 0 && isEOL(text, from - 1)) { |
@@ -11,3 +11,3 @@ /*--------------------------------------------------------------------------------------------- | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "../parser/htmlScanner", "vscode-languageserver-types", "../htmlLanguageTypes"], factory); | ||
define(["require", "exports", "../parser/htmlScanner", "../htmlLanguageTypes"], factory); | ||
} | ||
@@ -19,3 +19,2 @@ })(function (require, exports) { | ||
var htmlScanner_1 = require("../parser/htmlScanner"); | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
var htmlLanguageTypes_1 = require("../htmlLanguageTypes"); | ||
@@ -33,6 +32,6 @@ function findDocumentHighlights(document, position, htmlDocument) { | ||
if (startTagRange) { | ||
result.push({ kind: vscode_languageserver_types_1.DocumentHighlightKind.Read, range: startTagRange }); | ||
result.push({ kind: htmlLanguageTypes_1.DocumentHighlightKind.Read, range: startTagRange }); | ||
} | ||
if (endTagRange) { | ||
result.push({ kind: vscode_languageserver_types_1.DocumentHighlightKind.Read, range: endTagRange }); | ||
result.push({ kind: htmlLanguageTypes_1.DocumentHighlightKind.Read, range: endTagRange }); | ||
} | ||
@@ -39,0 +38,0 @@ } |
@@ -11,3 +11,3 @@ /*--------------------------------------------------------------------------------------------- | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "../parser/htmlScanner", "vscode-languageserver-types", "../htmlLanguageTypes", "../utils/object", "../languageFacts/dataProvider", "../parser/htmlEntities", "../utils/strings", "vscode-nls"], factory); | ||
define(["require", "exports", "../parser/htmlScanner", "../htmlLanguageTypes", "../utils/object", "../languageFacts/dataProvider", "../parser/htmlEntities", "../utils/strings", "vscode-nls"], factory); | ||
} | ||
@@ -19,3 +19,2 @@ })(function (require, exports) { | ||
var htmlScanner_1 = require("../parser/htmlScanner"); | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
var htmlLanguageTypes_1 = require("../htmlLanguageTypes"); | ||
@@ -33,3 +32,3 @@ var object_1 = require("../utils/object"); | ||
} | ||
HTMLHover.prototype.doHover = function (document, position, htmlDocument) { | ||
HTMLHover.prototype.doHover = function (document, position, htmlDocument, options) { | ||
var convertContents = this.convertContents.bind(this); | ||
@@ -49,3 +48,3 @@ var doesSupportMarkdown = this.doesSupportMarkdown(); | ||
if (tag.name.toLowerCase() === currTag.toLowerCase()) { | ||
var markupContent = dataProvider_1.generateDocumentation(tag, doesSupportMarkdown); | ||
var markupContent = dataProvider_1.generateDocumentation(tag, options, doesSupportMarkdown); | ||
if (!markupContent) { | ||
@@ -78,3 +77,3 @@ markupContent = { | ||
if (currAttr === attr.name && attr.description) { | ||
var contentsDoc = dataProvider_1.generateDocumentation(attr, doesSupportMarkdown); | ||
var contentsDoc = dataProvider_1.generateDocumentation(attr, options, doesSupportMarkdown); | ||
if (contentsDoc) { | ||
@@ -106,3 +105,3 @@ hover = { contents: contentsDoc, range: range }; | ||
if (currAttrValue === attrValue.name && attrValue.description) { | ||
var contentsDoc = dataProvider_1.generateDocumentation(attrValue, doesSupportMarkdown); | ||
var contentsDoc = dataProvider_1.generateDocumentation(attrValue, options, doesSupportMarkdown); | ||
if (contentsDoc) { | ||
@@ -188,6 +187,6 @@ hover = { contents: contentsDoc, range: range }; | ||
if (text[n] === ';') { | ||
range = vscode_languageserver_types_1.Range.create(vscode_languageserver_types_1.Position.create(position.line, characterStart), vscode_languageserver_types_1.Position.create(position.line, characterEnd + 1)); | ||
range = htmlLanguageTypes_1.Range.create(htmlLanguageTypes_1.Position.create(position.line, characterStart), htmlLanguageTypes_1.Position.create(position.line, characterEnd + 1)); | ||
} | ||
else { | ||
range = vscode_languageserver_types_1.Range.create(vscode_languageserver_types_1.Position.create(position.line, characterStart), vscode_languageserver_types_1.Position.create(position.line, characterEnd)); | ||
range = htmlLanguageTypes_1.Range.create(htmlLanguageTypes_1.Position.create(position.line, characterStart), htmlLanguageTypes_1.Position.create(position.line, characterEnd)); | ||
} | ||
@@ -289,3 +288,3 @@ return range; | ||
var contentFormat = (_c = (_b = (_a = this.lsOptions.clientCapabilities) === null || _a === void 0 ? void 0 : _a.textDocument) === null || _b === void 0 ? void 0 : _b.hover) === null || _c === void 0 ? void 0 : _c.contentFormat; | ||
this.supportsMarkdown = Array.isArray(contentFormat) && contentFormat.indexOf(vscode_languageserver_types_1.MarkupKind.Markdown) !== -1; | ||
this.supportsMarkdown = Array.isArray(contentFormat) && contentFormat.indexOf(htmlLanguageTypes_1.MarkupKind.Markdown) !== -1; | ||
} | ||
@@ -292,0 +291,0 @@ return this.supportsMarkdown; |
@@ -11,3 +11,3 @@ /*--------------------------------------------------------------------------------------------- | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "../parser/htmlScanner", "vscode-languageserver-types", "../utils/strings", "vscode-uri", "../htmlLanguageTypes"], factory); | ||
define(["require", "exports", "../parser/htmlScanner", "../utils/strings", "vscode-uri", "../htmlLanguageTypes"], factory); | ||
} | ||
@@ -19,3 +19,2 @@ })(function (require, exports) { | ||
var htmlScanner_1 = require("../parser/htmlScanner"); | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
var strings = require("../utils/strings"); | ||
@@ -77,3 +76,3 @@ var vscode_uri_1 = require("vscode-uri"); | ||
return { | ||
range: vscode_languageserver_types_1.Range.create(document.positionAt(startOffset), document.positionAt(endOffset)), | ||
range: htmlLanguageTypes_1.Range.create(document.positionAt(startOffset), document.positionAt(endOffset)), | ||
target: workspaceUrl | ||
@@ -80,0 +79,0 @@ }; |
@@ -0,1 +1,5 @@ | ||
/*--------------------------------------------------------------------------------------------- | ||
* Copyright (c) Microsoft Corporation. All rights reserved. | ||
* Licensed under the MIT License. See License.txt in the project root for license information. | ||
*--------------------------------------------------------------------------------------------*/ | ||
(function (factory) { | ||
@@ -7,3 +11,3 @@ if (typeof module === "object" && typeof module.exports === "object") { | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "vscode-languageserver-types", "../parser/htmlScanner", "../parser/htmlParser", "../htmlLanguageTypes"], factory); | ||
define(["require", "exports", "../parser/htmlScanner", "../parser/htmlParser", "../htmlLanguageTypes"], factory); | ||
} | ||
@@ -14,7 +18,2 @@ })(function (require, exports) { | ||
exports.getSelectionRanges = void 0; | ||
/** | ||
* Until SelectionRange lands in LSP, we'll return Range from server and convert it to | ||
* SelectionRange on client side | ||
*/ | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
var htmlScanner_1 = require("../parser/htmlScanner"); | ||
@@ -31,3 +30,3 @@ var htmlParser_1 = require("../parser/htmlParser"); | ||
if (!prev || range[0] !== prev[0] || range[1] !== prev[1]) { | ||
current = vscode_languageserver_types_1.SelectionRange.create(vscode_languageserver_types_1.Range.create(document.positionAt(applicableRanges[index][0]), document.positionAt(applicableRanges[index][1])), current); | ||
current = htmlLanguageTypes_1.SelectionRange.create(htmlLanguageTypes_1.Range.create(document.positionAt(applicableRanges[index][0]), document.positionAt(applicableRanges[index][1])), current); | ||
} | ||
@@ -37,3 +36,3 @@ prev = range; | ||
if (!current) { | ||
current = vscode_languageserver_types_1.SelectionRange.create(vscode_languageserver_types_1.Range.create(position, position)); | ||
current = htmlLanguageTypes_1.SelectionRange.create(htmlLanguageTypes_1.Range.create(position, position)); | ||
} | ||
@@ -56,3 +55,3 @@ return current; | ||
} | ||
var closeRange = vscode_languageserver_types_1.Range.create(document.positionAt(currNode.startTagEnd - 2), document.positionAt(currNode.startTagEnd)); | ||
var closeRange = htmlLanguageTypes_1.Range.create(document.positionAt(currNode.startTagEnd - 2), document.positionAt(currNode.startTagEnd)); | ||
var closeText = document.getText(closeRange); | ||
@@ -127,3 +126,3 @@ // Self-closing element | ||
function getAttributeLevelRanges(document, currNode, currOffset) { | ||
var currNodeRange = vscode_languageserver_types_1.Range.create(document.positionAt(currNode.start), document.positionAt(currNode.end)); | ||
var currNodeRange = htmlLanguageTypes_1.Range.create(document.positionAt(currNode.start), document.positionAt(currNode.end)); | ||
var currNodeText = document.getText(currNodeRange); | ||
@@ -130,0 +129,0 @@ var relativeOffset = currOffset - currNode.start; |
@@ -11,3 +11,3 @@ /*--------------------------------------------------------------------------------------------- | ||
else if (typeof define === "function" && define.amd) { | ||
define(["require", "exports", "vscode-languageserver-types"], factory); | ||
define(["require", "exports", "../htmlLanguageTypes"], factory); | ||
} | ||
@@ -18,3 +18,3 @@ })(function (require, exports) { | ||
exports.findDocumentSymbols = void 0; | ||
var vscode_languageserver_types_1 = require("vscode-languageserver-types"); | ||
var htmlLanguageTypes_1 = require("../htmlLanguageTypes"); | ||
function findDocumentSymbols(document, htmlDocument) { | ||
@@ -30,3 +30,3 @@ var symbols = []; | ||
var name = nodeToName(node); | ||
var location = vscode_languageserver_types_1.Location.create(document.uri, vscode_languageserver_types_1.Range.create(document.positionAt(node.start), document.positionAt(node.end))); | ||
var location = htmlLanguageTypes_1.Location.create(document.uri, htmlLanguageTypes_1.Range.create(document.positionAt(node.start), document.positionAt(node.end))); | ||
var symbol = { | ||
@@ -36,3 +36,3 @@ name: name, | ||
containerName: container, | ||
kind: vscode_languageserver_types_1.SymbolKind.Field | ||
kind: htmlLanguageTypes_1.SymbolKind.Field | ||
}; | ||
@@ -39,0 +39,0 @@ symbols.push(symbol); |
@@ -0,1 +1,5 @@ | ||
/*--------------------------------------------------------------------------------------------- | ||
* Copyright (c) Microsoft Corporation. All rights reserved. | ||
* Licensed under the MIT License. See License.txt in the project root for license information. | ||
*--------------------------------------------------------------------------------------------*/ | ||
(function (factory) { | ||
@@ -10,7 +14,3 @@ if (typeof module === "object" && typeof module.exports === "object") { | ||
})(function (require, exports) { | ||
/*--------------------------------------------------------------------------------------------- | ||
* Copyright (c) Microsoft Corporation. All rights reserved. | ||
* Licensed under the MIT License. See License.txt in the project root for license information. | ||
*--------------------------------------------------------------------------------------------*/ | ||
'use strict'; | ||
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -17,0 +17,0 @@ exports.isDefined = void 0; |
@@ -58,3 +58,3 @@ /*--------------------------------------------------------------------------------------------- | ||
exports.extname = extname; | ||
exports.join = function () { | ||
var join = function () { | ||
// Not using a function with var-args because of how TS compiles | ||
@@ -81,2 +81,3 @@ // them to JS - it would result in 2*n runtime cost instead | ||
}; | ||
exports.join = join; | ||
}); |
{ | ||
"name": "vscode-html-languageservice", | ||
"version": "3.1.5", | ||
"version": "3.2.0", | ||
"description": "Language service for HTML", | ||
@@ -20,10 +20,10 @@ "main": "./lib/umd/htmlLanguageService.js", | ||
"@types/node": "^10.12.21", | ||
"@typescript-eslint/eslint-plugin": "^4.7.0", | ||
"@typescript-eslint/parser": "^4.7.0", | ||
"eslint": "^7.13.0", | ||
"@typescript-eslint/eslint-plugin": "^4.9.0", | ||
"@typescript-eslint/parser": "^4.9.0", | ||
"eslint": "^7.14.0", | ||
"js-beautify": "^1.13.0", | ||
"mocha": "^8.2.1", | ||
"rimraf": "^3.0.2", | ||
"typescript": "^4.0.2", | ||
"vscode-web-custom-data": "^0.3.1" | ||
"typescript": "^4.1.2", | ||
"vscode-web-custom-data": "^0.3.2" | ||
}, | ||
@@ -30,0 +30,0 @@ "dependencies": { |
1548805
32596