sql-formatter-org / sql-formatter

A whitespace formatter for different query languages
https://sql-formatter-org.github.io/sql-formatter/
MIT License
2.37k stars 405 forks source link

Feature Request: Line break before or after "+" #796

Open gwduvalljr-AT opened 2 weeks ago

gwduvalljr-AT commented 2 weeks ago

Describe the Feature When building a long string in a script for insert or update, I like to break it into logical chunks for readability and easy maintenance. Also, VSCode does not like really long single-line strings. Something like this:

declare @longString nvarchar(max) = '';

set
    @longString = @longString +
    '{"JsonObject": [{' +
    '"JsonField1": {"Name": "JsonValue1"},' +
    '"JsonField2": {"Name": "JsonValue2"},' +
    '"JsonField3": {"Name": "JsonValue3"},' +
    '"JsonField4": {"Name": "JsonValue4"}' + 
    '}]}';

update MyTable set MyColumn = @longString where...

At this time, when formatting with this extension, the formatter joins all these lines onto a single line.

Why do you want this feature? I'd like to keep my strings readable and not have the issue with VSCode an long strings.

nene commented 2 weeks ago

It's a very reasonable feature request.

Unfortunately this is very unlikely to get implemented in SQL Formatter, because I'm not really doing any real feature development in this library. Rather I'm concentrating on prettier-plugin-sql-cst, which is much more likely to support such a thing in the future, as its architecture is much better suited for that.

gwduvalljr-AT commented 2 weeks ago

gotcha

I checked out the prettier plugin. I use prettier every day. We are a SQL Server shop. Any idea when tsql will be supported?

nene commented 2 weeks ago

Hard to say. Currently the main priority is to get PostgreSQL supported. Then MySQL/MariaDB. Given that SQL Server is proprietary, it's also harder implement support for it. Like with PostgreSQL I have often dug into PostgreSQL source code to figure out which syntax exactly is supported. With SQL Server I've always found the documentation to be one of the most confusing among SQL dialects. So I'm personally not really keen on implementing a parser for it :(