1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-29 21:05:59 +02:00

Format on Save

This commit is contained in:
Brian Fiete 2020-11-10 06:03:50 -08:00
parent f41365a58e
commit e34dee7438
5 changed files with 18 additions and 3 deletions

View file

@ -123,6 +123,7 @@ namespace IDE.ui
AddPropertiesItem(category, "Show Line Numbers", "mShowLineNumbers");
AddPropertiesItem(category, "Free Cursor Movement", "mFreeCursorMovement");
AddPropertiesItem(category, "Enable File Recovery", "mEnableFileRecovery");
AddPropertiesItem(category, "Format on Save", "mFormatOnSave");
category.Open(true, true);
}

View file

@ -21,6 +21,7 @@ namespace IDE.ui
UndoBatchStart mUndoBatchStart;
PersistentTextPosition mTrackedCursorPosition;
EditWidgetContent.LineAndColumn? mVirtualCursorPos;
PersistentTextPosition mSelStartPostion;
PersistentTextPosition mSelEndPostion;
@ -35,6 +36,7 @@ namespace IDE.ui
editWidgetContent.mData.mUndoManager.Add(firstUndoAction);
editWidgetContent.mData.mUndoManager.Add(new EditWidgetContent.SetCursorAction(editWidgetContent));
mVirtualCursorPos = editWidgetContent.mVirtualCursorPos;
mTrackedCursorPosition = new PersistentTextPosition((int32)editWidgetContent.CursorTextPos);
editWidgetContent.PersistentTextPositions.Add(mTrackedCursorPosition);
@ -54,6 +56,10 @@ namespace IDE.ui
var editWidgetContent = (SourceEditWidgetContent)mEditWidget.Content;
editWidgetContent.CursorTextPos = mTrackedCursorPosition.mIndex;
editWidgetContent.PersistentTextPositions.Remove(mTrackedCursorPosition);
if ((mVirtualCursorPos != null) && (editWidgetContent.CursorLineAndColumn.mColumn == 0))
editWidgetContent.CursorLineAndColumn = .(editWidgetContent.CursorLineAndColumn.mLine, mVirtualCursorPos.Value.mColumn);
delete mTrackedCursorPosition;
if (mSelStartPostion != null)

View file

@ -4389,7 +4389,7 @@ namespace IDE.ui
base.FindNext(dir);
}
public void ReformatDocument()
public void ReformatDocument(bool ignoreSelection = false)
{
if (!mIsBeefSource)
return;
@ -4442,7 +4442,7 @@ namespace IDE.ui
}
}
if (mEditWidget.Content.HasSelection())
if ((mEditWidget.Content.HasSelection()) && (!ignoreSelection))
parser.ReformatInto(mEditWidget, mEditWidget.Content.mSelection.Value.MinPos, mEditWidget.Content.mSelection.Value.MaxPos);
else
parser.ReformatInto(mEditWidget, 0, text.Length);