From c143e6c89caf135a12a21a27388330451e339b50 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Tue, 28 Sep 2010 16:07:46 +0200 Subject: [PATCH] Fixed column displayed in status bar. --- .../AvalonEdit.AddIn/Src/AvalonEditViewContent.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs index cec442b7e8..6228b68367 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs @@ -6,6 +6,7 @@ using System.IO; using System.Linq; using System.Text; using System.Windows.Threading; +using ICSharpCode.AvalonEdit.AddIn.Options; using ICSharpCode.AvalonEdit.Document; using ICSharpCode.AvalonEdit.Highlighting; using ICSharpCode.AvalonEdit.Utils; @@ -182,7 +183,17 @@ namespace ICSharpCode.AvalonEdit.AddIn void CaretChanged(object sender, EventArgs e) { NavigationService.Log(this.BuildNavPoint()); - WorkbenchSingleton.StatusBar.SetCaretPosition(this.Column, this.Line, this.Column); + var document = codeEditor.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; + } + WorkbenchSingleton.StatusBar.SetCaretPosition(col, this.Line, chOffset); } public override bool IsReadOnly {