microsoft / microsoft/vscode-js-debug

Support pretty printing minified ES modules

Open
#1,370 0 comments 4 reactions 1 assignee View on GitHub

@connor4312 is already working on this.

Since Aug 15, 2022.

feature-request
Dominant language
TypeScript
Stars
2k
Forks
373
Avg merge
1d 9m
Merged PRs (30d)
6

Description

Is your feature request related to a problem? Please describe.
When debugging minified ES modules, attempting to pretty print results in the following error:

Error: Error processing prettyPrintSource: SyntaxError: 'import' and 'export' may appear only with 'sourceType: module'
Full stack trace

[2022-08-15 13:31:26.880] [renderer3] [error] [Extension Host] SyntaxError: 'import' and 'export' may appear only with 'sourceType: module' (1:0)
	at q.ce.raise (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:123750)
	at q.z.parseStatement (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:74745)
	at q.z.parseTopLevel (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:72115)
	at q.parse (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:67920)
	at Function.q.parse (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:69182)
	at t.prettyPrintAsSourceMap (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:1055055)
	at I.prettyPrint (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:904247)
	at processTicksAndRejections (node:internal/process/task_queues:96:5)
	at async F._prettyPrintSource (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:844969)
	at async t.default._onMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:1077748)
[2022-08-15 13:31:26.887] [renderer3] [error] Error processing prettyPrintSource: SyntaxError: 'import' and 'export' may appear only with 'sourceType: module' (1:0)
	at q.ce.raise (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:123750)
	at q.z.parseStatement (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:74745)
	at q.z.parseTopLevel (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:72115)
	at q.parse (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:67920)
	at Function.q.parse (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:69182)
	at t.prettyPrintAsSourceMap (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:1055055)
	at I.prettyPrint (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:904247)
	at processTicksAndRejections (node:internal/process/task_queues:96:5)
	at async F._prettyPrintSource (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:844969)
	at async t.default._onMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:1077748): Error: Error processing prettyPrintSource: SyntaxError: 'import' and 'export' may appear only with 'sourceType: module' (1:0)
	at q.ce.raise (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:123750)
	at q.z.parseStatement (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:74745)
	at q.z.parseTopLevel (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:72115)
	at q.parse (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:67920)
	at Function.q.parse (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:69182)
	at t.prettyPrintAsSourceMap (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:1055055)
	at I.prettyPrint (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:904247)
	at processTicksAndRejections (node:internal/process/task_queues:96:5)
	at async F._prettyPrintSource (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:844969)
	at async t.default._onMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/ms-vscode.js-debug/src/extension.js:2:1077748)
    at l.handleErrorResponse (vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1049:47508)
    at vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1049:46947

AFAICT, this error is coming from the acorn parser, specifically when calling it here. It's clear, based on the acorn docs, that the problem is the missing sourceType: 'module' option. I don't know what the repercussions of setting said option by default would be, but maybe it can be toggled by a new configuration option

Describe the feature you'd like
I would like the Pretty Print feature to support pretty printing ES modules, either by default, or enabled by a new config option

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.