Skip to content

Commit f40b2f2

Browse files
committed
log reanalyze invalid json messages in a more elaborate way, including an instruction on what to do with the error
1 parent dc55067 commit f40b2f2

File tree

3 files changed

+32
-8
lines changed

3 files changed

+32
-8
lines changed

client/src/commands.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { DiagnosticCollection } from "vscode";
1+
import { DiagnosticCollection, OutputChannel } from "vscode";
22

33
import {
44
DiagnosticsResultCodeActionsMap,
@@ -12,11 +12,13 @@ export { switchImplIntf } from "./commands/switch_impl_intf";
1212
export const codeAnalysisWithReanalyze = (
1313
targetDir: string | null,
1414
diagnosticsCollection: DiagnosticCollection,
15-
diagnosticsResultCodeActions: DiagnosticsResultCodeActionsMap
15+
diagnosticsResultCodeActions: DiagnosticsResultCodeActionsMap,
16+
outputChannel: OutputChannel
1617
) => {
1718
runCodeAnalysisWithReanalyze(
1819
targetDir,
1920
diagnosticsCollection,
20-
diagnosticsResultCodeActions
21+
diagnosticsResultCodeActions,
22+
outputChannel
2123
);
2224
};

client/src/commands/code_analysis.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
CodeAction,
1313
CodeActionKind,
1414
WorkspaceEdit,
15+
OutputChannel,
1516
} from "vscode";
1617

1718
export type DiagnosticsResultCodeActionsMap = Map<
@@ -157,7 +158,8 @@ let getAnalysisBinaryPath = (): string | null => {
157158
export const runCodeAnalysisWithReanalyze = (
158159
targetDir: string | null,
159160
diagnosticsCollection: DiagnosticCollection,
160-
diagnosticsResultCodeActions: DiagnosticsResultCodeActionsMap
161+
diagnosticsResultCodeActions: DiagnosticsResultCodeActionsMap,
162+
outputChannel: OutputChannel
161163
) => {
162164
let currentDocument = window.activeTextEditor.document;
163165
let cwd = targetDir ?? path.dirname(currentDocument.uri.fsPath);
@@ -207,8 +209,20 @@ export const runCodeAnalysisWithReanalyze = (
207209
try {
208210
json = JSON.parse(data);
209211
} catch (e) {
210-
window.showErrorMessage(
211-
`Something went wrong parsing the json output of reanalyze: '${e}'`
212+
window
213+
.showErrorMessage(
214+
`Something went wrong when running the code analyzer.`,
215+
"See details in error log"
216+
)
217+
.then((_choice) => {
218+
outputChannel.show();
219+
});
220+
221+
outputChannel.appendLine("--invalid json start--");
222+
outputChannel.append(data);
223+
outputChannel.appendLine("--invalid json end--");
224+
outputChannel.appendLine(
225+
"Parsing JSON from reanalyze failed. The raw, invalid JSON is logged above this message. Please report this on the extension bug tracker: https://github.com/rescript-lang/rescript-vscode/issues"
212226
);
213227
}
214228

client/src/extension.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ let client: LanguageClient;
7070
// });
7171

7272
export function activate(context: ExtensionContext) {
73+
let outputChannel = window.createOutputChannel(
74+
"ReScript Language Server",
75+
"rescript"
76+
);
77+
7378
function createLanguageClient() {
7479
// The server is implemented in node
7580
let serverModule = context.asAbsolutePath(
@@ -99,6 +104,7 @@ export function activate(context: ExtensionContext) {
99104
initializationOptions: {
100105
extensionConfiguration: workspace.getConfiguration("rescript.settings"),
101106
},
107+
outputChannel,
102108
};
103109

104110
const client = new LanguageClient(
@@ -123,7 +129,8 @@ export function activate(context: ExtensionContext) {
123129
customCommands.codeAnalysisWithReanalyze(
124130
inCodeAnalysisState.activatedFromDirectory,
125131
diagnosticsCollection,
126-
diagnosticsResultCodeActions
132+
diagnosticsResultCodeActions,
133+
outputChannel
127134
);
128135
}
129136
})
@@ -207,7 +214,8 @@ export function activate(context: ExtensionContext) {
207214
customCommands.codeAnalysisWithReanalyze(
208215
inCodeAnalysisState.activatedFromDirectory,
209216
diagnosticsCollection,
210-
diagnosticsResultCodeActions
217+
diagnosticsResultCodeActions,
218+
outputChannel
211219
);
212220
});
213221

0 commit comments

Comments
 (0)