示例#1
0
        void AddCompletionData(List <ICompletionData> resultList, IEnumerable <Dom.ICompletionEntry> completionData)
        {
            // used to store the method names for grouping overloads
            Dictionary <string, CodeCompletionData> nameDictionary = new Dictionary <string, CodeCompletionData>();

            // Add the completion data as returned by SharpDevelop.Dom to the
            // list for the text editor
            foreach (object obj in completionData)
            {
                if (obj is string)
                {
                    // namespace names are returned as string
                    resultList.Add(new DefaultCompletionData((string)obj, "namespace " + obj, 5));
                }
                else if (obj is Dom.IClass)
                {
                    Dom.IClass c = (Dom.IClass)obj;
                    resultList.Add(new CodeCompletionData(c));
                }
                else if (obj is Dom.IMember)
                {
                    Dom.IMember m = (Dom.IMember)obj;
                    if (m is Dom.IMethod && ((m as Dom.IMethod).IsConstructor))
                    {
                        // Skip constructors
                        continue;
                    }
                    // Group results by name and add "(x Overloads)" to the
                    // description if there are multiple results with the same name.

                    CodeCompletionData data;
                    if (nameDictionary.TryGetValue(m.Name, out data))
                    {
                        data.AddOverload();
                    }
                    else
                    {
                        nameDictionary[m.Name] = data = new CodeCompletionData(m);
                        resultList.Add(data);
                    }
                }
                else
                {
                    // Current ICSharpCode.SharpDevelop.Dom should never return anything else
                    //throw new NotSupportedException();
                }
            }
        }
示例#2
0
        private static void AddCompletionData(List <ICompletionData> resultList,
                                              IEnumerable <Dom.ICompletionEntry> completionData)
        {
            // used to store the method names for grouping overloads
            var nameDictionary = new Dictionary <string, CodeCompletionData>();

            // Add the completion data as returned by SharpDevelop.Dom to the
            // list for the text editor
            foreach (var entry in completionData)
            {
                var @class = entry as Dom.IClass;
                if (@class != null)
                {
                    resultList.Add(new CodeCompletionData(@class));
                }
                else
                {
                    var member = entry as Dom.IMember;
                    if (member == null)
                    {
                        continue;
                    }

                    if (member is Dom.IMethod && ((member as Dom.IMethod).IsConstructor))
                    {
                        // Skip constructors
                        continue;
                    }
                    // Group results by name and add "(x Overloads)" to the
                    // description if there are multiple results with the same name.

                    CodeCompletionData data;
                    if (nameDictionary.TryGetValue(member.Name, out data))
                    {
                        data.AddOverload();
                    }
                    else
                    {
                        nameDictionary[member.Name] = data = new CodeCompletionData(member);
                        resultList.Add(data);
                    }
                }
            }
        }
示例#3
0
        internal static string GetMemberText(IAmbience ambience, IEntity member)
        {
            var text = new StringBuilder();

            // ReSharper disable once CanBeReplacedWithTryCastAndCheckForNull
            if (member is IField)
            {
                text.Append(ambience.Convert((IField)member));
            }
            else if (member is IProperty)
            {
                text.Append(ambience.Convert((IProperty)member));
            }
            else if (member is IEvent)
            {
                text.Append(ambience.Convert((IEvent)member));
            }
            else if (member is IMethod)
            {
                text.Append(ambience.Convert((IMethod)member));
            }
            else if (member is IClass)
            {
                text.Append(ambience.Convert((IClass)member));
            }
            else
            {
                text.Append("unknown member ");
                text.Append(member);
            }

            var documentation = member.Documentation;

            if (string.IsNullOrEmpty(documentation))
            {
                return(text.ToString());
            }

            text.Append('\n');
            text.Append(CodeCompletionData.XmlDocumentationToText(documentation));
            return(text.ToString());
        }
