Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merging Features/generators into Future. #11274

Merged
merged 36 commits into from
May 12, 2016
Merged

Merging Features/generators into Future. #11274

merged 36 commits into from
May 12, 2016

Conversation

VSadov
Copy link
Member

@VSadov VSadov commented May 12, 2016

Internal Dogfooding Requirements (Merge Signoff)

Critical IDE features in the areas of Typing, Navigating, and Viewing must function as expected. Any non-trivial issues in these areas blocking language feature merging.
All feature descriptions and testing suggestions are merely examples. Each language feature should be carefully considered independently against each IDE feature to find interesting intersections

Category Feature/Description C# Signoff/Notes VB Signoff/Notes
Enable/Disable Feature Flag
Completely enables/disables the feature in the compiler & IDE
Typing General Typing
- Type and paste new constructs
- Nothing interferes with verbatim typing
#11191 - Fixed
Completion
- Typing new keyword/construct names
- Dotting off of new constructs
Formatting
- Spacing in and around new constructs
- Spacing options
- Format Document command
Automatic Brace Completion (C# only)
- Auto-insert close brace
- Shift+Enter commit of pending brace completion
Indentation
- Typing Enter in an unfinished statement indents the next line
Navigating Go To Definition
- F12 from callsites to definition
Go To Implementation
- Jump from virtual members to their implementations
- Jump from inheritable types to their implementations
Find All References
- Lists references to a symbol in "Find Symbol Results" window
- Shows results in hierarchy grouped by definition
🚧 #11192
Viewing Colorization
- Keywords, literals, and identifiers colored appropriately in code
Error Squiggles
- Squiggles appear as expected on reasonable spans

IDE Features (Feature Signoff)

For the remaining set of IDE features, only crashes and asserts are considered blocking. However, all issues discovered must be filed and linked here.
All feature descriptions and testing suggestions are merely examples. Each language feature should be carefully considered independently against each IDE feature to find interesting intersections

Code Transformations

Category Feature/Description C# Signoff/Notes VB Signoff/Notes
Refactoring with UI Inline Rename (with UI)
- Dashboard shows correct information
- Highlighted spans are updated appropriately
- Rename operation updates the correct set of symbols
🚧 #11194
Change Signature (with UI)
- Updates all direct & cascaded definitions/callsites
- Shows appropriate signature & parameter previews in UI
🚧 #11197
Extract Interface (with UI)
- Generated Interface has expected shape
- UI shows appropriate method previews
✅ N/A ??
Generate Type (with UI)
- Dialog gives all valid options
✅ N/A ??
Refactorings Rename Tracking
- Tracking span tracks & dismisses as expected
Extract Method
- Extracted method has the expected signature
- All arguments/return values handled correctly
- Extracted code block is reasonable
🚧 #11195
Introduce Variable
- Introduced variable has the expected signature and initializer expression
- "Introduce for All" correctly finds dupes
Inline Temporary Variable
- Inlined values are appropriately expanded/reduced
Organize Usings
- Honors "Place 'System' namespace first" option
✅ N/A
Convert "Get" Methods to Properties*
Add Description
🚧 #11204
Encapsulate Field
Add Description
✅ N/A
Fixes Add Using
- Triggers on appropriate constructs
✅ N/A
Generate Local
Add Description
✅ N/A
Generate Field
Add Description
✅ N/A
Generate Method/Constructor
- Generated method has the expected signature and accessibility
✅ N/A
Generate Constructor from members
- Select fields/properties to generate a constructor accepting corresponding arguments
- Generated constructor has the expected signature and accessibility
✅ N/A
Implement Interface
- Only missing methods added
- All added methods have the expected signature and accessibility
Implement IDisposable
Add Description
Implement Abstract Class
Add Description
Code Gen Snippets
Add Description
✅ N/A
Event Hookup on Tab (C# only)
- Type "+=" after an event name and QuickInfo shows
- Invoking should pick good name & launch Inline Rename
✅ N/A N/A
End Construct Generation (VB only)
Add Description
N/A
Automatic End Construct Update (VB only)
Add Description
N/A

IDE Features

Feature/Description C# Signoff/Notes VB Signoff/Notes
Signature Help
- Overloads shown with appropriate, colorized signature
Quick Info
- Hover on identifiers
- On completion list items
Outlining
Add Description
Brace Matching (C# only)
Add Description
N/A
Highlight References
Add Description
🚧 #11192
Peek
Add Description
🚧 #11207
Navigation Bars
Add Description
Metadata As Source
Add Description
✅ N/A
Navigate To
Add Description
Go to Next/Previous Method
Add Description
Solution Explorer Pivots
Add Description
✅ N/A
Call Hierarchy
Add Description
✅ N/A
Code Lens
Add Description
Project System
Add Description
Debugger IntelliSense
Add Description
Breakpoint Spans
Add Description
Code Model / Class Designer
Add Description
Object Browser / Class View
Add Description
Lightbulb
Add Description
Line Separators
Add Description
Options
Add Description

cston and others added 30 commits February 29, 2016 12:22
Initial support for source generators

Load SourceGenerator from assemblies specified with -analyzer:; run generators on project load and explicit build; include generated source in Compilation; expose Generated Source folder in Solution Explorer.
Support replace/original in C#
Conflicts:
	src/Compilers/CSharp/Portable/BoundTree/Expression.cs
	src/Compilers/CSharp/Portable/PublicAPI.Unshipped.txt
	src/Compilers/CSharp/Portable/Symbols/SymbolExtensions.cs
	src/Compilers/CSharp/Portable/Syntax/SyntaxKind.cs
	src/Compilers/CSharp/Portable/Syntax/SyntaxKindFacts.cs
	src/Compilers/Core/Portable/CommandLine/CommonCompiler.cs
	src/Compilers/Core/Portable/PortableShim.cs
	src/VisualStudio/Core/Def/Implementation/ProjectSystem/MiscellaneousFilesWorkspace.cs
	src/VisualStudio/Core/Def/Implementation/ProjectSystem/VisualStudioWorkspaceImpl.cs
	src/Workspaces/Core/Portable/PublicAPI.Unshipped.txt
	src/Workspaces/Core/Portable/Workspace/Solution/ProjectInfo.cs
	src/Workspaces/CoreTest/ServicesTest.csproj
Merge remote-tracking branch 'upstream/future' into 'features/generators'
Fix PublicAPI.Unshipped.txt
Avoid deadlock in SourceMemberContainerSymbol.GetMembersByName()
Add generators.md and generators.work.md
Merge future into generators
Source Generators: Entered tracking issues on Source Generators and removed "PROTOTYPE" remarks
Since "original" is by itself contextual on the presence of "replace", only "replace" actually needs to be keyed off a flag.
Hide replace/original functionality behind a feature flag.
merge from recent Future into generators
Added traits attributes to the generators tests
"replace" is roughly allowed in the same contexts as "async", so the "replace" ecommender is basically a copy of "async" recommender.

Fixes: #11191
Make keyword recommender know about "replace"
Merge recent future into generators
@VSadov
Copy link
Member Author

VSadov commented May 12, 2016

@dotnet/roslyn-ide - FYI
@dotnet/roslyn-compiler - FYI

@VSadov
Copy link
Member Author

VSadov commented May 12, 2016

I have also run @cston demo for NotifyPropertyChanged and it worked.

@VSadov VSadov merged commit 066798f into future May 12, 2016
@gafter
Copy link
Member

gafter commented May 13, 2016

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants