Only Select Line (not complete)
This commit is contained in:
@@ -2,9 +2,9 @@ package io.github.linwancen.plugin.show;
|
||||
|
||||
import com.intellij.json.JsonFileType;
|
||||
import com.intellij.json.json5.Json5FileType;
|
||||
import com.intellij.openapi.editor.EditorLinePainter;
|
||||
import com.intellij.openapi.editor.LineExtensionInfo;
|
||||
import com.intellij.openapi.editor.*;
|
||||
import com.intellij.openapi.editor.markup.TextAttributes;
|
||||
import com.intellij.openapi.fileEditor.FileEditorManager;
|
||||
import com.intellij.openapi.project.DumbService;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -13,6 +13,7 @@ import io.github.linwancen.plugin.show.bean.LineInfo;
|
||||
import io.github.linwancen.plugin.show.ext.LineExt;
|
||||
import io.github.linwancen.plugin.show.lang.base.BaseLangDoc;
|
||||
import io.github.linwancen.plugin.show.settings.AppSettingsState;
|
||||
import io.github.linwancen.plugin.show.settings.GlobalSettingsState;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.slf4j.Logger;
|
||||
@@ -44,6 +45,24 @@ public class LineEnd extends EditorLinePainter {
|
||||
if (!settings.showLineEndComment) {
|
||||
return null;
|
||||
}
|
||||
@NotNull GlobalSettingsState globalSettingsState = GlobalSettingsState.getInstance();
|
||||
if (globalSettingsState.onlySelectLine) {
|
||||
Editor editor = FileEditorManager.getInstance(project).getSelectedTextEditor();
|
||||
if (editor != null) {
|
||||
SelectionModel select = editor.getSelectionModel();
|
||||
VisualPosition start = select.getSelectionStartPosition();
|
||||
int lineNum = lineNumber + 1;
|
||||
if (start != null) {
|
||||
if (lineNum < start.getLine()) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
VisualPosition end = select.getSelectionEndPosition();
|
||||
if (end != null && lineNum > end.getLine()) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (DumbService.isDumb(project)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,8 @@ public abstract class AbstractSettingsComponent {
|
||||
|
||||
protected final JBTextField lineEndCount = new JBTextField();
|
||||
|
||||
private final JBCheckBox onlySelectLine = new JBCheckBox(ShowBundle.message("only.select.line"));
|
||||
|
||||
private final JBTextField lineInclude = new JBTextField();
|
||||
private final JBTextField lineExclude = new JBTextField();
|
||||
|
||||
@@ -36,6 +38,8 @@ public abstract class AbstractSettingsComponent {
|
||||
@NotNull
|
||||
protected JPanel lineEndPanel() {
|
||||
FormBuilder builder = FormBuilder.createFormBuilder()
|
||||
// .addComponent(onlySelectLine)
|
||||
// .addSeparator()
|
||||
.addComponent(new JBLabel(ShowBundle.message("regexp.tip")))
|
||||
.addSeparator()
|
||||
.addLabeledComponent(new JBLabel(ShowBundle.message("sign.include.regexp")), lineInclude, 1, true)
|
||||
@@ -69,6 +73,14 @@ public abstract class AbstractSettingsComponent {
|
||||
lineEndCount.setText(newText);
|
||||
}
|
||||
|
||||
public boolean getOnlySelectLine() {
|
||||
return onlySelectLine.isSelected();
|
||||
}
|
||||
|
||||
public void setOnlySelectLine(boolean newStatus) {
|
||||
onlySelectLine.setSelected(newStatus);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getLineInclude() {
|
||||
return lineInclude.getText();
|
||||
|
||||
@@ -9,6 +9,7 @@ public class AbstractSettingsConfigurable {
|
||||
static boolean isModified(@NotNull AbstractSettingsState settings, @NotNull AbstractSettingsComponent component,
|
||||
boolean modified) {
|
||||
modified |= !component.getLineEndCount().equals(String.valueOf(settings.lineEndCount));
|
||||
modified |= component.getOnlySelectLine() != settings.onlySelectLine;
|
||||
modified |= !component.getLineInclude().equals(settings.getLineInclude());
|
||||
modified |= !component.getLineExclude().equals(settings.getLineExclude());
|
||||
modified |= !component.getDocInclude().equals(settings.getDocInclude());
|
||||
@@ -26,6 +27,7 @@ public class AbstractSettingsConfigurable {
|
||||
} catch (NumberFormatException e) {
|
||||
component.setLineEndCount(String.valueOf(settings.lineEndCount));
|
||||
}
|
||||
settings.onlySelectLine = component.getOnlySelectLine();
|
||||
settings.setLineInclude(component.getLineInclude());
|
||||
settings.setLineExclude(component.getLineExclude());
|
||||
settings.setDocInclude(component.getDocInclude());
|
||||
@@ -38,6 +40,7 @@ public class AbstractSettingsConfigurable {
|
||||
|
||||
static void reset(@NotNull AbstractSettingsState settings, @NotNull AbstractSettingsComponent component) {
|
||||
component.setLineEndCount(String.valueOf(settings.lineEndCount));
|
||||
component.setOnlySelectLine(settings.onlySelectLine);
|
||||
component.setLineInclude(settings.getLineInclude());
|
||||
component.setLineExclude(settings.getLineExclude());
|
||||
component.setDocInclude(settings.getDocInclude());
|
||||
|
||||
@@ -11,6 +11,7 @@ public abstract class AbstractSettingsState {
|
||||
|
||||
public int lineEndCount = 2;
|
||||
public int lineEndLen = 0;
|
||||
public boolean onlySelectLine = false;
|
||||
@NotNull
|
||||
public transient Pattern lineInclude = Pattern.compile("");
|
||||
@NotNull
|
||||
|
||||
@@ -3,6 +3,7 @@ reset.default=Reset default
|
||||
|
||||
show=Show
|
||||
show.line.end.comment=Show line end comment
|
||||
only.select.line=Only Select Line
|
||||
show.tree.comment=Show tree comment
|
||||
|
||||
compact=support compact
|
||||
|
||||
@@ -3,6 +3,7 @@ reset.default=\u6062\u590D\u9ED8\u8BA4
|
||||
|
||||
show=\u663E\u793A
|
||||
show.tree.comment=\u663E\u793A\u6587\u4EF6\u6811\u6CE8\u91CA
|
||||
only.select.line=\u53EA\u663E\u793A\u9009\u62E9\u884C
|
||||
show.line.end.comment=\u663E\u793A\u884C\u672B\u6CE8\u91CA
|
||||
|
||||
compact=\u652F\u6301\u538B\u7F29\u7A7A\u7684\u4E2D\u95F4\u5305
|
||||
|
||||
Reference in New Issue
Block a user