示例#4
0
        internal static string GetMemberText(IAmbience ambience, IEntity member)
        {
            var text = new StringBuilder();

            if (member is IField)
            {
                text.Append(ambience.Convert(member as IField));
            }
            else if (member is IProperty)
            {
                text.Append(ambience.Convert(member as IProperty));
            }
            else if (member is IEvent)
            {
                text.Append(ambience.Convert(member as IEvent));
            }
            else if (member is IMethod)
            {
                text.Append(ambience.Convert(member as IMethod));
            }
            else if (member is IClass)
            {
                text.Append(ambience.Convert(member as IClass));
            }
            else
            {
                text.Append("unknown member ");
                text.Append(member);
            }
            var documentation = member.Documentation;

            if (string.IsNullOrEmpty(documentation))
            {
                return(text.ToString());
            }

            text.Append('\n');
            text.Append(CodeCompletionData.XmlDocumentationToText(documentation));
            return(text.ToString());
        }
示例#5
0
        internal static string GetMemberText(IAmbience ambience, IEntity member)
        {
            StringBuilder text = new StringBuilder();

            if (member is IField)
            {
                text.Append(ambience.Convert(member as IField));
            }
            else if (member is IProperty)
            {
                text.Append(ambience.Convert(member as IProperty));
            }
            else if (member is IEvent)
            {
                text.Append(ambience.Convert(member as IEvent));
            }
            else if (member is IMethod)
            {
                text.Append(ambience.Convert(member as IMethod));
            }
            else if (member is IClass)
            {
                text.Append(ambience.Convert(member as IClass));
            }
            else
            {
                text.Append("unknown member ");
                text.Append(member.ToString());
            }
            string documentation = member.Documentation;

            if (documentation != null && documentation.Length > 0)
            {
                text.Append('\n');
                text.Append(CodeCompletionData.XmlDocumentationToText(documentation));
            }
            return(text.ToString());
        }
		private static void AddCompletionData(List<ICompletionData> resultList,
			IEnumerable<Dom.ICompletionEntry> completionData)
		{
			// used to store the method names for grouping overloads
			var nameDictionary = new Dictionary<string, CodeCompletionData>();

			// Add the completion data as returned by SharpDevelop.Dom to the
			// list for the text editor
			foreach (var entry in completionData)
			{
				var @class = entry as Dom.IClass;
				if (@class != null)
				{
					resultList.Add(new CodeCompletionData(@class));
				}
				else
				{
					var member = entry as Dom.IMember;
					if (member == null)
						continue;

					if (member is Dom.IMethod && ((member as Dom.IMethod).IsConstructor))
					{
						// Skip constructors
						continue;
					}
					// Group results by name and add "(x Overloads)" to the
					// description if there are multiple results with the same name.

					CodeCompletionData data;
					if (nameDictionary.TryGetValue(member.Name, out data))
					{
						data.AddOverload();
					}
					else
					{
						nameDictionary[member.Name] = data = new CodeCompletionData(member);
						resultList.Add(data);
					}
				}
			}
		}
		void AddCompletionData(List<ICompletionData> resultList, IEnumerable<Dom.ICompletionEntry> completionData)
		{
			// used to store the method names for grouping overloads
			Dictionary<string, CodeCompletionData> nameDictionary = new Dictionary<string, CodeCompletionData>();
			
			// Add the completion data as returned by SharpDevelop.Dom to the
			// list for the text editor
			foreach (object obj in completionData) {
				if (obj is string) {
					// namespace names are returned as string
					resultList.Add(new DefaultCompletionData((string)obj, "namespace " + obj, 5));
				} else if (obj is Dom.IClass) {
					Dom.IClass c = (Dom.IClass)obj;
					resultList.Add(new CodeCompletionData(c));
				} else if (obj is Dom.IMember) {
					Dom.IMember m = (Dom.IMember)obj;
					if (m is Dom.IMethod && ((m as Dom.IMethod).IsConstructor)) {
						// Skip constructors
						continue;
					}
					// Group results by name and add "(x Overloads)" to the
					// description if there are multiple results with the same name.
					
					CodeCompletionData data;
					if (nameDictionary.TryGetValue(m.Name, out data)) {
						data.AddOverload();
					} else {
						nameDictionary[m.Name] = data = new CodeCompletionData(m);
						resultList.Add(data);
					}
				} else {
					// Current ICSharpCode.SharpDevelop.Dom should never return anything else
					//throw new NotSupportedException();
				}
			}
		}