Thanks Dave! We came to the same conclusion about a button press. And thank you for the SQL guidelines.
On Wed, Feb 15, 2017 at 4:37 AM, Dave Page <dp...@pgadmin.org> wrote: > Hi > > On Tue, Feb 14, 2017 at 3:02 PM, Raffi Holzer <rhol...@pivotal.io> wrote: > > Hi Dave, > > When we were talking about auto formatting we were actually referring > to a > > single button press doing all of these things to a large block of text. > The > > use case here would be if you receive a large illegible query and paste > it > > into the query editor it would either automatically auto-format or you > would > > press a button and it would auto-format. > > Oh, OK. > > > We are trying to determine a few > > things. One, are there preferred formatting guidelines > > Hmm, it seems I missed SQL when I wrote our (basic) coding standards: > https://www.pgadmin.org/docs4/1.x/coding_standards.html > > By default (in my opinion), we should have 4 character indents, new > lines for logically distinct objects (e.g. columns or constraints on a > table), commas etc. at the end of the line, keywords in upper case, > e.g. > > SELECT > a, > b, > FROM > t > ORDER BY > a, > b; > > However, that obviously becomes unwieldy in some cases, so common > sense is needed: > > SELECT > a, b, > FROM > t > ORDER BY > a, b; > > There should of course be a limit on the number of columns listed per > line - but should the limit be a count or max width in chars? With a > CREATE TABLE statement I think it's clear that each column should be > on it's own line: > > CREATE TABLE t ( > a serial NOT NULL PRIMARY KEY, > b text > ); > > In other words, we need to define (or adopt) a formal standard for > this, and then write a parser/formatter - which seems like a decidedly > non-trivial amount of work (FYI, I tried the Python format-sql module, > and it failed on ~80% of my tests - probably either because it doesn't > understand COPY or pl/pgsql). > > > and two, how should > > this autoformatting be implemented? On a button press? Upon pasting in > the > > text? > > Definitely not on pasting - if you drop in a large script, it could > take far too long, plus you may not care, or be looking at the > original source in another tool and trying to mentally reconcile lines > or statements to each other. I would say it should be a > button/shortcut. > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- Raffi Holzer Product Manager Pivotal Labs