private IEnumerator SendSuggestion() { _suggestionState = SuggestionState.Sending; var form = new WWWForm(); form.AddField("email", StringEmail); form.AddField("suggestion", _suggestionText); #pragma warning disable 618 var www = new WWW("http://squirrelyjones.com/boundingbox/materialize/processSuggestion.php", form); #pragma warning restore 618 yield return(www); var returnText = www.text; Debug.Log(www.text); if (returnText.Contains("success")) { _suggestionState = SuggestionState.Sent; _suggestionText = ""; } else { _suggestionState = SuggestionState.Failed; } yield return(new WaitForSeconds(0.01f)); }
public IEnumerable <IQuerySuggestion> Compute(SuggestionState state) { var expected = state.Expected.Find(item => item.RuleIndices[0] == QueryParser.RULE_source && item.Tokens.Contains(QueryLexer.ID)); // only suggest view identifiers in the select part of a query and an identifier // is expected (note, if the caret is in an identifier, it will replace it) if (expected == null) { return(Enumerable.Empty <IQuerySuggestion>()); } // We don't want to suggest views if the caret is in a token which is not an // identifier. if (state.Caret.ParentToken != null && state.Caret.ParentToken.Type != QueryLexer.ID) { return(Enumerable.Empty <IQuerySuggestion>()); } var prefix = state.Caret.ParentPrefix ?? ""; return (from view in _views where view.Name.IndexOf(prefix, StringComparison.CurrentCultureIgnoreCase) >= 0 select new IdentifierSuggestion(state.Caret, view.Name, CategoryName)); }
public IEnumerable <IQuerySuggestion> Compute(SuggestionState state) { var expected = state.Expected.Find(item => item.RuleIndices[0] == QueryParser.RULE_factor && ( item.Tokens.Contains(QueryLexer.STRING) || item.Tokens.Contains(QueryLexer.INT) || item.Tokens.Contains(QueryLexer.REAL) )); // only suggest attribute values in an expression factor if (expected == null) { return(Enumerable.Empty <IQuerySuggestion>()); } var parts = state.Caret.SplitParent(); if (parts.Suffix.Length > 0 && ( parts.Suffix[parts.Suffix.Length - 1] == '\n' || parts.Suffix[parts.Suffix.Length - 1] == '\r')) { parts.Suffix = parts.Suffix.Substring(0, parts.Suffix.Length - 1); } return(_listener.AttributeNames .SelectMany(name => _attributeCache.GetValues(name)) .Where(item => ContainsPrefixSuffix(item, parts.Prefix, parts.Suffix)) .Select(item => new ValueSuggestion(state.Caret, item))); }
IEnumerator SendSuggestion() { suggestionState = SuggestionState.Sending; // Create a Web Form WWWForm form = new WWWForm(); form.AddField("email", stringEmail); form.AddField("suggestion", SuggestionText); //WWW www = new WWW("http://boundingboxsoftware.com/materialize/processSuggestion.php", form); WWW www = new WWW("http://squirrelyjones.com/boundingbox/materialize/processSuggestion.php", form); yield return(www); string returnText = www.text; Debug.Log(www.text); if (returnText.Contains("success")) { suggestionState = SuggestionState.Sent; SuggestionText = ""; } else { suggestionState = SuggestionState.Failed; } yield return(new WaitForSeconds(0.01f)); }
public IEnumerable <IQuerySuggestion> Compute(SuggestionState state) { if (!state.ExpectedTokens.Contains(_tokenType)) { yield break; } // the caret is not in any other token if (state.Caret.ParentToken == null) { foreach (var value in _values) { yield return(new ReplaceSuggestion(state.Caret, value, value, _category)); } } else // the caret is in some token { var partialInput = state.Caret.ParentToken.Text; foreach (var value in _values) { if (value != partialInput && value.IndexOf(partialInput, StringComparison.CurrentCultureIgnoreCase) >= 0) { yield return(new ReplaceSuggestion(state.Caret, value, value, _category)); } } } }
public IEnumerable <IQuerySuggestion> Compute(SuggestionState state) { var expected = state.Expected.Find(item => item.RuleIndices[0] == QueryParser.RULE_source); // make sure we are in the select part of a query if (expected == null) { return(Enumerable.Empty <IQuerySuggestion>()); } // make sure we are in a path pattern if (state.Caret.ParentToken == null || state.Caret.ParentToken.Type != QueryLexer.STRING) { return(Enumerable.Empty <IQuerySuggestion>()); } // make sure the caret is in the pattern (not after the last quote) if (state.Caret.ParentOffset >= state.Caret.ParentToken.Text.Length && state.Caret.ParentToken.Text[state.Caret.ParentOffset - 1] == '\"') { return(Enumerable.Empty <IQuerySuggestion>()); } var patternParts = Split(state.Caret.ParentPrefix); // if the directory name at the caret is a pattern, don't suggest anything if (PathPattern.ContainsSpecialCharacters(patternParts.LastPart)) { return(Enumerable.Empty <IQuerySuggestion>()); } if (patternParts.LastPart.Length == 0) { patternParts.LastPart = "*"; } else { patternParts.LastPart = "*" + patternParts.LastPart + "*"; } try { var pattern = Path.Combine(patternParts.Prefix, patternParts.LastPart); var finder = _fileSystem.CreateFileFinder(pattern); var result = finder .GetDirectories() .Select(PathUtils.GetLastPart) .Distinct() .Select(name => new DirectorySuggestion(state.Caret, name)); return(result); } catch (ArgumentException) // the pattern contains invalid characters { // suggestions should not throw for invalid input return(Enumerable.Empty <IQuerySuggestion>()); } }
void DoMyWindow(int windowID) { int offsetX = 10; int offsetY = 30; if (suggestionState == SuggestionState.Write) { GUI.Label(new Rect(offsetX, offsetY, 250, 30), "Got a suggestion? Send it to us!"); offsetY += 30; SuggestionText = GUI.TextArea(new Rect(offsetX, offsetY, 280, 170), SuggestionText); offsetY += 180; if (GUI.Button(new Rect(offsetX + 150, offsetY, 130, 30), "Send")) { StartCoroutine(SendSuggestion()); } if (GUI.Button(new Rect(offsetX, offsetY, 130, 30), "Close")) { this.gameObject.SetActive(false); } } else if (suggestionState == SuggestionState.Sending) { GUI.Label(new Rect(offsetX, offsetY, 250, 30), "Sending...."); offsetY += 30; if (GUI.Button(new Rect(offsetX, offsetY, 130, 30), "Close")) { suggestionState = SuggestionState.Write; this.gameObject.SetActive(false); } } else if (suggestionState == SuggestionState.Failed) { GUI.Label(new Rect(offsetX, offsetY, 250, 30), "Something went wrong!"); offsetY += 30; if (GUI.Button(new Rect(offsetX, offsetY, 130, 30), "Close")) { suggestionState = SuggestionState.Write; this.gameObject.SetActive(false); } if (GUI.Button(new Rect(offsetX + 150, offsetY, 130, 30), "Try Again")) { suggestionState = SuggestionState.Write; } } else if (suggestionState == SuggestionState.Sent) { GUI.Label(new Rect(offsetX, offsetY, 250, 30), "Thanks! I'll get right on that!"); offsetY += 30; if (GUI.Button(new Rect(offsetX, offsetY, 130, 30), "Close")) { suggestionState = SuggestionState.Write; this.gameObject.SetActive(false); } } GUI.DragWindow(); }
public IEnumerable <IQuerySuggestion> Compute(SuggestionState state) { var expected = state.Expected.Find(item => item.Tokens.Contains(QueryLexer.ID) && item.RuleIndices[0] == QueryParser.RULE_factor); if (expected == null) { return(Enumerable.Empty <IQuerySuggestion>()); } var value = state.Caret.ParentPrefix ?? ""; return(_names .Where(name => name.IndexOf(value, StringComparison.CurrentCultureIgnoreCase) >= 0) .Select(name => new ReplaceSuggestion(state.Caret, name, name, CategoryName))); }
public IEnumerable <IQuerySuggestion> Compute(SuggestionState state) { var expected = state.Expected.Find(item => item.RuleIndices[0] == QueryParser.RULE_factor && item.Tokens.Contains(QueryLexer.ID)); // only suggest attribute names in an expression factor where an identifier is // expected if (expected == null) { return(Enumerable.Empty <IQuerySuggestion>()); } var prefix = state.Caret.ParentPrefix ?? ""; return(_attributeCache .GetNames(prefix) .Select(name => new IdentifierSuggestion(state.Caret, name, CategoryName))); }
public IEnumerable <IQuerySuggestion> Compute(SuggestionState state) { var expected = state.Expected.Find(item => item.RuleIndices[0] == QueryParser.RULE_factor && item.Tokens.Contains(QueryLexer.ID)); // only suggestion function names in a query factor where a function name is expected if (expected == null) { return(Enumerable.Empty <IQuerySuggestion>()); } // return all function names which contain caret token prefix var prefix = state.Caret.ParentPrefix ?? ""; return(_runtime.Functions .Select(func => func.Name) .Where(name => !_blackList.Contains(name)) .Distinct() .Where(name => name.IndexOf(prefix, StringComparison.CurrentCultureIgnoreCase) >= 0) .Select(name => new FunctionSuggestion(state.Caret, name, CategoryName))); }
private void DoMyWindow(int windowId) { const int offsetX = 10; var offsetY = 30; switch (_suggestionState) { case SuggestionState.Write: { GUI.Label(new Rect(offsetX, offsetY, 250, 30), "Got a suggestion? Send it to us!"); offsetY += 30; _suggestionText = GUI.TextArea(new Rect(offsetX, offsetY, 280, 170), _suggestionText); offsetY += 180; if (GUI.Button(new Rect(offsetX + 150, offsetY, 130, 30), "Send")) { StartCoroutine(SendSuggestion()); } if (GUI.Button(new Rect(offsetX, offsetY, 130, 30), "Close")) { gameObject.SetActive(false); } break; } case SuggestionState.Sending: { GUI.Label(new Rect(offsetX, offsetY, 250, 30), "Sending...."); offsetY += 30; if (GUI.Button(new Rect(offsetX, offsetY, 130, 30), "Close")) { _suggestionState = SuggestionState.Write; gameObject.SetActive(false); } break; } case SuggestionState.Failed: { GUI.Label(new Rect(offsetX, offsetY, 250, 30), "Something went wrong!"); offsetY += 30; if (GUI.Button(new Rect(offsetX, offsetY, 130, 30), "Close")) { _suggestionState = SuggestionState.Write; gameObject.SetActive(false); } if (GUI.Button(new Rect(offsetX + 150, offsetY, 130, 30), "Try Again")) { _suggestionState = SuggestionState.Write; } break; } case SuggestionState.Sent: { GUI.Label(new Rect(offsetX, offsetY, 250, 30), "Thanks! I'll get right on that!"); offsetY += 30; if (GUI.Button(new Rect(offsetX, offsetY, 130, 30), "Close")) { _suggestionState = SuggestionState.Write; gameObject.SetActive(false); } break; } default: throw new ArgumentOutOfRangeException(); } GUI.DragWindow(); }