public TestUpdateNotifier(UpdatesManager manager, JetBrains.Application.Communication.WebProxySettingsReader reader)
        {
            var category = manager.Categories.FirstOrDefault(c => c.Key == "xunitcontrib");
            var updateXsltTestResult = manager.TestUpdatesXstl(category.Value, reader);

            Console.WriteLine();
        }
Exemplo n.º 2
0
        /// <summary>
        /// The initializer for this ShellComponent.
        /// </summary>
        /// <param name="lifetime">
        /// The lifetime for this object.
        /// </param>
        public void Init(JetBrains.DataFlow.Lifetime lifetime)
        {
            RegistryUtils registryUtils = new RegistryUtils();

            object oneTimeInitializationRequiredRegistryKey = registryUtils.CUGetValue("LastInitializationDate");
            DateTime initializationDate = Convert.ToDateTime(oneTimeInitializationRequiredRegistryKey);

            string todayAsString = DateTime.Today.ToString("yyyy-MM-dd");

            string value = registryUtils.LMGetValue("InstallDate") as string;

            DateTime lastInstalledDate;

            try
            {
                lastInstalledDate = Convert.ToDateTime(value);

                // If the installer stored a date that has now been read back in and seems to be in the future
                // then use the LocalUserInstallDate value.
                if (lastInstalledDate > DateTime.Today)
                {
                    lastInstalledDate = GetInstallDateFromLocalUserRegistry(registryUtils, todayAsString);
                }
            }
            catch (FormatException ex)
            {
                // In some locales the installer saves the date in a format we can't parse back out.
                // Use today as the installed date and store it in the HKCU key.
                lastInstalledDate = GetInstallDateFromLocalUserRegistry(registryUtils, todayAsString);
            }

            if (oneTimeInitializationRequiredRegistryKey == null || initializationDate < lastInstalledDate)
            {
                SettingsStore settingsStore = Shell.Instance.GetComponent<SettingsStore>();

                IContextBoundSettingsStoreLive settings = settingsStore.BindToContextLive(lifetime, ContextRange.ApplicationWide);

                bool checkReSharperCodeStyleOptionsAtStartUp = settings.GetValue((StyleCopOptionsSettingsKey key) => key.CheckReSharperCodeStyleOptionsAtStartUp);

                if (checkReSharperCodeStyleOptionsAtStartUp)
                {
                    if (!StyleCopOptionsPage.CodeStyleOptionsValid(settings))
                    {
                        DialogResult result =
                            MessageBox.Show(
                                @"Your ReSharper code style settings are not completely compatible with StyleCop. Would you like to reset them now?", 
                                @"StyleCop", 
                                MessageBoxButtons.YesNo, 
                                MessageBoxIcon.Question, 
                                MessageBoxDefaultButton.Button2);
                        if (result == DialogResult.Yes)
                        {
                            StyleCopOptionsPage.CodeStyleOptionsReset(settings);
                        }
                    }
                }
            }

            registryUtils.CUSetValue("LastInitializationDate", todayAsString);
        }
        public override bool IsAvailable(JetBrains.Util.IUserDataHolder cache)
        {
            var invocationExpression = provider.GetSelectedElement<IInvocationExpression>(true, false);

            assertion = invocationExpression != null ? InlineAssertion.TryFromInvocationExpression(invocationExpression) : null;

            return assertion != null;
        }
        public override bool IsAvailable(JetBrains.Util.IUserDataHolder cache)
        {
            var declaration = Provider.GetSelectedElement<IDeclaration>(true, false);

            contractInfo = ContractInfo.TryCreate(declaration, Provider.SelectedTreeRange, IsAvailableForType);

            return contractInfo != null;
        }
 public static JetBrains.ReSharper.PsiPlugin.Tree.IPsiFile GetByPaths (JetBrains.ReSharper.PsiPlugin.Tree.IPathsDeclaration param) {
   if (param == null) return null;
   TreeElement current = (TreeElement)param;
   if (current.parent is JetBrains.ReSharper.PsiPlugin.Tree.Impl.PsiFile) {
     if (current.parent.GetChildRole (current) != JetBrains.ReSharper.PsiPlugin.Tree.Impl.PsiFile.PSI_PATHS) return null;
     current = current.parent;
   } else return null;
   return (JetBrains.ReSharper.PsiPlugin.Tree.IPsiFile) current;
 }
 public static JetBrains.ReSharper.PsiPlugin.Tree.IPsiFile GetByInterfaces (JetBrains.ReSharper.PsiPlugin.Tree.IInterfacesDefinition param) {
   if (param == null) return null;
   TreeElement current = (TreeElement)param;
   if (current.parent is JetBrains.ReSharper.PsiPlugin.Tree.Impl.PsiFile) {
     if (current.parent.GetChildRole (current) != JetBrains.ReSharper.PsiPlugin.Tree.Impl.PsiFile.PSI_INTERFACES) return null;
     current = current.parent;
   } else return null;
   return (JetBrains.ReSharper.PsiPlugin.Tree.IPsiFile) current;
 }
 public static JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition GetByOptionStringValue (JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue param) {
   if (param == null) return null;
   TreeElement current = (TreeElement)param;
   if (current.parent is JetBrains.ReSharper.PsiPlugin.Tree.Impl.OptionDefinition) {
     if (current.parent.GetChildRole (current) != JetBrains.ReSharper.PsiPlugin.Tree.Impl.OptionDefinition.PSI_OPTION_STRING_VALUE) return null;
     current = current.parent;
   } else return null;
   return (JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition) current;
 }
   internal static void TestExtraDefinition (int level, JetBrains.ReSharper.PsiPlugin.Tree.IExtraDefinition param, String caller)
 {
   if (!CanVisitFurther(param)) return;
   VisitElement (level, param, caller);
   {
     JetBrains.ReSharper.PsiPlugin.Tree.IPathValue child = ((JetBrains.ReSharper.PsiPlugin.Tree.IExtraDefinition)param).PathValue;
     TestPathValue (level + 1, (JetBrains.ReSharper.PsiPlugin.Tree.IPathValue)child, "PathValue");
   }
 }
   internal static void TestChoiceTail (int level, JetBrains.ReSharper.PsiPlugin.Tree.IChoiceTail param, String caller)
 {
   if (!CanVisitFurther(param)) return;
   VisitElement (level, param, caller);
   {
     JetBrains.ReSharper.PsiPlugin.Tree.ISequence child = ((JetBrains.ReSharper.PsiPlugin.Tree.IChoiceTail)param).Sequence;
     TestSequence (level + 1, (JetBrains.ReSharper.PsiPlugin.Tree.ISequence)child, "Sequence");
   }
 }
 public static JetBrains.ReSharper.PsiPlugin.Tree.IChoiceTail GetBySequence (JetBrains.ReSharper.PsiPlugin.Tree.ISequence param) {
   if (param == null) return null;
   TreeElement current = (TreeElement)param;
   if (current.parent is JetBrains.ReSharper.PsiPlugin.Tree.Impl.ChoiceTail) {
     if (current.parent.GetChildRole (current) != JetBrains.ReSharper.PsiPlugin.Tree.Impl.ChoiceTail.PSI_SEQUENCE) return null;
     current = current.parent;
   } else return null;
   return (JetBrains.ReSharper.PsiPlugin.Tree.IChoiceTail) current;
 }
 public static JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaration GetByRuleName (JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaredName param) {
   if (param == null) return null;
   TreeElement current = (TreeElement)param;
   if (current.parent is JetBrains.ReSharper.PsiPlugin.Tree.Impl.RuleDeclaration) {
     if (current.parent.GetChildRole (current) != JetBrains.ReSharper.PsiPlugin.Tree.Impl.RuleDeclaration.PSI_RULE_NAME) return null;
     current = current.parent;
   } else return null;
   return (JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaration) current;
 }
 public static JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaration GetByExtras (JetBrains.ReSharper.PsiPlugin.Tree.IExtrasDefinition param) {
   if (param == null) return null;
   TreeElement current = (TreeElement)param;
   if (current.parent is JetBrains.ReSharper.PsiPlugin.Tree.Impl.RuleDeclaration) {
     if (current.parent.GetChildRole (current) != JetBrains.ReSharper.PsiPlugin.Tree.Impl.RuleDeclaration.PSI_EXTRAS) return null;
     current = current.parent;
   } else return null;
   return (JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaration) current;
 }
 public static JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaration GetByParameters (JetBrains.ReSharper.PsiPlugin.Tree.IRuleBracketTypedParameters param) {
   if (param == null) return null;
   TreeElement current = (TreeElement)param;
   if (current.parent is JetBrains.ReSharper.PsiPlugin.Tree.Impl.RuleDeclaration) {
     if (current.parent.GetChildRole (current) != JetBrains.ReSharper.PsiPlugin.Tree.Impl.RuleDeclaration.PSI_PARAMETERS) return null;
     current = current.parent;
   } else return null;
   return (JetBrains.ReSharper.PsiPlugin.Tree.IRuleDeclaration) current;
 }
 public static JetBrains.ReSharper.PsiPlugin.Tree.IExtraDefinition GetByPathValue (JetBrains.ReSharper.PsiPlugin.Tree.IPathValue param) {
   if (param == null) return null;
   TreeElement current = (TreeElement)param;
   if (current.parent is JetBrains.ReSharper.PsiPlugin.Tree.Impl.ExtraDefinition) {
     if (current.parent.GetChildRole (current) != JetBrains.ReSharper.PsiPlugin.Tree.Impl.ExtraDefinition.PSI_PATH_VALUE) return null;
     current = current.parent;
   } else return null;
   return (JetBrains.ReSharper.PsiPlugin.Tree.IExtraDefinition) current;
 }
 public static JetBrains.ReSharper.PsiPlugin.Tree.IPathElement GetByRoleName (JetBrains.ReSharper.PsiPlugin.Tree.IRoleName param) {
   if (param == null) return null;
   TreeElement current = (TreeElement)param;
   if (current.parent is JetBrains.ReSharper.PsiPlugin.Tree.Impl.PathElement) {
     if (current.parent.GetChildRole (current) != JetBrains.ReSharper.PsiPlugin.Tree.Impl.PathElement.PSI_ROLE_NAME) return null;
     current = current.parent;
   } else return null;
   return (JetBrains.ReSharper.PsiPlugin.Tree.IPathElement) current;
 }
Exemplo n.º 16
0
        /// <summary>
        /// Performs the QuickFix, ensures the file is both writable and creates a transaction.
        /// </summary>
        /// <param name="solution">
        /// Current Solution.
        /// </param>
        /// <param name="progress">
        /// Progress Indicator for the fix.
        /// </param>
        /// <returns>
        /// The execute transaction.
        /// </returns>
        protected override Action<ITextControl> ExecutePsiTransaction(ISolution solution, JetBrains.Application.Progress.IProgressIndicator progress)
        {
            return delegate(ITextControl textControl)
                {
                    solution.GetComponent<DocumentManagerOperations>().SaveAllDocuments();

                    using (solution.GetComponent<DocumentTransactionManager>().CreateTransactionCookie(JetBrains.Util.DefaultAction.Commit, "action name"))
                    {
                        var services = solution.GetPsiServices();
                        services.Transactions.Execute(
                            "Code cleanup",
                            () => services.Locks.ExecuteWithWriteLock(() => { ExecuteTransactionInner(solution, textControl); }));
                    }
                };
        }
Exemplo n.º 17
0
        public sealed override bool IsAvailable(JetBrains.Util.IUserDataHolder cache)
        {
            attributesOwnerDeclaration = provider.GetSelectedElement<IAttributesOwnerDeclaration>(true, false);

            if (attributesOwnerDeclaration != null && attributesOwnerDeclaration.GetNameRange().Contains(provider.SelectedTreeRange) &&
                !attributesOwnerDeclaration.OverridesInheritedMember() && !attributesOwnerDeclaration.AttributesEnumerable.Any(IsAttribute))
            {
                createAttributeFactory = CreateAttributeFactoryIfAvailable(attributesOwnerDeclaration, provider.PsiModule, out attributeToRemove);

                if (createAttributeFactory != null)
                {
                    return true;
                }
            }

            attributeToRemove = null;
            createAttributeFactory = null;
            attributesOwnerDeclaration = null;

            return false;
        }
