dbusServices/extensions: Improve error message formatting

See https://gitlab.gnome.org/GNOME/gjs/-/issues/584 for a user report.

This uses the new formatter added in the previous commit to format
errors in the extension preferences loader.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3041>
This commit is contained in:
Philip Chimento 2023-12-02 10:27:20 -08:00 committed by Florian Müllner
parent e6f35c5e88
commit e4691d2717
2 changed files with 6 additions and 10 deletions

View File

@ -7,6 +7,8 @@ import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk?version=4.0';
import {formatError} from './misc/errorUtils.js';
export const ExtensionPrefsDialog = GObject.registerClass({
GTypeName: 'ExtensionPrefsDialog',
Signals: {
@ -120,21 +122,14 @@ const ExtensionPrefsErrorPage = GObject.registerClass({
this._revealer.connect('notify::child-revealed',
() => this._syncExpandedStyle());
this._errorView.buffer.text = `${error}\n\nStack trace:\n`;
// Indent stack trace.
this._errorView.buffer.text +=
error.stack.split('\n').map(line => ` ${line}`).join('\n');
const formattedError = formatError(error);
this._errorView.buffer.text = formattedError;
// markdown for pasting in gitlab issues
let lines = [
`The settings of extension ${this._uuid} had an error:`,
'```',
`${error}`,
'```',
'',
'Stack trace:',
'```',
error.stack.replace(/\n$/, ''), // stack without trailing newline
formattedError.replace(/\n$/, ''), // remove trailing newline
'```',
'',
];

View File

@ -10,6 +10,7 @@
<file>extensions/prefs.js</file>
<file>misc/config.js</file>
<file>misc/errorUtils.js</file>
<file>misc/extensionUtils.js</file>
<file>misc/dbusUtils.js</file>
<file>misc/params.js</file>