public string EvalMacro(string macro) { if (String.IsNullOrEmpty(macro)) { return(macro); } string result = macro; Regex r = new Regex("\\$\\((?<Macro>\\w+)\\)", RegexOptions.IgnoreCase); Match m = null; Group g = null; IList <PragmaSqlMacros> skipList = new List <PragmaSqlMacros>(); //for (m = r.Match(macro); m.Success; m = m.NextMatch()) m = r.Match(macro); while (m.Success) { g = m.Groups["Macro"]; if (g == null) { continue; } PragmaSqlMacros macroEnum = (PragmaSqlMacros)Enum.Parse(typeof(PragmaSqlMacros), g.Value, true); if (skipList.Contains(macroEnum)) { continue; } skipList.Add(macroEnum); result = result.Replace(m.ToString(), EvalMacro(macroEnum)); m = m.NextMatch(); } return(result); }
private void OnAddMacroClick(object sender, EventArgs args) { ToolStripItem mnuItem = sender as ToolStripItem; if (mnuItem == null) { return; } PragmaSqlMacros m = (PragmaSqlMacros)mnuItem.Tag; tbArgs.TextBox.SelectedText = ("$(" + m.ToString() + ")"); }
public string EvalMacro(PragmaSqlMacros macro) { string result = String.Empty; ITextEditor txtEditor = HostServicesSingleton.HostServices.EditorServices.CurrentEditor; IScriptEditor scriptEditor = HostServicesSingleton.HostServices.EditorServices.CurrentScriptEditor; switch (macro) { case PragmaSqlMacros.Content: if (txtEditor != null) { result = txtEditor.Content; } break; case PragmaSqlMacros.SelectedContent: if (txtEditor != null) { result = txtEditor.SelectedText; } break; case PragmaSqlMacros.FileName: if (txtEditor != null) { result = txtEditor.FileName; } break; case PragmaSqlMacros.ObjectName: if (scriptEditor != null) { result = scriptEditor.ObjectName; } break; case PragmaSqlMacros.ObjectNames: if (scriptEditor != null) { IList <string> names = scriptEditor.ObjectNames; string comma = String.Empty; foreach (string s in names) { result += (String.IsNullOrEmpty(comma) ? String.Empty : comma) + s; comma = ";"; } } break; case PragmaSqlMacros.WordAtCursor: if (txtEditor != null) { result = txtEditor.WordAtCursor; } break; case PragmaSqlMacros.Connection: if (scriptEditor != null) { result = scriptEditor.ConnectionString; } break; case PragmaSqlMacros.ServerName: if (scriptEditor != null) { result = scriptEditor.Server; } break; case PragmaSqlMacros.DatabaseName: if (scriptEditor != null) { result = scriptEditor.Database; } break; case PragmaSqlMacros.Username: scriptEditor = HostServicesSingleton.HostServices.EditorServices.CurrentScriptEditor; if (scriptEditor != null) { result = scriptEditor.Username; } break; case PragmaSqlMacros.ObjExplorerNode: ObjectExplorerNode objExpNode = HostServicesSingleton.HostServices.ObjectExplorerService.SelNode; if (objExpNode != null) { result = objExpNode.Name; } break; case PragmaSqlMacros.StartupPath: result = Application.StartupPath; break; default: break; } return(result); }