📜 ⬆️ ⬇️

Consulo + .NET plugin, two months later

Two months have passed since my first publication . After it, I slightly changed the priority to one task. Namely - the debugger implementation, at least for Mono .NET.

Debugger


As I wrote above, I decided to implement debager support for Mono .NET. As I said in the comments, Mono has a Soft Debugger, which uses a protocol like Java (JWDP). The result was a Java library for Mono debugging.

A couple of screenshots:

image
')
image

You can also see in the test video here .

During the pause, you can change the values ​​for primitive types and strings.

Of the flaws known to me, Watchers does not work, since they are based on Evaluate Expressions, and this is a satisfying volume task that I have postponed for the time being.

Microsoft .NET debager also has a low priority, so far I don’t have time to write a shell (I don’t want to use the command line debugger, because it will need to write a separate implementation for the debugger, I plan to implement the mono debugger to Microsoft .NET). If you wish - write to the post office.

.NET


Added support for Mono Docs, which are stored in a content-specific format.

image

C #


During this time, a lot of things have been implemented.

* Lambda expressions , are now processed, and their parameters are of the correct type.
image

* Method extensions . Decompilation of methods was corrected for correct definition of this modifier. A search for the same methods was also made.

image

* Correct support version Sharp. Now expressions that are not supported by the version of the language that you set in the settings are already highlighted.

image

image

* Multi-dimenstion arrays

image

* Support for partial types

* Binary loss operations return the correct type.

Sandbox


This section deals with various tasks that indirectly relate to .NET / C # plugins.

* NUnit support has been made, but as long as it is far from ideal, you need to spend more time on it

image

* Made initial support for importing Visual Studio projects.

* There is an initial implementation for IKVM

image

image

It supports static and dynamic compilation for Microsoft .NET. For Mono .NET, only dynamic startup is supported. Static compilation broken by official Mono builds.

PS


The current status is alpha. So far not suitable for work in production. There are many more bugs - which are being ruled and created every day. I will continue to work, it is not known yet with what force, since I can change my place of residence - and this will interfere. Those who wish to help would be nice.

I want to answer a couple of questions that I was asked earlier.

There will be no transfer to the .NET platform (via IKVM). The main reason is the change of sewing on soap. And the second is that even the author of IKVM does not support Mono.

Transfer to IntelliJ platform will also not be. There are reasons that I don’t want to write here, in order to avoid the flame. One of them - I do not like IDE cloud on my computer. Who wants - can transfer. But I know it is practically impossible (a lot of time will be spent on the transfer).

Thanks for attention.

Links


* Main repository
* .NET / C # plugin repository
* Night Builds (the plugin is installed via the interface - Microsoft .NET or Mono .NET):
- Windows
- Mac
- Linux

Source: https://habr.com/ru/post/221669/


All Articles