Re: [PATCH] Add tab-complete for backslash commands - Mailing list pgsql-hackers
| From | ilmari@ilmari.org (Dagfinn Ilmari Mannsåker) |
|---|---|
| Subject | Re: [PATCH] Add tab-complete for backslash commands |
| Date | |
| Msg-id | 87r1f4g86t.fsf@wibble.ilmari.org Whole thread Raw |
| In response to | [PATCH] Add tab-complete for backslash commands ("tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com>) |
| Responses |
RE: [PATCH] Add tab-complete for backslash commands
|
| List | pgsql-hackers |
Hi Tang,
"tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com> writes:
> Hi
>
> Attached a patch to improve the tab completion for backslash commands.
> I think it’s common for some people(I'm one of them) to use full-name
> commands than abbreviation. So it's more convenient if we can add the
> full-name backslash commands in the tab-complete.c.
Even though I usually use the short versions, I agree that having the
full names in tab the completion as well is a good idea.
> When modify tab-complete.c, I found \dS was added in the
> backslash_commands[], but I think maybe it should be removed just like
> other \x[S].
> So I removed it.
> Besides, I also added a little change in help.c.
> - exchange the positon of \des and \det according to alphabetical order
> - rename PATRN1/PATRN2 to ROLEPTRN/DBPTRN to make expression more comprehensible
These are also good changes.
> Any comment is welcome.
>
> Regards,
> Tang
> + "\\r", "\\rset",
There's a typo here, that should be "\\reset". Also, I noticed that for
\connect, the situation is the opposite: it has the full form but not
the short form (\c).
I've addressed both in the attached v2 patch.
- ilmari
From b8809f7ce81d6252712e8f115e4fb2edd551b7ea Mon Sep 17 00:00:00 2001
From: tanghy <tanghy.fnst@fujitsu.com>
Date: Sun, 8 Aug 2021 00:05:27 +0100
Subject: [PATCH v2] Add tab completion for more backslash commands
Also improve the --help output for some backslash commands
---
src/bin/psql/help.c | 4 ++--
src/bin/psql/tab-complete.c | 22 +++++++++++-----------
2 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c
index d3fda67edd..3f8af98e6b 100644
--- a/src/bin/psql/help.c
+++ b/src/bin/psql/help.c
@@ -236,8 +236,8 @@ slashUsage(unsigned short int pager)
fprintf(output, _(" \\dD[S+] [PATTERN] list domains\n"));
fprintf(output, _(" \\ddp [PATTERN] list default privileges\n"));
fprintf(output, _(" \\dE[S+] [PATTERN] list foreign tables\n"));
- fprintf(output, _(" \\det[+] [PATTERN] list foreign tables\n"));
fprintf(output, _(" \\des[+] [PATTERN] list foreign servers\n"));
+ fprintf(output, _(" \\det[+] [PATTERN] list foreign tables\n"));
fprintf(output, _(" \\deu[+] [PATTERN] list user mappings\n"));
fprintf(output, _(" \\dew[+] [PATTERN] list foreign-data wrappers\n"));
fprintf(output, _(" \\df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]\n"
@@ -257,7 +257,7 @@ slashUsage(unsigned short int pager)
fprintf(output, _(" \\dO[S+] [PATTERN] list collations\n"));
fprintf(output, _(" \\dp [PATTERN] list table, view, and sequence access privileges\n"));
fprintf(output, _(" \\dP[itn+] [PATTERN] list [only index/table] partitioned relations [n=nested]\n"));
- fprintf(output, _(" \\drds [PATRN1 [PATRN2]] list per-database role settings\n"));
+ fprintf(output, _(" \\drds [ROLEPTRN [DBPTRN]] list per-database role settings\n"));
fprintf(output, _(" \\dRp[+] [PATTERN] list replication publications\n"));
fprintf(output, _(" \\dRs[+] [PATTERN] list replication subscriptions\n"));
fprintf(output, _(" \\ds[S+] [PATTERN] list sequences\n"));
diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
index 064892bade..59caafda89 100644
--- a/src/bin/psql/tab-complete.c
+++ b/src/bin/psql/tab-complete.c
@@ -1503,31 +1503,31 @@ psql_completion(const char *text, int start, int end)
/* psql's backslash commands. */
static const char *const backslash_commands[] = {
"\\a",
- "\\connect", "\\conninfo", "\\C", "\\cd", "\\copy",
+ "\\c", "\\connect", "\\conninfo", "\\C", "\\cd", "\\copy",
"\\copyright", "\\crosstabview",
"\\d", "\\da", "\\dA", "\\dAc", "\\dAf", "\\dAo", "\\dAp",
"\\db", "\\dc", "\\dC", "\\dd", "\\ddp", "\\dD",
"\\des", "\\det", "\\deu", "\\dew", "\\dE", "\\df",
"\\dF", "\\dFd", "\\dFp", "\\dFt", "\\dg", "\\di", "\\dl", "\\dL",
"\\dm", "\\dn", "\\do", "\\dO", "\\dp", "\\dP", "\\dPi", "\\dPt",
- "\\drds", "\\dRs", "\\dRp", "\\ds", "\\dS",
+ "\\drds", "\\dRs", "\\dRp", "\\ds",
"\\dt", "\\dT", "\\dv", "\\du", "\\dx", "\\dX", "\\dy",
- "\\e", "\\echo", "\\ef", "\\elif", "\\else", "\\encoding",
+ "\\e", "\\echo", "\\edit", "\\ef", "\\elif", "\\else", "\\encoding",
"\\endif", "\\errverbose", "\\ev",
"\\f",
"\\g", "\\gdesc", "\\gexec", "\\gset", "\\gx",
- "\\h", "\\help", "\\H",
- "\\i", "\\if", "\\ir",
- "\\l", "\\lo_import", "\\lo_export", "\\lo_list", "\\lo_unlink",
- "\\o",
- "\\p", "\\password", "\\prompt", "\\pset",
- "\\q", "\\qecho",
- "\\r",
+ "\\h", "\\help", "\\html", "\\H",
+ "\\i", "\\if", "\\ir", "\\include", "\\include_relative",
+ "\\l", "\\list", "\\lo_import", "\\lo_export", "\\lo_list", "\\lo_unlink",
+ "\\o", "\\out",
+ "\\p", "\\password", "\\print", "\\prompt", "\\pset",
+ "\\q", "\\qecho", "\\quit",
+ "\\r", "\\reset",
"\\s", "\\set", "\\setenv", "\\sf", "\\sv",
"\\t", "\\T", "\\timing",
"\\unset",
"\\x",
- "\\w", "\\warn", "\\watch",
+ "\\w", "\\warn", "\\watch", "\\write",
"\\z",
"\\!", "\\?",
NULL
--
2.30.2
pgsql-hackers by date: