mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-76185 Macro: $SelectionStartColumn$ and $SelectionEndColumn$ external tools macros count tabs as expanded spaces
This commit is contained in:
@@ -26,6 +26,6 @@ public final class ColumnNumberMacro extends EditorMacro {
|
||||
|
||||
@Override
|
||||
protected String expand(Editor editor) {
|
||||
return String.valueOf(editor.getCaretModel().getLogicalPosition().column + 1);
|
||||
return getColumnNumber(editor, editor.getCaretModel().getLogicalPosition());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,8 @@ package com.intellij.ide.macro;
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.LogicalPosition;
|
||||
import com.intellij.openapi.editor.ex.util.EditorUtil;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.wm.ToolWindowManager;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -57,6 +59,16 @@ public abstract class EditorMacro extends Macro {
|
||||
return null;
|
||||
}
|
||||
|
||||
protected static String getColumnNumber(Editor editor, LogicalPosition pos) {
|
||||
if (EditorUtil.inVirtualSpace(editor, pos)) {
|
||||
return String.valueOf(pos.column + 1);
|
||||
}
|
||||
|
||||
int offset = editor.logicalPositionToOffset(pos);
|
||||
int lineStart = editor.getDocument().getLineStartOffset(editor.getDocument().getLineNumber(offset));
|
||||
return String.valueOf(offset - lineStart + 1);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected abstract String expand(Editor editor);
|
||||
}
|
||||
|
||||
@@ -32,6 +32,6 @@ public class SelectionEndColumnMacro extends EditorMacro {
|
||||
if (selectionEndPosition == null) {
|
||||
return null;
|
||||
}
|
||||
return String.valueOf(editor.visualToLogicalPosition(selectionEndPosition).column + 1);
|
||||
return getColumnNumber(editor, editor.visualToLogicalPosition(selectionEndPosition));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,6 @@ public class SelectionStartColumnMacro extends EditorMacro {
|
||||
if (selectionStartPosition == null) {
|
||||
return null;
|
||||
}
|
||||
return String.valueOf(editor.visualToLogicalPosition(selectionStartPosition).column + 1);
|
||||
return getColumnNumber(editor, editor.visualToLogicalPosition(selectionStartPosition));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user