1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-14 22:34:09 +02:00

Added version constant

This commit is contained in:
Brian Fiete 2020-04-30 10:34:37 -07:00
parent 679f54639e
commit 3ebe00d59a
4 changed files with 97 additions and 39 deletions

View file

@ -7,7 +7,7 @@ StartupObject = "BeefBuild.Program"
[Platform.Windows] [Platform.Windows]
Description = "BeefBuild" Description = "BeefBuild"
FileVersion = "0.42.3" FileVersion = "0.42.4"
[Configs.Debug.Win32] [Configs.Debug.Win32]
TargetName = "" TargetName = ""

View file

@ -37,7 +37,7 @@ namespace BeefBuild
mApp.ParseCommandLine(commandLine); mApp.ParseCommandLine(commandLine);
if (mApp.mVerb == .GetVersion) if (mApp.mVerb == .GetVersion)
{ {
Console.WriteLine("BeefBuild {}", mApp.GetVersionInfo(var exeTime).FileVersion); Console.WriteLine("BeefBuild {}", IDE.IDEApp.cVersion);
} }
else else
{ {

View file

@ -13,7 +13,7 @@ Description = "Beef IDE"
Company = "BeefyTech LLC" Company = "BeefyTech LLC"
Product = "Beef IDE" Product = "Beef IDE"
Copyright = "Copyright 2019 BeefyTech" Copyright = "Copyright 2019 BeefyTech"
FileVersion = "0.42.3" FileVersion = "0.42.4"
ProductVersion = "0000000000000000" ProductVersion = "0000000000000000"
[Configs.Debug.Win32] [Configs.Debug.Win32]
@ -24,7 +24,7 @@ OtherLinkFlags = ""
TargetDirectory = "$(WorkspaceDir)/dist" TargetDirectory = "$(WorkspaceDir)/dist"
TargetName = "BeefIDE_d" TargetName = "BeefIDE_d"
OtherLinkFlags = "$(LinkFlags) Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib IDEHelper64_d.lib" OtherLinkFlags = "$(LinkFlags) Comdlg32.lib kernel32.lib user32.lib advapi32.lib shell32.lib IDEHelper64_d.lib"
DebugCommandArguments = "-proddir=C:\\Beef\\BeefBuild" DebugCommandArguments = "-proddir=E:\\_Beef\\TestAPp"
DebugWorkingDirectory = "c:\\Beef" DebugWorkingDirectory = "c:\\Beef"
EnvironmentVars = ["_NO_DEBUG_HEAP=1"] EnvironmentVars = ["_NO_DEBUG_HEAP=1"]

View file

@ -100,6 +100,7 @@ namespace IDE
public class IDEApp : BFApp public class IDEApp : BFApp
{ {
public static String sRTVersionStr = "042"; public static String sRTVersionStr = "042";
public const String cVersion = "0.42.4";
#if BF_PLATFORM_WINDOWS #if BF_PLATFORM_WINDOWS
public static readonly String sPlatform64Name = "Win64"; public static readonly String sPlatform64Name = "Win64";
@ -1449,6 +1450,12 @@ namespace IDE
return SaveFileAs(sourceViewPanel); return SaveFileAs(sourceViewPanel);
} }
if (sourceViewPanel.mEditData == null)
{
sourceViewPanel.mEditData = GetEditData(forcePath, true, false);
sourceViewPanel.mEditData.mEditWidget = sourceViewPanel.mEditWidget;
}
if (!SaveFile(sourceViewPanel.mEditData, forcePath)) if (!SaveFile(sourceViewPanel.mEditData, forcePath))
return false; return false;
@ -1787,6 +1794,8 @@ namespace IDE
// Don't save if we didn't finish creating the workspace // Don't save if we didn't finish creating the workspace
if (mWorkspace.mNeedsCreate) if (mWorkspace.mNeedsCreate)
return false; return false;
if (!mWorkspace.IsInitialized)
return false;
if (mWorkspace.IsDebugSession) if (mWorkspace.IsDebugSession)
{ {
@ -4817,6 +4826,54 @@ namespace IDE
ToggleCheck(ideCommand.mMenuItem, ref mTestEnableConsole); ToggleCheck(ideCommand.mMenuItem, ref mTestEnableConsole);
} }
public void UpdateMenuItem_HasActivePanel(IMenu menu)
{
menu.SetDisabled(GetActivePanel() == null);
}
public void UpdateMenuItem_HasActiveDocument(IMenu menu)
{
menu.SetDisabled(GetActiveDocumentPanel() == null);
}
public void UpdateMenuItem_HasWorkspace(IMenu menu)
{
menu.SetDisabled(!gApp.mWorkspace.IsInitialized);
}
public void UpdateMenuItem_DebugPaused(IMenu menu)
{
menu.SetDisabled(!mDebugger.mIsRunning || !mExecutionPaused);
}
public void UpdateMenuItem_DebugPausedOrStopped_HasWorkspace(IMenu menu)
{
if (mDebugger.mIsRunning)
menu.SetDisabled(!mExecutionPaused);
else
menu.SetDisabled(!mWorkspace.IsInitialized);
}
public void UpdateMenuItem_DebugNotPaused(IMenu menu)
{
menu.SetDisabled(!mDebugger.mIsRunning || mExecutionPaused);
}
public void UpdateMenuItem_DebugRunning(IMenu menu)
{
menu.SetDisabled(!mDebugger.mIsRunning);
}
public void UpdateMenuItem_DebugStopped_HasWorkspace(IMenu menu)
{
menu.SetDisabled(mDebugger.mIsRunning || !mWorkspace.IsInitialized);
}
public void UpdateMenuItem_DebugStopped(IMenu menu)
{
menu.SetDisabled(mDebugger.mIsRunning);
}
public void CreateMenu() public void CreateMenu()
{ {
scope AutoBeefPerf("IDEApp.CreateMenu"); scope AutoBeefPerf("IDEApp.CreateMenu");
@ -4870,31 +4927,31 @@ namespace IDE
mSettings.mRecentFiles.mRecents[(int)RecentFiles.RecentKind.OpenedFile].mMenu = recentMenu.AddMenuItem("Open Recent &File"); mSettings.mRecentFiles.mRecents[(int)RecentFiles.RecentKind.OpenedFile].mMenu = recentMenu.AddMenuItem("Open Recent &File");
mSettings.mRecentFiles.mRecents[(int)RecentFiles.RecentKind.OpenedCrashDump].mMenu = recentMenu.AddMenuItem("Open Recent &Crash Dump"); mSettings.mRecentFiles.mRecents[(int)RecentFiles.RecentKind.OpenedCrashDump].mMenu = recentMenu.AddMenuItem("Open Recent &Crash Dump");
AddMenuItem(subMenu, "&Save File","Save File"); AddMenuItem(subMenu, "&Save File","Save File", new => UpdateMenuItem_HasActiveDocument);
AddMenuItem(subMenu, "Save &As...", "Save As"); AddMenuItem(subMenu, "Save &As...", "Save As", new => UpdateMenuItem_HasActiveDocument);
AddMenuItem(subMenu, "Save A&ll", "Save All"); AddMenuItem(subMenu, "Save A&ll", "Save All");
let prefMenu = subMenu.AddMenuItem("&Preferences"); let prefMenu = subMenu.AddMenuItem("&Preferences");
//prefMenu.AddMenuItem("&Keyboard Shortcuts", null, new (evt) => { ShowKeyboardShortcuts(); }); //prefMenu.AddMenuItem("&Keyboard Shortcuts", null, new (evt) => { ShowKeyboardShortcuts(); });
AddMenuItem(prefMenu, "&Settings", "Settings"); AddMenuItem(prefMenu, "&Settings", "Settings");
AddMenuItem(subMenu, "Close Workspace", "Close Workspace"); AddMenuItem(subMenu, "Close Workspace", "Close Workspace", new => UpdateMenuItem_HasWorkspace);
AddMenuItem(subMenu, "E&xit", "Exit"); AddMenuItem(subMenu, "E&xit", "Exit");
////////// //////////
subMenu = root.AddMenuItem("&Edit"); subMenu = root.AddMenuItem("&Edit");
AddMenuItem(subMenu, "Quick &Find...", "Find in Document"); AddMenuItem(subMenu, "Quick &Find...", "Find in Document", new => UpdateMenuItem_HasActivePanel);
AddMenuItem(subMenu, "Quick &Replace...", "Replace in Document"); AddMenuItem(subMenu, "Quick &Replace...", "Replace in Document", new => UpdateMenuItem_HasActiveDocument);
AddMenuItem(subMenu, "Find in &Files...", "Find in Files"); AddMenuItem(subMenu, "Find in &Files...", "Find in Files");
AddMenuItem(subMenu, "Replace in Files...", "Replace in Files"); AddMenuItem(subMenu, "Replace in Files...", "Replace in Files");
AddMenuItem(subMenu, "Find Prev", "Find Prev"); AddMenuItem(subMenu, "Find Prev", "Find Prev", new => UpdateMenuItem_HasActivePanel);
AddMenuItem(subMenu, "Find Next", "Find Next"); AddMenuItem(subMenu, "Find Next", "Find Next", new => UpdateMenuItem_HasActivePanel);
AddMenuItem(subMenu, "Show &Current", "Show Current"); AddMenuItem(subMenu, "Show &Current", "Show Current");
AddMenuItem(subMenu, "&Goto Line...", "Goto Line"); AddMenuItem(subMenu, "&Goto Line...", "Goto Line", new => UpdateMenuItem_HasActiveDocument);
AddMenuItem(subMenu, "Goto &Method...", "Goto Method"); AddMenuItem(subMenu, "Goto &Method...", "Goto Method", new => UpdateMenuItem_HasActiveDocument);
AddMenuItem(subMenu, "&Rename Symbol", "Rename Symbol"); AddMenuItem(subMenu, "&Rename Symbol", "Rename Symbol", new => UpdateMenuItem_HasActiveDocument);
AddMenuItem(subMenu, "Show Fi&xit", "Show Fixit"); AddMenuItem(subMenu, "Show Fi&xit", "Show Fixit", new => UpdateMenuItem_HasActiveDocument);
AddMenuItem(subMenu, "Find &All References", "Find All References"); AddMenuItem(subMenu, "Find &All References", "Find All References", new => UpdateMenuItem_HasActiveDocument);
AddMenuItem(subMenu, "Find C&lass...", "Find Class"); AddMenuItem(subMenu, "Find C&lass...", "Find Class");
subMenu.AddMenuItem(null); subMenu.AddMenuItem(null);
@ -4983,9 +5040,9 @@ namespace IDE
////////// //////////
subMenu = root.AddMenuItem("&Build"); subMenu = root.AddMenuItem("&Build");
AddMenuItem(subMenu, "&Build Solution", "Build Solution"); AddMenuItem(subMenu, "&Build Solution", "Build Solution", new => UpdateMenuItem_HasWorkspace);
AddMenuItem(subMenu, "&Clean", "Clean"); AddMenuItem(subMenu, "&Clean", "Clean", new => UpdateMenuItem_DebugStopped_HasWorkspace);
AddMenuItem(subMenu, "Clean Beef", "Clean Beef"); AddMenuItem(subMenu, "Clean Beef", "Clean Beef", new => UpdateMenuItem_DebugStopped_HasWorkspace);
//subMenu.AddMenuItem("Compile Current File", null, new (menu) => { CompileCurrentFile(); }); //subMenu.AddMenuItem("Compile Current File", null, new (menu) => { CompileCurrentFile(); });
AddMenuItem(subMenu, "Cancel Build", "Cancel Build", new (menu) => { menu.SetDisabled(!IsCompiling); }); AddMenuItem(subMenu, "Cancel Build", "Cancel Build", new (menu) => { menu.SetDisabled(!IsCompiling); });
@ -5000,25 +5057,25 @@ namespace IDE
////////// //////////
subMenu = root.AddMenuItem("&Debug"); subMenu = root.AddMenuItem("&Debug");
AddMenuItem(subMenu, "&Start Debugging", "Start Debugging"); AddMenuItem(subMenu, "&Start Debugging", "Start Debugging", new => UpdateMenuItem_DebugStopped_HasWorkspace);
AddMenuItem(subMenu, "Start Wit&hout Debugging", "Start Without Debugging"); AddMenuItem(subMenu, "Start Wit&hout Debugging", "Start Without Debugging", new => UpdateMenuItem_DebugStopped_HasWorkspace);
AddMenuItem(subMenu, "&Launch Process...", "Launch Process"); AddMenuItem(subMenu, "&Launch Process...", "Launch Process", new => UpdateMenuItem_DebugStopped);
AddMenuItem(subMenu, "&Attach to Process...", "Attach to Process"); AddMenuItem(subMenu, "&Attach to Process...", "Attach to Process", new => UpdateMenuItem_DebugStopped);
AddMenuItem(subMenu, "&Stop Debugging", "Stop Debugging"); AddMenuItem(subMenu, "&Stop Debugging", "Stop Debugging", new => UpdateMenuItem_DebugNotPaused);
AddMenuItem(subMenu, "Break All", "Break All"); AddMenuItem(subMenu, "Break All", "Break All", new => UpdateMenuItem_DebugNotPaused);
AddMenuItem(subMenu, "Remove All Breakpoints", "Remove All Breakpoints"); AddMenuItem(subMenu, "Remove All Breakpoints", "Remove All Breakpoints");
AddMenuItem(subMenu, "Show &Disassembly", "Show Disassembly"); AddMenuItem(subMenu, "Show &Disassembly", "Show Disassembly");
AddMenuItem(subMenu, "&Quick Watch", "Show QuickWatch"); AddMenuItem(subMenu, "&Quick Watch", "Show QuickWatch", new => UpdateMenuItem_DebugPaused);
AddMenuItem(subMenu, "&Profile", "Profile"); AddMenuItem(subMenu, "&Profile", "Profile", new => UpdateMenuItem_HasWorkspace);
subMenu.AddMenuItem(null); subMenu.AddMenuItem(null);
AddMenuItem(subMenu, "Step Into", "Step Into"); AddMenuItem(subMenu, "Step Into", "Step Into", new => UpdateMenuItem_DebugPausedOrStopped_HasWorkspace);
AddMenuItem(subMenu, "Step Over", "Step Over"); AddMenuItem(subMenu, "Step Over", "Step Over", new => UpdateMenuItem_DebugPausedOrStopped_HasWorkspace);
AddMenuItem(subMenu, "Step Out", "Step Out"); AddMenuItem(subMenu, "Step Out", "Step Out", new => UpdateMenuItem_DebugPaused);
subMenu.AddMenuItem(null); subMenu.AddMenuItem(null);
AddMenuItem(subMenu, "To&ggle Breakpoint", "Breakpoint Toggle"); AddMenuItem(subMenu, "To&ggle Breakpoint", "Breakpoint Toggle", new => UpdateMenuItem_HasActiveDocument);
AddMenuItem(subMenu, "Toggle Thread Breakpoint", "Breakpoint Toggle Thread"); AddMenuItem(subMenu, "Toggle Thread Breakpoint", "Breakpoint Toggle Thread", new => UpdateMenuItem_HasActiveDocument);
var newBreakpointMenu = subMenu.AddMenuItem("New &Breakpoint"); var newBreakpointMenu = subMenu.AddMenuItem("New &Breakpoint");
AddMenuItem(newBreakpointMenu, "&Memory Breakpoint...", "Breakpoint Memory"); AddMenuItem(newBreakpointMenu, "&Memory Breakpoint...", "Breakpoint Memory", new => UpdateMenuItem_DebugRunning);
AddMenuItem(newBreakpointMenu, "&Symbol Breakpoint...", "Breakpoint Symbol"); AddMenuItem(newBreakpointMenu, "&Symbol Breakpoint...", "Breakpoint Symbol");
if (mSettings.mEnableDevMode) if (mSettings.mEnableDevMode)
@ -5061,11 +5118,11 @@ namespace IDE
////////// //////////
var testMenu = root.AddMenuItem("&Test"); var testMenu = root.AddMenuItem("&Test");
var testRunMenu = testMenu.AddMenuItem("&Run"); var testRunMenu = testMenu.AddMenuItem("&Run", null, new => UpdateMenuItem_DebugStopped_HasWorkspace);
AddMenuItem(testRunMenu, "&Normal Tests", "Run Normal Tests"); AddMenuItem(testRunMenu, "&Normal Tests", "Run Normal Tests");
AddMenuItem(testRunMenu, "&All Tests", "Run All Tests"); AddMenuItem(testRunMenu, "&All Tests", "Run All Tests");
var testDebugMenu = testMenu.AddMenuItem("&Debug"); var testDebugMenu = testMenu.AddMenuItem("&Debug", null, new => UpdateMenuItem_DebugStopped_HasWorkspace);
AddMenuItem(testDebugMenu, "&Normal Tests", "Debug Normal Tests"); AddMenuItem(testDebugMenu, "&Normal Tests", "Debug Normal Tests");
AddMenuItem(testDebugMenu, "&All Tests", "Debug All Tests"); AddMenuItem(testDebugMenu, "&All Tests", "Debug All Tests");
@ -5074,10 +5131,10 @@ namespace IDE
////////// //////////
mWindowMenu = root.AddMenuItem("&Window"); mWindowMenu = root.AddMenuItem("&Window");
AddMenuItem(mWindowMenu, "&Close", "Close Window"); AddMenuItem(mWindowMenu, "&Close", "Close Window", new => UpdateMenuItem_HasActivePanel);
AddMenuItem(mWindowMenu, "&Close All", "Close All Windows"); AddMenuItem(mWindowMenu, "&Close All", "Close All Windows");
AddMenuItem(mWindowMenu, "&New View into File", "View New"); AddMenuItem(mWindowMenu, "&New View into File", "View New", new => UpdateMenuItem_HasActiveDocument);
AddMenuItem(mWindowMenu, "&Split View", "View Split"); AddMenuItem(mWindowMenu, "&Split View", "View Split", new => UpdateMenuItem_HasActiveDocument);
subMenu = root.AddMenuItem("&Help"); subMenu = root.AddMenuItem("&Help");
AddMenuItem(subMenu, "&About", "About"); AddMenuItem(subMenu, "&About", "About");
@ -9428,7 +9485,7 @@ namespace IDE
{ {
if (!mDebugger.mIsRunning) if (!mDebugger.mIsRunning)
{ {
OutputSmart("Hot compile failed - target no longer running"); OutputErrorLine("Hot compile failed - target no longer running");
CompileFailed(); CompileFailed();
return; return;
} }
@ -10298,6 +10355,7 @@ namespace IDE
Environment.GetExecutableFilePath(exeFilePath); Environment.GetExecutableFilePath(exeFilePath);
mVersionInfo = new .(); mVersionInfo = new .();
mVersionInfo.GetVersionInfo(exeFilePath).IgnoreError(); mVersionInfo.GetVersionInfo(exeFilePath).IgnoreError();
Debug.Assert(mVersionInfo.FileVersion == cVersion);
#if BF_PLATFORM_WINDOWS #if BF_PLATFORM_WINDOWS
exeTime = File.GetLastWriteTime(exeFilePath).GetValueOrDefault(); exeTime = File.GetLastWriteTime(exeFilePath).GetValueOrDefault();
#endif #endif