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

Christoph Berg
This commit is contained in:
Robert Haas 2011-02-11 16:57:58 -05:00
parent d309acf201
commit 5917574539

View File

@ -761,6 +761,17 @@ psql_completion(char *text, int start, int end)
if (text[0] == '\\')
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 */
else if (!prev_wd)
COMPLETE_WITH_LIST(sql_commands);
@ -2772,17 +2783,6 @@ psql_completion(char *text, int start, int end)
)
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
* check if that was the previous word. If so, execute the query to get a