1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 20:42:21 +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

@ -1324,7 +1324,7 @@ namespace IDE
#endif
if (mWakaTime != null)
mWakaTime.QueueFile(path, projectSource.mProject.mProjectName, true);
mWakaTime.QueueFile(path, projectSource.mProject.mProjectName, true);
}
}
return true;
@ -1489,6 +1489,11 @@ namespace IDE
{
if ((sourceViewPanel.HasUnsavedChanges()) || (forcePath != null))
{
if (gApp.mSettings.mEditorSettings.mFormatOnSave)
{
sourceViewPanel.ReformatDocument(true);
}
if ((forcePath == null) && (sourceViewPanel.mFilePath == null))
{
return SaveFileAs(sourceViewPanel);

View file

@ -598,6 +598,7 @@ namespace IDE
public bool mShowLineNumbers = true;
public bool mFreeCursorMovement;
public FileRecoveryKind mEnableFileRecovery = .Yes;
public bool mFormatOnSave = false;
public void Serialize(StructuredData sd)
{
@ -621,6 +622,7 @@ namespace IDE
sd.Add("ShowLineNumbers", mShowLineNumbers);
sd.Add("FreeCursorMovement", mFreeCursorMovement);
sd.Add("EnableFileRecovery", mEnableFileRecovery);
sd.Add("FormatOnSave", mFormatOnSave);
}
public void Deserialize(StructuredData sd)
@ -648,6 +650,7 @@ namespace IDE
sd.Get("ShowLineNumbers", ref mShowLineNumbers);
sd.Get("FreeCursorMovement", ref mFreeCursorMovement);
sd.GetEnum<FileRecoveryKind>("EnableFileRecovery", ref mEnableFileRecovery);
sd.Get("FormatOnSave", ref mFormatOnSave);
}
public void SetDefaults()

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);