Browse Source

move CaretPositionChanged and TextCopied handling to CodeEditor; implement BuildNavPoint in CodeEditor

pull/48/merge
Siegfried Pammer 13 years ago
parent
commit
c8d60b1449
  1. 29
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs
  2. 29
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
  3. 7
      src/AddIns/DisplayBindings/ILSpyAddIn/ViewContent/DecompiledViewContent.cs

29
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs

@ -55,8 +55,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
file.IsDirtyChanged += PrimaryFile_IsDirtyChanged; file.IsDirtyChanged += PrimaryFile_IsDirtyChanged;
codeEditor.Document.UndoStack.PropertyChanged += codeEditor_Document_UndoStack_PropertyChanged; codeEditor.Document.UndoStack.PropertyChanged += codeEditor_Document_UndoStack_PropertyChanged;
codeEditor.CaretPositionChanged += CaretChanged;
codeEditor.TextCopied += codeEditor_TextCopied;
} }
bool IsKnownFileExtension(string filetype) bool IsKnownFileExtension(string filetype)
@ -84,12 +82,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
} }
} }
} }
void codeEditor_TextCopied(object sender, ICSharpCode.AvalonEdit.Editing.TextEventArgs e)
{
TextEditorSideBar.Instance.PutInClipboardRing(e.Text);
}
public override object Control { public override object Control {
get { return codeEditor; } get { return codeEditor; }
} }
@ -183,25 +176,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
public override INavigationPoint BuildNavPoint() public override INavigationPoint BuildNavPoint()
{ {
int lineNumber = codeEditor.Line; return codeEditor.BuildNavPoint();
string txt = codeEditor.Document.GetText(codeEditor.Document.GetLineByNumber(lineNumber));
return new TextNavigationPoint(this.PrimaryFileName, lineNumber, codeEditor.Column, txt);
}
void CaretChanged(object sender, EventArgs e)
{
NavigationService.Log(this.BuildNavPoint());
var document = codeEditor.Document;
int lineOffset = document.GetLineByNumber(codeEditor.Line).Offset;
int chOffset = codeEditor.Column;
int col = 1;
for (int i = 1; i < chOffset; i++) {
if (document.GetCharAt(lineOffset + i - 1) == '\t')
col += CodeEditorOptions.Instance.IndentationSize;
else
col += 1;
}
SD.StatusBar.SetCaretPosition(col, codeEditor.Line, chOffset);
} }
public override bool IsReadOnly { public override bool IsReadOnly {

29
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs

@ -235,12 +235,9 @@ namespace ICSharpCode.AvalonEdit.AddIn
return codeEditorView; return codeEditorView;
} }
public event EventHandler<TextEventArgs> TextCopied;
void textEditor_TextArea_TextCopied(object sender, TextEventArgs e) void textEditor_TextArea_TextCopied(object sender, TextEventArgs e)
{ {
if (TextCopied != null) ICSharpCode.SharpDevelop.Gui.TextEditorSideBar.Instance.PutInClipboardRing(e.Text);
TextCopied(this, e);
} }
protected virtual void DisposeTextEditor(CodeEditorView textEditor) protected virtual void DisposeTextEditor(CodeEditorView textEditor)
@ -364,12 +361,32 @@ namespace ICSharpCode.AvalonEdit.AddIn
void HandleCaretPositionChange() void HandleCaretPositionChange()
{ {
if (CaretPositionChanged != null)
CaretPositionChanged(this, EventArgs.Empty);
if (quickClassBrowser != null) { if (quickClassBrowser != null) {
quickClassBrowser.SelectItemAtCaretPosition(this.ActiveTextEditor.TextArea.Caret.Location); quickClassBrowser.SelectItemAtCaretPosition(this.ActiveTextEditor.TextArea.Caret.Location);
} }
if (CaretPositionChanged != null) NavigationService.Log(this.BuildNavPoint());
CaretPositionChanged(this, EventArgs.Empty); var document = this.Document;
int lineOffset = document.GetLineByNumber(this.Line).Offset;
int chOffset = this.Column;
int col = 1;
for (int i = 1; i < chOffset; i++) {
if (document.GetCharAt(lineOffset + i - 1) == '\t')
col += CodeEditorOptions.Instance.IndentationSize;
else
col += 1;
}
SD.StatusBar.SetCaretPosition(col, this.Line, chOffset);
}
public INavigationPoint BuildNavPoint()
{
int lineNumber = this.Line;
string txt = this.Document.GetText(this.Document.GetLineByNumber(lineNumber));
return new TextNavigationPoint(this.FileName, lineNumber, this.Column, txt);
} }
volatile static ReadOnlyCollection<ICodeCompletionBinding> codeCompletionBindings; volatile static ReadOnlyCollection<ICodeCompletionBinding> codeCompletionBindings;

7
src/AddIns/DisplayBindings/ILSpyAddIn/ViewContent/DecompiledViewContent.cs

@ -177,7 +177,12 @@ namespace ICSharpCode.ILSpyAddIn
// TODO: show Save As dialog to allow the user to save the decompiled file // TODO: show Save As dialog to allow the user to save the decompiled file
} }
#endregion #endregion
public override INavigationPoint BuildNavPoint()
{
return codeEditor.BuildNavPoint();
}
#region JumpToEntity #region JumpToEntity
public void JumpToEntity(string entityIdString) public void JumpToEntity(string entityIdString)
{ {

Loading…
Cancel
Save