Пример #1
0
            public override int CompareTo(CompletionCategory other)
            {
                var ncc = other as NodeCompletionCategory;


                if (ncc != null)
                {
                    if (isLocalContainer)
                    {
                        return(-1);
                    }
                    if (ncc.isLocalContainer)
                    {
                        return(1);
                    }

                    if (n == ncc.n.Parent)
                    {
                        return(1);
                    }
                    if (n.Parent == ncc.n)
                    {
                        return(-1);
                    }

                    return(0);
                }

                return(-1);
            }
Пример #2
0
            public override int CompareTo(CompletionCategory other)
            {
                var compareCategory = other as TypeCompletionCategory;

                if (compareCategory == null)
                {
                    return(1);
                }

                if (Type.ReflectionName == compareCategory.Type.ReflectionName)
                {
                    return(0);
                }

                // System.Object is always the smallest
                if (Type.ReflectionName == "System.Object")
                {
                    return(-1);
                }
                if (compareCategory.Type.ReflectionName == "System.Object")
                {
                    return(1);
                }

/*					if (Type.GetProjectContent () != null) {
 *                                              if (Type.GetProjectContent ().GetInheritanceTree (Type).Any (t => t != null && t.DecoratedFullName == compareCategory.Type.DecoratedFullName))
 *                                                      return 1;
 *                                              return -1;
 *                                      }
 *
 *                                      // source project dom == null - try to make the opposite comparison
 *                                      if (compareCategory.Type.GetProjectContent () != null && compareCategory.Type.GetProjectContent ().GetInheritanceTree (Type).Any (t => t != null && t.DecoratedFullName == Type.DecoratedFullName))
 *                                              return -1;*/
                return(1);
            }
        public override int CompareTo(CompletionCategory other)
        {
            if (other == null)
            {
                return(1);
            }
            var t1 = symbol as INamedTypeSymbol;

            if (other is DelegateCreationContextHandler.DelegateCreationCategory)
            {
                return(1);
            }
            var t2 = ((RoslynCompletionCategory)other).symbol as INamedTypeSymbol;

            if (t1 != null && t2 != null)
            {
                if (t1.AllInterfaces.Contains(t2) || t1.GetBaseTypes().Contains(t2))
                {
                    return(-1);
                }
                if (t2.AllInterfaces.Contains(t1) || t2.GetBaseTypes().Contains(t1))
                {
                    return(1);
                }
            }

            return(this.DisplayText.CompareTo(other.DisplayText));
        }
            public override int CompareTo(CompletionCategory other)
            {
                var n = other as NodeCompletionCategory;

                if (n != null)
                {
                    return(weight - n.weight);
                }
                return(string.Compare(DisplayText, other.DisplayText, StringComparison.Ordinal));
            }
		public override int CompareTo (CompletionCategory other)
		{
			if (other == null)
				return 1;
			var t1 = symbol as INamedTypeSymbol;
			var t2 = ((RoslynCompletionCategory)other).symbol as INamedTypeSymbol;
			if (t1 != null && t2 != null) {
				if (t1.AllInterfaces.Contains (t2) || t1.GetBaseTypes().Contains (t2))
					return -1;
				if (t2.AllInterfaces.Contains (t1) || t2.GetBaseTypes().Contains (t1))
					return 1;
			}

			return this.DisplayText.CompareTo (other.DisplayText);
		}
Пример #6
0
            public override int CompareTo(CompletionCategory other)
            {
                var compareCategory = other as TypeCompletionCategory;

                if (compareCategory == null)
                {
                    return(-1);
                }
                int result;

                if (Type.ReflectionName == compareCategory.Type.ReflectionName)
                {
                    result = 0;
                }
                else if (Type.GetAllBaseTypes().Any(t => t.ReflectionName == compareCategory.Type.ReflectionName))
                {
                    result = -1;
                }
                else if (compareCategory.Type.GetAllBaseTypes().Any(t => t.ReflectionName == Type.ReflectionName))
                {
                    result = 1;
                }
                else
                {
                    var d  = Type.GetDefinition();
                    var ct = compareCategory.Type.GetDefinition();
                    if (ct.IsStatic && d.IsStatic)
                    {
                        result = d.FullName.CompareTo(ct.FullName);
                    }
                    else if (d.IsStatic)
                    {
                        result = 1;
                    }
                    else if (ct.IsStatic)
                    {
                        result = -1;
                    }
                    else
                    {
                        result = 0;
                    }
                }
                return(result);
            }
Пример #7
0
            public override int CompareTo(CompletionCategory other)
            {
                var compareCategory = other as TypeCompletionCategory;

                if (compareCategory == null)
                {
                    return(-1);
                }

                if (Type.ReflectionName == compareCategory.Type.ReflectionName)
                {
                    return(0);
                }

                if (Type.GetAllBaseTypes().Any(t => t.ReflectionName == compareCategory.Type.ReflectionName))
                {
                    return(-1);
                }
                return(1);
            }
