![](http://habrastorage.org/getpro/habr/avatars/90b/f45/edb/90bf45edbccf57779327057f0c4bca80.png)
IntelliJ-based .NET Support - Reality?
Let's talk about .NET support on the IntelliJ platform. After reading, you yourself decide: is it reality?
Let's make a normal Hello World . What do we need to check?
1. Download the Consulo build (my fork of IntelliJ IDEA, why fork is a different topic). 2. Run bin \ consulo.exe (win 32), bin \ consulo64.exe (win 64), Consulo.app (mac), bin / consulo.sh (linux). I recommend checking on Windows, although I tested builds on Linux and Mac, but they are less stable, and there are a couple of problems (for example, with Mac + Mono). If everything went smoothly, we have: 3. Click on Actions -> Configure -> Plugins . We see there an empty list. Click browse repositories ...
![image](https://habrastorage.org/getpro/habr/post_images/c46/add/7d2/c46add7d2fbda064123617bb5cbb48cb.png)
. A dialog will appear, after 10 seconds a list of available plugins will appear (delay is a poor implementation of the repository plugin). We look for Microsoft .NET or Mono .NET there and install. As a result, we should have:
![image](https://habrastorage.org/getpro/habr/post_images/5f3/899/4c4/5f38994c4af90ff6aeb172a2f114fb55.png)
4. Actions -> Create Project -> OK . We have an empty project. We go to the project settings. We search for our module and select the Extensions tab . There we select Microsoft .NET -> C # (or Mono .NET -> C # ). Structurable extensions allow you to configure a project similar to Java (with Source + Test folders, with support for packages like Java):
![image](https://habrastorage.org/getpro/habr/post_images/29c/b7f/e49/29cb7fe4967226ad0e87c3280805ad75.png)
5. After clicking OK , there will be a delayand indexing will take place. I do not exclude that during indexing Exception will be thrown, if so, send it to me through the interface .
To check if everything is normal, do Ctrl + N -> Console . If you go to the System.Console class , then everything is fine, and you can continue, if not, please unsubscribe in the comments.
6. Create a class. In the project tree, do New -> C # Class -> `Program` -> OK and write the usual Hello World:
7. Now we need to run this code. Go to Edit Configurations -> Add -> .NET Application . Nothing more needs to be changed.
![”Image”](https://habrastorage.org/getpro/habr/post_images/40b/0a3/c47/40b0a3c477176d7a9f7b4bbaf73a72db.png)
Save and click Run :
![”Image”](https://habrastorage.org/getpro/habr/post_images/f1f/3b7/359/f1f3b7359872b43532a75b4c8483993b.png)
This completes our test.
I would like to clarify that this is only the initial implementation, which I do in solo mode (almost 500 commits).
It supports:
• Macros;
• Decompilation of .NET libraries;
• Profiles (the ability to change KFOR, variables, etc.);
• Basic search for methods, classes, variables, etc.;
• Backlight, partial filling, folding;
• Virtually all C # syntax.
But at the same time, there are bugs:
• Binary operations return the wrong type;
• #if macros tend to break in large files;
• Inner methods and enums are not involved in the search;
• Decompilation is not perfect.
What are my plans?
• Fix bugs;
• Debugging;
• NUnit, Unity, NAnt, Vistual Studio Importer, IronRuby, IronPython, and ....
I’m not going to quit, there’s still time for development. All links can be found on my github profile .
Let's make a normal Hello World . What do we need to check?
1. Download the Consulo build (my fork of IntelliJ IDEA, why fork is a different topic). 2. Run bin \ consulo.exe (win 32), bin \ consulo64.exe (win 64), Consulo.app (mac), bin / consulo.sh (linux). I recommend checking on Windows, although I tested builds on Linux and Mac, but they are less stable, and there are a couple of problems (for example, with Mac + Mono). If everything went smoothly, we have: 3. Click on Actions -> Configure -> Plugins . We see there an empty list. Click browse repositories ...
![image](https://habrastorage.org/getpro/habr/post_images/c46/add/7d2/c46add7d2fbda064123617bb5cbb48cb.png)
. A dialog will appear, after 10 seconds a list of available plugins will appear (delay is a poor implementation of the repository plugin). We look for Microsoft .NET or Mono .NET there and install. As a result, we should have:
![image](https://habrastorage.org/getpro/habr/post_images/5f3/899/4c4/5f38994c4af90ff6aeb172a2f114fb55.png)
4. Actions -> Create Project -> OK . We have an empty project. We go to the project settings. We search for our module and select the Extensions tab . There we select Microsoft .NET -> C # (or Mono .NET -> C # ). Structurable extensions allow you to configure a project similar to Java (with Source + Test folders, with support for packages like Java):
![image](https://habrastorage.org/getpro/habr/post_images/29c/b7f/e49/29cb7fe4967226ad0e87c3280805ad75.png)
5. After clicking OK , there will be a delayand indexing will take place. I do not exclude that during indexing Exception will be thrown, if so, send it to me through the interface .
To check if everything is normal, do Ctrl + N -> Console . If you go to the System.Console class , then everything is fine, and you can continue, if not, please unsubscribe in the comments.
6. Create a class. In the project tree, do New -> C # Class -> `Program` -> OK and write the usual Hello World:
using System;
public class Program
{
public static void Main(String[] arg)
{
Console.WriteLine("Hello World");
}
}
7. Now we need to run this code. Go to Edit Configurations -> Add -> .NET Application . Nothing more needs to be changed.
![”Image”](https://habrastorage.org/getpro/habr/post_images/40b/0a3/c47/40b0a3c477176d7a9f7b4bbaf73a72db.png)
Save and click Run :
![”Image”](https://habrastorage.org/getpro/habr/post_images/f1f/3b7/359/f1f3b7359872b43532a75b4c8483993b.png)
This completes our test.
I would like to clarify that this is only the initial implementation, which I do in solo mode (almost 500 commits).
It supports:
• Macros;
• Decompilation of .NET libraries;
• Profiles (the ability to change KFOR, variables, etc.);
• Basic search for methods, classes, variables, etc.;
• Backlight, partial filling, folding;
• Virtually all C # syntax.
But at the same time, there are bugs:
• Binary operations return the wrong type;
• #if macros tend to break in large files;
• Inner methods and enums are not involved in the search;
• Decompilation is not perfect.
What are my plans?
• Fix bugs;
• Debugging;
• NUnit, Unity, NAnt, Vistual Studio Importer, IronRuby, IronPython, and ....
I’m not going to quit, there’s still time for development. All links can be found on my github profile .
Only registered users can participate in the survey. Please come in.
.NET support on IntelliJ platform - reality?
- 62.3% Yes 293
- 11.7% No 55
- 25.9% not now 122