Last month, at
JetBrains Day, we announced a new
Upsource platform, which we are working on. In this review, we invite you to get to know her better.
As many users of our products know, JetBrains has developed and maintains IntelliJ's flexible extensible platform, which serves as the foundation for all our integrated development environments, including IntelliJ IDEA, PhpStorm, WebStorm, RubyMine, PyCharm and AppCode, as well as for Google’s Android Studio. IntelliJ provides all the basic functionality of these IDEs; the other features and “gadgets”, which give individuality to each of the IDE, are nothing more than a set of plug-ins to the platform.
Despite the success of this model, we realized that the IntelliJ platform needs to be developed. Therefore, for more than a year now we have been working on an internal project on its modularization, with the goal of providing its capabilities in a “packageless” performance. This should open the way for a number of new applications, one of which is
Upsource - also a platform, but a server one.
')

All your code, each commit - in full view
Upsource is a “code browser” (among other things). By clicking on a particular commit, we can at any time begin to view the code corresponding to it:

A tree view of our project is displayed immediately:

From it we can go to any file. In the files with the source code, not only syntax highlighting, but also powerful navigation works. By clicking on any symbol, we can
go to its declaration (Goto Declaration) or
find its Findings (Find Usages) :

Upsource will instantly provide search results that you can immediately go to. This ensures fast, efficient code navigation.

In addition, Upsource allows you to
go to a specific character (Goto By Name) , just as it is done in a regular IDE:

Changes in the code (diffs)
In addition to conveniently viewing the contents of commits, Upsource allows you to visually see the differences between them. By clicking on a particular commit, we will receive complete information about the changes:

You can visually compare their side-by-side:

For example, this can be useful when sharing code. Simply by highlighting a code snippet, you can create a URL and send it to another person:

In the code, you can highlight a fragment in advance in order to draw attention to it:

Finally, there is the “Annotations” view, where the commit information is displayed on the left:

More than a browser: code analysis
Above, we have described some useful ways of self-viewing code and sharing code. But the possibilities of Upsource, of course, are not limited to this.
On one of the screenshots above, you might notice a yellow square (in the right margin). If you use our IDE based on IntelliJ or ReSharper (for .NET), then you know that the green box means that everything is fine in your code, yellow - that there are potential problems, and red - that there are certain problems.
If so, then intuition has not deceived you: this box tells us that Upsource is analyzing the source code, as IntelliJ IDEA does. It reveals the same browser problems that you might see in your IDE.

In the near future we plan to add other languages. Most of the preparatory work for this (the allocation of the necessary modules from the IntelliJ platform) has already been done, so support for additional languages ​​that JetBrains IDEs are already working with is not far off.
Try Upsource now
Although we have not yet launched the official Pre-Access Program (EAP), Upsource can already be tried as a solution with remote hosting. Go to
upsource.jetbrains.com and take a look at our two open source projects:
IntelliJ IDEA Community Edition and
Project Kotlin . You can also navigate through a variety of publicly available JVM libraries, including the entire Android SDK.
Program with pleasure!
JetBrains team