Пример #8
0
		static Category GetCategory (List<Category> categories, CompletionCategory completionCategory)
		{
			foreach (var cat in categories) {
				if (cat.CompletionCategory == completionCategory)
					return cat;
			}
			var result = new Category ();
			result.CompletionCategory = completionCategory;
			if (completionCategory == null) {
				categories.Add (result);
			} else {
				categories.Insert (0, result);
			}

			return result;
		}
			public override int CompareTo (CompletionCategory other)
			{
				var compareCategory = other as TypeCompletionCategory;
				if (compareCategory == null)
					return -1;
				int result;
				if (Type.ReflectionName == compareCategory.Type.ReflectionName) {
					result = 0;
				} else if (Type.GetAllBaseTypes().Any(t => t.ReflectionName == compareCategory.Type.ReflectionName)) {
					result = -1;
				} else if (compareCategory.Type.GetAllBaseTypes().Any(t => t.ReflectionName == Type.ReflectionName)) {
					result = 1;
				} else {
					var d = Type.GetDefinition ();
					var ct = compareCategory.Type.GetDefinition();
					if (ct.IsStatic && d.IsStatic) {
						result = d.FullName.CompareTo (ct.FullName);
					} else if (d.IsStatic) {
						result = 1;
					}else if (ct.IsStatic) {
						result = -1;
					} else {
						result = 0;
					}
				}
				return result;
			}
			public override int CompareTo (CompletionCategory other)
			{
				var n = other as NodeCompletionCategory;
				if (n != null)
					return weight - n.weight;
				return string.Compare (DisplayText, other.DisplayText, StringComparison.Ordinal);
			}
Пример #11
0
 public override int CompareTo(CompletionCategory other)
 {
     return(String.CompareOrdinal(this.DisplayText, other.DisplayText));
 }
Пример #12
0
 public override int CompareTo(CompletionCategory other)
 {
     return((other.DisplayText == DisplayText) ? 1 : 0);
 }
Пример #13
0
 public override int CompareTo(CompletionCategory other)
 {
     return String.CompareOrdinal(this.DisplayText, other.DisplayText);
 }
Пример #14
0
 public override int CompareTo(CompletionCategory other)
 {
     return(0);
 }
Пример #15
0
			public override int CompareTo (CompletionCategory other)
			{
				var compareCategory = other as TypeCompletionCategory;
				if (compareCategory == null)
					return -1;
					
				if (Type.ReflectionName == compareCategory.Type.ReflectionName)
					return 0;
					
				if (Type.GetAllBaseTypes ().Any (t => t.ReflectionName == compareCategory.Type.ReflectionName))
					return -1;
				return 1;
			}
Пример #16
0
			public override int CompareTo (CompletionCategory other)
			{
				var compareCategory = other as TypeCompletionCategory;
				if (compareCategory == null)
					return 1;
					
				if (Type.ReflectionName == compareCategory.Type.ReflectionName)
					return 0;
					
				// System.Object is always the smallest
				if (Type.ReflectionName == "System.Object") 
					return -1;
				if (compareCategory.Type.ReflectionName == "System.Object")
					return 1;
					
/*					if (Type.GetProjectContent () != null) {
						if (Type.GetProjectContent ().GetInheritanceTree (Type).Any (t => t != null && t.DecoratedFullName == compareCategory.Type.DecoratedFullName))
							return 1;
						return -1;
					}
					
					// source project dom == null - try to make the opposite comparison
					if (compareCategory.Type.GetProjectContent () != null && compareCategory.Type.GetProjectContent ().GetInheritanceTree (Type).Any (t => t != null && t.DecoratedFullName == Type.DecoratedFullName))
						return -1;*/
				return 1;
			}
				public override int CompareTo (CompletionCategory other)
				{
					TypeCompletionCategory compareCategory = other as TypeCompletionCategory;
					if (compareCategory == null)
						return 1;
					
					if (Type.DecoratedFullName == compareCategory.Type.DecoratedFullName)
						return 0;
					
					// System.Object is always the smallest
					if (Type.DecoratedFullName == DomReturnType.Object.DecoratedFullName) 
						return -1;
					if (compareCategory.Type.DecoratedFullName == DomReturnType.Object.DecoratedFullName)
						return 1;
					
					if (Type.SourceProjectDom != null) {
						if (Type.SourceProjectDom.GetInheritanceTree (Type).Any (t => t != null && t.DecoratedFullName == compareCategory.Type.DecoratedFullName))
							return 1;
						return -1;
					}
					
					// source project dom == null - try to make the opposite comparison
					if (compareCategory.Type.SourceProjectDom != null && compareCategory.Type.SourceProjectDom.GetInheritanceTree (Type).Any (t => t != null && t.DecoratedFullName == Type.DecoratedFullName))
						return -1;
					return 1;
				}
 public override int CompareTo(CompletionCategory other)
 {
     return(DisplayText.CompareTo(other.DisplayText));
 }
