private void DoAutocomplete(AutocompleteItem item, Range fragment) { string newText = item.GetTextForReplace(); //replace text of fragment var tb = fragment.tb; // < By WendyH --------------------------- if (tb.ToolTip4Function.Visible) { Menu.AfterComplete = true; } if (fragment.CharBeforeStart == '=') { newText = " " + newText; } int iLine = fragment.Start.iLine; int iChar = fragment.Start.iChar; HMSItem hmsItem = item as HMSItem; if ((hmsItem != null) && ((hmsItem.Kind == DefKind.Property) || (hmsItem.Kind == DefKind.Variable)) && !HMS.TypeIsClass(hmsItem.Type)) { Range fwords = fragment.GetFragmentLookedLeft(); var f = new Range(tb, new Place(0, iLine), new Place(fwords.Start.iChar, iLine)); string line = f.Text.Trim(); if (line.Length == 0) { newText += (tb.Language == Language.PascalScript) ? " := " : " = "; } } // > By WendyH --------------------------- tb.BeginAutoUndo(); tb.TextSource.Manager.ExecuteCommand(new SelectCommand(tb.TextSource)); if (tb.Selection.ColumnSelectionMode) { var start = tb.Selection.Start; var end = tb.Selection.End; start.iChar = fragment.Start.iChar; end.iChar = fragment.End.iChar; tb.Selection.Start = start; tb.Selection.End = end; } else { tb.Selection.Start = fragment.Start; tb.Selection.End = fragment.End; } tb.InsertText(newText); tb.TextSource.Manager.ExecuteCommand(new SelectCommand(tb.TextSource)); tb.EndAutoUndo(); tb.Focus(); }