예제 #1
0
        private void ChooseMemberFromIntellisense(bool canChooseWhenEmpty)
        {
            if (!intellisense.Visible)
            {
                return;
            }

            var selectedMember = intellisense.GetSelectedMember();

            if (selectedMember != null)
            {
                // replace current part with selected member
                var typeAndAfter = StatementParser.GetTypeOfCurrentStatement(txtEvaluate.Text, txtEvaluate.SelectionStart - 1, thisObject, false);


                if ((!canChooseWhenEmpty && string.IsNullOrEmpty(typeAndAfter.Value)) || StatementParser.GetStringsNotToAutocompleteOn().Contains(typeAndAfter.Value))
                {
                    return;
                }

                string name;
                string alias = AliasManager.Instance.GetAlias(selectedMember);
                if (!string.IsNullOrEmpty(alias))
                {
                    name = alias;
                }
                else
                {
                    name = selectedMember.Name;
                }

                if (name.ToLower().StartsWith(txtEvaluate.Text.Substring(txtEvaluate.Text.Length - typeAndAfter.Value.Length).ToLower()))
                {
                    txtEvaluate.Text           = txtEvaluate.Text.Substring(0, txtEvaluate.Text.Length - typeAndAfter.Value.Length) + name;
                    txtEvaluate.SelectionStart = txtEvaluate.TextLength;
                }

                intellisense.Hide();
            }
        }