saros
saros copied to clipboard
Open Source IDE plugin for distributed collaborative software development
With the currently used release `4.8`, I was unable to mock the Eclipse class `org.eclipse.core.resources.IProject` or its implementations. When trying to create a mock, EasyMock runs into a `NoClassDefFoundError` for...
In Eclipse, nested projects lead to a workspace setup where resources are listed twice (or more often with more levels of nesting): Once as part of their own project and...
The [`WatchdogRecoveryHandler`](https://github.com/saros-project/saros/blob/2e5c77ae9234bf1d9bcfde9f9441513633d20ab1/core/src/saros/concurrent/watchdog/ConsistencyWatchdogHandler.java#L203) uses the editor content to determine the binary file content when creating a recovery file creation activity. This handling can be an issue in corner cases as the...
Saros/I still uses the `ProgressIndicator` interface provided by the IntelliJ API directly. To offer a unified handling across the plugin, the wrapper `ProgressMonitorAdater` (or its interface `IProgressMonitor`) could be used...
Saros/I overwrites the line endings of all client files with the ones used by the host. I.e. if the host uses Unix (LF) and the client Windows (CRLF), all files...
`TextEditActivity.toOperation()` results in the creation of a NoOperation in cases where the activity has neither a valid replaced text nor a valid new text. It is currently unclear why/in which...
The class [`Algorithm`](https://github.com/saros-project/saros/blob/master/core/src/saros/concurrent/jupiter/Algorithm.java) (and its implementation) has multiple unused methods: - `void acknowledge(int siteId, Timestamp timestamp) throws TransformationException` - `TextPosition[] transformIndices(Timestamp timestamp, TextPosition[] textPositions) throws TransformationException` (method parameters based on...
There are a couple of dependencies that are automatically overwritten with higher versions of the library due to requirements by other packages. These dependencies should be corrected in the build...
Currently, the logic to obtain `Editor` objects for open text editors still causes the editor to be selected, even if the flag `focusEditor=false` is used. This could possibly be avoided...
IntelliJ `2020.1` adds the functionality to dynamically load/unload plugins without having to restart the IDE. To be compatible with this logic, the plugin needs to adhere to specific criteria listed...