string GenerateNewResourceName(SourceCodeLiteral literal) { var n = _allResources.Count + 1; while(_allResources.FirstOrDefault(r => r.ConstantName.StartsWith("Str{0}".Put(n))) != null) ++n; return literal != null && literal.StringValue.Contains("{") && literal.StringValue.Contains("}") ? "Str{0}Params".Put(n) : "Str{0}".Put(n); }
void ShowLiteralInEditor(SourceCodeLiteral literal) { if(LiteralInEditor == literal) return; var text = literal.Document.GetTextAsync().Result.ToString(); using(var stream = GenerateStreamFromString(text)) _syntaxEditor.Document.LoadFile(stream, Encoding.UTF8); _syntaxEditor.ActiveView.ScrollToCaretOnSelectionChange = true; _syntaxEditor.Document.Language = _actiproCSharpLanguage; _syntaxEditor.Document.IsReadOnly = true; var lineSpan = literal.Expression.SyntaxTree.GetLineSpan(literal.Expression.Span); var start = lineSpan.StartLinePosition; var end = lineSpan.EndLinePosition; _syntaxEditor.ActiveView.Selection.StartPosition = new TextPosition(start.Line, start.Character); _syntaxEditor.ActiveView.Selection.EndPosition = new TextPosition(end.Line, end.Character); LiteralInEditor = literal; }