update
This commit is contained in:
parent
d2c94e5773
commit
ead5e15b9d
|
@ -124,13 +124,13 @@
|
|||
"dev": true
|
||||
},
|
||||
"@types/terser-webpack-plugin": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/terser-webpack-plugin/-/terser-webpack-plugin-5.0.1.tgz",
|
||||
"integrity": "sha512-kDxwsSDm5eVffzPpbu7uWSW2xVKmNAJ5YK6j7gdgww98rV+eGGhS9Wi0qNp0ZqCr923hI8JuSce2QO8pcdn3gQ==",
|
||||
"version": "5.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/terser-webpack-plugin/-/terser-webpack-plugin-5.0.2.tgz",
|
||||
"integrity": "sha512-YcAT1D4gjho1jqc/gjn1ojHFtQtrGHaHPqz5nDMiN5Jj9BeigjDkS2w010PvUnPkdVY3GerDFbY62TArtDBuDQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/webpack": "*",
|
||||
"terser": "^5.3.8"
|
||||
"terser": "^5.3.8",
|
||||
"webpack": "^5.1.0"
|
||||
}
|
||||
},
|
||||
"@types/uglify-js": {
|
||||
|
@ -818,9 +818,9 @@
|
|||
}
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.3.585",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.585.tgz",
|
||||
"integrity": "sha512-xoeqjMQhgHDZM7FiglJAb2aeOxHZWFruUc3MbAGTgE7GB8rr5fTn1Sdh5THGuQtndU3GuXlu91ZKqRivxoCZ/A==",
|
||||
"version": "1.3.587",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.587.tgz",
|
||||
"integrity": "sha512-8XFNxzNj0R8HpTQslWAw6UWpGSuOKSP3srhyFHVbGUGb8vTHckZGCyWi+iQlaXJx5DNeTQTQLd6xN11WSckkmA==",
|
||||
"dev": true
|
||||
},
|
||||
"emoji-regex": {
|
||||
|
@ -1335,9 +1335,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"jest-worker": {
|
||||
"version": "26.6.1",
|
||||
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.1.tgz",
|
||||
"integrity": "sha512-R5IE3qSGz+QynJx8y+ICEkdI2OJ3RJjRQVEyCcFAd3yVhQSEtquziPO29Mlzgn07LOVE8u8jhJ1FqcwegiXWOw==",
|
||||
"version": "26.6.2",
|
||||
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
|
||||
"integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
|
@ -2191,9 +2191,9 @@
|
|||
}
|
||||
},
|
||||
"webpack": {
|
||||
"version": "5.3.2",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.3.2.tgz",
|
||||
"integrity": "sha512-DXsfHoI6lQAR3KnQh7+FsRfs9fs+TEvzXCA35UbKv4kVuzslg7QCMAcpFRZNDMjdtm9N/PoO54XEzGN9TeacQg==",
|
||||
"version": "5.4.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.4.0.tgz",
|
||||
"integrity": "sha512-udpYTyqz8toTTdaOsL2QKPLeZLt2IEm9qY7yTXuFEQhKu5bk0yQD9BtAdVQksmz4jFbbWOiWmm3NHarO0zr/ng==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/eslint-scope": "^3.7.0",
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
"icon": "assets/texinfo.png",
|
||||
"devDependencies": {
|
||||
"@types/node": "^14.14.6",
|
||||
"@types/terser-webpack-plugin": "^5.0.1",
|
||||
"@types/terser-webpack-plugin": "^5.0.2",
|
||||
"@types/vscode": "^1.50.0",
|
||||
"@types/webpack": "^4.41.24",
|
||||
"@typescript-eslint/eslint-plugin": "^3.8.0",
|
||||
|
@ -28,7 +28,7 @@
|
|||
"ts-loader": "^8.0.7",
|
||||
"ts-node": "^9.0.0",
|
||||
"typescript": "^4.0.5",
|
||||
"webpack": "^5.3.2",
|
||||
"webpack": "^5.4.0",
|
||||
"webpack-cli": "^4.1.0"
|
||||
},
|
||||
"scripts": {
|
||||
|
|
|
@ -33,15 +33,13 @@ export default class DocumentSymbolContext {
|
|||
* Calculate document symbols based on folding ranges.
|
||||
*/
|
||||
private calculcateDocumentSymbols() {
|
||||
const ranges = Array<RangeNode>(this.document.lineCount);
|
||||
const ranges = Array<Optional<FoldingRange>>(this.document.lineCount);
|
||||
this.documentContext.foldingRange.values.forEach(range => range.kind ?? (ranges[range.start] = range));
|
||||
return foldingRangeToSymbols(ranges, 0, ranges.length);
|
||||
}
|
||||
}
|
||||
|
||||
type RangeNode = Optional<FoldingRange>;
|
||||
|
||||
function foldingRangeToSymbols(ranges: readonly RangeNode[], start: number, end: number) {
|
||||
function foldingRangeToSymbols(ranges: readonly Optional<FoldingRange>[], start: number, end: number) {
|
||||
const symbols = <vscode.DocumentSymbol[]>[];
|
||||
for (let idx = start; idx < end; ++idx) {
|
||||
const node = ranges[idx];
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import * as path from 'path';
|
||||
import * as webpack from 'webpack';
|
||||
import TerserPlugin from 'terser-webpack-plugin';
|
||||
|
||||
const config: webpack.Configuration = {
|
||||
target: 'node',
|
||||
|
@ -14,6 +15,19 @@ const config: webpack.Configuration = {
|
|||
optimization: {
|
||||
concatenateModules: true,
|
||||
minimize: true,
|
||||
minimizer: [
|
||||
new TerserPlugin({
|
||||
extractComments: false,
|
||||
terserOptions: {
|
||||
compress: {
|
||||
unsafe: true,
|
||||
},
|
||||
format: {
|
||||
comments: false,
|
||||
},
|
||||
},
|
||||
}),
|
||||
],
|
||||
},
|
||||
externals: {
|
||||
vscode: 'commonjs vscode',
|
||||
|
|
Loading…
Reference in New Issue