All notable changes to the code converter will be documented here.
- Ask people to upgrade VS if missing languageservices
- Improve event identifier conversion
- Improve conversion of interpolated strings (format, alignment, escaping)
- Avoid fatal error converting a project in a solution containing a website project (#243)
- Improve best-effort conversion in the presence of errors
- Improved nuget package and web converter's snippet detection
- Exclude conversion-source-language files from converted project
- Improve conversion of type casts
- Web UI tweaks
- Fix for interpolated strings and switch statements in VS2019 Preview
Fix initialization bug in VS2017
- Tuples now converted
- All known operator overloads now converted
- VS 2019 support
- Breaking API change: Most library API names and return types are now async
- Improve VS startup time by making package load async
- Added SourceLink
- Private setter added to conversion of ReadOnly properties to cater for backing field usage
- Usage of compiler generated event variable name converted correctly
- Access modifiers no longer added erroneously to static constructor
- "Do Until" construct multi-part conditions are correctly converted
- Tuple conversion support added
- VB -> C#: Error (lot of comments about the issue) when define an array with number of elements
- Decimal division conversion bugfix
- GoTo Case with dot in name converted correctly
- Fix array indexing from outside a class
- Escape double quotes with string interpolation
- Converts date literals
- Converts ChrW and Chr
- Converts type promoted module members
- Converts EntryPoint and Charset for native functions
- Converts WriteOnly interface properties
- Converts "Integer?" to int?
- Converts property setters with parameters not named "value"
- Fixed bug causing duplicate namespace qualification
- Parenthesizes ternary conditional when necessary to preserve logic
- Convert enums with explicit base type
- Parenthesize "as" cast if necessary
- Convert properties using "Item" syntax
- Extract variable for "To" expression
- Convert base constructor call missing parentheses
- Fix Nullref in SyntaxFactory.MethodDeclaration
- Performance improvement for large solutions
- Fix solution/project level context menu item not appearing when projects are within folders
- Fix solution level conversion issues for projects other than the first one
- Improve query syntax support (some forms of group now supported)
- Note: This release downgrades the library to net standard 1.3 for compatibility reasons - this should fix "could not load file or assembly netstandard, Culture=neutral'" error
- Type inferred const - convert to explicit type
- Improve name qualification
- Add parentheses around conditional expression in string interpolation
- Add parentheses where needed when convert Not, CType and TypeOf
- Fix namespace conversion issues
- Conversion error for indexer on property value of unresolved type
- Single-line lambda with statement body not implemented
- Array literals not always converted to implicit C# array
- Move options lower down in the context menus so they aren't in the way
- Handle WithEvents fields without initializers
- In lambda, use parentheses around single explicitly typed parameter
- Convert LocalDeclarationStatementSyntax
- Default parameter "value" now has the correct case
- Multiline xml doc comment conversion bugfix
- Interfaces "implements" clause now converted
- Shared no longer appears on Module members
- Fixed .Name bug with anonymous object creation
- Use Is and IsNot for reference type comparison
- Update to .NET Standard 2.0
- Convert solution and project files
- Added convert and copy to clipboard into options
- Convert WithEvents/Handles
- Convert
Handles
andWithEvents
similarly to the VB compiler - Handle expressions in Select Case
- Ensure all parts of a partial class have the partial modifier
- Handle missing optional arguments
- Increase number of default global imports for web conversion
- Default properties now converted
- Fix DeclarationExpressions without a type throwing exception
- Convert Throw Expressions to multi-line lambda function
- Convert properties with no accessors
- Fix error converting ObjectCollectionInitializerSyntax within object initializer
- Escape predefined if they are used for the name of declaration
- Improve support for sub-class snippets through the website
- Best effort conversion with errors as comments inline
- Tidy up duplicate import/using statements
- Using statements and array initialization improvements
- Convert select case expressions
- Fix for multi-parameter extension methods
- Convert single line void delegates
- Fix array initialization incorrect conversion bugs
- Convert operator overloads
- Overestimate when a method should be invoked with no parameters
- Remove global namespace in conversion
- Add Imports System.Runtime.InteropServices when convering an out parameter
- Support Erase and Redim Preserve
- Convert select case expressions
- Extend support for converting with blocks
- Convert C# 7.0 features: "is pattern", throw and declaration expressions
- Convert expression bodies
- Fix to ensure Case Else always comes last in a Select statement
- Convert base class constructor call
- Fix convert char from integer cast
- Convert hex literals to hex literals (rather than just integers)
- Fix to avoid using "_" as a parameter name
- Fix for loop variable missing declaration and initialization
- Convert declare to extern
- Fix to improve accuracy of adding AddressOf
- Convert block syntax
- Convert empty statement
- Fix to avoid single line if-else statement's conversion causing compilation error
- Fix to avoid delegate with no parameters throwing NullReferenceException
- Fix for change in logic when converting nested one-line if blocks
- Fix for loss of precision in arithmetic when using
/
operator - Integer division and bit shifting now converted
Is
andIsNot
operators now convertedNarrowing
andWidening
conversion operators now converted- Linq query syntax with no select clause now converted
DirectCast
operator now convertedShadows
modifier now converted (tonew
)
- Newline now appears before each attribute list
- Fix for
new
converting toShadows
- it now maps toOverloads
- VSIX: Gets conversion off the UI thread to avoid it freezing
- VB -> C#: VB projects referencing other VB projects no longer error
- VB -> C#: XmlDoc comments now are correctly newline terminated
- New commands added to convert whole solution/project at once
- Works reliably in VS2017
- Instead of copy to clipboard, opens result as Visual Studio window for quick viewing
- Writes summary to output window to explain what's happened
- Project context used for all conversions
- Query expression syntax converted in simple cases
- Anonymous object creation converted
- Object initializer syntax converted
- Converts comments in the majority of cases (though with some formatting oddities)
- Now works on sub-method snippets
- Names now fully qualified where necessary
- Out parameters correctly converted
- Move from Refactoring Essentials to a repository of its own
- Separate NuGet
- Separate VSIX
- Improvements on the VB side