Browse Source

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

pull/48/merge
Siegfried Pammer 12 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 @@ -55,8 +55,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
file.IsDirtyChanged += PrimaryFile_IsDirtyChanged;
codeEditor.Document.UndoStack.PropertyChanged += codeEditor_Document_UndoStack_PropertyChanged;
codeEditor.CaretPositionChanged += CaretChanged;
codeEditor.TextCopied += codeEditor_TextCopied;
}
bool IsKnownFileExtension(string filetype)
@ -84,12 +82,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -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 {
get { return codeEditor; }
}
@ -183,25 +176,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -183,25 +176,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
public override INavigationPoint BuildNavPoint()
{
int lineNumber = codeEditor.Line;
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);
return codeEditor.BuildNavPoint();
}
public override bool IsReadOnly {

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

@ -235,12 +235,9 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -235,12 +235,9 @@ namespace ICSharpCode.AvalonEdit.AddIn
return codeEditorView;
}
public event EventHandler<TextEventArgs> TextCopied;
void textEditor_TextArea_TextCopied(object sender, TextEventArgs e)
{
if (TextCopied != null)
TextCopied(this, e);
ICSharpCode.SharpDevelop.Gui.TextEditorSideBar.Instance.PutInClipboardRing(e.Text);
}
protected virtual void DisposeTextEditor(CodeEditorView textEditor)
@ -364,12 +361,32 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -364,12 +361,32 @@ namespace ICSharpCode.AvalonEdit.AddIn
void HandleCaretPositionChange()
{
if (CaretPositionChanged != null)
CaretPositionChanged(this, EventArgs.Empty);
if (quickClassBrowser != null) {
quickClassBrowser.SelectItemAtCaretPosition(this.ActiveTextEditor.TextArea.Caret.Location);
}
if (CaretPositionChanged != null)
CaretPositionChanged(this, EventArgs.Empty);
NavigationService.Log(this.BuildNavPoint());
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;

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

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

Loading…
Cancel
Save