Răsfoiți Sursa

Adopt latest `monaco-editor-core`, update to TS 4.0.3

Alex Dima 4 ani în urmă
părinte
comite
4ec20bbd1f

+ 12 - 12
package-lock.json

@@ -429,15 +429,15 @@
 			}
 		},
 		"monaco-editor-core": {
-			"version": "0.20.0",
-			"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.20.0.tgz",
-			"integrity": "sha512-4mdmfEejTvRZzrEIn70jqqNl3g15vnkRdTkJ8uMK4jiljntlwhiSc5vknZOLt1QM8za16C3tDrSl2mTL9ma2Sg==",
+			"version": "0.21.0",
+			"resolved": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.21.0.tgz",
+			"integrity": "sha512-buBxOxwexlb7pdQrIHjj7OGmtVmEe735NN7M8GbhN03eYAKQmaeIAs1AyneOOHvbvh1Ntm7PoHH8f196gd2p6w==",
 			"dev": true
 		},
 		"monaco-languages": {
-			"version": "1.10.0",
-			"resolved": "https://registry.npmjs.org/monaco-languages/-/monaco-languages-1.10.0.tgz",
-			"integrity": "sha512-ARAws17Xh0K4WsZYkJY6CqHn9EYdYN8CjzK6w/jgXIwU0owzCdUWxzu+FNJ/LeDLcKxL/YK3phcwGFj9IqX2yw==",
+			"version": "2.1.0",
+			"resolved": "https://registry.npmjs.org/monaco-languages/-/monaco-languages-2.1.0.tgz",
+			"integrity": "sha512-c2afUp3lbUCrvEdVrH8EThQYbj5tb2FpvXFnFN3gOJScDlFknWb5nbaxiaVqY9CSIqzJVZpNc5HXpP5FWOuS3g==",
 			"dev": true
 		},
 		"monaco-plugin-helpers": {
@@ -721,9 +721,9 @@
 			}
 		},
 		"terser": {
-			"version": "5.3.1",
-			"resolved": "https://registry.npmjs.org/terser/-/terser-5.3.1.tgz",
-			"integrity": "sha512-yD80f4hdwCWTH5mojzxe1q8bN1oJbsK/vfJGLcPZM/fl+/jItIVNKhFIHqqR71OipFWMLgj3Kc+GIp6CeIqfnA==",
+			"version": "5.3.2",
+			"resolved": "https://registry.npmjs.org/terser/-/terser-5.3.2.tgz",
+			"integrity": "sha512-H67sydwBz5jCUA32ZRL319ULu+Su1cAoZnnc+lXnenGRYWyLE3Scgkt8mNoAsMx0h5kdo758zdoS0LG9rYZXDQ==",
 			"dev": true,
 			"requires": {
 				"commander": "^2.20.0",
@@ -732,9 +732,9 @@
 			}
 		},
 		"typescript": {
-			"version": "4.0.2",
-			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz",
-			"integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==",
+			"version": "4.0.3",
+			"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.3.tgz",
+			"integrity": "sha512-tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg==",
 			"dev": true
 		},
 		"which": {

+ 6 - 6
package.json

@@ -25,14 +25,14 @@
 	"devDependencies": {
 		"@typescript/vfs": "^1.3.0",
 		"husky": "^4.3.0",
-		"monaco-editor-core": "^0.20.0",
-		"monaco-languages": "^1.10.0",
+		"monaco-editor-core": "^0.21.0",
+		"monaco-languages": "^2.1.0",
 		"monaco-plugin-helpers": "^1.0.3",
-		"prettier": "^2.1.1",
-		"pretty-quick": "^3.0.0",
+		"prettier": "^2.1.2",
+		"pretty-quick": "^3.0.2",
 		"requirejs": "^2.3.6",
-		"terser": "^5.3.0",
-		"typescript": "^4.0.2"
+		"terser": "^5.3.2",
+		"typescript": "^4.0.3"
 	},
 	"husky": {
 		"hooks": {

+ 4 - 4
src/languageFeatures.ts

@@ -387,6 +387,7 @@ interface MyCompletionItem extends languages.CompletionItem {
 	label: string;
 	uri: Uri;
 	position: Position;
+	offset: number;
 }
 
 export class SuggestAdapter extends Adapter implements languages.CompletionItemProvider {
@@ -433,6 +434,7 @@ export class SuggestAdapter extends Adapter implements languages.CompletionItemP
 			return {
 				uri: resource,
 				position: position,
+				offset: offset,
 				range: range,
 				label: entry.name,
 				insertText: entry.name,
@@ -448,15 +450,13 @@ export class SuggestAdapter extends Adapter implements languages.CompletionItemP
 	}
 
 	public async resolveCompletionItem(
-		model: editor.ITextModel,
-		_position: Position,
 		item: languages.CompletionItem,
 		token: CancellationToken
 	): Promise<languages.CompletionItem> {
 		const myItem = <MyCompletionItem>item;
 		const resource = myItem.uri;
 		const position = myItem.position;
-		const offset = model.getOffsetAt(position);
+		const offset = myItem.offset;
 
 		const worker = await this._worker(resource);
 		const details = await worker.getCompletionEntryDetails(
@@ -464,7 +464,7 @@ export class SuggestAdapter extends Adapter implements languages.CompletionItemP
 			offset,
 			myItem.label
 		);
-		if (!details || model.isDisposed()) {
+		if (!details) {
 			return myItem;
 		}
 		return <MyCompletionItem>{

+ 11 - 10
src/lib/typescriptServices-amd.js

@@ -291,7 +291,7 @@ var ts;
     // If changing the text in this section, be sure to test `configurePrerelease` too.
     ts.versionMajorMinor = "4.0";
     /** The version of the TypeScript compiler release */
-    ts.version = "4.0.2";
+    ts.version = "4.0.3";
     /* @internal */
     var Comparison;
     (function (Comparison) {
@@ -70195,13 +70195,10 @@ var ts;
         function checkTupleType(node) {
             var elementTypes = node.elements;
             var seenOptionalElement = false;
-            var seenNamedElement = false;
+            var hasNamedElement = ts.some(elementTypes, ts.isNamedTupleMember);
             for (var i = 0; i < elementTypes.length; i++) {
                 var e = elementTypes[i];
-                if (e.kind === 191 /* NamedTupleMember */) {
-                    seenNamedElement = true;
-                }
-                else if (seenNamedElement) {
+                if (e.kind !== 191 /* NamedTupleMember */ && hasNamedElement) {
                     grammarErrorOnNode(e, ts.Diagnostics.Tuple_members_must_all_have_names_or_all_not_have_names);
                     break;
                 }
@@ -112424,7 +112421,10 @@ var ts;
                 var newImport = sortedNewImports_1[_i];
                 var insertionIndex = ts.OrganizeImports.getImportDeclarationInsertionIndex(existingImportStatements, newImport);
                 if (insertionIndex === 0) {
-                    changes.insertNodeBefore(sourceFile, existingImportStatements[0], newImport, /*blankLineBetween*/ false);
+                    // If the first import is top-of-file, insert after the leading comment which is likely the header.
+                    var options = existingImportStatements[0] === sourceFile.statements[0] ?
+                        { leadingTriviaOption: ts.textChanges.LeadingTriviaOption.Exclude } : {};
+                    changes.insertNodeBefore(sourceFile, existingImportStatements[0], newImport, /*blankLineBetween*/ false, options);
                 }
                 else {
                     var prevImport = existingImportStatements[insertionIndex - 1];
@@ -129552,9 +129552,10 @@ var ts;
                     this.insertNodeAt(sourceFile, parameters.pos, newParam);
                 }
             };
-            ChangeTracker.prototype.insertNodeBefore = function (sourceFile, before, newNode, blankLineBetween) {
+            ChangeTracker.prototype.insertNodeBefore = function (sourceFile, before, newNode, blankLineBetween, options) {
                 if (blankLineBetween === void 0) { blankLineBetween = false; }
-                this.insertNodeAt(sourceFile, getAdjustedStartPosition(sourceFile, before, {}), newNode, this.getOptionsForInsertNodeBefore(before, newNode, blankLineBetween));
+                if (options === void 0) { options = {}; }
+                this.insertNodeAt(sourceFile, getAdjustedStartPosition(sourceFile, before, options), newNode, this.getOptionsForInsertNodeBefore(before, newNode, blankLineBetween));
             };
             ChangeTracker.prototype.insertModifierBefore = function (sourceFile, modifier, before) {
                 var pos = before.getStart(sourceFile);
@@ -133422,7 +133423,7 @@ var ts;
                 else if (existingSpecifiers === null || existingSpecifiers === void 0 ? void 0 : existingSpecifiers.length) {
                     for (var _b = 0, newSpecifiers_2 = newSpecifiers; _b < newSpecifiers_2.length; _b++) {
                         var spec = newSpecifiers_2[_b];
-                        changes.insertNodeAtEndOfList(sourceFile, existingSpecifiers, spec);
+                        changes.insertNodeInListAfter(sourceFile, ts.last(existingSpecifiers), spec, existingSpecifiers);
                     }
                 }
                 else {

+ 11 - 10
src/lib/typescriptServices.js

@@ -291,7 +291,7 @@ var ts;
     // If changing the text in this section, be sure to test `configurePrerelease` too.
     ts.versionMajorMinor = "4.0";
     /** The version of the TypeScript compiler release */
-    ts.version = "4.0.2";
+    ts.version = "4.0.3";
     /* @internal */
     var Comparison;
     (function (Comparison) {
@@ -70195,13 +70195,10 @@ var ts;
         function checkTupleType(node) {
             var elementTypes = node.elements;
             var seenOptionalElement = false;
-            var seenNamedElement = false;
+            var hasNamedElement = ts.some(elementTypes, ts.isNamedTupleMember);
             for (var i = 0; i < elementTypes.length; i++) {
                 var e = elementTypes[i];
-                if (e.kind === 191 /* NamedTupleMember */) {
-                    seenNamedElement = true;
-                }
-                else if (seenNamedElement) {
+                if (e.kind !== 191 /* NamedTupleMember */ && hasNamedElement) {
                     grammarErrorOnNode(e, ts.Diagnostics.Tuple_members_must_all_have_names_or_all_not_have_names);
                     break;
                 }
@@ -112424,7 +112421,10 @@ var ts;
                 var newImport = sortedNewImports_1[_i];
                 var insertionIndex = ts.OrganizeImports.getImportDeclarationInsertionIndex(existingImportStatements, newImport);
                 if (insertionIndex === 0) {
-                    changes.insertNodeBefore(sourceFile, existingImportStatements[0], newImport, /*blankLineBetween*/ false);
+                    // If the first import is top-of-file, insert after the leading comment which is likely the header.
+                    var options = existingImportStatements[0] === sourceFile.statements[0] ?
+                        { leadingTriviaOption: ts.textChanges.LeadingTriviaOption.Exclude } : {};
+                    changes.insertNodeBefore(sourceFile, existingImportStatements[0], newImport, /*blankLineBetween*/ false, options);
                 }
                 else {
                     var prevImport = existingImportStatements[insertionIndex - 1];
@@ -129552,9 +129552,10 @@ var ts;
                     this.insertNodeAt(sourceFile, parameters.pos, newParam);
                 }
             };
-            ChangeTracker.prototype.insertNodeBefore = function (sourceFile, before, newNode, blankLineBetween) {
+            ChangeTracker.prototype.insertNodeBefore = function (sourceFile, before, newNode, blankLineBetween, options) {
                 if (blankLineBetween === void 0) { blankLineBetween = false; }
-                this.insertNodeAt(sourceFile, getAdjustedStartPosition(sourceFile, before, {}), newNode, this.getOptionsForInsertNodeBefore(before, newNode, blankLineBetween));
+                if (options === void 0) { options = {}; }
+                this.insertNodeAt(sourceFile, getAdjustedStartPosition(sourceFile, before, options), newNode, this.getOptionsForInsertNodeBefore(before, newNode, blankLineBetween));
             };
             ChangeTracker.prototype.insertModifierBefore = function (sourceFile, modifier, before) {
                 var pos = before.getStart(sourceFile);
@@ -133422,7 +133423,7 @@ var ts;
                 else if (existingSpecifiers === null || existingSpecifiers === void 0 ? void 0 : existingSpecifiers.length) {
                     for (var _b = 0, newSpecifiers_2 = newSpecifiers; _b < newSpecifiers_2.length; _b++) {
                         var spec = newSpecifiers_2[_b];
-                        changes.insertNodeAtEndOfList(sourceFile, existingSpecifiers, spec);
+                        changes.insertNodeInListAfter(sourceFile, ts.last(existingSpecifiers), spec, existingSpecifiers);
                     }
                 }
                 else {

+ 1 - 1
src/lib/typescriptServicesMetadata.ts

@@ -2,4 +2,4 @@
 // **NOTE**: Do not edit directly! This file is generated using `npm run import-typescript`
 //
 
-export const typescriptVersion = "4.0.2";
+export const typescriptVersion = "4.0.3";