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

Use auto properties #74637

Merged
merged 11 commits into from
Aug 3, 2024
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ namespace Microsoft.CodeAnalysis.Editor.Implementation.InlineRename
{
internal class RenameFlyoutViewModel : INotifyPropertyChanged, IDisposable
{
private readonly InlineRenameSession _session;
private readonly bool _registerOleComponent;
private readonly IGlobalOptionService _globalOptionService;
private OleComponent? _oleComponent;
Expand All @@ -47,15 +46,15 @@ public RenameFlyoutViewModel(
Lazy<ISmartRenameSessionFactoryWrapper>? smartRenameSessionFactory)
#pragma warning restore CS0618
{
_session = session;
Session = session;
_registerOleComponent = registerOleComponent;
_globalOptionService = globalOptionService;
_session.ReplacementTextChanged += OnReplacementTextChanged;
_session.ReplacementsComputed += OnReplacementsComputed;
_session.ReferenceLocationsChanged += OnReferenceLocationsChanged;
Session.ReplacementTextChanged += OnReplacementTextChanged;
Session.ReplacementsComputed += OnReplacementsComputed;
Session.ReferenceLocationsChanged += OnReferenceLocationsChanged;
StartingSelection = selectionSpan;
InitialTrackingSpan = session.TriggerSpan.CreateTrackingSpan(SpanTrackingMode.EdgeInclusive);
var smartRenameSession = smartRenameSessionFactory?.Value.CreateSmartRenameSession(_session.TriggerSpan);
var smartRenameSession = smartRenameSessionFactory?.Value.CreateSmartRenameSession(Session.TriggerSpan);
if (smartRenameSession is not null)
{
SmartRenameViewModel = new SmartRenameViewModel(globalOptionService, threadingContext, listenerProvider, smartRenameSession.Value, this);
Expand All @@ -68,25 +67,25 @@ public RenameFlyoutViewModel(

public string IdentifierText
{
get => _session.ReplacementText;
get => Session.ReplacementText;
set
{
if (value != _session.ReplacementText)
if (value != Session.ReplacementText)
{
_session.ApplyReplacementText(value, propagateEditImmediately: true, updateSelection: false);
Session.ApplyReplacementText(value, propagateEditImmediately: true, updateSelection: false);
NotifyPropertyChanged(nameof(IdentifierText));
}
}
}

public InlineRenameSession Session => _session;
public InlineRenameSession Session { get; }

public ITrackingSpan InitialTrackingSpan { get; }

public bool AllowFileRename => _session.FileRenameInfo == InlineRenameFileRenameInfo.Allowed && _isReplacementTextValid;
public bool ShowFileRename => _session.FileRenameInfo != InlineRenameFileRenameInfo.NotAllowed;
public bool AllowFileRename => Session.FileRenameInfo == InlineRenameFileRenameInfo.Allowed && _isReplacementTextValid;
public bool ShowFileRename => Session.FileRenameInfo != InlineRenameFileRenameInfo.NotAllowed;

public string FileRenameString => _session.FileRenameInfo switch
public string FileRenameString => Session.FileRenameInfo switch
{
InlineRenameFileRenameInfo.TypeDoesNotMatchFileName => EditorFeaturesResources.Rename_file_name_doesnt_match,
InlineRenameFileRenameInfo.TypeWithMultipleLocations => EditorFeaturesResources.Rename_file_partial_type,
Expand Down Expand Up @@ -133,51 +132,51 @@ public Severity StatusSeverity

public bool RenameInCommentsFlag
{
get => _session.Options.RenameInComments;
get => Session.Options.RenameInComments;
set
{
_globalOptionService.SetGlobalOption(InlineRenameSessionOptionsStorage.RenameInComments, value);
_session.RefreshRenameSessionWithOptionsChanged(_session.Options with { RenameInComments = value });
Session.RefreshRenameSessionWithOptionsChanged(Session.Options with { RenameInComments = value });
}
}

public bool RenameInStringsFlag
{
get => _session.Options.RenameInStrings;
get => Session.Options.RenameInStrings;
set
{
_globalOptionService.SetGlobalOption(InlineRenameSessionOptionsStorage.RenameInStrings, value);
_session.RefreshRenameSessionWithOptionsChanged(_session.Options with { RenameInStrings = value });
Session.RefreshRenameSessionWithOptionsChanged(Session.Options with { RenameInStrings = value });
}
}

public bool RenameFileFlag
{
get => _session.Options.RenameFile;
get => Session.Options.RenameFile;
set
{
_globalOptionService.SetGlobalOption(InlineRenameSessionOptionsStorage.RenameFile, value);
_session.RefreshRenameSessionWithOptionsChanged(_session.Options with { RenameFile = value });
Session.RefreshRenameSessionWithOptionsChanged(Session.Options with { RenameFile = value });
}
}

public bool PreviewChangesFlag
{
get => _session.PreviewChanges;
get => Session.PreviewChanges;
set
{
_globalOptionService.SetGlobalOption(InlineRenameSessionOptionsStorage.PreviewChanges, value);
_session.SetPreviewChanges(value);
Session.SetPreviewChanges(value);
}
}

public bool RenameOverloadsFlag
{
get => _session.Options.RenameOverloads;
get => Session.Options.RenameOverloads;
set
{
_globalOptionService.SetGlobalOption(InlineRenameSessionOptionsStorage.RenameOverloads, value);
_session.RefreshRenameSessionWithOptionsChanged(_session.Options with { RenameOverloads = value });
Session.RefreshRenameSessionWithOptionsChanged(Session.Options with { RenameOverloads = value });
}
}

Expand All @@ -202,10 +201,10 @@ public bool IsExpanded
}

public bool IsRenameOverloadsEditable
=> !_session.MustRenameOverloads;
=> !Session.MustRenameOverloads;

public bool IsRenameOverloadsVisible
=> _session.HasRenameOverloads;
=> Session.HasRenameOverloads;

public TextSpan StartingSelection { get; }

Expand All @@ -217,14 +216,14 @@ public bool Submit()
}

SmartRenameViewModel?.Commit(IdentifierText);
_session.Commit();
Session.Commit();
return true;
}

public void Cancel()
{
SmartRenameViewModel?.Cancel();
_session.Cancel();
Session.Cancel();
}

public void Dispose()
Expand Down Expand Up @@ -309,8 +308,8 @@ protected virtual void Dispose(bool disposing)
{
if (disposing)
{
_session.ReplacementTextChanged -= OnReplacementTextChanged;
_session.ReplacementsComputed -= OnReplacementsComputed;
Session.ReplacementTextChanged -= OnReplacementTextChanged;
Session.ReplacementsComputed -= OnReplacementsComputed;

if (SmartRenameViewModel is not null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,19 @@ namespace Microsoft.CodeAnalysis.Editor.Implementation.InlineRename
{
internal class RenameDashboardViewModel : INotifyPropertyChanged, IDisposable
{
private readonly InlineRenameSession _session;

private RenameDashboardSeverity _severity = RenameDashboardSeverity.None;
private string _searchText;
private int _resolvableConflictCount;
private int _unresolvableConflictCount;
private string _errorText;
private bool _isReplacementTextValid;

public RenameDashboardViewModel(InlineRenameSession session)
{
_session = session;
_searchText = EditorFeaturesResources.Searching;
Session = session;
SearchText = EditorFeaturesResources.Searching;

_session.ReferenceLocationsChanged += OnReferenceLocationsChanged;
_session.ReplacementsComputed += OnReplacementsComputed;
_session.ReplacementTextChanged += OnReplacementTextChanged;
Session.ReferenceLocationsChanged += OnReferenceLocationsChanged;
Session.ReplacementsComputed += OnReplacementsComputed;
Session.ReplacementTextChanged += OnReplacementTextChanged;

// Set the flag to true by default if we're showing the option.
_isReplacementTextValid = true;
Expand Down Expand Up @@ -67,7 +63,7 @@ private void OnReplacementsComputed(object sender, IInlineRenameReplacementInfo
OnIsReplacementTextValidChanged(result.ReplacementTextValid);
if (result.ReplacementTextValid)
{
_errorText = null;
ErrorText = null;
foreach (var resolution in result.GetAllReplacementKinds())
{
switch (resolution)
Expand All @@ -84,7 +80,7 @@ private void OnReplacementsComputed(object sender, IInlineRenameReplacementInfo
}
else
{
_errorText = string.IsNullOrEmpty(session.ReplacementText)
ErrorText = string.IsNullOrEmpty(session.ReplacementText)
? null
: EditorFeaturesResources.The_new_name_is_not_a_valid_identifier;
}
Expand Down Expand Up @@ -113,23 +109,23 @@ private void UpdateSearchText(int referenceCount, int fileCount)
{
if (referenceCount == 1 && fileCount == 1)
{
_searchText = EditorFeaturesResources.Rename_will_update_1_reference_in_1_file;
SearchText = EditorFeaturesResources.Rename_will_update_1_reference_in_1_file;
}
else if (fileCount == 1)
{
_searchText = string.Format(EditorFeaturesResources.Rename_will_update_0_references_in_1_file, referenceCount);
SearchText = string.Format(EditorFeaturesResources.Rename_will_update_0_references_in_1_file, referenceCount);
}
else
{
_searchText = string.Format(EditorFeaturesResources.Rename_will_update_0_references_in_1_files, referenceCount, fileCount);
SearchText = string.Format(EditorFeaturesResources.Rename_will_update_0_references_in_1_files, referenceCount, fileCount);
}

NotifyPropertyChanged("SearchText");
}

private void UpdateSeverity()
{
if (_errorText != null ||
if (ErrorText != null ||
_unresolvableConflictCount > 0)
{
_severity = RenameDashboardSeverity.Error;
Expand All @@ -144,13 +140,13 @@ private void UpdateSeverity()
}
}

public InlineRenameSession Session => _session;
public InlineRenameSession Session { get; }

public RenameDashboardSeverity Severity => _severity;

public bool AllowFileRename => _session.FileRenameInfo == InlineRenameFileRenameInfo.Allowed && _isReplacementTextValid;
public bool ShowFileRename => _session.FileRenameInfo != InlineRenameFileRenameInfo.NotAllowed;
public string FileRenameString => _session.FileRenameInfo switch
public bool AllowFileRename => Session.FileRenameInfo == InlineRenameFileRenameInfo.Allowed && _isReplacementTextValid;
public bool ShowFileRename => Session.FileRenameInfo != InlineRenameFileRenameInfo.NotAllowed;
public string FileRenameString => Session.FileRenameInfo switch
{
InlineRenameFileRenameInfo.TypeDoesNotMatchFileName => EditorFeaturesResources.Rename_file_name_doesnt_match,
InlineRenameFileRenameInfo.TypeWithMultipleLocations => EditorFeaturesResources.Rename_file_partial_type,
Expand Down Expand Up @@ -189,7 +185,7 @@ public bool ShouldShowNewName
}
}

public string SearchText => _searchText;
public string SearchText { get; private set; }

public bool HasResolvableConflicts
{
Expand Down Expand Up @@ -222,80 +218,80 @@ public string UnresolvableConflictText
}

public bool HasError
=> _errorText != null;
=> ErrorText != null;

public string ErrorText => _errorText;
public string ErrorText { get; private set; }

public Visibility RenameOverloadsVisibility
=> _session.HasRenameOverloads ? Visibility.Visible : Visibility.Collapsed;
=> Session.HasRenameOverloads ? Visibility.Visible : Visibility.Collapsed;

public bool IsRenameOverloadsEditable
=> !_session.MustRenameOverloads;
=> !Session.MustRenameOverloads;

public bool DefaultRenameOverloadFlag
{
get => _session.Options.RenameOverloads;
get => Session.Options.RenameOverloads;

set
{
if (IsRenameOverloadsEditable)
{
_session.RenameService.GlobalOptions.SetGlobalOption(InlineRenameSessionOptionsStorage.RenameOverloads, value);
_session.RefreshRenameSessionWithOptionsChanged(_session.Options with { RenameOverloads = value });
Session.RenameService.GlobalOptions.SetGlobalOption(InlineRenameSessionOptionsStorage.RenameOverloads, value);
Session.RefreshRenameSessionWithOptionsChanged(Session.Options with { RenameOverloads = value });
}
}
}

public bool DefaultRenameInStringsFlag
{
get => _session.Options.RenameInStrings;
get => Session.Options.RenameInStrings;

set
{
_session.RenameService.GlobalOptions.SetGlobalOption(InlineRenameSessionOptionsStorage.RenameInStrings, value);
_session.RefreshRenameSessionWithOptionsChanged(_session.Options with { RenameInStrings = value });
Session.RenameService.GlobalOptions.SetGlobalOption(InlineRenameSessionOptionsStorage.RenameInStrings, value);
Session.RefreshRenameSessionWithOptionsChanged(Session.Options with { RenameInStrings = value });
}
}

public bool DefaultRenameInCommentsFlag
{
get => _session.Options.RenameInComments;
get => Session.Options.RenameInComments;

set
{
_session.RenameService.GlobalOptions.SetGlobalOption(InlineRenameSessionOptionsStorage.RenameInComments, value);
_session.RefreshRenameSessionWithOptionsChanged(_session.Options with { RenameInComments = value });
Session.RenameService.GlobalOptions.SetGlobalOption(InlineRenameSessionOptionsStorage.RenameInComments, value);
Session.RefreshRenameSessionWithOptionsChanged(Session.Options with { RenameInComments = value });
}
}

public bool DefaultRenameFileFlag
{
get => _session.Options.RenameFile;
get => Session.Options.RenameFile;
set
{
_session.RenameService.GlobalOptions.SetGlobalOption(InlineRenameSessionOptionsStorage.RenameFile, value);
_session.RefreshRenameSessionWithOptionsChanged(_session.Options with { RenameFile = value });
Session.RenameService.GlobalOptions.SetGlobalOption(InlineRenameSessionOptionsStorage.RenameFile, value);
Session.RefreshRenameSessionWithOptionsChanged(Session.Options with { RenameFile = value });
}
}

public bool DefaultPreviewChangesFlag
{
get => _session.PreviewChanges;
get => Session.PreviewChanges;

set
{
_session.RenameService.GlobalOptions.SetGlobalOption(InlineRenameSessionOptionsStorage.PreviewChanges, value);
_session.SetPreviewChanges(value);
Session.RenameService.GlobalOptions.SetGlobalOption(InlineRenameSessionOptionsStorage.PreviewChanges, value);
Session.SetPreviewChanges(value);
}
}

public string OriginalName => _session.OriginalSymbolName;
public string OriginalName => Session.OriginalSymbolName;

public void Dispose()
{
_session.ReplacementTextChanged -= OnReplacementTextChanged;
_session.ReferenceLocationsChanged -= OnReferenceLocationsChanged;
_session.ReplacementsComputed -= OnReplacementsComputed;
Session.ReplacementTextChanged -= OnReplacementTextChanged;
Session.ReferenceLocationsChanged -= OnReferenceLocationsChanged;
Session.ReplacementsComputed -= OnReplacementsComputed;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ internal abstract class InteractiveCommandHandler :
ICommandHandler<ExecuteInInteractiveCommandArgs>,
ICommandHandler<CopyToInteractiveCommandArgs>
{
private readonly IContentTypeRegistryService _contentTypeRegistryService;
private readonly EditorOptionsService _editorOptionsService;
private readonly IEditorOperationsFactoryService _editorOperationsFactoryService;

Expand All @@ -32,12 +31,12 @@ protected InteractiveCommandHandler(
EditorOptionsService editorOptionsService,
IEditorOperationsFactoryService editorOperationsFactoryService)
{
_contentTypeRegistryService = contentTypeRegistryService;
ContentTypeRegistryService = contentTypeRegistryService;
_editorOptionsService = editorOptionsService;
_editorOperationsFactoryService = editorOperationsFactoryService;
}

protected IContentTypeRegistryService ContentTypeRegistryService { get { return _contentTypeRegistryService; } }
protected IContentTypeRegistryService ContentTypeRegistryService { get; }

protected abstract IInteractiveWindow OpenInteractiveWindow(bool focus);

Expand Down
Loading
Loading