From acc2e5b14c3ecc56703233631e18cdaa2a1e9c7d Mon Sep 17 00:00:00 2001 From: unknown <81806010+marsej@users.noreply.github.com> Date: Tue, 21 Dec 2021 10:55:40 +0200 Subject: [PATCH 1/2] Add option for configuring mMaxCol with mWrapCommentsAt --- IDE/src/Compiler/BfParser.bf | 4 ++-- IDE/src/Settings.bf | 3 +++ IDE/src/ui/SettingsDialog.bf | 2 +- IDEHelper/Compiler/BfParser.cpp | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/IDE/src/Compiler/BfParser.bf b/IDE/src/Compiler/BfParser.bf index 34a00e27..8505e5f7 100644 --- a/IDE/src/Compiler/BfParser.bf +++ b/IDE/src/Compiler/BfParser.bf @@ -120,7 +120,7 @@ namespace IDE.Compiler static extern bool BfParser_Reduce(void* bfParser, void* bfPassInstance); [CallingConvention(.Stdcall), CLink] - static extern char8* BfParser_Format(void* bfParser, int32 formatEnd, int32 formatStart, out int32* outCharMapping); + static extern char8* BfParser_Format(void* bfParser, int32 formatEnd, int32 formatStart, out int32* outCharMapping, int32 maxCol); [CallingConvention(.Stdcall), CLink] static extern char8* BfParser_GetDebugExpressionAt(void* bfParser, int32 cursorIdx); @@ -207,7 +207,7 @@ namespace IDE.Compiler public void Reformat(int formatStart, int formatEnd, out int32[] char8Mapping, String str) { int32* char8MappingPtr; - var stringPtr = BfParser_Format(mNativeBfParser, (int32)formatStart, (int32)formatEnd, out char8MappingPtr); + var stringPtr = BfParser_Format(mNativeBfParser, (int32)formatStart, (int32)formatEnd, out char8MappingPtr, gApp.mSettings.mEditorSettings.mWrapCommentsAt); str.Append(stringPtr); char8Mapping = new int32[str.Length]; diff --git a/IDE/src/Settings.bf b/IDE/src/Settings.bf index 6065643e..712f6d45 100644 --- a/IDE/src/Settings.bf +++ b/IDE/src/Settings.bf @@ -625,6 +625,7 @@ namespace IDE public FileRecoveryKind mEnableFileRecovery = .Yes; public bool mFormatOnSave = false; public bool mSyncWithWorkspacePanel = false; + public int32 mWrapCommentsAt = 0; public void Serialize(StructuredData sd) { @@ -650,6 +651,7 @@ namespace IDE sd.Add("EnableFileRecovery", mEnableFileRecovery); sd.Add("FormatOnSave", mFormatOnSave); sd.Add("SyncWithWorkspacePanel", mSyncWithWorkspacePanel); + sd.Add("WrapCommentsAt", mWrapCommentsAt); } public void Deserialize(StructuredData sd) @@ -679,6 +681,7 @@ namespace IDE sd.GetEnum("EnableFileRecovery", ref mEnableFileRecovery); sd.Get("FormatOnSave", ref mFormatOnSave); sd.Get("SyncWithWorkspacePanel", ref mSyncWithWorkspacePanel); + sd.Get("WrapCommentsAt", ref mWrapCommentsAt); } public void SetDefaults() diff --git a/IDE/src/ui/SettingsDialog.bf b/IDE/src/ui/SettingsDialog.bf index 38cf60b3..3cd02120 100644 --- a/IDE/src/ui/SettingsDialog.bf +++ b/IDE/src/ui/SettingsDialog.bf @@ -126,7 +126,7 @@ namespace IDE.ui AddPropertiesItem(category, "Enable File Recovery", "mEnableFileRecovery"); AddPropertiesItem(category, "Format on Save", "mFormatOnSave"); AddPropertiesItem(category, "Sync with Workspace Panel", "mSyncWithWorkspacePanel"); - + AddPropertiesItem(category, "Wrap comments at length (0 = none)", "mWrapCommentsAt"); category.Open(true, true); } diff --git a/IDEHelper/Compiler/BfParser.cpp b/IDEHelper/Compiler/BfParser.cpp index e96ba38f..060fe028 100644 --- a/IDEHelper/Compiler/BfParser.cpp +++ b/IDEHelper/Compiler/BfParser.cpp @@ -3800,13 +3800,14 @@ BF_EXPORT bool BF_CALLTYPE BfParser_Reduce(BfParser* bfParser, BfPassInstance* b } static Array gCharMapping; -BF_EXPORT const char* BF_CALLTYPE BfParser_Format(BfParser* bfParser, int formatStart, int formatEnd, int** outCharMapping) +BF_EXPORT const char* BF_CALLTYPE BfParser_Format(BfParser* bfParser, int formatStart, int formatEnd, int** outCharMapping, int maxCol) { BP_ZONE("BfParser_Reduce"); String& outString = *gTLStrReturn.Get(); outString.clear(); gCharMapping.Clear(); BfPrinter bfPrinter(bfParser->mRootNode, bfParser->mSidechannelRootNode, bfParser->mErrorRootNode); + bfPrinter.mMaxCol = maxCol; bfPrinter.mFormatStart = formatStart; bfPrinter.mFormatEnd = formatEnd; bfPrinter.mCharMapping = &gCharMapping; From 3a25b8385fbe43efcd40fd372f498d8e97f9a984 Mon Sep 17 00:00:00 2001 From: unknown <81806010+marsej@users.noreply.github.com> Date: Tue, 21 Dec 2021 11:12:32 +0200 Subject: [PATCH 2/2] minor fix --- IDE/src/Compiler/BfParser.bf | 7 ++++--- IDE/src/ui/SettingsDialog.bf | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/IDE/src/Compiler/BfParser.bf b/IDE/src/Compiler/BfParser.bf index 8505e5f7..dfb0d967 100644 --- a/IDE/src/Compiler/BfParser.bf +++ b/IDE/src/Compiler/BfParser.bf @@ -120,7 +120,7 @@ namespace IDE.Compiler static extern bool BfParser_Reduce(void* bfParser, void* bfPassInstance); [CallingConvention(.Stdcall), CLink] - static extern char8* BfParser_Format(void* bfParser, int32 formatEnd, int32 formatStart, out int32* outCharMapping, int32 maxCol); + static extern char8* BfParser_Format(void* bfParser, int32 formatEnd, int32 formatStart, out int32* outCharMapping, int32 maxCol); [CallingConvention(.Stdcall), CLink] static extern char8* BfParser_GetDebugExpressionAt(void* bfParser, int32 cursorIdx); @@ -207,8 +207,9 @@ namespace IDE.Compiler public void Reformat(int formatStart, int formatEnd, out int32[] char8Mapping, String str) { int32* char8MappingPtr; - var stringPtr = BfParser_Format(mNativeBfParser, (int32)formatStart, (int32)formatEnd, out char8MappingPtr, gApp.mSettings.mEditorSettings.mWrapCommentsAt); - str.Append(stringPtr); + var maxCol = gApp.mSettings.mEditorSettings.mWrapCommentsAt; + var stringPtr = BfParser_Format(mNativeBfParser, (int32)formatStart, (int32)formatEnd, out char8MappingPtr, maxCol); + str.Append(stringPtr); char8Mapping = new int32[str.Length]; for (int32 i = 0; i < char8Mapping.Count; i++) diff --git a/IDE/src/ui/SettingsDialog.bf b/IDE/src/ui/SettingsDialog.bf index 3cd02120..f4f305b5 100644 --- a/IDE/src/ui/SettingsDialog.bf +++ b/IDE/src/ui/SettingsDialog.bf @@ -127,6 +127,7 @@ namespace IDE.ui AddPropertiesItem(category, "Format on Save", "mFormatOnSave"); AddPropertiesItem(category, "Sync with Workspace Panel", "mSyncWithWorkspacePanel"); AddPropertiesItem(category, "Wrap comments at length (0 = none)", "mWrapCommentsAt"); + category.Open(true, true); }