Make IDocumentSupportsFeatureService public
- Dominant language
- C#
- Stars
- 20.7k
- Forks
- 4.3k
- PR merge metrics
- PR metrics pending
Description
Use enum instead of interface method per feature to avoid future breaking changes.
```C#
public ISupportedDocumentFeaturesProvider : IWorkspaceService
{
DocumentFeatures GetSupportedFeatures(Document document);
}
[Flags]
public enum DocumentFeatures
{
CodeFixes = 1,
NavigationToAnyPosition = 1 << 1,
Refactorings = 1 << 2,
SupportsRename = 1 << 3,
SemanticSnippets = 1 << 4
}
```
Contributor guide
Research direction
No files or tests are named. Start by locating IDocumentSupportsFeatureService and the existing per-feature interface methods in the Roslyn source, then compare the proposed public service and DocumentFeatures flags with the current API. Done means the intended service is public and the feature support contract uses the agreed enum design without future per-feature interface changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- compilers
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100