Skip to content

Commit 7492710

Browse files
author
Roberto De Ioris
committed
report line and column number in python editor
1 parent e55bca6 commit 7492710

4 files changed

Lines changed: 40 additions & 3 deletions

File tree

Source/PythonEditor/Private/SPythonEditableText.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
void SPythonEditableText::Construct(const FArguments& InArgs)
88
{
9-
109
SMultiLineEditableText::Construct(
1110
SMultiLineEditableText::FArguments()
1211
.Font(FPythonEditorStyle::Get().GetWidgetStyle<FTextBlockStyle>("TextEditor.NormalText").Font)
@@ -18,7 +17,8 @@ void SPythonEditableText::Construct(const FArguments& InArgs)
1817
.HScrollBar(InArgs._HScrollBar)
1918
.VScrollBar(InArgs._VScrollBar)
2019
.OnTextChanged(InArgs._OnTextChanged)
21-
);
20+
.OnCursorMoved(this, &SPythonEditableText::OnCursorMoved)
21+
);
2222
OnExecuted = InArgs._OnExecuted;
2323
}
2424

@@ -92,3 +92,9 @@ FReply SPythonEditableText::OnKeyDown(const FGeometry& MyGeometry, const FKeyEve
9292
return Reply;
9393
}
9494

95+
void SPythonEditableText::GetLineAndColumn(int32 & Line, int32 & Column)
96+
{
97+
Line = CurrentLine;
98+
Column = CurrentColumn;
99+
}
100+

Source/PythonEditor/Private/SPythonEditableText.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,19 @@ class SPythonEditableText : public SMultiLineEditableText
2929

3030
void Construct( const FArguments& InArgs );
3131

32+
void GetLineAndColumn(int32 & Line, int32 & Column);
33+
34+
void OnCursorMoved(const FTextLocation & Location) {
35+
CurrentLine = Location.GetLineIndex();
36+
CurrentColumn = Location.GetOffset();
37+
}
38+
3239
private:
3340
virtual FReply OnKeyChar(const FGeometry& MyGeometry,const FCharacterEvent& InCharacterEvent) override;
3441
virtual FReply OnKeyDown(const FGeometry& MyGeometry, const FKeyEvent& InKeyEvent) override;
3542

3643
FOnExecuted OnExecuted;
44+
45+
int32 CurrentLine;
46+
int32 CurrentColumn;
3747
};

Source/PythonEditor/Private/SPythonEditor.cpp

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ void SPythonEditor::Construct(const FArguments& InArgs, UPythonProjectItem* InPy
4040
[
4141
SNew(SGridPanel)
4242
.FillColumn(0, 1.0f)
43-
.FillRow(0, 1.0f)
43+
.FillRow(0, 2.0f)
4444
+SGridPanel::Slot(0, 0)
4545
[
4646
SAssignNew(PythonEditableText, SPythonEditableText)
@@ -59,7 +59,16 @@ void SPythonEditor::Construct(const FArguments& InArgs, UPythonProjectItem* InPy
5959
[
6060
HorizontalScrollbar.ToSharedRef()
6161
]
62+
+ SGridPanel::Slot(0, 2)
63+
[
64+
SNew(SBorder).HAlign(EHorizontalAlignment::HAlign_Right)
65+
[
66+
SNew(STextBlock)
67+
.Text(this, &SPythonEditor::GetLineAndColumn)
68+
]
69+
]
6270
]
71+
6372
];
6473
}
6574

@@ -119,4 +128,15 @@ void SPythonEditor::GotoLineAndColumn(int32 LineNumber, int32 ColumnNumber)
119128
PythonEditableText->ScrollTo(Location);
120129
}
121130

131+
FText SPythonEditor::GetLineAndColumn() const
132+
{
133+
int32 Line;
134+
int32 Column;
135+
PythonEditableText->GetLineAndColumn(Line, Column);
136+
137+
FString LineAndColumn = FString::Printf(TEXT("Line: %d Column: %d"), Line, Column);
138+
139+
return FText::FromString(LineAndColumn);
140+
}
141+
122142
#undef LOCTEXT_NAMESPACE

Source/PythonEditor/Private/SPythonEditor.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class SPythonEditor : public SCompoundWidget
2222

2323
private:
2424
void OnTextChanged(const FText& NewText);
25+
FText GetLineAndColumn() const;
2526

2627
protected:
2728
class UPythonProjectItem* PythonProjectItem;

0 commit comments

Comments
 (0)