lexical-lsp / lexical

Lexical is a next-generation elixir language server
779 stars 77 forks source link

defmodule completion: Incorrect suggested module name when file contains a period #703

Closed zachallaun closed 2 months ago

zachallaun commented 2 months ago

It's a common practice to save mix tasks "flattened" in a lib/mix/tasks directory, so a custom task called Mix.Tasks.MyLib.MyTask would live in lib/mix/tasks/my_lib.my_task.ex, instead of being nested in a my_lib directory. When suggesting a module name during a defmodule completion, however, Lexical doesn't take this into account.

# in lib/mix/tasks/my_lib.my_task.ex
defmodule|

# currently expands to
defmodule Mix.Tasks.MyLib.myTask do
  |
end

# should expand to
defmodule Mix.Tasks.MyLib.MyTask do
  |
end