コード例 #1
0
        public DocumentRange CalculateRange()
        {
            var nameRange = MethodDeclaration.GetNameDocumentRange();

            if (!nameRange.IsValid())
            {
                return(DocumentRange.InvalidRange);
            }

            if (MethodDeclaration.IsStatic)
            {
                var modifiersList = MethodDeclaration.ModifiersList;
                foreach (var modifier in modifiersList.Modifiers)
                {
                    if (modifier.NodeType == CSharpTokenType.STATIC_KEYWORD)
                    {
                        return(modifier.GetDocumentRange());
                    }
                }

                var modifiersListRange = modifiersList.GetDocumentRange();
                if (modifiersListRange.IsValid() && !modifiersListRange.IsEmpty)
                {
                    return(modifiersListRange);
                }
            }

            return(nameRange);
        }
コード例 #2
0
        public DocumentRange CalculateRange()
        {
            var nameRange = MethodDeclaration.GetNameDocumentRange();

            if (!nameRange.IsValid())
            {
                return(DocumentRange.InvalidRange);
            }

            var returnType = MethodDeclaration.TypeUsage;

            if (returnType == null)
            {
                return(nameRange);
            }

            var documentRange = returnType.GetDocumentRange();

            return(!documentRange.IsValid() ? nameRange : documentRange);
        }
コード例 #3
0
        public DocumentRange CalculateRange()
        {
            var nameRange = MethodDeclaration.GetNameDocumentRange();

            if (!nameRange.IsValid())
            {
                return(DocumentRange.InvalidRange);
            }

            var typeParameterList = MethodDeclaration.TypeParameterList;

            if (typeParameterList == null)
            {
                return(nameRange);
            }

            var documentRange = typeParameterList.GetDocumentRange();

            return(!documentRange.IsValid() ? nameRange : documentRange);
        }
コード例 #4
0
        public DocumentRange CalculateRange()
        {
            var nameRange = MethodDeclaration.GetNameDocumentRange();

            if (!nameRange.IsValid())
            {
                return(DocumentRange.InvalidRange);
            }

            var @params = MethodDeclaration.Params;

            if (@params == null)
            {
                return(nameRange);
            }

            var paramsRange = @params.GetDocumentRange();

            if (!paramsRange.IsValid())
            {
                return(nameRange);
            }

            if (!paramsRange.IsEmpty)
            {
                return(paramsRange);
            }

            var lparRange   = MethodDeclaration.LPar?.GetDocumentRange();
            var rparRange   = MethodDeclaration.RPar?.GetDocumentRange();
            var startOffset = lparRange != null && lparRange.Value.IsValid()
                ? lparRange.Value
                : paramsRange;
            var endOffset = rparRange != null && rparRange.Value.IsValid()
                ? rparRange.Value
                : paramsRange;

            return(new DocumentRange(startOffset.StartOffset, endOffset.EndOffset));
        }