For those who missed my posts: Consulo is a fork of IntelliJ IDEA Community Edition, which has support for .NET (C # currently, and this sector is still under great emphasis), Java.
In this mini article, I will share with you what has been done in the last 2 months.
')
.NET
Code Coverage (with OpenCover)
Starting in January, support for code coverage has appeared (using the OpenCover for the Microsoft .NET Framework). Allows you to view the code coverage both during normal application launch and for NUnit tests. Code coverage uses OpenCover, which unfortunately does not work on Mono. About Mono Coverage is still unclear. Code coverage works at the simplest level, we need amendments to the platform, which are only in the plans so far.
NUnit with Mono Debugger
Mono Debugger and NUnit test support were added a long time ago. But, because of the bug, launching NUnit under Mono was not possible. After fixing this bug, support for Mono Debugger was also added during test launches. There is no debugger for Microsoft .NET yet. Accordingly, the test debugging does not work yet.
Unity3d
Message methods
In Unity, there are methods like Messages, which, in fact, do not overload anything, but when executed they are invoked by the Unity engine itself, through reflection. At the same time, you can accidentally rename a method, and the code calmly compiles, but the method will stop working. To avoid this, a “backlight” marker was added opposite the method. When you hover on that, you can see a brief description.
Adding methods via completion
Support was also added to add these methods through completion. It is possible to add two types of methods: parameterless and \ or full signature.
New Import Mode
Previously, there was no support for importing Unity projects. In fact, we created a project on top of the project unit and added everything manually. There were also problems with the fact that the project did not have all the necessary libraries. Now, a new project import system has been implemented - it understands the structure of the Unity project much better, and the problem with importing the Unity SDK libraries (or plug-ins) has been solved. So far, the old and the new way of "import" coexist together, but in the near future, the old method will be removed.
K Runtime (ASP .NET vNext)
Recently, I became interested in the ASP .NET 5 framework, which resulted in basic support for K projects. Support has been added for determining the runtime SDK, dependencies, analyzing C # files, launching. Alas, at the moment, Nuget support is very modest and you have to hardcore dependencies in order for the code analysis to be true. But, for the most part, this is still an experiment. Until the full support of the ASP.NET platform is still far away, I don’t think they are seriously engaged at the moment. Anticipating questions: No, implementation of support for Razor templates is not planned yet.
C #
Static vs instance
Previously, completion did not understand where the Static & Instance methods could be used, and it was possible to write ala String.GetHashCode () - and the code was not highlighted with an error, but it did not compile. Now completion correctly defines the context of the element. Also, checks CS0120 & CS0176 that are responsible for the validation of these calls have been added. But these fixes have created an interesting bug 208 , which has not yet been fixed.
Code Style
In January, CodeStyle support was redesigned. There are many familiar options in Wrapping & Spacing.
Expected type system
Now the completion knows what type it expects, and sorts the required elements higher. Also, this amendment concerns attributes, when entering text inside '[]' all attributes go to the top of the list.
Plan for the future
It may sound funny, but I will continue to do what I did. The main problem now is that, for the time being, I simply don’t have testers or people who want to help me either with the code, or at least with the site. With me, no designer and therefore I can not come up with a decent style for the site or splash. You have to do everything yourself and, at the same time, have time to somehow work.