Re: Invisible PROMPT2
Alvaro Herrera <alvherre@2ndquadrant.com>
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: David Fetter <david@fetter.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>, Thomas Munro <thomas.munro@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2019-11-13T18:58:38Z
Lists: pgsql-hackers
On 2019-Nov-13, David Fetter wrote: > On Wed, Nov 13, 2019 at 03:06:08PM -0300, Alvaro Herrera wrote: > > On 2019-Nov-13, David Fetter wrote: > > > > > On Wed, Nov 13, 2019 at 09:47:01AM -0500, Tom Lane wrote: > > > > > > > How about a circumfix directive (like the existing %[ ... %]) > > > > > that replaces everything inside with whitespace, but keeps the width? > > This seems way too specific to me. I like the "circumfix" directive > > better, because it allows one to do more things. I don't have any > > immediate use for it, but it doesn't seem completely far-fetched that > > there are some. > So something like %w[...%w] where people could put things like PROMPT1 > inside? Hmm, (I'm not sure your proposed syntax works, but let's assume that it does.) I'm saying you'd define \set PROMPT1 '%a%b%c ' \set PROMPT2 '%w[%a%b%c %w]' and you'd end up with matching indentation on multiline queries. I'm not sure that we'd need to make something like this work: PROMPT1="%w[$PROMPT1%w]" which I think is what you're saying. We already have "%:PROMPT1:" but that expands to the literal value of prompt1, not to the value that prompt1 would expand to: 55432 13devel 11214=# \set PROMPT2 'hello %:PROMPT1: bye' 55432 13devel 11214=# select<Enter> hello %[%033[35m%]%> %:VERSION_NAME: %p%[%033[0m%]%R%# bye -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
psql: Fix %w length in PROMPT2 when PROMPT1 contains a newline.
- 1713a0013f90 13.0 landed
-
Allow invisible PROMPT2 in psql.
- 7f338369ca62 13.0 landed