Exemplo n.º 1
0
        private CompletionType(CompletionTypes type, bool fTodo)
        {
            m_type = (int)type;

            if (fTodo)
            {
                m_type |= MASK_TODO;
            }
        }
Exemplo n.º 2
0
        private static string getUri(CompletionTypes type)
        {
            switch (type)
            {
            case CompletionTypes.Class: return("class.png");

            case CompletionTypes.Event: return("event.png");

            case CompletionTypes.Field: return("field.png");

            case CompletionTypes.Method: return("method.png");

            case CompletionTypes.Property: return("property.png");

            case CompletionTypes.Struct: return("field.png");    // "struct.png";

            default: return(null);
            }
        }
        internal static ImageSource GetImageSource(CompletionTypes type)
        {
            switch (type)
            {
            case CompletionTypes.Class:
                return(ImageSourceFromBitmap(Resources.Class));

            case CompletionTypes.Delegate:
                return(ImageSourceFromBitmap(Resources.Delegate));

            case CompletionTypes.Enum:
                return(ImageSourceFromBitmap(Resources.Enum));

            case CompletionTypes.Field:
                return(ImageSourceFromBitmap(Resources.Field));

            case CompletionTypes.Interface:
                return(ImageSourceFromBitmap(Resources.Interface));

            case CompletionTypes.Keyword:
                return(ImageSourceFromBitmap(Resources.Keyword));

            case CompletionTypes.Namespace:
                return(ImageSourceFromBitmap(Resources.Namespace));

            case CompletionTypes.Property:
                return(ImageSourceFromBitmap(Resources.Property));

            case CompletionTypes.Snippet:
                return(ImageSourceFromBitmap(Resources.Snippet));

            case CompletionTypes.Structure:
                return(ImageSourceFromBitmap(Resources.Struct));

            default:
                throw new Exception("Incorrect type");
            }
        }
Exemplo n.º 4
0
        public static BitmapImage Get(CompletionTypes type)
        {
            BitmapImage img;

            if (images.TryGetValue(type, out img))
            {
                return(img);
            }
            if (type == CompletionTypes.None)
            {
                return(null);
            }
            string f = Path.Combine(path, getUri(type));

            //
            img = new BitmapImage();
            img.BeginInit();
            img.CacheOption = BitmapCacheOption.OnLoad;
            img.UriSource   = new Uri(f);
            img.EndInit();
            img.Freeze();
            return(images[type] = img);
        }
Exemplo n.º 5
0
 public CSharpCompletion(string text, CompletionTypes type)
 {
     Image          = CompletionImage.GetImageSource(type);
     CompletionType = type;
     this.Text      = text;
 }
Exemplo n.º 6
0
    public void SetCompletion(CompletionTypes type, string targetName)
    {
      CompletionType = type;
      switch (type)
      {
        case CompletionTypes.Break:
          {
            for (var i = Targets.Count - 1; i >= 0; --i)
            {
              var label = Targets[i] as LabelStatement;
              if ((targetName == null && label == null)
                || (targetName != null && label != null && label.Name == targetName))
              {
                CompletionTargetStatement = Targets[i];
                return;
              }
            }
            Operations.Error.SyntaxError(targetName == null ? "Illegal break statement" : string.Format("Undefined label '{0}'", targetName));
            break;
          }
        case CompletionTypes.Continue:
          {
            LoopStatement loop = null;
            var i = Targets.Count - 1;
            do
            {
              for (loop = null; i >= 0; --i)
              {
                loop = Targets[i] as LoopStatement;
                if (loop != null)
                  break;
              }
              if (loop == null)
              {
                Operations.Error.SyntaxError(targetName == null ? "Illegal continue statement" : string.Format("Undefined label '{0}'", targetName));
                return;
              }
              CompletionTargetStatement = loop;
              if (targetName == null)
                break;
              else
              {
                ///This is the uncommon, but expensive one. 
                ///We are going to find label-set of the loop
                ///at this point Targets[i] is loop
                if (i == 0)
                  --i; //We did not want to do this in the loop, just for the corner case which eventually fails

                while (i > 0)
                {
                  var currStatement = Targets[i];
                  --i;
                  var label = Targets[i] as LabelStatement;
                  if (label == null || label.Target != currStatement)
                    break; //Restart search
                  if (label.Name == targetName)
                    return; //found, loop already set as target!
                }
              }
            } while (true);
            break;
          }
        default:
          CompletionTargetStatement = null;
          break;
      }
    }