public override void GetSuggestions(SuggestionList s) { SuggestionContext sc = s.suggestionContext; if (s.enableSuggestColumns) { if (parentQuery.select != null) { sc.AddColumnsInSelectList(); } if (s.textEntered.Length > 0) { sc.AddColumnsInFromTables(); } } if (columns.Count > 0 && s.enableSuggestKeywords) { if (sc.last.hasComma == false) { s.AddKeyword("desc"); s.AddKeyword("asc"); } sc.SuggestPrimaryKeywords(); } }
public override void GetSuggestions(SuggestionList s) { SuggestionContext sc = s.suggestionContext; if (sc.last == null) { sc.suggestColumns = true; } else { if (sc.last.type.IsOneOf("conjunction")) { sc.suggestColumns = true; } else if (sc.last.type == "operator") { sc.suggestColumns = true; if (sc.lastColumn.token != null) { Column c = sc.lastColumn.token as Column; sc.suggestColumnsDataType = c.dbColumn.dataType; } } else if (sc.last.type.IsOneOf("column", "literal")) { sc.suggestOperators = sc.lastOperator.pos < sc.lastConjunction.pos; sc.suggestPrimaryKeywords = sc.suggestConjunctions = sc.lastOperator.pos == 0 || sc.lastOperator.pos > sc.lastConjunction.pos; } else { sc.suggestColumns = true; } } if (sc.suggestColumns && s.enableSuggestColumns) { sc.AddAllColumnsInQuery(); sc.AddColumnsInFromTables(); } if (s.enableSuggestKeywords) { if (sc.suggestConjunctions) { sc.SuggestConjunctions(); } if (sc.suggestOperators) { sc.SuggestOperators(); } if (sc.suggestPrimaryKeywords) { sc.SuggestPrimaryKeywords(); } } }
public override void GetSuggestions(SuggestionList s) { SuggestionContext sc = s.suggestionContext; if (s.enableSuggestKeywords && sc.last != null && ((sc.last.type == "column" && sc.last.hasComma == false) || (sc.last.type == "identifier" && sc.lastColumn != null && sc.lastColumn.hasComma == false))) { sc.SuggestPrimaryKeywords(); } else if (s.enableSuggestColumns) { if (columns.Count > 0 || candidateTables.Count > 0) { sc.suggestPrimaryKeywords = true; } if (s.textEntered.Contains(".")) { s.includeAliases = s.enableSuggestAliases; string alias = s.textEntered.Substring(0, s.textEntered.IndexOf(".")); string table = columns.GetTableNameForTableAlias(alias); if (table == null) { table = Db.GetTableNameByAlias(alias, null); } if (table != null) { sc.AddColumnsInTable(table, alias); } foreach (string t in Db.GetPossibleTablesForAlias(alias)) { sc.AddColumnsInTable(t, alias); } } sc.AddColumnsInFromTables(); sc.AddColumnsInSelectCandidateList(); sc.AddAllColumns(); } }