git: enable progress output foldings for vcs console only
[idea/community.git] / platform / execution-impl / src / com / intellij / execution / ConsoleFolding.java
1 // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package com.intellij.execution;
3
4 import com.intellij.execution.ui.ConsoleView;
5 import com.intellij.openapi.extensions.ExtensionPointName;
6 import com.intellij.openapi.project.Project;
7 import org.jetbrains.annotations.NotNull;
8 import org.jetbrains.annotations.Nullable;
9
10 import java.util.List;
11
12 /**
13  * @author peter
14  */
15 public abstract class ConsoleFolding {
16   public static final ExtensionPointName<ConsoleFolding> EP_NAME = ExtensionPointName.create("com.intellij.console.folding");
17
18   /**
19    * @param project current project
20    * @param line    line to check whether it should be folded or not
21    * @return {@code true} if line should be folded, {@code false} if not
22    */
23   public boolean shouldFoldLine(@NotNull Project project, @NotNull String line) {
24     return shouldFoldLine(line);
25   }
26
27   /**
28    * Return true if folded lines should not have dedicated line and should be attached to
29    * the end of the line above instead
30    */
31   public boolean shouldBeAttachedToThePreviousLine() {
32     return true;
33   }
34
35   /**
36    * @param project current project
37    * @param lines   lines to be folded
38    * @return placeholder for lines or {@code null} if these lines should not be folded
39    */
40   @Nullable
41   public String getPlaceholderText(@NotNull Project project, @NotNull List<String> lines) {
42     return getPlaceholderText(lines);
43   }
44
45   public boolean isEnabledForConsole(@NotNull ConsoleView consoleView) {
46     return true;
47   }
48
49   /**
50    * @param line to check if should be folded
51    * @return {@code true} if line should be folded, {@code false} if not
52    * @deprecated since 2018.1. Use {@link #shouldFoldLine(Project, String)} instead.
53    */
54   @Deprecated
55   public boolean shouldFoldLine(@SuppressWarnings("unused") @NotNull String line) { return false; }
56
57   /**
58    * @param lines to fold
59    * @return placeholder for lines
60    * @deprecated since 2018.1. Use {@link #getPlaceholderText(Project, List)} instead.
61    */
62   @Deprecated
63   @Nullable
64   public String getPlaceholderText(@SuppressWarnings("unused") @NotNull List<String> lines) { return null; }
65 }