Browse Source

Added Clean Cmds

Brian Fiete 5 năm trước cách đây
mục cha
commit
863009f329

+ 5 - 0
IDE/src/Project.bf

@@ -1039,6 +1039,8 @@ namespace IDE
 			public List<String> mPreBuildCmds = new List<String>() ~ DeleteContainerAndItems!(_);
 			[Reflect]
 			public List<String> mPostBuildCmds = new List<String>() ~ DeleteContainerAndItems!(_);
+			[Reflect]
+			public List<String> mCleanCmds = new List<String>() ~ 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)");

+ 2 - 0
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);
 		}

+ 33 - 0
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);