From d40ec97c4f972ec2cfe011e6aade7058b44654e8 Mon Sep 17 00:00:00 2001 From: nojaf Date: Wed, 2 Sep 2020 17:31:34 +0200 Subject: [PATCH] Add regression test for indentation after multiple hash directives. Fixes #1026. --- src/Fantomas.Tests/CompilerDirectivesTests.fs | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/src/Fantomas.Tests/CompilerDirectivesTests.fs b/src/Fantomas.Tests/CompilerDirectivesTests.fs index 12581d2b43..7bdaeb7222 100644 --- a/src/Fantomas.Tests/CompilerDirectivesTests.fs +++ b/src/Fantomas.Tests/CompilerDirectivesTests.fs @@ -1701,3 +1701,77 @@ let ``empty module with trivia, 1031`` () = #load "intellisense_lazy.fsx" #endif """ + +[] +let ``don't indent too far after multiple hash directives, 1026`` () = + formatSourceString false """ +let getDefaultProxyFor = + memoize + (fun (url:string) -> + let uri = Uri url + let getDefault () = +#if CUSTOM_WEBPROXY + let result = + { new IWebProxy with + member __.Credentials + with get () = null + and set _value = () + member __.GetProxy _ = null + member __.IsBypassed (_host : Uri) = true + } +#else + let result = WebRequest.GetSystemWebProxy() +#endif +#if CUSTOM_WEBPROXY + let proxy = result +#else + let address = result.GetProxy uri + if address = uri then null else + let proxy = WebProxy address + proxy.BypassProxyOnLocal <- true +#endif + proxy.Credentials <- CredentialCache.DefaultCredentials + proxy + + match calcEnvProxies.Force().TryFind uri.Scheme with + | Some p -> if p.GetProxy uri <> uri then p else getDefault() + | None -> getDefault()) +""" config + |> prepend newline + |> should equal """ +let getDefaultProxyFor = + memoize (fun (url: string) -> + let uri = Uri url + + let getDefault () = +#if CUSTOM_WEBPROXY + let result = + { new IWebProxy with + member __.Credentials = null + + member __.Credentials + with set _value = () + + member __.GetProxy _ = null + member __.IsBypassed(_host: Uri) = true } +#else + let result = WebRequest.GetSystemWebProxy() +#endif +#if CUSTOM_WEBPROXY + let proxy = result +#else + let address = result.GetProxy uri + + if address = uri then + null + else + let proxy = WebProxy address + proxy.BypassProxyOnLocal <- true +#endif + proxy.Credentials <- CredentialCache.DefaultCredentials + proxy + + match calcEnvProxies.Force().TryFind uri.Scheme with + | Some p -> if p.GetProxy uri <> uri then p else getDefault () + | None -> getDefault ()) +"""