That one where a slack quotes formatting screws your code up again...

That one where a slack quotes formatting screws your code up again...

Table of Contents

Beautiful Edit: I’ve upgraded to macOS 15.4 (24E248) and the slack native client appears to be honouring the system config!

defaults write NSGlobalDomain Thank you to Michael Schwegel!

Prior: If you’ve ever copied and pasted code snippets to and from Slack, only to find that your code chokes when you excute it, you’re not alone.

The largest culprit? Slack’s auto-formatting of plain double quotes (") into “smart quotes” (“ and ”). We got bit by one during a high stakes database operation just this week!

While this might make your writing look prettier in chat (hot take: it doesn’t), it wreaks havoc in programming. Code expects plain ASCII characters, and these curly quotes are entirely different Unicode characters. They can silently break scripts, JSON, shell commands, and config files — and are especially maddening because they look so similar.

What’s actually happening?

Slack tries to help by auto-replacing straight quotes with typographically correct curly quotes. This is arguably great for English prose, but disastrous for code — especially when you’re copying something like:

{ “name”: “Paul” }

This looks fine, but your JSON parser will choke on it.

{ "name": "Paul" }

^^ This is what you wanted. Typography be damned!

Is there a fix?

Not really. At time of writing, Slack doesn’t provide a setting to turn this off in messages — but code blocks (i.e. wrapping in ```) will work.

you could also set some formatting rules in your editor (see what i did with CSS in this page???), or do something like this:

def fix_quotes(text):
    return text.replace("“", '"').replace("”", '"').replace("‘", "'").replace("’", "'")

but I find myself using find/replace.

Related Posts

read my blog posts to me, please? now with command line browser cleanup action!

read my blog posts to me, please? now with command line browser cleanup action!

Use w3m and macOS 'say' command to listen to blog posts while multitasking - simple CLI solution

Read More
Quality is the only moat left

Quality is the only moat left

The marginal cost of plausible bullshit is now effectively zero. When everyone can publish and AI handles the grunt work, what survives? Resonance.

Read More

Get new posts via email

Intuit Mailchimp

Copyright 2024-infinity, Paul Pereyda Karayan. Design by Zeon Studio