static private void CompleteTemplate(string Context) { // get indentation ScintillaNet.ScintillaControl Sci = ASContext.MainForm.CurSciControl; if (Sci == null) { return; } int position = Sci.CurrentPos; int line = Sci.LineFromPosition(position); int indent = Sci.LineIndentPosition(line) - Sci.PositionFromLine(line); string tab = Sci.GetLine(line).Substring(0, indent); // get EOL int eolMode = Sci.EOLMode; string newline; if (eolMode == 0) { newline = "\r\n"; } else if (eolMode == 1) { newline = "\r"; } else { newline = "\n"; } // empty box if (Context == null) { Sci.ReplaceSel(newline + tab + "* " + newline + tab + "*/"); position += newline.Length + tab.Length + 2; Sci.SetSel(position, position); } // method details else { string box = newline + tab + "* "; Match mFun = ASClassParser.re_splitFunction.Match(Context); if (mFun.Success) { // parameters ASMemberList list = ASComplete.ParseMethodParameters(mFun.Groups["params"].Value); foreach (ASMember param in list) { box += newline + tab + "* @param\t" + param.Name; } // return type Match mType = ASClassParser.re_variableType.Match(mFun.Groups["type"].Value); if (mType.Success && (mType.Groups["type"].Value.ToLower() != "void")) { box += newline + tab + "* @return"; //+mType.Groups["type"].Value; } } box += newline + tab + "*/"; Sci.ReplaceSel(box); position += newline.Length + tab.Length + 2; Sci.SetSel(position, position); } }