Kaynağa Gözat

Improve extension startup performance (#408)

Co-authored-by: Hugo Locurcio <[email protected]>
Daelon Suzuka 3 yıl önce
ebeveyn
işleme
cf432a17fb

+ 14 - 10
.vscodeignore

@@ -1,10 +1,14 @@
-.vscode/**
-.vscode-test/**
-out/test/**
-src/**
-.gitignore
-vsc-extension-quickstart.md
-**/tsconfig.json
-**/tslint.json
-**/*.map
-**/*.ts
+*
+*/**
+!out/extension.js
+!syntaxes/
+!resources/
+!configurations/
+syntaxes/examples
+!package.json
+!package.nls.json
+!README.md
+!icon.png
+!CHANGELOG.md
+!LICENSE
+!ThirdPartyNotices.txt

+ 556 - 7
package-lock.json

@@ -26,9 +26,10 @@
 				"@types/prismjs": "^1.16.8",
 				"@types/vscode": "^1.68.0",
 				"@types/ws": "^8.2.2",
+				"esbuild": "^0.15.2",
 				"tslint": "^5.20.1",
 				"typescript": "^3.5.1",
-				"vsce": "^2.6.4"
+				"vsce": "^2.10.0"
 			},
 			"engines": {
 				"vscode": "^1.68.0"
@@ -60,6 +61,22 @@
 				"js-tokens": "^4.0.0"
 			}
 		},
+		"node_modules/@esbuild/linux-loong64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.2.tgz",
+			"integrity": "sha512-lcfRxKY3CIBFop9slpNu04+fGro1S0QN5n+HrbOwR6eHHdYeidvMtSVK4vbbYmEMwQr3MFAt2yU6bhwl4dqL/A==",
+			"cpu": [
+				"loong64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
 		"node_modules/@types/marked": {
 			"version": "0.6.5",
 			"resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.6.5.tgz",
@@ -549,6 +566,362 @@
 				"url": "https://github.com/fb55/entities?sponsor=1"
 			}
 		},
+		"node_modules/esbuild": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.2.tgz",
+			"integrity": "sha512-iKfJsm2u5ATPI3x3sq/WrxISWhAZB/VpvygGG8Pr3q+xQhkIhyI737t+xUa71f50g0ioihQSGaHiQO5hbVDoSQ==",
+			"dev": true,
+			"hasInstallScript": true,
+			"bin": {
+				"esbuild": "bin/esbuild"
+			},
+			"engines": {
+				"node": ">=12"
+			},
+			"optionalDependencies": {
+				"@esbuild/linux-loong64": "0.15.2",
+				"esbuild-android-64": "0.15.2",
+				"esbuild-android-arm64": "0.15.2",
+				"esbuild-darwin-64": "0.15.2",
+				"esbuild-darwin-arm64": "0.15.2",
+				"esbuild-freebsd-64": "0.15.2",
+				"esbuild-freebsd-arm64": "0.15.2",
+				"esbuild-linux-32": "0.15.2",
+				"esbuild-linux-64": "0.15.2",
+				"esbuild-linux-arm": "0.15.2",
+				"esbuild-linux-arm64": "0.15.2",
+				"esbuild-linux-mips64le": "0.15.2",
+				"esbuild-linux-ppc64le": "0.15.2",
+				"esbuild-linux-riscv64": "0.15.2",
+				"esbuild-linux-s390x": "0.15.2",
+				"esbuild-netbsd-64": "0.15.2",
+				"esbuild-openbsd-64": "0.15.2",
+				"esbuild-sunos-64": "0.15.2",
+				"esbuild-windows-32": "0.15.2",
+				"esbuild-windows-64": "0.15.2",
+				"esbuild-windows-arm64": "0.15.2"
+			}
+		},
+		"node_modules/esbuild-android-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.2.tgz",
+			"integrity": "sha512-lEyRmwmdkkKBpIOi0wKGheuCPECgl5/GCOQkhVpDFEj1lec3cinEk37EbD3f4PUvix1eAHtTa0UI1ga0Bznntg==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"android"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-android-arm64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.2.tgz",
+			"integrity": "sha512-znXfd7QBNrpAVnB8ZP5Zj4a3ah5dPBPZwbn6v0f4Lub4iwwZJ1h34VWMuo2f7KZdIbl2axrei6FxlQncS8zzEw==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"android"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-darwin-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.2.tgz",
+			"integrity": "sha512-keNq6K+qhEJ5kZ6L1UJGYjAnv6Kkpf2KjOjC6r0JMsX6ZAaXnA3OqqXJttEYzBKpZ+W6/T+paS4Slzk3N2bSvQ==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-darwin-arm64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.2.tgz",
+			"integrity": "sha512-H/0vtLB/dY+TVGsAskmyuaQ7qegNVi+A4N5a+vpPHPFutzoGjcj4tf/77jZ3UsMTlN1dq+Ldala1P1pf486L8Q==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"darwin"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-freebsd-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.2.tgz",
+			"integrity": "sha512-KMskcfVTisa2h/xaOwmoWEBm6CVWbKbrnEAv3sEfOF0wodjQfcPvW7HAxatMGL7AW9PIUP6UXLCCCUUnxL2yLQ==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"freebsd"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-freebsd-arm64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.2.tgz",
+			"integrity": "sha512-RJJ3c4L6XGfZeiFqphK58KL+3LfrmebMLgB9QJ0Gygmjx1F6tnLUrLwNBNXrpMT7X4bEtCvP9Gvhkt5HVTdt7g==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"freebsd"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-linux-32": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.2.tgz",
+			"integrity": "sha512-GfCEEs+D+vBrluCUBFr3MP8/PH/fNc5xl2JbsHkwivBXlbORXf5m4Ts8vII9qPxEkLAUsoYx4Bjp+Ca0WqQ9tA==",
+			"cpu": [
+				"ia32"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-linux-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.2.tgz",
+			"integrity": "sha512-F6GfpZrcTisWFrJZdx73NNVjY64iOqhxFsdmnftHZFfeLG4KyJg9hO5kd6E+Rq3udoRk41jPS+fg0+iCyq5Utg==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-linux-arm": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.2.tgz",
+			"integrity": "sha512-u2YXH9ZCuyN9KwcpKCzhgUckBgy8O07oivv3cV/Z+WnFOjXhKFc+IY0v41nFODPEzEIbozMUx8boVexvHMXHDA==",
+			"cpu": [
+				"arm"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-linux-arm64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.2.tgz",
+			"integrity": "sha512-CacsuBpOzU/WVWMS19iGHCrijgheCtmNb9mjlvpoxwLEVjHycc9/X+Pup6vp8dk5jRrhm/7lkY8Fbw9OxM+oug==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-linux-mips64le": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.2.tgz",
+			"integrity": "sha512-VY8pEtXAEyPfVCP/SKPGxaiNF7b259Le0wvEPQTYMeJycAVfahBhpg/9qk2Ufd7mMVGT7G2izr86jJsvuiMVZw==",
+			"cpu": [
+				"mips64el"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-linux-ppc64le": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.2.tgz",
+			"integrity": "sha512-+Sma8cuiVciTU+xuqErEU4hm8k2bMivqEXPGsXFPKJAV2XrLQlkT5zuPA4FWuKpxwVLUxxuYhkq0nv4j5Dv/3Q==",
+			"cpu": [
+				"ppc64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-linux-riscv64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.2.tgz",
+			"integrity": "sha512-HkqtnuEiVq2VvqD6Wb9LEWAedbpxXkq7h3Imop6vaAQUr5z8HROfTyY349QsP9aGY3aF/NiBkX20C6vOqTex8A==",
+			"cpu": [
+				"riscv64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-linux-s390x": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.2.tgz",
+			"integrity": "sha512-nIqNFoovQRoz/YBm64xRWXT4yg5BtT2DXA8ogI8lJKy6B+mOKeOVVkvAbFU5YrvUq6AHhMuCsoa3CYFK5a4/vg==",
+			"cpu": [
+				"s390x"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"linux"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-netbsd-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.2.tgz",
+			"integrity": "sha512-CY5kHo3C3+aY1VBv76lDTe/D/+4nkhA6cE8ENRezeEvWmu8pPqnIVk1cy/jLNNPBYkbZiR30z/QeZy5yWsW1kg==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"netbsd"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-openbsd-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.2.tgz",
+			"integrity": "sha512-fXpQW8I6Lm9gJubvW/QjR1OwQQ4tMriVhxznJJmbaX7EYHtcog6Fy+xqbl+YUBZ3dxmEBkBXd6LZaXkn10yavQ==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"openbsd"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-sunos-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.2.tgz",
+			"integrity": "sha512-8xaprqT/rxfbxljQrd2A4iASOnw46eiieghh6JgzjlrXP/6kbhN3fe8IgQclcdu6SjDPmQvNSURQ5xCeVATpbQ==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"sunos"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-windows-32": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.2.tgz",
+			"integrity": "sha512-lGLNGBmDQ0gZphbUfxT7n6OO1l6iOQM2xnYN90+etzTWZeI76CYLbVPCZR+kp3vzyIRAbcsS6NtM4SknHAwEww==",
+			"cpu": [
+				"ia32"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-windows-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.2.tgz",
+			"integrity": "sha512-Rc6cUwOiQiGgpAxlCl8Lj3o2Ds4n3OU8UyoWpOBXmms+gXdwlKBzxjwj5FxrZJ6EveYpFqzDP07tbzOa9YpTKw==",
+			"cpu": [
+				"x64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
+		"node_modules/esbuild-windows-arm64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.2.tgz",
+			"integrity": "sha512-0bpQcIvd6TBIThA+nr9QsTfaU23Co5IPMlXmuNja6buDEu92b9im9ZMGV/BLF+jwKwG8/f1L/0Yfl9QzNuH4Eg==",
+			"cpu": [
+				"arm64"
+			],
+			"dev": true,
+			"optional": true,
+			"os": [
+				"win32"
+			],
+			"engines": {
+				"node": ">=12"
+			}
+		},
 		"node_modules/escape-string-regexp": {
 			"version": "1.0.5",
 			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -1647,9 +2020,9 @@
 			"dev": true
 		},
 		"node_modules/vsce": {
-			"version": "2.6.4",
-			"resolved": "https://registry.npmjs.org/vsce/-/vsce-2.6.4.tgz",
-			"integrity": "sha512-1Zvg2sJA/wFd5KCEWlfefXqiZm47d4ATeVKS2lvas0Lo2eLhPA5KRwxvpNvxTGUM9t9hYmAB9ZWtKQRFa9Q0hg==",
+			"version": "2.10.0",
+			"resolved": "https://registry.npmjs.org/vsce/-/vsce-2.10.0.tgz",
+			"integrity": "sha512-b+wB3XMapEi368g64klSM6uylllZdNutseqbNY+tUoHYSy6g2NwnlWuAGKDQTYc0IqfDUjUFRQBpPgA89Q+Fyw==",
 			"dev": true,
 			"dependencies": {
 				"azure-devops-node-api": "^11.0.1",
@@ -1863,6 +2236,13 @@
 				"js-tokens": "^4.0.0"
 			}
 		},
+		"@esbuild/linux-loong64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.2.tgz",
+			"integrity": "sha512-lcfRxKY3CIBFop9slpNu04+fGro1S0QN5n+HrbOwR6eHHdYeidvMtSVK4vbbYmEMwQr3MFAt2yU6bhwl4dqL/A==",
+			"dev": true,
+			"optional": true
+		},
 		"@types/marked": {
 			"version": "0.6.5",
 			"resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.6.5.tgz",
@@ -2250,6 +2630,175 @@
 			"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
 			"dev": true
 		},
+		"esbuild": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.2.tgz",
+			"integrity": "sha512-iKfJsm2u5ATPI3x3sq/WrxISWhAZB/VpvygGG8Pr3q+xQhkIhyI737t+xUa71f50g0ioihQSGaHiQO5hbVDoSQ==",
+			"dev": true,
+			"requires": {
+				"@esbuild/linux-loong64": "0.15.2",
+				"esbuild-android-64": "0.15.2",
+				"esbuild-android-arm64": "0.15.2",
+				"esbuild-darwin-64": "0.15.2",
+				"esbuild-darwin-arm64": "0.15.2",
+				"esbuild-freebsd-64": "0.15.2",
+				"esbuild-freebsd-arm64": "0.15.2",
+				"esbuild-linux-32": "0.15.2",
+				"esbuild-linux-64": "0.15.2",
+				"esbuild-linux-arm": "0.15.2",
+				"esbuild-linux-arm64": "0.15.2",
+				"esbuild-linux-mips64le": "0.15.2",
+				"esbuild-linux-ppc64le": "0.15.2",
+				"esbuild-linux-riscv64": "0.15.2",
+				"esbuild-linux-s390x": "0.15.2",
+				"esbuild-netbsd-64": "0.15.2",
+				"esbuild-openbsd-64": "0.15.2",
+				"esbuild-sunos-64": "0.15.2",
+				"esbuild-windows-32": "0.15.2",
+				"esbuild-windows-64": "0.15.2",
+				"esbuild-windows-arm64": "0.15.2"
+			}
+		},
+		"esbuild-android-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.2.tgz",
+			"integrity": "sha512-lEyRmwmdkkKBpIOi0wKGheuCPECgl5/GCOQkhVpDFEj1lec3cinEk37EbD3f4PUvix1eAHtTa0UI1ga0Bznntg==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-android-arm64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.2.tgz",
+			"integrity": "sha512-znXfd7QBNrpAVnB8ZP5Zj4a3ah5dPBPZwbn6v0f4Lub4iwwZJ1h34VWMuo2f7KZdIbl2axrei6FxlQncS8zzEw==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-darwin-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.2.tgz",
+			"integrity": "sha512-keNq6K+qhEJ5kZ6L1UJGYjAnv6Kkpf2KjOjC6r0JMsX6ZAaXnA3OqqXJttEYzBKpZ+W6/T+paS4Slzk3N2bSvQ==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-darwin-arm64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.2.tgz",
+			"integrity": "sha512-H/0vtLB/dY+TVGsAskmyuaQ7qegNVi+A4N5a+vpPHPFutzoGjcj4tf/77jZ3UsMTlN1dq+Ldala1P1pf486L8Q==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-freebsd-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.2.tgz",
+			"integrity": "sha512-KMskcfVTisa2h/xaOwmoWEBm6CVWbKbrnEAv3sEfOF0wodjQfcPvW7HAxatMGL7AW9PIUP6UXLCCCUUnxL2yLQ==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-freebsd-arm64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.2.tgz",
+			"integrity": "sha512-RJJ3c4L6XGfZeiFqphK58KL+3LfrmebMLgB9QJ0Gygmjx1F6tnLUrLwNBNXrpMT7X4bEtCvP9Gvhkt5HVTdt7g==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-linux-32": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.2.tgz",
+			"integrity": "sha512-GfCEEs+D+vBrluCUBFr3MP8/PH/fNc5xl2JbsHkwivBXlbORXf5m4Ts8vII9qPxEkLAUsoYx4Bjp+Ca0WqQ9tA==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-linux-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.2.tgz",
+			"integrity": "sha512-F6GfpZrcTisWFrJZdx73NNVjY64iOqhxFsdmnftHZFfeLG4KyJg9hO5kd6E+Rq3udoRk41jPS+fg0+iCyq5Utg==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-linux-arm": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.2.tgz",
+			"integrity": "sha512-u2YXH9ZCuyN9KwcpKCzhgUckBgy8O07oivv3cV/Z+WnFOjXhKFc+IY0v41nFODPEzEIbozMUx8boVexvHMXHDA==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-linux-arm64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.2.tgz",
+			"integrity": "sha512-CacsuBpOzU/WVWMS19iGHCrijgheCtmNb9mjlvpoxwLEVjHycc9/X+Pup6vp8dk5jRrhm/7lkY8Fbw9OxM+oug==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-linux-mips64le": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.2.tgz",
+			"integrity": "sha512-VY8pEtXAEyPfVCP/SKPGxaiNF7b259Le0wvEPQTYMeJycAVfahBhpg/9qk2Ufd7mMVGT7G2izr86jJsvuiMVZw==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-linux-ppc64le": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.2.tgz",
+			"integrity": "sha512-+Sma8cuiVciTU+xuqErEU4hm8k2bMivqEXPGsXFPKJAV2XrLQlkT5zuPA4FWuKpxwVLUxxuYhkq0nv4j5Dv/3Q==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-linux-riscv64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.2.tgz",
+			"integrity": "sha512-HkqtnuEiVq2VvqD6Wb9LEWAedbpxXkq7h3Imop6vaAQUr5z8HROfTyY349QsP9aGY3aF/NiBkX20C6vOqTex8A==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-linux-s390x": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.2.tgz",
+			"integrity": "sha512-nIqNFoovQRoz/YBm64xRWXT4yg5BtT2DXA8ogI8lJKy6B+mOKeOVVkvAbFU5YrvUq6AHhMuCsoa3CYFK5a4/vg==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-netbsd-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.2.tgz",
+			"integrity": "sha512-CY5kHo3C3+aY1VBv76lDTe/D/+4nkhA6cE8ENRezeEvWmu8pPqnIVk1cy/jLNNPBYkbZiR30z/QeZy5yWsW1kg==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-openbsd-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.2.tgz",
+			"integrity": "sha512-fXpQW8I6Lm9gJubvW/QjR1OwQQ4tMriVhxznJJmbaX7EYHtcog6Fy+xqbl+YUBZ3dxmEBkBXd6LZaXkn10yavQ==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-sunos-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.2.tgz",
+			"integrity": "sha512-8xaprqT/rxfbxljQrd2A4iASOnw46eiieghh6JgzjlrXP/6kbhN3fe8IgQclcdu6SjDPmQvNSURQ5xCeVATpbQ==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-windows-32": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.2.tgz",
+			"integrity": "sha512-lGLNGBmDQ0gZphbUfxT7n6OO1l6iOQM2xnYN90+etzTWZeI76CYLbVPCZR+kp3vzyIRAbcsS6NtM4SknHAwEww==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-windows-64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.2.tgz",
+			"integrity": "sha512-Rc6cUwOiQiGgpAxlCl8Lj3o2Ds4n3OU8UyoWpOBXmms+gXdwlKBzxjwj5FxrZJ6EveYpFqzDP07tbzOa9YpTKw==",
+			"dev": true,
+			"optional": true
+		},
+		"esbuild-windows-arm64": {
+			"version": "0.15.2",
+			"resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.2.tgz",
+			"integrity": "sha512-0bpQcIvd6TBIThA+nr9QsTfaU23Co5IPMlXmuNja6buDEu92b9im9ZMGV/BLF+jwKwG8/f1L/0Yfl9QzNuH4Eg==",
+			"dev": true,
+			"optional": true
+		},
 		"escape-string-regexp": {
 			"version": "1.0.5",
 			"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -3125,9 +3674,9 @@
 			"dev": true
 		},
 		"vsce": {
-			"version": "2.6.4",
-			"resolved": "https://registry.npmjs.org/vsce/-/vsce-2.6.4.tgz",
-			"integrity": "sha512-1Zvg2sJA/wFd5KCEWlfefXqiZm47d4ATeVKS2lvas0Lo2eLhPA5KRwxvpNvxTGUM9t9hYmAB9ZWtKQRFa9Q0hg==",
+			"version": "2.10.0",
+			"resolved": "https://registry.npmjs.org/vsce/-/vsce-2.10.0.tgz",
+			"integrity": "sha512-b+wB3XMapEi368g64klSM6uylllZdNutseqbNY+tUoHYSy6g2NwnlWuAGKDQTYc0IqfDUjUFRQBpPgA89Q+Fyw==",
 			"dev": true,
 			"requires": {
 				"azure-devops-node-api": "^11.0.1",

+ 7 - 3
package.json

@@ -33,11 +33,14 @@
 	],
 	"main": "./out/extension.js",
 	"scripts": {
-		"vscode:prepublish": "npm run compile",
 		"compile": "tsc -p ./",
 		"lint": "tslint -p ./",
 		"watch": "tsc -watch -p ./",
-		"package": "vsce package"
+		"package": "vsce package",
+		"vscode:prepublish": "npm run esbuild-base -- --minify",
+		"esbuild-base": "esbuild ./src/extension.ts --bundle --outfile=out/extension.js --external:vscode --format=cjs --platform=node",
+		"esbuild": "npm run esbuild-base -- --sourcemap",
+		"esbuild-watch": "npm run esbuild-base -- --sourcemap --watch"
 	},
 	"contributes": {
 		"commands": [
@@ -392,9 +395,10 @@
 		"@types/prismjs": "^1.16.8",
 		"@types/vscode": "^1.68.0",
 		"@types/ws": "^8.2.2",
+		"esbuild": "^0.15.2",
 		"tslint": "^5.20.1",
 		"typescript": "^3.5.1",
-		"vsce": "^2.6.4"
+		"vsce": "^2.10.0"
 	},
 	"dependencies": {
 		"await-notify": "^1.0.1",

+ 2 - 2
src/debugger/commands/command_parser.ts

@@ -134,9 +134,9 @@ export class CommandParser {
 						// we debugged that an exception occures during this.current_command.trigger(this.parameters)
 						// because we do not understand the root cause of the exception, we set the current command to undefined
 						// to avoid a infinite loop of parse_message(...)
-						this.current_command = undefined
+						this.current_command = undefined;
 						this.parameters = [];
-						console.log("Exception not catched. Reset current_command to avoid infinite loop.")
+						console.log("Exception not catched. Reset current_command to avoid infinite loop.");
 					}
 				} else {
 					this.current_command.param_count = this.parameters.shift();

+ 2 - 2
src/debugger/debugger_context.ts

@@ -104,12 +104,12 @@ export function register_debugger(context: ExtensionContext) {
 						case "number":
 							if (is_float) {
 								new_parsed_value = parseFloat(value);
-								if (new_parsed_value === NaN) {
+								if (isNaN(new_parsed_value)) {
 									return;
 								}
 							} else {
 								new_parsed_value = parseInt(value);
-								if (new_parsed_value === NaN) {
+								if (isNaN(new_parsed_value)) {
 									return;
 								}
 							}

+ 8 - 8
src/godot-tools.ts

@@ -16,7 +16,7 @@ export class GodotTools {
 	private workspace_dir = vscode.workspace.rootPath;
 	private project_file_name = "project.godot";
 	private project_file = "";
-	private project_dir = ""
+	private project_dir = "";
 	private connection_status: vscode.StatusBarItem = null;
 
 	constructor(p_context: vscode.ExtensionContext) {
@@ -91,7 +91,7 @@ export class GodotTools {
 		}
         
 		if (!uri) {
-			uri = vscode.window.activeTextEditor.document.uri
+			uri = vscode.window.activeTextEditor.document.uri;
 		}
 
 		let relative_path = path.normalize(path.relative(this.project_dir, uri.fsPath));
@@ -102,13 +102,13 @@ export class GodotTools {
     }
 
 	private set_scene_file(uri: vscode.Uri) {
-		let right_clicked_scene_path = uri.fsPath
+		let right_clicked_scene_path = uri.fsPath;
 		let scene_config = get_configuration("scene_file_config");
 		if (scene_config == right_clicked_scene_path) {
-			scene_config = ""
+			scene_config = "";
 		}
 		else {
-			scene_config = right_clicked_scene_path
+			scene_config = right_clicked_scene_path;
 		}
 
 		set_configuration("scene_file_config", scene_config);
@@ -139,7 +139,7 @@ export class GodotTools {
 							}
 						}
 
-						const POWERSHELL_SOURCE = "PowerShell"
+						const POWERSHELL_SOURCE = "PowerShell";
 						const default_profile = vscode.workspace.getConfiguration("terminal.integrated.defaultProfile");
 						if (default_profile) {
 							const profile_name = default_profile.get<string>("windows");
@@ -159,7 +159,7 @@ export class GodotTools {
 							}
 						}
 						// default for Windows if nothing is set is PowerShell
-						return `&${cmdEsc}`
+						return `&${cmdEsc}`;
 
 					}
 					return cmdEsc;
@@ -266,7 +266,7 @@ export class GodotTools {
 			return;
 		}
 
-		this.retry = false
+		this.retry = false;
 		this.connection_status.text = `$(x) Disconnected`;
 		this.connection_status.tooltip = `Disconnected from the GDScript language server.`;
 

+ 2 - 2
src/lsp/MessageIO.ts

@@ -1,6 +1,6 @@
 import { AbstractMessageReader, MessageReader, DataCallback, Disposable } from "vscode-jsonrpc";
 import { EventEmitter } from "events";
-import * as WebSocket from 'ws';
+import { WebSocket, Data } from 'ws';
 import { Socket } from 'net';
 
 import MessageBuffer from "./MessageBuffer";
@@ -17,7 +17,7 @@ export class MessageIO extends EventEmitter {
 		// virtual
 	}
 
-	protected on_message(chunk: WebSocket.Data) {
+	protected on_message(chunk: Data) {
 		let message = chunk.toString();
 		this.emit('data', message);
 	}