private void ScintillaNet_CharAdded(object sender, CharAddedEventArgs e) { ScriptHelpMgr.Instance.bCompileError = true; bNeedSaved = true; int nPos = TextArea.CurrentPosition; //AXIS if (e.Char == '.') { string sWord = TextArea.GetWordFromPosition(nPos - 1); if (sWord.Contains("AXIS")) { TextArea.AutoCShow(0, sbAxisStructPromt.ToString()); } else if (sWord.Contains("INST")) { TextArea.AutoCShow(0, sbInstrumentStructPromt.ToString()); } else if (sWord.Contains("ENUM")) { TextArea.AutoCShow(0, sbEnumPromt1.ToString()); } else if (sbEnumPromt1.ToString().Contains(sWord) && sbEnumPromt2Dic.Keys.Contains(sWord)) { TextArea.AutoCShow(0, sbEnumPromt2Dic[sWord].ToString()); } else { foreach (var it in rawDataDic) { if (it.Key == sWord) { TextArea.AutoCShow(0, strCateDic[sWord]); //strCateDic : Cate-----"func1 func2 func3" break; } } } } else if (e.Char == '(') { string sWord = TextArea.GetWordFromPosition(nPos - 1); foreach (var it in Funcmanager.Funcs) { if (it.FunctionName == sWord) { strPromot = it.Prompt; TextArea.CallTipShow(nPos, strPromot); break; } } nStartPos = strPromot.IndexOf('('); nEndPos = strPromot.IndexOf(',') == -1 ? strPromot.IndexOf(')') : strPromot.IndexOf(','); TextArea.CallTipSetHlt(nStartPos, nEndPos); } else if (e.Char == ')') { TextArea.CallTipCancel(); strPromot = ""; nEndPos = 0; } else if (e.Char == ',') { int pos1 = nEndPos; if (pos1 < strPromot.Length) { int pos2 = strPromot.IndexOf(',', pos1 + 1) == -1 ? strPromot.IndexOf(')') : strPromot.IndexOf(',', pos1 + 1); TextArea.CallTipShow(nPos, strPromot); TextArea.CallTipSetHlt(pos1, pos2); nEndPos = pos2; } } }