Commit 59175745 authored by Robert Haas's avatar Robert Haas

Allow tab-completion of :variable even as first word on a line.

Christoph Berg
parent d309acf2
...@@ -761,6 +761,17 @@ psql_completion(char *text, int start, int end) ...@@ -761,6 +761,17 @@ psql_completion(char *text, int start, int end)
if (text[0] == '\\') if (text[0] == '\\')
COMPLETE_WITH_LIST(backslash_commands); COMPLETE_WITH_LIST(backslash_commands);
/* Variable interpolation */
else if (text[0] == ':' && text[1] != ':')
{
if (text[1] == '\'')
matches = complete_from_variables(text, ":'", "'");
else if (text[1] == '"')
matches = complete_from_variables(text, ":\"", "\"");
else
matches = complete_from_variables(text, ":", "");
}
/* If no previous word, suggest one of the basic sql commands */ /* If no previous word, suggest one of the basic sql commands */
else if (!prev_wd) else if (!prev_wd)
COMPLETE_WITH_LIST(sql_commands); COMPLETE_WITH_LIST(sql_commands);
...@@ -2772,17 +2783,6 @@ psql_completion(char *text, int start, int end) ...@@ -2772,17 +2783,6 @@ psql_completion(char *text, int start, int end)
) )
matches = completion_matches(text, filename_completion_function); matches = completion_matches(text, filename_completion_function);
/* Variable interpolation */
else if (text[0] == ':' && text[1] != ':')
{
if (text[1] == '\'')
matches = complete_from_variables(text, ":'", "'");
else if (text[1] == '"')
matches = complete_from_variables(text, ":\"", "\"");
else
matches = complete_from_variables(text, ":", "");
}
/* /*
* Finally, we look through the list of "things", such as TABLE, INDEX and * Finally, we look through the list of "things", such as TABLE, INDEX and
* check if that was the previous word. If so, execute the query to get a * check if that was the previous word. If so, execute the query to get a
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment