Search in sources :

Example 11 with PackageSet

use of com.intellij.psi.search.scope.packageSet.PackageSet in project intellij-community by JetBrains.

the class EditScopesDialog method doOKAction.

@Override
public void doOKAction() {
    Object selectedObject = myConfigurable.getSelectedObject();
    mySelectedScope = selectedObject instanceof NamedScope ? (NamedScope) selectedObject : null;
    super.doOKAction();
    if (myCheckShared && mySelectedScope != null) {
        final Project project = myProject;
        final DependencyValidationManager manager = DependencyValidationManager.getInstance(project);
        NamedScope scope = manager.getScope(mySelectedScope.getName());
        if (scope == null) {
            if (Messages.showYesNoDialog(IdeBundle.message("scope.unable.to.save.scope.message"), IdeBundle.message("scope.unable.to.save.scope.title"), Messages.getErrorIcon()) == Messages.YES) {
                final String newName = Messages.showInputDialog(project, IdeBundle.message("add.scope.name.label"), IdeBundle.message("scopes.save.dialog.title.shared"), Messages.getQuestionIcon(), mySelectedScope.getName(), new InputValidator() {

                    @Override
                    public boolean checkInput(String inputString) {
                        return inputString != null && inputString.length() > 0 && manager.getScope(inputString) == null;
                    }

                    @Override
                    public boolean canClose(String inputString) {
                        return checkInput(inputString);
                    }
                });
                if (newName != null) {
                    final PackageSet packageSet = mySelectedScope.getValue();
                    scope = new NamedScope(newName, packageSet != null ? packageSet.createCopy() : null);
                    mySelectedScope = scope;
                    manager.addScope(mySelectedScope);
                }
            }
        }
    }
}
Also used : Project(com.intellij.openapi.project.Project) DependencyValidationManager(com.intellij.packageDependencies.DependencyValidationManager) NamedScope(com.intellij.psi.search.scope.packageSet.NamedScope) InputValidator(com.intellij.openapi.ui.InputValidator) PackageSet(com.intellij.psi.search.scope.packageSet.PackageSet)

Example 12 with PackageSet

use of com.intellij.psi.search.scope.packageSet.PackageSet in project intellij-community by JetBrains.

the class DependencyConfigurable method apply.

@Override
public void apply() throws ConfigurationException {
    stopTableEditing();
    DependencyValidationManager validationManager = DependencyValidationManager.getInstance(myProject);
    validationManager.removeAllRules();
    final HashMap<String, PackageSet> unUsed = new HashMap<>(validationManager.getUnnamedScopes());
    List<DependencyRule> modelItems = new ArrayList<>();
    modelItems.addAll(myDenyRulesModel.getItems());
    modelItems.addAll(myAllowRulesModel.getItems());
    for (DependencyRule rule : modelItems) {
        validationManager.addRule(rule);
        final NamedScope fromScope = rule.getFromScope();
        if (fromScope instanceof NamedScope.UnnamedScope) {
            final PackageSet fromPackageSet = fromScope.getValue();
            LOG.assertTrue(fromPackageSet != null);
            unUsed.remove(fromPackageSet.getText());
        }
        final NamedScope toScope = rule.getToScope();
        if (toScope instanceof NamedScope.UnnamedScope) {
            final PackageSet toPackageSet = toScope.getValue();
            LOG.assertTrue(toPackageSet != null);
            unUsed.remove(toPackageSet.getText());
        }
    }
    for (String text : unUsed.keySet()) {
        //cleanup
        validationManager.getUnnamedScopes().remove(text);
    }
    validationManager.setSkipImportStatements(mySkipImports.isSelected());
    DaemonCodeAnalyzer.getInstance(myProject).restart();
}
Also used : DependencyValidationManager(com.intellij.packageDependencies.DependencyValidationManager) NamedScope(com.intellij.psi.search.scope.packageSet.NamedScope) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) DependencyRule(com.intellij.packageDependencies.DependencyRule) PackageSet(com.intellij.psi.search.scope.packageSet.PackageSet)

Example 13 with PackageSet

use of com.intellij.psi.search.scope.packageSet.PackageSet in project intellij-community by JetBrains.

the class FileColorsModel method findConfiguration.

@Nullable
private FileColorConfiguration findConfiguration(@NotNull final VirtualFile colored) {
    for (FileColorConfiguration configuration : getConfigurations()) {
        NamedScope scope = NamedScopesHolder.getScope(myProject, configuration.getScopeName());
        if (scope != null) {
            NamedScopesHolder namedScopesHolder = NamedScopesHolder.getHolder(myProject, configuration.getScopeName(), null);
            PackageSet packageSet = scope.getValue();
            if (packageSet instanceof PackageSetBase && namedScopesHolder != null && ((PackageSetBase) packageSet).contains(colored, myProject, namedScopesHolder)) {
                return configuration;
            }
        }
    }
    return null;
}
Also used : NamedScope(com.intellij.psi.search.scope.packageSet.NamedScope) NamedScopesHolder(com.intellij.psi.search.scope.packageSet.NamedScopesHolder) PackageSet(com.intellij.psi.search.scope.packageSet.PackageSet) PackageSetBase(com.intellij.psi.search.scope.packageSet.PackageSetBase) Nullable(org.jetbrains.annotations.Nullable)

Aggregations

PackageSet (com.intellij.psi.search.scope.packageSet.PackageSet)13 NamedScope (com.intellij.psi.search.scope.packageSet.NamedScope)9 NamedScopesHolder (com.intellij.psi.search.scope.packageSet.NamedScopesHolder)4 DependencyValidationManager (com.intellij.packageDependencies.DependencyValidationManager)3 TextAttributes (com.intellij.openapi.editor.markup.TextAttributes)2 Project (com.intellij.openapi.project.Project)2 Pair (com.intellij.openapi.util.Pair)2 DependencyValidationManagerImpl (com.intellij.packageDependencies.DependencyValidationManagerImpl)2 ComplementPackageSet (com.intellij.psi.search.scope.packageSet.ComplementPackageSet)2 ArrayList (java.util.ArrayList)2 TextAttributesKey (com.intellij.openapi.editor.colors.TextAttributesKey)1 ConfigurationException (com.intellij.openapi.options.ConfigurationException)1 InputValidator (com.intellij.openapi.ui.InputValidator)1 DependencyRule (com.intellij.packageDependencies.DependencyRule)1 PsiFile (com.intellij.psi.PsiFile)1 PsiFileSystemItem (com.intellij.psi.PsiFileSystemItem)1 PackageSetBase (com.intellij.psi.search.scope.packageSet.PackageSetBase)1 THashSet (gnu.trove.THashSet)1 HashMap (java.util.HashMap)1 Nullable (org.jetbrains.annotations.Nullable)1