internal static DynamicallyVisibleCompletion JsCompletion(IGlyphService service, MemberResult memberResult, bool quote) {
     return new DynamicallyVisibleCompletion(memberResult.Name,
         GetInsertionQuote(quote, memberResult.Completion),
         memberResult.Documentation,
         service.GetGlyph(GetGlyphGroup(memberResult), StandardGlyphItem.GlyphItemPublic),
         String.Empty
     );
 }
 internal static StandardGlyphGroup GetGlyphGroup(MemberResult result) {
     switch (result.MemberType) {
         case JsMemberType.Function:
             return StandardGlyphGroup.GlyphGroupMethod;
         case JsMemberType.Keyword:
             return StandardGlyphGroup.GlyphKeyword;
         case JsMemberType.Module:
             return StandardGlyphGroup.GlyphGroupModule;
         case JsMemberType.Multiple:
         case JsMemberType.Object:
             return StandardGlyphGroup.GlyphGroupClass;
         case JsMemberType.Boolean:
         case JsMemberType.String:
         case JsMemberType.Number:
             return StandardGlyphGroup.GlyphGroupValueType;
         case JsMemberType.Undefined:
             return StandardGlyphGroup.GlyphGroupException;
         case JsMemberType.Null:
             return StandardGlyphGroup.GlyphGroupConstant;
         default:
             return StandardGlyphGroup.GlyphGroupUnknown;
     }
 }