Skip to content
This repository was archived by the owner on Oct 31, 2021. It is now read-only.

Commit 03c613a

Browse files
authored
Merge pull request #1464 from xdaDaveShaw/unittest-fixes
Unittest fixes
2 parents c5fd27b + 75b9dfe commit 03c613a

File tree

4 files changed

+20
-13
lines changed

4 files changed

+20
-13
lines changed

src/FSharp.Editing.VisualStudio/Navigation/GoToDefinitionFilter.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
open System
44
open System.IO
55
open System.Threading
6-
open System.Diagnostics
76
open System.Text.RegularExpressions
87
open Microsoft.Win32
98
open Microsoft.VisualStudio
@@ -46,7 +45,8 @@ type GoToDefinitionFilter
4645
referenceSourceProvider: ReferenceSourceProvider,
4746
metadataService: NavigateToMetadataService,
4847
navigationPreference: NavigationPreference,
49-
fireNavigationEvent: bool
48+
fireNavigationEvent: bool,
49+
processStart: System.Action<string>
5050
) =
5151

5252
let urlChanged = if fireNavigationEvent then Some (Event<UrlChangeEventArgs>()) else None
@@ -127,7 +127,7 @@ type GoToDefinitionFilter
127127
if fireNavigationEvent then
128128
currentUrl <- Some url
129129
urlChanged |> Option.iter (fun event -> event.Trigger(UrlChangeEventArgs(url)))
130-
Process.Start(browserUrl) |> ignore)
130+
processStart.Invoke(browserUrl) |> ignore)
131131

132132
let tryFindSourceUrl (fsSymbol: FSharpSymbol) =
133133
let changeExt ext path = Path.ChangeExtension(path, ext)
@@ -194,7 +194,7 @@ type GoToDefinitionFilter
194194
if fireNavigationEvent then
195195
currentUrl <- Some url
196196
urlChanged |> Option.iter (fun event -> event.Trigger(UrlChangeEventArgs(url)))
197-
Process.Start url |> ignore
197+
processStart.Invoke(url) |> ignore
198198
| None ->
199199
Logging.logWarning (fun _ -> sprintf "Can't find navigation information for %s." symbol.FullName)
200200
else

src/FSharpVSPowerTools/Commands/GotoDefinitionFilterProvider.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public class GoToDefinitionFilterProvider : IVsTextViewCreationListener, IWpfTex
4444
private readonly SolutionEvents _solutionEvents;
4545

4646
private static readonly Type serviceType = typeof(GoToDefinitionFilterProvider);
47-
47+
4848
[ImportingConstructor]
4949
public GoToDefinitionFilterProvider(
5050
[Import(typeof(SVsServiceProvider))] System.IServiceProvider serviceProvider,
@@ -83,29 +83,34 @@ public void VsTextViewCreated(IVsTextView textViewAdapter)
8383
{
8484
var textView = _editorFactory.GetWpfTextView(textViewAdapter);
8585
if (textView == null) return;
86-
Register(textViewAdapter, textView, fireNavigationEvent: false);
86+
Register(textViewAdapter, textView, fireNavigationEvent: false, processStart: ProcessStart);
87+
}
88+
89+
private void ProcessStart(String path)
90+
{
91+
System.Diagnostics.Process.Start(path);
8792
}
8893

89-
internal GoToDefinitionFilter RegisterCommandFilter(IWpfTextView textView, bool fireNavigationEvent)
94+
internal GoToDefinitionFilter RegisterCommandFilter(IWpfTextView textView, bool fireNavigationEvent, Action<String> processStart)
9095
{
9196
var textViewAdapter = _editorFactory.GetViewAdapter(textView);
92-
return textViewAdapter == null ? null : Register(textViewAdapter, textView, fireNavigationEvent);
97+
return textViewAdapter == null ? null : Register(textViewAdapter, textView, fireNavigationEvent, processStart);
9398
}
9499

95-
private GoToDefinitionFilter Register(IVsTextView textViewAdapter, IWpfTextView textView, bool fireNavigationEvent)
100+
private GoToDefinitionFilter Register(IVsTextView textViewAdapter, IWpfTextView textView, bool fireNavigationEvent, Action<String> processStart)
96101
{
97102
var generalOptions = Setting.getGeneralOptions(_serviceProvider);
98103
if (generalOptions == null || (!generalOptions.GoToMetadataEnabled && !generalOptions.GoToSymbolSourceEnabled)) return null;
99104
// Favor Navigate to Source feature over Go to Metadata
100105
var preference = generalOptions.GoToSymbolSourceEnabled
101-
? (generalOptions.GoToMetadataEnabled ? NavigationPreference.SymbolSourceOrMetadata : NavigationPreference.SymbolSource)
106+
? (generalOptions.GoToMetadataEnabled ? NavigationPreference.SymbolSourceOrMetadata : NavigationPreference.SymbolSource)
102107
: NavigationPreference.Metadata;
103108
ITextDocument doc;
104109
if (_textDocumentFactoryService.TryGetTextDocument(textView.TextBuffer, out doc))
105110
{
106111
var commandFilter = new GoToDefinitionFilter(doc, textView, _fsharpVsLanguageService,
107112
_serviceProvider, _projectFactory, _referenceSourceProvider,
108-
_navigationService, preference, fireNavigationEvent);
113+
_navigationService, preference, fireNavigationEvent, processStart);
109114
if (!_referenceSourceProvider.IsActivated && generalOptions.GoToSymbolSourceEnabled)
110115
_referenceSourceProvider.Activate();
111116
textView.Properties.AddProperty(serviceType, commandFilter);

tests/FSharp.Editing.VisualStudio.Tests/GoToDefinitionFilterCommandTests.fs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@ type GoToDefinitionCommandHelper() =
2424
metadataService = Unchecked.defaultof<_>
2525
)
2626

27+
let stubProcessStart =
28+
Action<string> (fun _ -> ())
29+
2730
member __.GetCommandFilter(wpfTextView) =
28-
command.RegisterCommandFilter(wpfTextView, fireNavigationEvent = true)
31+
command.RegisterCommandFilter(wpfTextView, fireNavigationEvent = true, processStart = stubProcessStart)
2932

3033
module GoToDefinitionCommandTests =
3134

tests/FSharp.Editing.VisualStudio.Tests/HighlightUsageTaggerTests.fs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,6 @@ module Test =
200200
"""
201201
let projectFileName = fullPathBasedOnSourceDir "../data/MultiProjects/Project2/Project2.fsproj"
202202
let fileName = fullPathBasedOnSourceDir "../data/MultiProjects/Project2/Project21.fs"
203-
File.WriteAllText (fileName, "")
204203
let buffer = createMockTextBuffer "" fileName
205204
helper.SetUpProjectAndCurrentDocument(ExternalProjectProvider(projectFileName), fileName, "")
206205
let view = helper.GetView(buffer)

0 commit comments

Comments
 (0)