Search in sources :

Example 96 with AccessToken

use of com.intellij.openapi.application.AccessToken in project sonarlint-intellij by SonarSource.

the class IssueProcessor method process.

public void process(final SonarLintJob job, ProgressIndicator indicator, final Collection<Issue> rawIssues, Collection<ClientInputFile> failedAnalysisFiles) {
    Map<VirtualFile, Collection<LiveIssue>> transformedIssues;
    long start = System.currentTimeMillis();
    AccessToken token = ReadAction.start();
    try {
        transformedIssues = transformIssues(rawIssues, job.allFiles(), failedAnalysisFiles);
        // this might be updated later after tracking with server issues
        manager.store(transformedIssues);
    } finally {
        // closeable only introduced in 2016.2
        token.finish();
    }
    String issueStr = rawIssues.size() == 1 ? "issue" : "issues";
    console.debug(String.format("Processed %d %s in %d ms", rawIssues.size(), issueStr, System.currentTimeMillis() - start));
    long issuesToShow = transformedIssues.entrySet().stream().mapToLong(e -> e.getValue().size()).sum();
    Collection<VirtualFile> filesWithIssues = transformedIssues.entrySet().stream().filter(e -> !e.getValue().isEmpty()).map(Map.Entry::getKey).collect(Collectors.toList());
    String end = issuesToShow == 1 ? " issue" : " issues";
    console.info("Found " + issuesToShow + end);
    if (!filesWithIssues.isEmpty() && shouldUpdateServerIssues(job.trigger())) {
        serverIssueUpdater.fetchAndMatchServerIssues(filesWithIssues, indicator, job.waitForServerIssues());
    }
    AnalysisCallback callback = job.callback();
    if (callback != null) {
        Set<VirtualFile> failedVirtualFiles = failedAnalysisFiles.stream().map(f -> (VirtualFile) f.getClientObject()).collect(Collectors.toSet());
        callback.onSuccess(failedVirtualFiles);
    }
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) VirtualFile(com.intellij.openapi.vfs.VirtualFile) HashMap(java.util.HashMap) ClientInputFile(org.sonarsource.sonarlint.core.client.api.common.analysis.ClientInputFile) IssueLocation(org.sonarsource.sonarlint.core.client.api.common.analysis.IssueLocation) ReadAction(com.intellij.openapi.application.ReadAction) ArrayList(java.util.ArrayList) AccessToken(com.intellij.openapi.application.AccessToken) Map(java.util.Map) Project(com.intellij.openapi.project.Project) PsiFile(com.intellij.psi.PsiFile) Logger(com.intellij.openapi.diagnostic.Logger) LinkedList(java.util.LinkedList) RangeMarker(com.intellij.openapi.editor.RangeMarker) AnalysisCallback(org.sonarlint.intellij.analysis.AnalysisCallback) Collection(java.util.Collection) Set(java.util.Set) Collectors(java.util.stream.Collectors) AbstractProjectComponent(com.intellij.openapi.components.AbstractProjectComponent) SonarLintConsole(org.sonarlint.intellij.ui.SonarLintConsole) ProgressIndicator(com.intellij.openapi.progress.ProgressIndicator) List(java.util.List) TriggerType(org.sonarlint.intellij.trigger.TriggerType) Issue(org.sonarsource.sonarlint.core.client.api.common.analysis.Issue) SonarLintJob(org.sonarlint.intellij.analysis.SonarLintJob) Collections(java.util.Collections) ServerIssueUpdater(org.sonarlint.intellij.core.ServerIssueUpdater) AccessToken(com.intellij.openapi.application.AccessToken) Collection(java.util.Collection) AnalysisCallback(org.sonarlint.intellij.analysis.AnalysisCallback) HashMap(java.util.HashMap) Map(java.util.Map)

Example 97 with AccessToken

use of com.intellij.openapi.application.AccessToken in project moe-ide-integration by multi-os-engine.

the class ModuleUtils method setOption.

public static void setOption(Module module, String key, String value) {
    if ((module == null) || (value == null) || (key == null)) {
        return;
    }
    final Module m = module;
    final String k = key, v = value;
    runInDispatchedThread(new Runnable() {

        @Override
        public void run() {
            AccessToken token = WriteAction.start();
            try {
                m.setOption(k, v);
            } finally {
                token.finish();
            }
        }
    });
}
Also used : AccessToken(com.intellij.openapi.application.AccessToken) DisposeAwareRunnable(com.intellij.util.DisposeAwareRunnable) Module(com.intellij.openapi.module.Module)

Aggregations

AccessToken (com.intellij.openapi.application.AccessToken)97 VirtualFile (com.intellij.openapi.vfs.VirtualFile)28 Nullable (org.jetbrains.annotations.Nullable)15 Module (com.intellij.openapi.module.Module)13 Project (com.intellij.openapi.project.Project)12 Document (com.intellij.openapi.editor.Document)10 GitRepository (git4idea.repo.GitRepository)9 ArrayList (java.util.ArrayList)9 PsiElement (com.intellij.psi.PsiElement)7 NotNull (org.jetbrains.annotations.NotNull)6 File (java.io.File)5 IOException (java.io.IOException)5 ModifiableRootModel (com.intellij.openapi.roots.ModifiableRootModel)4 PsiFile (com.intellij.psi.PsiFile)4 List (java.util.List)4 HgCommandResult (org.zmlx.hg4idea.execution.HgCommandResult)4 ReadAction (com.intellij.openapi.application.ReadAction)3 CompileContext (com.intellij.openapi.compiler.CompileContext)3 CompileTask (com.intellij.openapi.compiler.CompileTask)3 ProgressIndicator (com.intellij.openapi.progress.ProgressIndicator)3