Atelier supports Studio extensions, as provided by %Studio.Extension.Base. This means that if you rely on Studio extensions such as source control hooks, you can continue to use them in Atelier. When you connect an Atelier project to a namespace where source control hooks are enabled, any menus that you would see in Studio appear in the Atelier menu bar when you select that project or any resources in it.
If you are using Studio extensions in Atelier, you need to remember that, unlike Studio, Atelier must synchronize source files between the client, where you create and edit files, and the server, where you compile, run, and debug them. Compilation and Studio extensions, which run on the server, can make changes to your source files that create version conflicts with the version stored on the client. See Working with Atelier and Synchronization and Conflict Resolution for more information of synchronizing files.
Support for extensions in Atelier is not exactly the same as in Studio. Some features available in Studio are intentionally unsupported, and others behave somewhat differently in Atelier than they do in Studio. Most of these differences are inherent to the client-centric Eclipse model used by Atelier, and the fact that Atelier communicates with the server through stateless REST APIs instead of a constant connection. You can find the full documentation for Studio extensions at: %Studio.Extension.Base and Using Studio Source Control Hooks.
In a Studio extension, the UserAction method may be implemented to handle events that result when the user clicks on menu items or performs other actions in the editor. The following lists summarize the major differences in the behavior of the UserAction method in Studio and Atelier.
The following values for the Name argument are not implemented:
The following values for the Name argument are implemented but show differences in behavior:
In Studio, editing of documents that are locked in source control is disallowed. In Atelier, it is not disallowed, but synchronization will fail until the item is checked out. The server will be notified of this event once per file/editor session.
In Studio, this event is triggered when new classes are created and before they are actually saved. In Atelier, it is not triggered until a new class is first saved to the server. For other document types, the behavior is equivalent to Studio's; "creation of a new document" happens when it is first saved to the server.
In Atelier, this event is not triggered when a file is removed from a project; it is only triggered when a resource is deleted from the server explorer.
In Studio, there is a connection to one namespace at a time. In Atelier, there may be many. Therefore, this event is triggered when a connection to a namespace is first established, or when a connected project is opened (and a valid connection is subsequently established).
The following values for the Action argument are implemented but show differences in behavior:
In Atelier, the running of executables on the client is disallowed, for security reasons and also because the client's operating system is unknown. However, an undocumented feature of Studio is that the executable may actually be a URL rather than the name of a file. This case is supported, and the specified URL is launched in an external browser, as configured in Eclipse settings.
As an added feature in Atelier, if the Target or Msg text contains the word "password", the Target and Msg text are both shown above a password field rather than a text field initially populated with Msg.
Two other minor differences are worth noting:
Using Studio Source Control Hooks
Working with Atelier
Synchronization and Conflict Resolution