1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 04:22:20 +02:00

Added AutocompleteRequireControl setting

This commit is contained in:
MineGame159 2020-06-05 16:31:23 +02:00
parent 862c15241a
commit 2574f4dec5
3 changed files with 29 additions and 23 deletions

View file

@ -309,6 +309,7 @@ namespace IDE
public float mUIScale = 100;
public Colors mColors = new .() ~ delete _;
public AutoCompleteShowKind mAutoCompleteShowKind = .PanelIfVisible;
public bool mAutoCompleteRequireControl = true;
public bool mAutoCompleteRequireTab = false;
public bool mAutoCompleteOnEnter = true;
public bool mAutoCompleteShowDocumentation = true;
@ -331,6 +332,7 @@ namespace IDE
sd.Add("FontSize", mFontSize);
sd.Add("UIScale", mUIScale);
sd.Add("AutoCompleteShowKind", mAutoCompleteShowKind);
sd.Add("AutoCompleteRequireControl", mAutoCompleteRequireControl);
sd.Add("AutoCompleteRequireTab", mAutoCompleteRequireTab);
sd.Add("AutoCompleteOnEnter", mAutoCompleteOnEnter);
sd.Add("AutoCompleteShowDocumentation", mAutoCompleteShowDocumentation);
@ -359,6 +361,7 @@ namespace IDE
sd.Get("FontSize", ref mFontSize);
sd.Get("UIScale", ref mUIScale);
sd.Get("AutoCompleteShowKind", ref mAutoCompleteShowKind);
sd.Get("AutoCompleteRequireControl", ref mAutoCompleteRequireControl);
sd.Get("AutoCompleteRequireTab", ref mAutoCompleteRequireTab);
sd.Get("AutoCompleteOnEnter", ref mAutoCompleteOnEnter);
sd.Get("AutoCompleteShowDocumentation", ref mAutoCompleteShowDocumentation);

View file

@ -77,6 +77,7 @@ namespace IDE.ui
AddPropertiesItem(category, "Font Size", "mFontSize");
AddPropertiesItem(category, "UI Scale", "mUIScale");
AddPropertiesItem(category, "Autocomplete", "mAutoCompleteShowKind");
AddPropertiesItem(category, "Autocomplete Require Control", "mAutoCompleteRequireControl");
AddPropertiesItem(category, "Autocomplete Require Tab", "mAutoCompleteRequireTab");
AddPropertiesItem(category, "Autocomplete on Enter", "mAutoCompleteOnEnter");
AddPropertiesItem(category, "Autocomplete Show Documentation", "mAutoCompleteShowDocumentation");

View file

@ -2811,30 +2811,32 @@ namespace IDE.ui
mSelection = null;
}
if (((keyCode == KeyCode.Up) || (keyCode == KeyCode.Down) || (keyCode == KeyCode.PageUp) || (keyCode == KeyCode.PageDown)) &&
(mWidgetWindow.IsKeyDown(KeyCode.Control)))
if (((keyCode == KeyCode.Up) || (keyCode == KeyCode.Down) || (keyCode == KeyCode.PageUp) || (keyCode == KeyCode.PageDown)))
{
if (mAutoComplete != null)
{
if (mAutoComplete.mAutoCompleteListWidget != null)
{
int32 pageSize = (int32)(mAutoComplete.mAutoCompleteListWidget.mScrollContentContainer.mHeight / mAutoComplete.mAutoCompleteListWidget.mItemSpacing - 0.5f);
int32 moveDir = 0;
switch (keyCode)
{
case KeyCode.Up: moveDir = -1; break;
case KeyCode.Down: moveDir = 1; break;
case KeyCode.PageUp: moveDir = -pageSize; break;
case KeyCode.PageDown: moveDir = pageSize; break;
default:
}
mAutoComplete.mAutoCompleteListWidget.SelectDirection(moveDir);
}
else if (mAutoComplete.mInvokeWidget != null)
{
mAutoComplete.mInvokeWidget.SelectDirection(((keyCode == KeyCode.Up) || (keyCode == KeyCode.PageUp)) ? -1 : 1);
}
}
if (!gApp.mSettings.mEditorSettings.mAutoCompleteRequireControl || mWidgetWindow.IsKeyDown(KeyCode.Control))
{
if (mAutoComplete != null)
{
if (mAutoComplete.mAutoCompleteListWidget != null)
{
int32 pageSize = (int32)(mAutoComplete.mAutoCompleteListWidget.mScrollContentContainer.mHeight / mAutoComplete.mAutoCompleteListWidget.mItemSpacing - 0.5f);
int32 moveDir = 0;
switch (keyCode)
{
case KeyCode.Up: moveDir = -1; break;
case KeyCode.Down: moveDir = 1; break;
case KeyCode.PageUp: moveDir = -pageSize; break;
case KeyCode.PageDown: moveDir = pageSize; break;
default:
}
mAutoComplete.mAutoCompleteListWidget.SelectDirection(moveDir);
}
else if (mAutoComplete.mInvokeWidget != null)
{
mAutoComplete.mInvokeWidget.SelectDirection(((keyCode == KeyCode.Up) || (keyCode == KeyCode.PageUp)) ? -1 : 1);
}
}
}
// Disabled window-scroll code for ctrl+up/ctrl+down when autocomplete is not up
return;