Exemplo n.º 18
0
   internal static void TestOptionDefinition (int level, JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition param, String caller)
 {
   if (!CanVisitFurther(param)) return;
   VisitElement (level, param, caller);
   {
     JetBrains.ReSharper.Psi.Tree.ITokenNode child = ((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)param).OptionIdentifierValue;
     TestTokenNode (level + 1, (JetBrains.ReSharper.Psi.Tree.ITokenNode)child, "OptionIdentifierValue");
   }
   {
     JetBrains.ReSharper.Psi.Tree.ITokenNode child = ((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)param).OptionIntegerValue;
     TestTokenNode (level + 1, (JetBrains.ReSharper.Psi.Tree.ITokenNode)child, "OptionIntegerValue");
   }
   {
     JetBrains.ReSharper.PsiPlugin.Tree.IOptionName child = ((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)param).OptionName;
     TestOptionName (level + 1, (JetBrains.ReSharper.PsiPlugin.Tree.IOptionName)child, "OptionName");
   }
   {
     JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue child = ((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)param).OptionStringValue;
     TestOptionStringValue (level + 1, (JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)child, "OptionStringValue");
   }
 }
        public override bool IsAvailable(JetBrains.Util.IUserDataHolder cache)
        {
            var awaitExpression = provider.GetSelectedElement<IAwaitExpression>(true, false);

            if (awaitExpression != null && awaitExpression.AwaitKeyword == provider.SelectedElement)
            {
                awaitedExpression = awaitExpression.Task;
                var typeElement = (awaitedExpression?.Type() as IDeclaredType)?.GetTypeElement();
                if (typeElement != null)
                {
                    var hasConfigureAwaitMethod = typeElement.Methods.Any(
                        method =>
                        {
                            Debug.Assert(method != null);

                            if (method.ShortName == configureAwaitMethodName && method.Parameters.Count == 1)
                            {
                                Debug.Assert(method.Parameters[0] != null);

                                return method.Parameters[0].Type.IsBool();
                            }

                            return false;
                        });

                    if (hasConfigureAwaitMethod)
                    {
                        return true;
                    }
                }
            }

            awaitedExpression = null;

            return false;
        }
