dotnet / roslyn

The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
https://docs.microsoft.com/dotnet/csharp/roslyn-sdk/
MIT License
18.88k stars 4.01k forks source link

Test and fix each refactoring in the Interactive window #4932

Open amcasey opened 9 years ago

amcasey commented 9 years ago

For example,

  1. Renaming across submissions is explicitly blocked.
  2. Renaming within a single submission raises a fatal error (fix pending).
  3. Renames that cascade across submissions silently fail to update previous submissions (e.g. renaming an interface implementation).
  4. Changing signature across submissions is not blocked - previous submissions are silently not updated.
  5. Change signature within a single submission appears to work.
  6. Extract method in the active submission doesn't insert a line break, which can cause parsing issues (and looks bad). Subsequent edits raise exceptions about moving the caret out of range.
  7. It is not clear what does or should happen when extracting a method from a previous submission.
  8. Extracting an interface from a previous submission probably never makes sense.

While we (in a broad sense) control all of the refactorings, we do not control all of the code actions, so we will probably have to expose some mechanism for recognizing and possibly bypassing read-only regions (i.e. previous submissions).

amcasey commented 9 years ago

FYI @dpoeschl FYI @ManishJayaswal @Pilchie I think some coordination will be required here.

amcasey commented 9 years ago

Part of #3785.

ManishJayaswal commented 8 years ago

Lets fix rename and add using ( code fix) for 1.1 while we figure out the what to do with rest of the refactorings.

amcasey commented 8 years ago

At the very least, we should have a plan by the end of 1.2.