Пример #19
0
        public override ICompletionDataList HandleCodeCompletion(CodeCompletionContext completionContext, char completionChar, ref int triggerWordLength)
        {
            if (!CanRunCompletionCommand())
            {
                return(null);
            }

            if (completionChar == '(' || completionChar == ')' ||
                completionChar == '[' || completionChar == ']' ||
                completionChar == '{' || completionChar == '}' ||
                completionChar == '"' || completionChar == '\'' ||
                completionChar == ';' || completionChar == '=' ||
                completionChar == ' ' || completionChar == '\t' ||
                completionChar == ',')
            {
                if (completionChar == '(')
                {
                    // TODO: Add function args
                }
                return(null);                // don't show it yet
            }

            CompletionDataList ret         = new CompletionDataList();
            string             fullcontext = "";
            bool has_namespace             = false;

            if (completionContext.TriggerOffset > 1)
            {
                completionContext.TriggerOffset = document.Editor.Caret.Offset;
                int pos = completionContext.TriggerOffset - 1;

                while (pos > 1)
                {
                    char letter = document.Editor.GetCharAt(pos);

                    pos--;
                    if (letter == '.' || letter == ':' || letter == ',' ||
                        !ValidVarnameChar(letter))
                    {
                        has_namespace |= letter == '.' || letter == ':';
                        break;
                    }
                }

                triggerWordLength = completionContext.TriggerOffset - pos - 2;
                completionContext.TriggerWordLength = triggerWordLength;

                // now, work out the context
                bool did_space     = false;
                bool did_namespace = false;

                while (pos > 1 && has_namespace)
                {
                    char letter = document.Editor.GetCharAt(pos);

                    if (char.IsWhiteSpace(letter))
                    {
                        did_space = true;
                    }
                    else if (did_space && !did_namespace && (letter != '.' && letter != ':'))
                    {
                        break;
                    }
                    else if (letter == '.' || letter == ':')
                    {
                        did_namespace = true;
                        fullcontext   = letter + fullcontext;
                    }
                    else if (ValidVarnameChar(letter))
                    {
                        did_namespace = false;
                        did_space     = false;
                        fullcontext   = letter + fullcontext;
                    }
                    else
                    {
                        break;
                    }
                    pos--;
                }
            }

            if (completionChar == '.' && string.IsNullOrWhiteSpace(fullcontext.Trim(".".ToCharArray())))
            {
                return(null);
            }

            if (fullcontext.Trim() == "")
            {
                fullcontext = "_G";
            }
            else
            {
                fullcontext = fullcontext.TrimEnd(".".ToCharArray());
                if (fullcontext.StartsWith("_G.", StringComparison.Ordinal))
                {
                    fullcontext = fullcontext.Substring("_G.".Length);
                }
            }

            CompletionCategory cat         = null;
            Action <string>    handle_line = delegate(string line) {
                if (line.Trim().StartsWith("#", StringComparison.Ordinal))
                {
                    return;
                }
                if (string.IsNullOrWhiteSpace(line))
                {
                    return;
                }

                string[] split = line.Split("\t".ToCharArray());

                string arg0 = split.Length >= 1 ? split[0] : "";                 // namespace
                string arg1 = split.Length >= 2 ? split[1] : "";                 // name
                string arg2 = split.Length >= 3 ? split[2] : "";                 // arguments

                if (arg0 == fullcontext)
                {
                    string icon = MonoDevelop.Ide.Gui.Stock.Method;
                    string arg  = arg2;

                    switch (arg)
                    {
                    case "":
                        icon = "md-keyword";
                        arg  = "";
                        break;

                    case "{}":
                        icon = MonoDevelop.Ide.Gui.Stock.NameSpace;
                        arg  = "";
                        break;

                    case "#":
                        icon = MonoDevelop.Ide.Gui.Stock.Literal;
                        arg  = "";
                        break;
                    }

                    var elm = ret.Add(arg1 + arg, icon, "", arg1);
                    elm.CompletionCategory = cat;
                }
            };

            UpdateProjectGlobals();
            //UpdateEngineGlobals();
            cat = new GlobalCompletionCategory();

            foreach (string glob in Globals)
            {
                handle_line(glob);
            }
            foreach (string glob in ProjectGlobals)
            {
                handle_line(glob);
            }
            foreach (string glob in EngineGlobals)
            {
                handle_line(glob);
            }

            cat             = new LocalCompletionCategory();
            cat.DisplayText = "Locals";

            foreach (string glob in GetDocumentLocals())
            {
                handle_line(glob);
            }

            return(ret);
            //return base.HandleCodeCompletion(completionContext, completionChar, ref triggerWordLength);
        }
Пример #20
0
		Category GetCategory (CompletionCategory completionCategory)
		{
			foreach (Category cat in categories) {
				if (cat.CompletionCategory == completionCategory)
					return cat;
			}
			Category result = new Category ();
			result.CompletionCategory = completionCategory;
			if (completionCategory == null) {
				categories.Add (result);
			} else {
				categories.Insert (0, result);
			}
			return result;
		}
Пример #21
0
			public override int CompareTo(CompletionCategory other)
			{
				return 0;
			}
Пример #22
0
		public override int CompareTo (CompletionCategory other)
		{
			return DisplayText.CompareTo (other.DisplayText);
		}