Improve logging of prettier errors (#32665)

Michael Sloan created

In particular, seems like the error message and the message sent to
prettier were mixed up before

Release Notes:

- N/A

Change summary

crates/prettier/src/prettier.rs        | 5 ++---
crates/prettier/src/prettier_server.js | 9 ++++-----
2 files changed, 6 insertions(+), 8 deletions(-)

Detailed changes

crates/prettier/src/prettier.rs 🔗

@@ -452,14 +452,13 @@ impl Prettier {
                             },
                         })
                     })?
-                    .context("prettier params calculation")?;
+                    .context("building prettier request")?;
 
                 let response = local
                     .server
                     .request::<Format>(params)
                     .await
-                    .into_response()
-                    .context("prettier format")?;
+                    .into_response()?;
                 let diff_task = buffer.update(cx, |buffer, cx| buffer.diff(response.text, cx))?;
                 Ok(diff_task.await)
             }

crates/prettier/src/prettier_server.js 🔗

@@ -52,18 +52,17 @@ async function handleBuffer(prettier) {
     try {
       message = JSON.parse(messageText);
     } catch (e) {
-      sendResponse(makeError(`Failed to parse message '${messageText}': ${e}`));
+      sendResponse(makeError(`Parse error in request message: ${e}\nMessage: ${messageText}`));
       continue;
     }
     // allow concurrent request handling by not `await`ing the message handling promise (async function)
     handleMessage(message, prettier).catch((e) => {
-      const errorMessage = message;
-      if ((errorMessage.params || {}).text !== undefined) {
-        errorMessage.params.text = "..snip..";
+      if ((message.params || {}).text !== undefined) {
+        message.params.text = "..snip..";
       }
       sendResponse({
         id: message.id,
-        ...makeError(`error during message '${JSON.stringify(errorMessage)}' handling: ${e}`),
+        ...makeError(`${e}\nWhile handling prettier request: ${JSON.stringify(message)}`),
       });
     });
   }