static public bool HandleKeys(ScintillaControl sci, Keys key) { switch (key) { case Keys.Multiply: case Keys.Subtract: case Keys.Divide: case Keys.Decimal: case Keys.Add: return(false); case Keys.Right: sci.CharRight(); currentPos = sci.CurrentPos; if (sci.LineFromPosition(sci.CurrentPos) != currentLine) { Hide(); } else if (OnUpdateCallTip != null) { OnUpdateCallTip(sci, currentPos); } return(true); case Keys.Left: sci.CharLeft(); currentPos = sci.CurrentPos; if (currentPos < startPos) { Hide(); } else { if (sci.LineFromPosition(sci.CurrentPos) != currentLine) { Hide(); } else if (OnUpdateCallTip != null) { OnUpdateCallTip(sci, currentPos); } } return(true); case Keys.Back: sci.DeleteBack(); currentPos = sci.CurrentPos; if (currentPos < startPos) { Hide(); } else if (OnUpdateCallTip != null) { OnUpdateCallTip(sci, currentPos); } return(true); case Keys.Tab: case Keys.Space: return(false); default: InfoTip.Hide(); return(false); } }
/// <summary> /// /// </summary> static public bool HandleKeys(ScintillaControl sci, Keys key) { int index; switch (key) { case Keys.Back: if (!UITools.CallTip.CallTipActive) { sci.DeleteBack(); } if (word.Length > MinWordLength) { word = word.Substring(0, word.Length - 1); currentPos = sci.CurrentPos; lastIndex = 0; FindWordStartingWith(word); } else { CompletionList.Hide((char)8); } return(true); case Keys.Enter: if (!ReplaceText(sci, '\n')) { CompletionList.Hide(); return(false); } return(true); case Keys.Tab: if (!ReplaceText(sci, '\t')) { CompletionList.Hide(); return(false); } return(true); case Keys.Space: return(false); case Keys.Up: // the list was hidden and it should not appear if (!completionList.Visible) { CompletionList.Hide(); if (key == Keys.Up) { sci.LineUp(); } else { sci.CharLeft(); } return(false); } // go up the list if (completionList.SelectedIndex > 0) { RefreshTip(); index = completionList.SelectedIndex - 1; completionList.SelectedIndex = index; } // wrap else if (PluginBase.MainForm.Settings.WrapList) { RefreshTip(); index = completionList.Items.Count - 1; completionList.SelectedIndex = index; } break; case Keys.Down: // the list was hidden and it should not appear if (!completionList.Visible) { CompletionList.Hide(); if (key == Keys.Down) { sci.LineDown(); } else { sci.CharRight(); } return(false); } // go down the list if (completionList.SelectedIndex < completionList.Items.Count - 1) { RefreshTip(); index = completionList.SelectedIndex + 1; completionList.SelectedIndex = index; } // wrap else if (PluginBase.MainForm.Settings.WrapList) { RefreshTip(); index = 0; completionList.SelectedIndex = index; } break; case Keys.PageUp: // the list was hidden and it should not appear if (!completionList.Visible) { CompletionList.Hide(); sci.PageUp(); return(false); } // go up the list if (completionList.SelectedIndex > 0) { RefreshTip(); index = completionList.SelectedIndex - completionList.Height / completionList.ItemHeight; if (index < 0) { index = 0; } completionList.SelectedIndex = index; } break; case Keys.PageDown: // the list was hidden and it should not appear if (!completionList.Visible) { CompletionList.Hide(); sci.PageDown(); return(false); } // go down the list if (completionList.SelectedIndex < completionList.Items.Count - 1) { RefreshTip(); index = completionList.SelectedIndex + completionList.Height / completionList.ItemHeight; if (index > completionList.Items.Count - 1) { index = completionList.Items.Count - 1; } completionList.SelectedIndex = index; } break; case (Keys.Control | Keys.Space): break; case Keys.Left: sci.CharLeft(); CompletionList.Hide(); break; case Keys.Right: sci.CharRight(); CompletionList.Hide(); break; default: CompletionList.Hide(); return(false); } return(true); }
public bool HandleKeys(ScintillaControl sci, Keys key) { switch (key) { case Keys.Multiply: case Keys.Subtract: case Keys.Divide: case Keys.Decimal: case Keys.Add: return(false); case Keys.Up: if (!CompletionList.Active) { sci.LineUp(); } return(false); case Keys.Down: if (!CompletionList.Active) { sci.LineDown(); } return(false); case Keys.Up | Keys.Shift: sci.LineUpExtend(); return(false); case Keys.Down | Keys.Shift: sci.LineDownExtend(); return(false); case Keys.Left | Keys.Shift: sci.CharLeftExtend(); return(false); case Keys.Right | Keys.Shift: sci.CharRightExtend(); return(false); case Keys.Right: if (!CompletionList.Active) { sci.CharRight(); currentPos = sci.CurrentPos; if (sci.LineFromPosition(sci.CurrentPos) != currentLine) { Hide(); } else if (OnUpdateCallTip != null) { OnUpdateCallTip(sci, currentPos); } } return(true); case Keys.Left: if (!CompletionList.Active) { sci.CharLeft(); currentPos = sci.CurrentPos; if (currentPos < startPos) { Hide(); } else { if (sci.LineFromPosition(sci.CurrentPos) != currentLine) { Hide(); } else if (OnUpdateCallTip != null) { OnUpdateCallTip(sci, currentPos); } } } return(true); case Keys.Back: sci.DeleteBack(); currentPos = sci.CurrentPos; if (currentPos + deltaPos < startPos) { Hide(); } else if (OnUpdateCallTip != null) { OnUpdateCallTip(sci, currentPos); } return(true); case Keys.Tab: case Keys.Space: return(false); default: if (!CompletionList.Active) { Hide(); } return(false); } }