mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-14 06:14:10 +02:00
Fixed line paste indent issues
This commit is contained in:
parent
a700a6bbd2
commit
2a57d9d447
2 changed files with 36 additions and 24 deletions
|
@ -2054,6 +2054,8 @@ namespace Beefy.widgets
|
||||||
CursorLineAndColumn = .(origPosition.mLine, 0);
|
CursorLineAndColumn = .(origPosition.mLine, 0);
|
||||||
var lineStartPosition = CursorLineAndColumn;
|
var lineStartPosition = CursorLineAndColumn;
|
||||||
InsertAtCursor("\n");
|
InsertAtCursor("\n");
|
||||||
|
if (var insertTextAction = mData.mUndoManager.GetLastUndoAction() as InsertTextAction)
|
||||||
|
insertTextAction.mVirtualCursorPos = origPosition;
|
||||||
CursorLineAndColumn = lineStartPosition;
|
CursorLineAndColumn = lineStartPosition;
|
||||||
CursorToLineStart(false);
|
CursorToLineStart(false);
|
||||||
|
|
||||||
|
@ -2071,7 +2073,7 @@ namespace Beefy.widgets
|
||||||
}
|
}
|
||||||
|
|
||||||
PasteText(text);
|
PasteText(text);
|
||||||
CursorLineAndColumn = origPosition;
|
CursorLineAndColumn = .(origPosition.mLine + 1, origPosition.mColumn);
|
||||||
mData.mUndoManager.Add(undoBatchStart.mBatchEnd);
|
mData.mUndoManager.Add(undoBatchStart.mBatchEnd);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -1230,30 +1230,7 @@ namespace IDE.ui
|
||||||
|
|
||||||
var lineAndColumn = CursorLineAndColumn;
|
var lineAndColumn = CursorLineAndColumn;
|
||||||
var lineText = scope String();
|
var lineText = scope String();
|
||||||
if (HasSelection())
|
|
||||||
{
|
|
||||||
int startPos;
|
|
||||||
int endPos;
|
|
||||||
mSelection.Value.GetAsForwardSelect(out startPos, out endPos);
|
|
||||||
int line;
|
|
||||||
int lineChar;
|
|
||||||
GetLineCharAtIdx(startPos, out line, out lineChar);
|
|
||||||
lineAndColumn.mLine = (int32)line;
|
|
||||||
int column;
|
|
||||||
GetColumnAtLineChar(line, lineChar, out column);
|
|
||||||
lineAndColumn.mColumn = (int32)column;
|
|
||||||
|
|
||||||
int lineStart;
|
|
||||||
int lineEnd;
|
|
||||||
GetLinePosition(line, out lineStart, out lineEnd);
|
|
||||||
|
|
||||||
ExtractString(lineStart, startPos - lineStart, lineText);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GetLineText(lineAndColumn.mLine, lineText);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool startsWithNewline = (forceMatchIndent) && (str.StartsWith("\n"));
|
bool startsWithNewline = (forceMatchIndent) && (str.StartsWith("\n"));
|
||||||
bool isMultiline = str.Contains("\n");
|
bool isMultiline = str.Contains("\n");
|
||||||
|
|
||||||
|
@ -1264,6 +1241,39 @@ namespace IDE.ui
|
||||||
defer(stack) mData.mUndoManager.Add(undoBatchStart.mBatchEnd);
|
defer(stack) mData.mUndoManager.Add(undoBatchStart.mBatchEnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (HasSelection())
|
||||||
|
{
|
||||||
|
if (isMultiline)
|
||||||
|
{
|
||||||
|
DeleteSelection();
|
||||||
|
lineAndColumn = CursorLineAndColumn;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int startPos;
|
||||||
|
int endPos;
|
||||||
|
mSelection.Value.GetAsForwardSelect(out startPos, out endPos);
|
||||||
|
int line;
|
||||||
|
int lineChar;
|
||||||
|
GetLineCharAtIdx(startPos, out line, out lineChar);
|
||||||
|
lineAndColumn.mLine = (int32)line;
|
||||||
|
int column;
|
||||||
|
GetColumnAtLineChar(line, lineChar, out column);
|
||||||
|
lineAndColumn.mColumn = (int32)column;
|
||||||
|
|
||||||
|
int lineStart;
|
||||||
|
int lineEnd;
|
||||||
|
GetLinePosition(line, out lineStart, out lineEnd);
|
||||||
|
|
||||||
|
ExtractString(lineStart, startPos - lineStart, lineText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lineText.IsEmpty)
|
||||||
|
{
|
||||||
|
GetLineText(lineAndColumn.mLine, lineText);
|
||||||
|
}
|
||||||
|
|
||||||
if (startsWithNewline)
|
if (startsWithNewline)
|
||||||
{
|
{
|
||||||
CursorLineAndColumn = LineAndColumn(lineAndColumn.mLine, 0);
|
CursorLineAndColumn = LineAndColumn(lineAndColumn.mLine, 0);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue