Browse Source

ParserService bugfix: use IParseInformationListener interface.

AvalonEditViewContent: text buffer returned by IEditable.CreateSnapshot() now supports ITextBufferVersion

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4730 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
7c390e8d0f
  1. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs
  2. 4
      src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditDocumentAdapter.cs
  3. 10
      src/Main/Base/Project/Src/Services/ParserService/ParserService.cs
  4. 2
      src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs
  5. 2
      src/Main/Base/Project/Src/Services/RefactoringService/NamespaceRefactoringService.cs
  6. 3
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorBasedPad.cs

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

@ -167,7 +167,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -167,7 +167,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
#region IEditable
public ITextBuffer CreateSnapshot()
{
return new ICSharpCode.SharpDevelop.Editor.AvalonEdit.AvalonEditTextSourceAdapter(codeEditor.Document.CreateSnapshot());
return codeEditor.DocumentAdapter.CreateSnapshot();
}
/// <summary>

4
src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditDocumentAdapter.cs

@ -163,9 +163,10 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit @@ -163,9 +163,10 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit
public System.IO.TextReader CreateReader()
{
return CreateSnapshot().CreateReader();
return document.CreateSnapshot().CreateReader();
}
#region Snapshots and ITextBufferVersion
public ITextBuffer CreateSnapshot()
{
ChangeTrackingCheckpoint checkpoint;
@ -237,6 +238,7 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit @@ -237,6 +238,7 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit
return checkpoint.GetChangesTo(otherVersion.checkpoint).Select(c => new TextChangeEventArgs(c.Offset, c.RemovedText, c.InsertedText));
}
}
#endregion
public void StartUndoableAction()
{

10
src/Main/Base/Project/Src/Services/ParserService/ParserService.cs

@ -730,7 +730,7 @@ namespace ICSharpCode.SharpDevelop @@ -730,7 +730,7 @@ namespace ICSharpCode.SharpDevelop
{
// RaiseParseInformationUpdated is called inside a lock, but we don't want to raise the event inside that lock.
// To ensure events are raised in the same order, we always invoke on the main thread.
Gui.WorkbenchSingleton.SafeThreadAsyncCall(
WorkbenchSingleton.SafeThreadAsyncCall(
delegate {
ParseInformationUpdated(null, e);
});
@ -744,9 +744,15 @@ namespace ICSharpCode.SharpDevelop @@ -744,9 +744,15 @@ namespace ICSharpCode.SharpDevelop
static void RaiseParserUpdateStepFinished(ParserUpdateStepEventArgs e)
{
Gui.WorkbenchSingleton.SafeThreadAsyncCall(
WorkbenchSingleton.SafeThreadAsyncCall(
delegate {
ParserUpdateStepFinished(null, e);
IViewContent currentView = WorkbenchSingleton.Workbench.ActiveViewContent;
IParseInformationListener listener = currentView as IParseInformationListener;
if (listener != null && FileUtility.IsEqualFileName(e.FileName, currentView.PrimaryFileName)) {
listener.ParseInformationUpdated(e.ParseInformation);
}
});
}

2
src/Main/Base/Project/Src/Services/RefactoringService/FindReferencesAndRenameHelper.cs

@ -415,7 +415,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -415,7 +415,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
if (entry.Value.ViewContent is IEditable) {
ParserService.ParseViewContent(entry.Value.ViewContent);
} else {
ParserService.ParseFile(entry.Value.OpenedFile.FileName, entry.Key.CreateSnapshot());
ParserService.ParseFile(entry.Value.OpenedFile.FileName, entry.Key);
}
}
}

2
src/Main/Base/Project/Src/Services/RefactoringService/NamespaceRefactoringService.cs

@ -43,7 +43,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring @@ -43,7 +43,7 @@ namespace ICSharpCode.SharpDevelop.Refactoring
public static void ManageUsings(Gui.IProgressMonitor progressMonitor, string fileName, IDocument document, bool sort, bool removedUnused)
{
ParseInformation info = ParserService.ParseFile(fileName, document.CreateSnapshot());
ParseInformation info = ParserService.ParseFile(fileName, document);
if (info == null) return;
ICompilationUnit cu = info.MostRecentCompilationUnit;

3
src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorBasedPad.cs

@ -63,8 +63,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -63,8 +63,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
public ITextBuffer CreateSnapshot()
{
string content = WorkbenchSingleton.SafeThreadFunction<string>(GetText);
return new ICSharpCode.SharpDevelop.Editor.AvalonEdit.AvalonEditTextSourceAdapter(
new ICSharpCode.AvalonEdit.Document.StringTextSource(content));
return new StringTextBuffer(content);
}
string IEditable.Text {

Loading…
Cancel
Save