1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-12 05:14:10 +02:00

Early support for line/statement moving

This commit is contained in:
Brian Fiete 2020-09-06 09:05:00 -07:00
parent a62a995472
commit a650c7ab9c
5 changed files with 291 additions and 115 deletions

View file

@ -2065,6 +2065,17 @@ namespace IDE
mBfResolveSystem.AddProject(project);
#endif
mWorkspace.ClearProjectNameCache();
if (!mWorkspace.mLoading)
{
for (var checkProject in mWorkspace.mProjects)
{
int idx = checkProject.mDependencies.FindIndex(scope (dep) => dep.mProjectName == project.mProjectName);
if (idx != -1)
ProjectOptionsChanged(checkProject);
}
ProjectOptionsChanged(project, false);
}
}
public void AddNewProjectToWorkspace(Project project, VerSpecRecord verSpec = null)
@ -2102,14 +2113,6 @@ namespace IDE
dep.mVerSpec = new .();
dep.mVerSpec.SetSemVer("*");
project.mDependencies.Add(dep);
for (var checkProject in mWorkspace.mProjects)
{
int idx = checkProject.mDependencies.FindIndex(scope (dep) => dep.mProjectName == project.mProjectName);
if (idx != -1)
ProjectOptionsChanged(checkProject);
}
ProjectOptionsChanged(project, false);
}
public Project CreateProject(String projName, String projDir, Project.TargetType targetType)
@ -2348,7 +2351,7 @@ namespace IDE
return .Err;
}
void FlushDeferredLoadProjects()
void FlushDeferredLoadProjects(bool addToUI = false)
{
while (true)
{
@ -2369,6 +2372,8 @@ namespace IDE
}
AddProjectToWorkspace(project, false);
if (addToUI)
mProjectPanel.InitProject(project);
}
}
if (!hadLoad)
@ -2401,7 +2406,13 @@ namespace IDE
bool isNew = false;
bool wantSave = false;
mWorkspace.mLoading = true;
defer
{
mWorkspace.mLoading = false;
}
if (StructuredLoad(data, workspaceFileName) case .Err(let err))
{
mBeefConfig.Refresh();
@ -3668,6 +3679,22 @@ namespace IDE
sourceViewPanel.MatchBrace();
}
[IDECommand]
public void Cmd_MoveLine(VertDir dir)
{
var sewc = GetActiveSourceEditWidgetContent();
if (sewc != null)
sewc.MoveLine(dir);
}
[IDECommand]
public void Cmd_MoveStatement(VertDir dir)
{
var sewc = GetActiveSourceEditWidgetContent();
if (sewc != null)
sewc.MoveStatement(dir);
}
[IDECommand]
public void Cmd_GotoNextItem()
{
@ -5169,6 +5196,12 @@ namespace IDE
AddMenuItem(bookmarkMenu, "&Clear Bookmarks", "Bookmark Clear");
var advancedEditMenu = subMenu.AddMenuItem("Advanced");
AddMenuItem(advancedEditMenu, "Duplicate Line", "Duplicate Line");
AddMenuItem(advancedEditMenu, "Move Line Up", "Move Line Up");
AddMenuItem(advancedEditMenu, "Move Line Down", "Move Line Down");
AddMenuItem(advancedEditMenu, "Move Statement Up", "Move Statement Up");
AddMenuItem(advancedEditMenu, "Move Statement Down", "Move Statement Down");
advancedEditMenu.AddMenuItem(null);
AddMenuItem(advancedEditMenu, "Make Uppercase", "Make Uppercase");
AddMenuItem(advancedEditMenu, "Make Lowercase", "Make Lowercase");
mViewWhiteSpace.mMenu = AddMenuItem(advancedEditMenu, "View White Space", "View White Space", null, null, true, mViewWhiteSpace.Bool ? 1 : 0);
@ -8692,6 +8725,7 @@ namespace IDE
{
RemoveProjectItems(project);
project.mDeleted = true;
mWorkspace.SetChanged();
mWorkspace.mProjects.Remove(project);
#if IDE_C_SUPPORT