I was playing around with the sources fresh from SVN and I tried to integrate the Hex Editor into SD, but I was facing problems with the TextEditor:
When I try to load a file with the TextEditor I get this exception:
System.ArgumentException: registeredViews already contains view
at ICSharpCode.SharpDevelop.FileServiceOpenedFile.RegisterView(IViewContent view) in src\Main\Base\Project\Src\Services\File\OpenedFile.cs:Zeile 355.
at ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.TextEditorDisplayBinding.CreateContentForFile(OpenedFile file)
in src\Main\Base\Project\Src\TextEditor\Gui\Editor\TextEditorDisplayDinding.cs:Zeile 47.
at ICSharpCode.SharpDevelop.FileService.LoadFileWrapper.Invoke(String fileName)
in src\Main\Base\Project\Src\Services\File\FileService.cs:Zeile 182.
at ICSharpCode.Core.FileUtility.LoadWrapper.Invoke()
in src\Main\Core\Project\Src\Services\FileUtility\FileUtility.cs:Zeile 598.
at ICSharpCode.Core.FileUtility.ObservedLoad(FileOperationDelegate loadFile, String fileName, String message, FileErrorPolicy policy)
in src\Main\Core\Project\Src\Services\FileUtility\FileUtility.cs:Zeile 545.
I looked around in the code and I found out that file.ForceInitializeView(b2); already registers b2 as a View and so calling file.RegisterView(b2); is not necessary: (TextEditorDisplayBinding.cs, line 42)
public virtual IViewContent CreateContentForFile(OpenedFile file)
{
TextEditorDisplayBindingWrapper b2 = new TextEditorDisplayBindingWrapper(file);
file.ForceInitializeView(b2); // load file to initialize folding etc.
file.RegisterView(b2);
I hope this helps!