示例#1
0
 public IClassificationType this[PXCodeType codeType]
 {
     [MethodImpl(MethodImplOptions.AggressiveInlining)]
     get
     {
         return(_codeColoringClassificationTypes.TryGetValue(codeType, out IClassificationType type)
          ? type
          : null);
     }
 }
            private void ColorAndOutlineBqlPartsAndPXActions(GenericNameSyntax genericNode, ITypeSymbol typeSymbol,
                                                             IClassificationType classificationType, PXCodeType coloredCodeType)
            {
                if (_tagger.Provider.Package.ColorOnlyInsideBQL && !IsInsideBqlCommand)
                {
                    if (!_cancellationToken.IsCancellationRequested)
                    {
                        base.VisitGenericName(genericNode);
                    }

                    return;
                }

                switch (coloredCodeType)
                {
                case PXCodeType.BqlOperator:
                    ColorAndOutlineBqlOperator(genericNode, typeSymbol, classificationType);
                    return;

                case PXCodeType.BqlParameter:
                    ColorBqlParameter(genericNode, typeSymbol, classificationType);
                    return;

                case PXCodeType.PXAction:
                {
                    if (_tagger.Provider.Package.PXActionColoringEnabled)
                    {
                        AddClassificationTag(genericNode.Identifier.Span, classificationType);
                    }

                    if (!_cancellationToken.IsCancellationRequested)
                    {
                        base.VisitGenericName(genericNode);
                    }

                    return;
                }
                }
            }