Example #1
0
 public MonacoCompletionItem(MonacoCompletionItemKind kind, string label, string description, string insertText = default)
 {
     this.kind       = kind;
     this.label      = label;
     this.insertText = new MonacoCompletionItemText(insertText ?? label);
     this.detail     = description;
 }
Example #2
0
        public static int ToMonacoCompletionItemKind(ImmutableArray <string> completionTags)
        {
            const MonacoCompletionItemKind defaultKind = MonacoCompletionItemKind.Text;

            if (completionTags.Length == 0)
            {
                return((int)defaultKind);
            }

            if (completionTags.Contains(CompletionTags.Assembly) ||
                completionTags.Contains(CompletionTags.Namespace) ||
                completionTags.Contains(CompletionTags.Project) ||
                completionTags.Contains(CompletionTags.Module))
            {
                return((int)MonacoCompletionItemKind.Module);
            }

            if (completionTags.Contains(CompletionTags.Class) ||
                completionTags.Contains(CompletionTags.Structure))
            {
                return((int)MonacoCompletionItemKind.Class);
            }

            if (completionTags.Contains(CompletionTags.Constant) ||
                completionTags.Contains(CompletionTags.Field) ||
                completionTags.Contains(CompletionTags.Delegate) ||
                completionTags.Contains(CompletionTags.Event) ||
                completionTags.Contains(CompletionTags.Local))
            {
                return((int)MonacoCompletionItemKind.Field);
            }

            if (completionTags.Contains(CompletionTags.Enum) ||
                completionTags.Contains(CompletionTags.EnumMember))
            {
                return((int)MonacoCompletionItemKind.Enum);
            }

            if (completionTags.Contains(CompletionTags.Method) ||
                completionTags.Contains(CompletionTags.Operator))
            {
                return((int)MonacoCompletionItemKind.Method);
            }

            if (completionTags.Contains(CompletionTags.ExtensionMethod))
            {
                return((int)MonacoCompletionItemKind.Function);
            }

            if (completionTags.Contains(CompletionTags.Interface))
            {
                return((int)MonacoCompletionItemKind.Interface);
            }

            if (completionTags.Contains(CompletionTags.Property))
            {
                return((int)MonacoCompletionItemKind.Property);
            }

            if (completionTags.Contains(CompletionTags.Keyword))
            {
                return((int)MonacoCompletionItemKind.Keyword);
            }

            if (completionTags.Contains(CompletionTags.Reference))
            {
                return((int)MonacoCompletionItemKind.Reference);
            }

            if (completionTags.Contains(CompletionTags.Snippet))
            {
                return((int)MonacoCompletionItemKind.Snippet);
            }

            return((int)defaultKind);
        }