icsharpcode / NRefactory

NRefactory - Refactoring Your C# Code
684 stars 264 forks source link

The Online Converter messes up object initializers #514

Open beppe9000 opened 8 years ago

beppe9000 commented 8 years ago

When converting C# to Vb.Net using the Online Converter i found two issues, #513 is the first, and this is the second.

Code with object initializers like this

StudentName student2 = new StudentName
        {
            FirstName = "Craig",
            LastName = "Playstead",
        };

is wrongly translated to this (notice the "Key " parts)

Dim student2 As New StudentName() With { _
    Key .FirstName = "Craig", _
    Key .LastName = "Playstead" _
}

instead of this

Dim student2 As New StudentName() With { _
    .FirstName = "Craig", _
    .LastName = "Playstead" _
}
christophwille commented 8 years ago

The code converter feature is part of SharpDevelop 4.x, which doesn't use NRefactory 5. So the bugs would need to go to SharpDevelop for the old branches (however, it is unlikely that this would be fixed for 4.x)

beppe9000 commented 8 years ago

Was the feature dropped?

christophwille commented 8 years ago

SD5 does support only C# so far, so it simply isn't there for the obvious reason of no VB support.

beppe9000 commented 8 years ago

I do not understand: has it been rewritten from scratch?

christophwille commented 8 years ago

NR5 is a complete rewrite, yes

beppe9000 commented 8 years ago

Couldnt'y the old vb part be used as a dependency meanwhile? Or is it completely incompatible?

christophwille commented 8 years ago

Totally different architecture and design

beppe9000 commented 8 years ago

Oh, I see.. Do you happen to know when (1month, 6 moths, 1 year, forever?) vb support will added?

dgrunwald commented 8 years ago

We don't plan to add VB support.

NRefactory at this point is mostly dead -- we don't plan to add any new features, not even C# 6 support. Use Microsoft's Roslyn instead. It shouldn't be hard to write a code converter based on Roslyn, though I'm not aware of any such project.

luca-saggese commented 8 years ago

But what happened to NRefactory Roslyn's branch? i was working on the VB plugin, but i see is now completed out of scope..

Will sharpdevelop use another plugin for syntax highlight / code completion other than nrefactory?

dgrunwald commented 8 years ago

The NRefactory Roslyn branch only ever contained refactorings ported to Roslyn. Those were moved to the RefactoringEssentials repository.

Pretty much everything else in NRefactory duplicates Roslyn, so there isn't really a point to having NRefactory anymore. MonoDevelop is moving to Roslyn instead. SharpDevelop doesn't have the manpower to move anywhere.