Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@novell.com>2010-04-13 12:16:53 +0400
committerMike Krüger <mkrueger@novell.com>2010-04-13 12:16:53 +0400
commit2297a35cc18d5c9b531bd884c9d38020551590a2 (patch)
treea2158fd17cf6a34c6b3d847cc4c9091bd21c1a32 /main/src/core
parentb7065cbecce9deea1cc30628e42e8f2e87fcdaec (diff)
* MonoDevelop.Ide.Gui/Document.cs:
* MonoDevelop.Ide.Gui/ViewCommandHandlers.cs: * MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs: * MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs: * MonoDevelop.Ide.Gui.Content/DocumentStateTracker.cs: It's now possible to get the TextEditorData object from the Document. svn path=/trunk/monodevelop/; revision=155292
Diffstat (limited to 'main/src/core')
-rw-r--r--main/src/core/MonoDevelop.Ide/ChangeLog10
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs3
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/DocumentStateTracker.cs26
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs5
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs12
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ViewCommandHandlers.cs5
6 files changed, 45 insertions, 16 deletions
diff --git a/main/src/core/MonoDevelop.Ide/ChangeLog b/main/src/core/MonoDevelop.Ide/ChangeLog
index e2c634cfd5..d727d3f55b 100644
--- a/main/src/core/MonoDevelop.Ide/ChangeLog
+++ b/main/src/core/MonoDevelop.Ide/ChangeLog
@@ -1,3 +1,13 @@
+2010-04-13 Mike Krüger <mkrueger@novell.com>
+
+ * MonoDevelop.Ide.Gui/Document.cs:
+ * MonoDevelop.Ide.Gui/ViewCommandHandlers.cs:
+ * MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs:
+ * MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs:
+ * MonoDevelop.Ide.Gui.Content/DocumentStateTracker.cs: It's
+ now possible to get the TextEditorData object from the
+ Document.
+
2010-04-12 Mike Krüger <mkrueger@novell.com>
* MonoDevelop.Ide.CodeCompletion/ListWidget.cs: Implemented
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs
index e5796a6462..10109cf004 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.CodeTemplates/CodeTemplate.cs
@@ -350,8 +350,7 @@ namespace MonoDevelop.Ide.CodeTemplates
ParsedDocument doc = document.ParsedDocument ?? MonoDevelop.Projects.Dom.Parser.ProjectDomService.GetParsedDocument (dom, document.FileName);
MonoDevelop.Ide.Gui.TextEditor editor = document.TextEditor;
- Mono.TextEditor.ITextEditorDataProvider provider = document.GetContent<Mono.TextEditor.ITextEditorDataProvider> ();
- Mono.TextEditor.TextEditorData data = provider.GetTextEditorData ();
+ Mono.TextEditor.TextEditorData data = document.TextEditorData;
int offset = editor.CursorPosition;
int line, col;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/DocumentStateTracker.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/DocumentStateTracker.cs
index 71f67096c4..6a91431291 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/DocumentStateTracker.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/DocumentStateTracker.cs
@@ -30,32 +30,38 @@
using System;
using System.Collections.Generic;
+using Mono.TextEditor;
namespace MonoDevelop.Ide.Gui.Content
{
- public class DocumentStateTracker<T> where T : IDocumentStateEngine
+ public class DocumentStateTracker<T> : IDisposable where T : IDocumentStateEngine
{
T currentEngine;
Stack<T> cachedEngines = new Stack<T> ();
- MonoDevelop.Ide.Gui.TextEditor editor;
+ TextEditorData editor;
- public DocumentStateTracker (T engine, MonoDevelop.Ide.Gui.TextEditor editor)
+ public DocumentStateTracker (T engine, TextEditorData editor)
{
this.currentEngine = engine;
this.editor = editor;
- editor.TextChanged += textChanged;
+ editor.Document.TextReplaced += textChanged;
+ }
+
+ public void Dispose ()
+ {
+ editor.Document.TextReplaced -= textChanged;
}
public T Engine {
get { return currentEngine; }
}
- void textChanged (object sender, TextChangedEventArgs args)
+ void textChanged (object sender, ReplaceEventArgs args)
{
- if (args.StartIndex < currentEngine.Position)
- ResetEngineToPosition (args.StartIndex);
+ if (args.Offset< currentEngine.Position)
+ ResetEngineToPosition (args.Offset);
}
public void ResetEngineToPosition (int position)
@@ -79,7 +85,7 @@ namespace MonoDevelop.Ide.Gui.Content
}
public void UpdateEngine ()
{
- UpdateEngine (editor.CursorPosition);
+ UpdateEngine (editor.Caret.Offset);
}
//Makes sure that the smart indent engine's cursor has caught up with the
@@ -106,7 +112,7 @@ namespace MonoDevelop.Ide.Gui.Content
// get the engine caught up
int nextSave = (cachedEngines.Count == 0)? BUFFER_SIZE : cachedEngines.Peek ().Position + BUFFER_SIZE;
if (currentEngine.Position + 1 == position) {
- char ch = editor.GetCharAt (currentEngine.Position);
+ char ch = editor.Document.GetCharAt (currentEngine.Position);
currentEngine.Push (ch);
ConsoleWrite ("pushing character '{0}'", ch);
if (currentEngine.Position == nextSave)
@@ -118,7 +124,7 @@ namespace MonoDevelop.Ide.Gui.Content
int endCut = currentEngine.Position + BUFFER_SIZE;
if (endCut > position)
endCut = position;
- string buffer = editor.GetText (currentEngine.Position, endCut);
+ string buffer = editor.Document.GetTextBetween (currentEngine.Position, endCut);
ConsoleWrite ("getting buffer between {0} and {1}" /* '{2}'"*/, currentEngine.Position, endCut - 1, buffer);
foreach (char ch in buffer) {
currentEngine.Push (ch);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs
index b67ab18a2c..5f16330639 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/TextEditorExtension.cs
@@ -35,6 +35,7 @@ using MonoDevelop.Projects.Dom.Parser;
using MonoDevelop.Components.Commands;
using MonoDevelop.Ide.Commands;
using MonoDevelop.Core;
+using Mono.TextEditor;
namespace MonoDevelop.Ide.Gui.Content
{
@@ -61,6 +62,10 @@ namespace MonoDevelop.Ide.Gui.Content
get { return document.TextEditor; }
}
+ protected TextEditorData TextEditorData {
+ get { return document.TextEditorData; }
+ }
+
protected FilePath FileName {
get {
IViewContent view = document.Window.ViewContent;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
index daf924ac7e..07d89a8d5e 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
@@ -171,6 +171,18 @@ namespace MonoDevelop.Ide.Gui
}
}
+ Mono.TextEditor.TextEditorData data = null;
+ public Mono.TextEditor.TextEditorData TextEditorData {
+ get {
+ if (data == null) {
+ Mono.TextEditor.ITextEditorDataProvider view = GetContent <Mono.TextEditor.ITextEditorDataProvider> ();
+ data = view.GetTextEditorData ();
+ }
+ return data;
+ }
+ }
+
+
public bool IsViewOnly {
get { return Window.ViewContent.IsViewOnly; }
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ViewCommandHandlers.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ViewCommandHandlers.cs
index b342236516..679fe245d3 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ViewCommandHandlers.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/ViewCommandHandlers.cs
@@ -514,10 +514,7 @@ namespace MonoDevelop.Ide.Gui
[CommandHandler (EditCommands.RemoveTrailingWhiteSpaces)]
public void OnRemoveTrailingWhiteSpaces ()
{
- Mono.TextEditor.ITextEditorDataProvider provider = GetContent<Mono.TextEditor.ITextEditorDataProvider> ();
- if (provider == null)
- return;
- Mono.TextEditor.TextEditorData data = provider.GetTextEditorData ();
+ Mono.TextEditor.TextEditorData data = doc.TextEditorData;
if (data == null)
return;