protected override void OnSyntaxEditorTriggerActivated(ActiproSoftware.SyntaxEditor.SyntaxEditor syntaxEditor, TriggerEventArgs e) { string str = e.get_Trigger().get_Key(); if (((str != null) && (str == "TagAutoCompleteTrigger")) && !syntaxEditor.get_SelectedView().get_Selection().get_IsReadOnly()) { this.CompleteElementTag(syntaxEditor, syntaxEditor.get_Caret().get_Offset()); } }
protected void SetCanEditFlags(Control c, out bool canUndo, out bool canRedo, out bool canCopy, out bool canCut, out bool canPaste) { canPaste = false; canCut = false; canCopy = false; canRedo = false; canUndo = false; if (c is TextBoxBase) { TextBoxBase base2 = (TextBoxBase)c; canUndo = base2.CanUndo; canCopy = base2.SelectionLength > 0; canCut = (base2.SelectionLength > 0) && !base2.ReadOnly; bool flag = false; try { flag = Clipboard.ContainsData(DataFormats.Text); } catch { } canPaste = !base2.ReadOnly && flag; } if (c is RichTextBox) { canRedo = ((RichTextBox)c).CanRedo; } if (c is DataGridView) { canCopy = ((DataGridView)c).SelectedCells.Count > 0; } if (c is ActiproSoftware.SyntaxEditor.SyntaxEditor) { ActiproSoftware.SyntaxEditor.SyntaxEditor editor = (ActiproSoftware.SyntaxEditor.SyntaxEditor)c; canUndo = editor.get_Document().get_UndoRedo().get_CanUndo(); canRedo = editor.get_Document().get_UndoRedo().get_CanRedo(); canCopy = editor.get_SelectedView().get_SelectedText().Length > 0; canCut = editor.get_SelectedView().get_CanDelete(); canPaste = editor.get_SelectedView().get_CanPaste(); } }
private void CompleteElementTag(ActiproSoftware.SyntaxEditor.SyntaxEditor syntaxEditor, int offset) { string str = null; TextStream textStream = syntaxEditor.get_Document().GetTextStream(offset); if (textStream.GoToPreviousToken() && ((textStream.get_Token().get_Key() == "StartTagEndToken") && ((offset - textStream.get_Offset()) == 1))) { bool flag = false; while (textStream.GoToPreviousToken()) { string str2 = textStream.get_Token().get_Key(); if (str2 != null) { if (!(str2 == "StartTagNameToken")) { if ((str2 == "StartTagStartToken") || (str2 == "EndTagEndToken")) { return; } } else { str = textStream.get_TokenText().Trim(); flag = true; } } if (flag) { break; } } if (str != null) { textStream.set_Offset(offset); flag = false; while (!textStream.get_IsAtDocumentEnd()) { switch (textStream.get_Token().get_Key()) { case "EndTagDefaultToken": if (str == textStream.get_TokenText().Trim()) { return; } flag = true; break; case "StartTagStartToken": case "EndTagEndToken": flag = true; break; } if (flag) { break; } textStream.GoToNextToken(); } syntaxEditor.get_SelectedView().InsertSurroundingText(0, null, "</" + str + ">"); } } }