Skip to content

Commit 2a6e10d

Browse files
authored
Merge pull request #2366 from yoyo930021/remove-deprecated
Remove deprecated code and incremental text document
2 parents d593698 + 569d715 commit 2a6e10d

37 files changed

+91
-139
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
- 🙌 Fix v-bind modifiers causing TypeScript to not find type-checked template props correctly. Thanks to contribution from [@andrewisaburden](https://github.com/andrewisaburden). #2430.
66
- 🙌 Fix "File name X differs from already included file name Y only in casing" on Windows. Thanks to contribution from [@rchl](https://github.com/rchl). #2433 and #2444.
7+
- 🙌 Remove deprecated code and incremental text document. Thanks to contribution from [@yoyo930021](https://github.com/yoyo930021). #2366.
78

89
### 0.29.1 | 2020-11-08 | [VSIX](https://marketplace.visualstudio.com/_apis/public/gallery/publishers/octref/vsextensions/vetur/0.29.1/vspackage)
910

server/src/embeddedSupport/embeddedSupport.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { TextDocument, Position, Range } from 'vscode-languageserver-types';
1+
import { Position, Range } from 'vscode-languageserver-types';
2+
import { TextDocument } from 'vscode-languageserver-textdocument';
23
import { parseVueDocumentRegions, EmbeddedRegion } from './vueDocumentRegionParser';
34

45
export type LanguageId =

server/src/embeddedSupport/languageModelCache.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { TextDocument } from 'vscode-languageserver';
1+
import { TextDocument } from 'vscode-languageserver-textdocument';
22

33
export interface LanguageModelCache<T> {
44
/**

server/src/embeddedSupport/languageModes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import {
44
SignatureHelp,
55
Definition,
66
TextEdit,
7-
TextDocument,
87
Diagnostic,
98
DocumentLink,
109
Range,
@@ -22,6 +21,7 @@ import {
2221
WorkspaceEdit,
2322
FoldingRange
2423
} from 'vscode-languageserver-types';
24+
import type { TextDocument } from 'vscode-languageserver-textdocument';
2525

2626
import { getLanguageModelCache, LanguageModelCache } from './languageModelCache';
2727
import { getVueDocumentRegions, VueDocumentRegions, LanguageId, LanguageRange } from './embeddedSupport';

server/src/embeddedSupport/test/embeddedSupport.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { TextDocument } from 'vscode-languageserver-types';
1+
import { TextDocument } from 'vscode-languageserver-textdocument';
22
import * as assert from 'assert';
33
import { parseVueDocumentRegions } from '../vueDocumentRegionParser';
44
import { getSingleLanguageDocument, getSingleTypeDocument, getLanguageRangesOfType } from '../embeddedSupport';

server/src/embeddedSupport/vueDocumentRegionParser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { TextDocument } from 'vscode-languageserver-types';
1+
import type { TextDocument } from 'vscode-languageserver-textdocument';
22
import { createScanner, TokenType, Scanner } from '../modes/template/parser/htmlScanner';
33
import { removeQuotes } from '../utils/strings';
44
import { LanguageId } from './embeddedSupport';

server/src/modes/pug/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { TextDocument, Position, Range } from 'vscode-languageserver-types';
1+
import { Position, Range } from 'vscode-languageserver-types';
2+
import type { TextDocument } from 'vscode-languageserver-textdocument';
23
import { LanguageMode } from '../../embeddedSupport/languageModes';
34
import { prettierify } from '../../utils/prettier';
45
import { VLSFormatConfig } from '../../config';

server/src/modes/style/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { TextDocument, Position, Range } from 'vscode-languageserver-types';
1+
import { Position, Range } from 'vscode-languageserver-types';
2+
import type { TextDocument } from 'vscode-languageserver-textdocument';
23
import {
34
getCSSLanguageService,
45
getSCSSLanguageService,

server/src/modes/style/sass/sassLanguageMode.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { LanguageMode } from '../../../embeddedSupport/languageModes';
22

3-
import { TextDocument, Range, FormattingOptions, CompletionList } from 'vscode-languageserver-types/lib/umd/main';
3+
import type { TextDocument } from 'vscode-languageserver-textdocument';
4+
import { Range, FormattingOptions, CompletionList } from 'vscode-languageserver-types';
45

56
import { TextEdit, Position } from 'vscode-css-languageservice';
67

server/src/modes/style/stylus/completion-item.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
1-
import {
2-
CompletionItem,
3-
CompletionItemKind,
4-
TextDocument,
5-
Position,
6-
CompletionList
7-
} from 'vscode-languageserver-types';
1+
import { CompletionItem, CompletionItemKind, Position, CompletionList } from 'vscode-languageserver-types';
2+
import type { TextDocument } from 'vscode-languageserver-textdocument';
83

94
import {
105
StylusNode,

server/src/modes/style/stylus/stylus-hover.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { TextDocument, Position, Hover, Range } from 'vscode-languageserver-types';
1+
import { Position, Hover, Range } from 'vscode-languageserver-types';
2+
import type { TextDocument } from 'vscode-languageserver-textdocument';
23

34
import { buildAst, findNodeAtPosition } from './parser';
45

server/src/modes/style/stylus/symbols-finder.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { TextDocument, SymbolInformation, SymbolKind, Range, Position } from 'vscode-languageserver-types';
1+
import { SymbolInformation, SymbolKind, Range, Position } from 'vscode-languageserver-types';
2+
import type { TextDocument } from 'vscode-languageserver-textdocument';
23

34
import {
45
StylusNode,

server/src/modes/template/htmlMode.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import * as _ from 'lodash';
22

33
import { LanguageModelCache, getLanguageModelCache } from '../../embeddedSupport/languageModelCache';
4-
import { TextDocument, Position, Range, FormattingOptions } from 'vscode-languageserver-types';
4+
import { Position, Range, FormattingOptions } from 'vscode-languageserver-types';
5+
import type { TextDocument } from 'vscode-languageserver-textdocument';
56
import { LanguageMode } from '../../embeddedSupport/languageModes';
67
import { VueDocumentRegions } from '../../embeddedSupport/embeddedSupport';
78
import { HTMLDocument } from './parser/htmlParser';
@@ -79,7 +80,7 @@ export class HTMLMode implements LanguageMode {
7980
}
8081
if (this.config.vetur.validation.template) {
8182
const embedded = this.embeddedDocuments.refreshAndGet(document);
82-
diagnostics.push(...doESLintValidation(embedded, this.lintEngine));
83+
diagnostics.push(...(await doESLintValidation(embedded, this.lintEngine)));
8384
}
8485

8586
return diagnostics;

server/src/modes/template/index.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
1-
import {
2-
FormattingOptions,
3-
Position,
4-
Range,
5-
TextDocument,
6-
Hover,
7-
Location,
8-
CompletionItem
9-
} from 'vscode-languageserver-types';
1+
import { FormattingOptions, Position, Range, Hover, Location, CompletionItem } from 'vscode-languageserver-types';
2+
import type { TextDocument } from 'vscode-languageserver-textdocument';
103
import { VueDocumentRegions } from '../../embeddedSupport/embeddedSupport';
114
import { LanguageModelCache, getLanguageModelCache } from '../../embeddedSupport/languageModelCache';
125
import { LanguageMode } from '../../embeddedSupport/languageModes';

server/src/modes/template/interpolationMode.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ import {
1111
MarkupContent,
1212
Position,
1313
Range,
14-
TextDocument,
1514
TextEdit
1615
} from 'vscode-languageserver-types';
1716
import { URI } from 'vscode-uri';
17+
import { TextDocument } from 'vscode-languageserver-textdocument';
1818
import { VLSFullConfig } from '../../config';
1919
import { LanguageModelCache } from '../../embeddedSupport/languageModelCache';
2020
import { LanguageMode } from '../../embeddedSupport/languageModes';

server/src/modes/template/parser/htmlParser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { TokenType, createScanner } from './htmlScanner';
22
import { isVoidElement } from '../tagProviders/htmlTags';
3-
import { TextDocument } from 'vscode-languageserver-types';
3+
import type { TextDocument } from 'vscode-languageserver-textdocument';
44

55
export class Node {
66
public tag?: string;

server/src/modes/template/services/htmlCompletion.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import {
2-
TextDocument,
32
Position,
43
CompletionList,
54
CompletionItemKind,
@@ -8,6 +7,7 @@ import {
87
InsertTextFormat,
98
CompletionItem
109
} from 'vscode-languageserver-types';
10+
import type { TextDocument } from 'vscode-languageserver-textdocument';
1111
import { HTMLDocument } from '../parser/htmlParser';
1212
import { TokenType, createScanner, ScannerState } from '../parser/htmlScanner';
1313
import { IHTMLTagProvider } from '../tagProviders';

server/src/modes/template/services/htmlDefinition.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { HTMLDocument } from '../parser/htmlParser';
22
import { TokenType, createScanner } from '../parser/htmlScanner';
3-
import { TextDocument, Range, Position, Location } from 'vscode-languageserver-types';
3+
import { Range, Position, Location } from 'vscode-languageserver-types';
4+
import type { TextDocument } from 'vscode-languageserver-textdocument';
45
import { VueFileInfo } from '../../../services/vueInfoService';
56
import { URI } from 'vscode-uri';
67
import { kebabCase } from 'lodash';
Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { CLIEngine, Linter } from 'eslint';
1+
import { ESLint, Linter } from 'eslint';
22
import { configs } from 'eslint-plugin-vue';
3-
import { TextDocument, Diagnostic, Range, DiagnosticSeverity } from 'vscode-languageserver-types';
3+
import { Diagnostic, Range, DiagnosticSeverity } from 'vscode-languageserver-types';
4+
import type { TextDocument } from 'vscode-languageserver-textdocument';
45
import { resolve } from 'path';
56
import { VueVersion } from '../../../services/typescriptService/vueVersion';
67

@@ -17,32 +18,27 @@ function toDiagnostic(error: Linter.LintMessage): Diagnostic {
1718
};
1819
}
1920

20-
export function doESLintValidation(document: TextDocument, engine: CLIEngine): Diagnostic[] {
21+
export async function doESLintValidation(document: TextDocument, engine: ESLint): Promise<Diagnostic[]> {
2122
const rawText = document.getText();
2223
// skip checking on empty template
2324
if (rawText.replace(/\s/g, '') === '') {
2425
return [];
2526
}
2627
const text = rawText.replace(/ {10}/, '<template>') + '</template>';
27-
const report = engine.executeOnText(text, document.uri);
28+
const report = await engine.lintText(text, { filePath: document.uri });
2829

29-
return report.results[0] ? report.results[0].messages.map(toDiagnostic) : [];
30+
return report?.[0].messages.map(toDiagnostic) ?? [];
3031
}
3132

3233
export function createLintEngine(vueVersion: VueVersion) {
3334
const SERVER_ROOT = resolve(__dirname, '../../../../');
3435

35-
const basicConfig = {
36-
useEslintrc: false,
37-
// So ESLint can find the bundled eslint-plugin-vue
38-
cwd: SERVER_ROOT,
39-
...configs.base
40-
};
41-
4236
const versionSpecificConfig = vueVersion === VueVersion.V30 ? configs['vue3-essential'] : configs.essential;
4337

44-
return new CLIEngine({
45-
...basicConfig,
46-
...versionSpecificConfig
38+
return new ESLint({
39+
useEslintrc: false,
40+
cwd: SERVER_ROOT,
41+
baseConfig: configs.base,
42+
overrideConfig: versionSpecificConfig
4743
});
4844
}

server/src/modes/template/services/htmlFolding.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { TextDocument, FoldingRange, FoldingRangeKind } from 'vscode-languageserver-types';
6+
import { FoldingRange, FoldingRangeKind } from 'vscode-languageserver-types';
7+
import type { TextDocument } from 'vscode-languageserver-textdocument';
78

89
import { TokenType, createScanner } from '../parser/htmlScanner';
910
import { isVoidElement } from '../tagProviders/htmlTags';

server/src/modes/template/services/htmlFormat.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as _ from 'lodash';
2-
import { TextDocument, Range, TextEdit, Position } from 'vscode-languageserver-types';
2+
import { Range, TextEdit, Position } from 'vscode-languageserver-types';
3+
import type { TextDocument } from 'vscode-languageserver-textdocument';
34
import { html as htmlBeautify } from 'js-beautify';
45
import { IPrettyHtml } from './prettyhtml';
56
import { requireLocalPkg } from '../../../utils/prettier/requirePkg';

server/src/modes/template/services/htmlHighlighting.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { HTMLDocument } from '../parser/htmlParser';
22
import { TokenType, createScanner } from '../parser/htmlScanner';
3-
import { TextDocument, Range, Position, DocumentHighlightKind, DocumentHighlight } from 'vscode-languageserver-types';
3+
import { Range, Position, DocumentHighlightKind, DocumentHighlight } from 'vscode-languageserver-types';
4+
import type { TextDocument } from 'vscode-languageserver-textdocument';
45

56
export function findDocumentHighlights(
67
document: TextDocument,

server/src/modes/template/services/htmlHover.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { HTMLDocument } from '../parser/htmlParser';
22
import { TokenType, createScanner } from '../parser/htmlScanner';
3-
import { TextDocument, Range, Position, Hover } from 'vscode-languageserver-types';
3+
import { Range, Position, Hover } from 'vscode-languageserver-types';
4+
import type { TextDocument } from 'vscode-languageserver-textdocument';
45
import { IHTMLTagProvider } from '../tagProviders';
56
import { NULL_HOVER } from '../../nullMode';
67
import { toMarkupContent } from '../../../utils/strings';

server/src/modes/template/services/htmlLinks.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { TokenType, createScanner } from '../parser/htmlScanner';
2-
import { TextDocument, Range, DocumentLink } from 'vscode-languageserver-types';
2+
import { Range, DocumentLink } from 'vscode-languageserver-types';
3+
import type { TextDocument } from 'vscode-languageserver-textdocument';
34
import { URI } from 'vscode-uri';
45
import { DocumentContext } from '../../../types';
56

server/src/modes/template/services/htmlSymbolsProvider.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { TextDocument, Location, Range, SymbolInformation, SymbolKind } from 'vscode-languageserver-types';
1+
import { Location, Range, SymbolInformation, SymbolKind } from 'vscode-languageserver-types';
2+
import type { TextDocument } from 'vscode-languageserver-textdocument';
23
import { HTMLDocument, Node } from '../parser/htmlParser';
34

45
export function findDocumentSymbols(document: TextDocument, htmlDocument: HTMLDocument): SymbolInformation[] {

server/src/modes/template/services/vuePropValidation.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { VueFileInfo, PropInfo } from '../../../services/vueInfoService';
2-
import { TextDocument, Diagnostic, DiagnosticSeverity } from 'vscode-languageserver-types';
2+
import { Diagnostic, DiagnosticSeverity } from 'vscode-languageserver-types';
3+
import type { TextDocument } from 'vscode-languageserver-textdocument';
34
import { HTMLDocument, Node } from '../parser/htmlParser';
45
import { kebabCase } from 'lodash';
56
import { getSameTagInSet } from '../tagProviders/common';

server/src/modes/template/test/highlighting.test.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
'use strict';
66

77
import * as assert from 'assert';
8-
import { TextDocument } from 'vscode-languageserver-types';
8+
import { TextDocument } from 'vscode-languageserver-textdocument';
99
import { parseHTMLDocument } from '../parser/htmlParser';
1010
import { findDocumentHighlights } from '../services/htmlHighlighting';
1111

@@ -27,13 +27,7 @@ suite('HTML Highlighting', () => {
2727
const actualEndOffset = document.offsetAt(highlights[i].range.end);
2828
assert.equal(actualEndOffset, expectedMatches[i] + elementName!.length);
2929

30-
assert.equal(
31-
document
32-
.getText()
33-
.substring(actualStartOffset, actualEndOffset)
34-
.toLowerCase(),
35-
elementName
36-
);
30+
assert.equal(document.getText().substring(actualStartOffset, actualEndOffset).toLowerCase(), elementName);
3731
}
3832
}
3933

server/src/modes/template/test/links.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
'use strict';
66

77
import * as assert from 'assert';
8-
import { TextDocument } from 'vscode-languageserver-types';
8+
import { TextDocument } from 'vscode-languageserver-textdocument';
99
import * as url from 'url';
1010

1111
import { findDocumentLinks } from '../services/htmlLinks';

server/src/modes/template/test/symbols.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
import * as assert from 'assert';
88

9-
import { TextDocument, SymbolInformation, SymbolKind, Location, Range } from 'vscode-languageserver-types';
9+
import { SymbolInformation, SymbolKind, Location, Range } from 'vscode-languageserver-types';
10+
import { TextDocument } from 'vscode-languageserver-textdocument';
1011
import { parseHTMLDocument } from '../parser/htmlParser';
1112
import { findDocumentSymbols } from '../services/htmlSymbolsProvider';
1213

server/src/modes/test-util/completion-test-util.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import * as assert from 'assert';
22
import {
33
CompletionList,
4-
TextDocument,
54
CompletionItemKind,
65
Position,
76
CompletionItem,
87
TextEdit,
98
InsertReplaceEdit
109
} from 'vscode-languageserver-types';
10+
import { TextDocument } from 'vscode-languageserver-textdocument';
1111

1212
export interface CompletionTestSetup {
1313
doComplete(doc: TextDocument, pos: Position): CompletionList;

server/src/modes/test-util/hover-test-util.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as assert from 'assert';
2-
import { TextDocument, Position, Hover } from 'vscode-languageserver-types';
2+
import { Position, Hover } from 'vscode-languageserver-types';
3+
import { TextDocument } from 'vscode-languageserver-textdocument';
34

45
export interface HoverTestSetup {
56
docUri: string;

0 commit comments

Comments
 (0)