private CompletionType(CompletionTypes type, bool fTodo) { m_type = (int)type; if (fTodo) { m_type |= MASK_TODO; } }
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"); } }
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); }
public CSharpCompletion(string text, CompletionTypes type) { Image = CompletionImage.GetImageSource(type); CompletionType = type; this.Text = text; }
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; } }