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