From 863009f3291cd8889ee004e402640d37096dba01 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 28 Mar 2020 14:27:22 -0700 Subject: [PATCH] Added Clean Cmds --- IDE/src/Project.bf | 5 ++++ IDE/src/ui/ProjectProperties.bf | 2 ++ IDE/src/ui/SourceEditWidgetContent.bf | 33 +++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/IDE/src/Project.bf b/IDE/src/Project.bf index d8f3b2b8..6b5634cf 100644 --- a/IDE/src/Project.bf +++ b/IDE/src/Project.bf @@ -1039,6 +1039,8 @@ namespace IDE public List mPreBuildCmds = new List() ~ DeleteContainerAndItems!(_); [Reflect] public List mPostBuildCmds = new List() ~ DeleteContainerAndItems!(_); + [Reflect] + public List mCleanCmds = new List() ~ DeleteContainerAndItems!(_); } public class DebugOptions @@ -1157,6 +1159,7 @@ namespace IDE Set!(newOptions.mBuildOptions.mLinkDependencies, mBuildOptions.mLinkDependencies); Set!(newOptions.mBuildOptions.mPreBuildCmds, mBuildOptions.mPreBuildCmds); Set!(newOptions.mBuildOptions.mPostBuildCmds, mBuildOptions.mPostBuildCmds); + Set!(newOptions.mBuildOptions.mCleanCmds, mBuildOptions.mCleanCmds); Set!(newOptions.mBeefOptions.mPreprocessorMacros, mBeefOptions.mPreprocessorMacros); Set!(newOptions.mBeefOptions.mOptimizationLevel, mBeefOptions.mOptimizationLevel); @@ -1545,6 +1548,7 @@ namespace IDE WriteStrings("LinkDependencies", options.mBuildOptions.mLinkDependencies); WriteStrings("PreBuildCmds", options.mBuildOptions.mPreBuildCmds); WriteStrings("PostBuildCmds", options.mBuildOptions.mPostBuildCmds); + WriteStrings("CleanCmds", options.mBuildOptions.mCleanCmds); // DebugOptions data.ConditionalAdd("DebugCommand", options.mDebugOptions.mCommand, "$(TargetPath)"); @@ -1878,6 +1882,7 @@ namespace IDE ReadStrings("LinkDependencies", options.mBuildOptions.mLinkDependencies); ReadStrings("PreBuildCmds", options.mBuildOptions.mPreBuildCmds); ReadStrings("PostBuildCmds", options.mBuildOptions.mPostBuildCmds); + ReadStrings("CleanCmds", options.mBuildOptions.mCleanCmds); // DebugOptions data.GetString("DebugCommand", options.mDebugOptions.mCommand, "$(TargetPath)"); diff --git a/IDE/src/ui/ProjectProperties.bf b/IDE/src/ui/ProjectProperties.bf index 2b3d2446..5d322aee 100644 --- a/IDE/src/ui/ProjectProperties.bf +++ b/IDE/src/ui/ProjectProperties.bf @@ -683,6 +683,7 @@ namespace IDE.ui (listViewItem, propEntry) = AddPropertiesItem(root, "Link Dependencies", "mBuildOptions.mLinkDependencies"); (listViewItem, propEntry) = AddPropertiesItem(root, "Prebuild Commands", "mBuildOptions.mPreBuildCmds"); (listViewItem, propEntry) = AddPropertiesItem(root, "Postbuild Commands", "mBuildOptions.mPostBuildCmds"); + (listViewItem, propEntry) = AddPropertiesItem(root, "Clean Commands", "mBuildOptions.mCleanCmds"); (listViewItem, propEntry) = AddPropertiesItem(root, "Build Commands on Compile", "mBuildOptions.mBuildCommandsOnCompile"); (listViewItem, propEntry) = AddPropertiesItem(root, "Build Commands on Run", "mBuildOptions.mBuildCommandsOnRun"); } @@ -943,6 +944,7 @@ namespace IDE.ui AddPropertiesItem(root, "Build Commands", "mBuildOptions.mPostBuildCmds"); AddPropertiesItem(root, "Build Commands on Compile", "mBuildOptions.mBuildCommandsOnCompile"); AddPropertiesItem(root, "Build Commands on Run", "mBuildOptions.mBuildCommandsOnRun"); + AddPropertiesItem(root, "Clean Commands", "mBuildOptions.mCleanCmds"); //parent.MakeParent(); root.Open(true, true); } diff --git a/IDE/src/ui/SourceEditWidgetContent.bf b/IDE/src/ui/SourceEditWidgetContent.bf index 06ba21fd..d5e53dcc 100644 --- a/IDE/src/ui/SourceEditWidgetContent.bf +++ b/IDE/src/ui/SourceEditWidgetContent.bf @@ -3520,6 +3520,39 @@ namespace IDE.ui return hasFocus ? mHiliteColor : mUnfocusedHiliteColor; } + public override void LinePullup(int textPos) + { + bool isInComment = false; + if (textPos > 0) + { + if (mData.mText[textPos - 1].mDisplayTypeId == (uint8)BfSourceElementType.Comment) + isInComment = true; + } + + if (!isInComment) + return; + + int checkPos = textPos; + if (mData.SafeGetChar(checkPos) == '*') + checkPos++; + else + { + while (checkPos < mData.mTextLength) + { + if (mData.mText[checkPos].mChar != '/') + break; + checkPos++; + } + } + + int32 deleteLen = (int32)(checkPos - textPos); + if (deleteLen > 0) + { + mData.mUndoManager.Add(new DeleteCharAction(this, 0, deleteLen)); + PhysDeleteChars(0, deleteLen); + } + } + public override void Draw(Graphics g) { base.Draw(g);