It may be better for you to use File.cd and change the directory when
formatting but we will be glad to add a function that has the cwd. It is
simply a bigger change. :)

On Tue, Nov 17, 2020 at 18:56 Jason Axelson <[email protected]> wrote:

> Hi José,
>
> Indeed Path.relative_to_cwd does return relative paths unchanged, so it
> appears I was not looking closely enough at the code. So the problem is
> indeed that the wrong .formatter.exs is chosen. Looking more closely at the
> code it appears that there are a number of operations that depend on the
> current working directory global state.
>
> -Jason
>
> On Mon, Nov 16, 2020 at 8:43 AM José Valim <[email protected]> wrote:
>
>> Hi Jason!
>>
>> * if you give it a relative path, then I think the relative_to_cwd will
>> return unchanged. Have you tried it out?
>>
>> * however, I wonder if the biggest issue is not picking up the file...
>> but rather choosing which .formatters.exs to use?
>>
>> On Mon, Nov 16, 2020 at 7:35 PM Jason Axelson <[email protected]>
>> wrote:
>>
>>> Hi,
>>>
>>> For ElixirLS (with our current architecture) we need to support
>>> formatting of a file with varying CWD. So I'd like to propose a change to
>>> `Mix.Tasks.Format.formatter_opts_for_file/2` to support not relying on the
>>> current working directory. This is the line that would be changed:
>>>
>>>
>>> https://github.com/elixir-lang/elixir/blob/36d12b4bd4d26533c216e935903206cc3502200f/lib/mix/lib/mix/tasks/format.ex#L162
>>>
>>> My first thought on how to change it is to pass a directory as an
>>> option, say `relative_to`. So if `:relative_to` is passed as an option then
>>> the formatter options are found relative to that file, but if it is not
>>> passed then the current behavior of using the CWD as the `relative_to` path
>>> would be kept.
>>>
>>> I'm open to other approaches as well.
>>>
>>> Thanks,
>>> Jason
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "elixir-lang-core" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/elixir-lang-core/CAHMz6kzW8BHiELiEYjZT3Y3ky-9gRhjJp0REeHmj%3DLH138p9GA%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/elixir-lang-core/CAHMz6kzW8BHiELiEYjZT3Y3ky-9gRhjJp0REeHmj%3DLH138p9GA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>
>>
>>> --
>> You received this message because you are subscribed to the Google Groups
>> "elixir-lang-core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KqzeLABsKL632vQ7aj7rqMycpQ4o0a1H-OV1qmYo1%3DsA%40mail.gmail.com
>> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4KqzeLABsKL632vQ7aj7rqMycpQ4o0a1H-OV1qmYo1%3DsA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elixir-lang-core/CAHMz6kwgyftNO9MnQm8zkgY84FtE%2BNgQFRJtRY-1e6jubjHCHA%40mail.gmail.com
> <https://groups.google.com/d/msgid/elixir-lang-core/CAHMz6kwgyftNO9MnQm8zkgY84FtE%2BNgQFRJtRY-1e6jubjHCHA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4%2B4fyu1_vw5N%3DxAxCG4FB-J3YA7sbH5KOMrSKsYnHAR9g%40mail.gmail.com.

Reply via email to