Exemplo n.º 20
0
   internal static void TestOptionsDefinition (int level, JetBrains.ReSharper.PsiPlugin.Tree.IOptionsDefinition param, String caller)
 {
   if (!CanVisitFurther(param)) return;
   VisitElement (level, param, caller);
 }
Exemplo n.º 21
0
 /// <summary>
 /// Initializes a new instance of the StyleCopCodeStyleChecker class.
 /// </summary>
 /// <param name="lifetime">
 /// The lifetime for this instance.
 /// </param>
 public StyleCopCodeStyleChecker(JetBrains.DataFlow.Lifetime lifetime)
 {
     StyleCopReferenceHelper.EnsureStyleCopIsLoaded();
     this.Init(lifetime);
 }
 /// <summary>
 /// Determines whether the specified cache is available.
 /// </summary>
 /// <param name="cache">
 /// The cache. 
 /// </param>
 /// <returns>
 /// <c>True.</c> if the specified cache is available; otherwise, <c>False.</c> . 
 /// </returns>
 public bool IsAvailable(JetBrains.Util.IUserDataHolder cache)
 {
     return true;
 }
Exemplo n.º 23
0
 public void OnPsiChange(JetBrains.ReSharper.Psi.Tree.ITreeNode elementContainingChanges, PsiChangedElementType type)
 {
     if (elementContainingChanges != null)
       {
       }
 }
Exemplo n.º 24
0
 public object Load(JetBrains.Application.Progress.IProgressIndicator progress, bool enablePersistence)
 {
     return true;
 }
Exemplo n.º 25
0
 /// <summary>
 /// True if this QuickFix is available.
 /// </summary>
 /// <param name="cache">
 /// The cache object to use. 
 /// </param>
 /// <returns>
 /// The is available. 
 /// </returns>
 public bool IsAvailable(JetBrains.Util.IUserDataHolder cache)
 {
     // TODO Not all StyleCop issues can be suppressed. We should check here and return false for those that cannot be handled.
     return true;
 }
 public void Execute(ISolution solution, JetBrains.TextControl.ITextControl textControl)
 {
     textControl.Document.ReplaceText(_documentRange.TextRange, _functionCallReplacementText);
 }
Exemplo n.º 27
0
        /// <summary>
        /// Determines whether the current QuickFix is available for the violation.
        /// </summary>
        /// <remarks>
        /// Essentially to display the bulb item in the IDE the current ViolationID must match the name of the QuickFix Class.
        /// </remarks>
        /// <param name="cache">
        /// Current Data Cache. 
        /// </param>
        /// <returns>
        /// Whether the current QuickFix is available for the violation. 
        /// </returns>
        public bool IsAvailable(JetBrains.Util.IUserDataHolder cache)
        {
            // use a more resiliant matching method - this caught me out
            // quite a bit while I was refactoring and debugging and wondering
            // why no bulb items were appearing
            if (this.Highlighting.CheckId.StartsWith("SA") || this.Highlighting.CheckId.StartsWith("BB"))
            {
                return this.GetType().Name.Substring(2).StartsWith(this.Highlighting.CheckId.Substring(2));
            }

            return this.GetType().Name.StartsWith(this.Highlighting.CheckId);
        }
 public override bool IsAvailable(JetBrains.Util.IUserDataHolder cache) => true;
Exemplo n.º 29
0
 public void Save(JetBrains.Application.Progress.IProgressIndicator progress, bool enablePersistence)
 {
 }
        /// <summary>
        /// Process clean-up on file.
        /// </summary>
        /// <param name="projectFile">
        /// The project file to process.
        /// </param>
        /// <param name="rangeMarker">
        /// The range marker to process.
        /// </param>
        /// <param name="profile">
        /// The code cleanup settings to use.
        /// </param>
        /// <param name="progressIndicator">
        /// The progress indicator.
        /// </param>
        public void Process(
            IPsiSourceFile projectFile, IRangeMarker rangeMarker, CodeCleanupProfile profile, JetBrains.Application.Progress.IProgressIndicator progressIndicator)
        {
            if (projectFile == null)
            {
                return;
            }

            if (!this.IsAvailable(projectFile))
            {
                return;
            }

            ISolution solution = projectFile.GetSolution();

            ICSharpFile file = projectFile.GetDominantPsiFile<CSharpLanguage>() as ICSharpFile;

            if (file == null)
            {
                return;
            }

            var services = solution.GetPsiServices(); 
            services.Transactions.Execute("Code cleanup", () => this.InternalProcess(profile, file));

            StyleCopTrace.Out();
        }