| Home » Eclipse Projects » Eclipse Platform » Synchronizing open editors on the same file
 Goto Forum:| 
| Synchronizing open editors on the same file [message #334536] | Mon, 16 February 2009 13:10  |  | 
| Eclipse User  |  |  |  |  | Originally posted by: marc.esher.comcast.net 
 All,
 I'm interested in contributing this feature to an open source project
 based on Eclipse. I have done a fair amount of plugin programming but never
 any Editor programming.
 Basically, the editor in this project doesn't currently support
 synchronization between two open editors on the same file. For example, if I
 have any text file, and I open it in the Default Text Editor, then choose
 "New Editor" and modify that file in one editor, the other editor
 automatically reflects those changes. I'd like to add that behavior into the
 editor in this project.
 Can someone point me down the right path?
 
 thanks so much.
 
 marc
 |  |  |  |  | 
| Re: Synchronizing open editors on the same file [message #334540 is a reply to message #334536] | Mon, 16 February 2009 17:54   |  | 
| Eclipse User  |  |  |  |  | Originally posted by: eclipse-news.rizzoweb.com 
 On 2/16/2009 1:10 PM, Marc E wrote:
 > All,
 > I'm interested in contributing this feature to an open source project
 > based on Eclipse. I have done a fair amount of plugin programming but
 > never any Editor programming.
 > Basically, the editor in this project doesn't currently support
 > synchronization between two open editors on the same file. For example,
 > if I have any text file, and I open it in the Default Text Editor, then
 > choose "New Editor" and modify that file in one editor, the other editor
 > automatically reflects those changes. I'd like to add that behavior into
 > the editor in this project.
 > Can someone point me down the right path?
 
 I think this is more of a fundamental design problem than a particular
 code problem. The editor in question must be using some kind of backing
 model that can be shared between editor instances. If it does not have
 some kind og in-memory model that is sharable, I'm not sure if you can
 do what you want.
 If EMF is involved, this is quite doable. But if not I would first look
 at the code of the basic text editor to see how they are doing it. Try
 org.eclipse.ui.editors.text.TextEditor
 
 Hope this helps,
 Eric
 |  |  |  |  | 
| Re: Synchronizing open editors on the same file [message #334542 is a reply to message #334540] | Mon, 16 February 2009 18:16   |  | 
| Eclipse User  |  |  |  |  | Originally posted by: marc.esher.comcast.net 
 Eric,
 Thanks for responding. I've been poring through TextEditor and its
 partners for quite a while now and am still having trouble tracking down the
 thing that's making it tick.
 
 To rule out any weirdness in the project i'm working on, I created a new
 fresh plugin project with an editor contribution... straight from the plugin
 wizard, no mods except to change the file extension (I made mine a .marc
 file editor). and I've verified that even that editor won't do what the
 default text editor does. If I open up my .marc file in the
 plugin-wizard-generated editor, I don't get the synched behavior. Open the
 same file in two instances of TextEditor, and I get what I'm looking for.
 
 I see that FileDocumentProvider has a FileSynchronizer inner class, and I
 thought maybe he was involved, but I can only get its methods to trip on
 save, not just dirtying the file.
 
 I imagine it's some listener, somewhere. But I don't yet have the Eclipse
 KungFu to track the bugger down.
 
 Anyway, thanks for responding, and thanks for listening.
 
 Cheers!
 
 Marc
 
 
 
 "Eric Rizzo" <eclipse-news@rizzoweb.com> wrote in message
 news:gncqno$u5d$1@build.eclipse.org...
 > On 2/16/2009 1:10 PM, Marc E wrote:
 >> All,
 >> I'm interested in contributing this feature to an open source project
 >> based on Eclipse. I have done a fair amount of plugin programming but
 >> never any Editor programming.
 >> Basically, the editor in this project doesn't currently support
 >> synchronization between two open editors on the same file. For example,
 >> if I have any text file, and I open it in the Default Text Editor, then
 >> choose "New Editor" and modify that file in one editor, the other editor
 >> automatically reflects those changes. I'd like to add that behavior into
 >> the editor in this project.
 >> Can someone point me down the right path?
 >
 > I think this is more of a fundamental design problem than a particular
 > code problem. The editor in question must be using some kind of backing
 > model that can be shared between editor instances. If it does not have
 > some kind og in-memory model that is sharable, I'm not sure if you can do
 > what you want.
 > If EMF is involved, this is quite doable. But if not I would first look at
 > the code of the basic text editor to see how they are doing it. Try
 > org.eclipse.ui.editors.text.TextEditor
 >
 > Hope this helps,
 > Eric
 |  |  |  |  | 
| Re: Synchronizing open editors on the same file [message #334544 is a reply to message #334540] | Mon, 16 February 2009 19:26   |  | 
| Eclipse User  |  |  |  |  | Originally posted by: marc.esher.comcast.net 
 I found the difference: TextEditor uses TextFileDocumentProvider instead of
 FileDocumentProvider.
 
 Interestingly enough, this is in the javadoc:
 
 * Text file document providers use {@linkplain
 org.eclipse.core.filebuffers.ITextFileBuffer text file buffers}
 * to access the file content. This allows to share it between various
 clients including
 * headless ones. Text file document providers should be preferred over file
 document
 * providers due to this advantage.
 
 Here's one of those cases where a dude like me says, "if it's preferred,
 then why doesn't the wizard generate code that uses this one instead!?"  I"m
 sure there's quite a good reason.  For example, I don't see anything
 immediately obvious for partitioning, so maybe that's it. Not sure.
 
 Anyway.... looks like I at least found the path to go down. I sure was
 hoping for a 3-line "oh, dude, just add this listenener..." kind of answer,
 which so often seems to be the case.
 
 Time to get my game face on!
 
 marc
 
 
 "Eric Rizzo" <eclipse-news@rizzoweb.com> wrote in message
 news:gncqno$u5d$1@build.eclipse.org...
 > On 2/16/2009 1:10 PM, Marc E wrote:
 >> All,
 >> I'm interested in contributing this feature to an open source project
 >> based on Eclipse. I have done a fair amount of plugin programming but
 >> never any Editor programming.
 >> Basically, the editor in this project doesn't currently support
 >> synchronization between two open editors on the same file. For example,
 >> if I have any text file, and I open it in the Default Text Editor, then
 >> choose "New Editor" and modify that file in one editor, the other editor
 >> automatically reflects those changes. I'd like to add that behavior into
 >> the editor in this project.
 >> Can someone point me down the right path?
 >
 > I think this is more of a fundamental design problem than a particular
 > code problem. The editor in question must be using some kind of backing
 > model that can be shared between editor instances. If it does not have
 > some kind og in-memory model that is sharable, I'm not sure if you can do
 > what you want.
 > If EMF is involved, this is quite doable. But if not I would first look at
 > the code of the basic text editor to see how they are doing it. Try
 > org.eclipse.ui.editors.text.TextEditor
 >
 > Hope this helps,
 > Eric
 |  |  |  |  | 
| Re: Synchronizing open editors on the same file [message #334545 is a reply to message #334544] | Tue, 17 February 2009 01:45   |  | 
| Eclipse User  |  |  |  |  | Marc E wrote: > I found the difference: TextEditor uses TextFileDocumentProvider
 > instead of FileDocumentProvider.
 >
 > Interestingly enough, this is in the javadoc:
 >
 > * Text file document providers use {@linkplain
 > org.eclipse.core.filebuffers.ITextFileBuffer text file buffers}
 > * to access the file content. This allows to share it between various
 > clients including
 > * headless ones. Text file document providers should be preferred over
 > file document
 > * providers due to this advantage.
 >
 > Here's one of those cases where a dude like me says, "if it's
 > preferred, then why doesn't the wizard generate code that uses this
 > one instead!?"
 Which wizard? Simply looks like the wizard needs some updating.
 
 Dani
 > I"m sure there's quite a good reason.  For example, I don't see
 > anything immediately obvious for partitioning, so maybe that's it. Not
 > sure.
 >
 > Anyway.... looks like I at least found the path to go down. I sure was
 > hoping for a 3-line "oh, dude, just add this listenener..." kind of
 > answer, which so often seems to be the case.
 >
 > Time to get my game face on!
 >
 > marc
 >
 >
 > "Eric Rizzo" <eclipse-news@rizzoweb.com> wrote in message
 > news:gncqno$u5d$1@build.eclipse.org...
 >> On 2/16/2009 1:10 PM, Marc E wrote:
 >>> All,
 >>> I'm interested in contributing this feature to an open source project
 >>> based on Eclipse. I have done a fair amount of plugin programming but
 >>> never any Editor programming.
 >>> Basically, the editor in this project doesn't currently support
 >>> synchronization between two open editors on the same file. For example,
 >>> if I have any text file, and I open it in the Default Text Editor, then
 >>> choose "New Editor" and modify that file in one editor, the other
 >>> editor
 >>> automatically reflects those changes. I'd like to add that behavior
 >>> into
 >>> the editor in this project.
 >>> Can someone point me down the right path?
 >>
 >> I think this is more of a fundamental design problem than a
 >> particular code problem. The editor in question must be using some
 >> kind of backing model that can be shared between editor instances. If
 >> it does not have some kind og in-memory model that is sharable, I'm
 >> not sure if you can do what you want.
 >> If EMF is involved, this is quite doable. But if not I would first
 >> look at the code of the basic text editor to see how they are doing
 >> it. Try org.eclipse.ui.editors.text.TextEditor
 >>
 >> Hope this helps,
 >> Eric
 >
 |  |  |  |  |  |  | 
| Re: Synchronizing open editors on the same file [message #334547 is a reply to message #334545] | Tue, 17 February 2009 05:23  |  | 
| Eclipse User  |  |  |  |  | Originally posted by: marc.esher.comcast.net 
 > Which wizard? Simply looks like the wizard needs some updating.
 >
 > Dani
 
 
 Dani, this is the "Plugin with an Editor" Wizard that appears during Plug-in
 project creation.
 
 
 I'm wondering: do any of you know of documentation or otherwise that offers
 guidance and gotchas on converting a DocumentProvider from extending
 FileDocumentProvider to TextFileDocumentProvider? I have two books on
 Eclipse programming, and neither of them touch on this much at all.
 
 thanks.
 
 marc
 
 
 
 
 
 >> I"m sure there's quite a good reason.  For example, I don't see anything
 >> immediately obvious for partitioning, so maybe that's it. Not sure.
 >>
 >> Anyway.... looks like I at least found the path to go down. I sure was
 >> hoping for a 3-line "oh, dude, just add this listenener..." kind of
 >> answer, which so often seems to be the case.
 >>
 >> Time to get my game face on!
 >>
 >> marc
 >>
 >>
 >> "Eric Rizzo" <eclipse-news@rizzoweb.com> wrote in message
 >> news:gncqno$u5d$1@build.eclipse.org...
 >>> On 2/16/2009 1:10 PM, Marc E wrote:
 >>>> All,
 >>>> I'm interested in contributing this feature to an open source project
 >>>> based on Eclipse. I have done a fair amount of plugin programming but
 >>>> never any Editor programming.
 >>>> Basically, the editor in this project doesn't currently support
 >>>> synchronization between two open editors on the same file. For example,
 >>>> if I have any text file, and I open it in the Default Text Editor, then
 >>>> choose "New Editor" and modify that file in one editor, the other
 >>>> editor
 >>>> automatically reflects those changes. I'd like to add that behavior
 >>>> into
 >>>> the editor in this project.
 >>>> Can someone point me down the right path?
 >>>
 >>> I think this is more of a fundamental design problem than a particular
 >>> code problem. The editor in question must be using some kind of backing
 >>> model that can be shared between editor instances. If it does not have
 >>> some kind og in-memory model that is sharable, I'm not sure if you can
 >>> do what you want.
 >>> If EMF is involved, this is quite doable. But if not I would first look
 >>> at the code of the basic text editor to see how they are doing it. Try
 >>> org.eclipse.ui.editors.text.TextEditor
 >>>
 >>> Hope this helps,
 >>> Eric
 >>
 |  |  |  | 
 
 
 Current Time: Thu Oct 30 23:51:10 EDT 2025 
 Powered by FUDForum . Page generated in 0.24148 seconds |