Esempio n. 1
0
        public static Modifiers GetNodeModifiers(DNode dn)
        {
            Modifiers m = Modifiers.None;

            if (dn.ContainsAttribute(DTokens.Abstract)) m |= Modifiers.Abstract;
            if (dn.ContainsAttribute(DTokens.Const)) m |= Modifiers.Const;
            if (dn.ContainsAttribute(DTokens.Extern)) m |= Modifiers.Extern;
            if (dn.ContainsAttribute(DTokens.Package)) m |= Modifiers.Internal;
            if (dn.ContainsAttribute(DTokens.Override)) m |= Modifiers.Override;
            if (dn.ContainsAttribute(DTokens.Private)) m |= Modifiers.Private;
            if (dn.ContainsAttribute(DTokens.Protected)) m |= Modifiers.Protected;
            if (dn.ContainsAttribute(DTokens.Public)) m |= Modifiers.Public;
            if (dn.ContainsAttribute(DTokens.Final)) m |= Modifiers.Sealed;
            if (dn.ContainsAttribute(DTokens.Static)) m |= Modifiers.Static;
            if (dn.ContainsAttribute(DTokens.Volatile)) m |= Modifiers.Volatile;

            return m;
        }
Esempio n. 2
0
        static bool CheckForProtectedAttribute(DNode dn, IBlockNode scope)
        {
            if(!dn.ContainsAttribute(DTokens.Protected) || dn.NodeRoot == scope.NodeRoot)
                return true;

            while(scope!=null)
            {
                if(dn == scope || dn.Parent == scope)
                    return true;
                scope = scope.Parent as IBlockNode;
            }
            return false;
        }
 public override void VisitDNode(DNode n)
 {
     if (n.NameHash == DTokens.IncompleteIdHash) {
         if (n.ContainsAttribute(DTokens.Override))
             prv = new MethodOverrideCompletionProvider(n, cdgen);
         else
             explicitlyNoCompletion = true;
         halt = true;
     }
     else
         base.VisitDNode (n);
 }
Esempio n. 4
0
        static bool CanShowMember(DNode dn, IBlockNode scope)
        {
            if (dn.ContainsAttribute(DTokens.Deprecated) && CompletionOptions.Instance.HideDeprecatedNodes)
                return false;

            // http://dlang.org/attribute.html#ProtectionAttribute
            if (dn.ContainsAttribute(DTokens.Private))
                return dn.NodeRoot == scope.NodeRoot;
            else if (dn.ContainsAttribute(DTokens.Package))
                return dn.NodeRoot is DModule &&
                    ModuleNameHelper.ExtractPackageName((dn.NodeRoot as DModule).ModuleName) ==
                    ModuleNameHelper.ExtractPackageName((scope.NodeRoot as DModule).ModuleName);

            return CheckForProtectedAttribute(dn, scope);
        }