JakeBecker / elixir-ls

A frontend-independent IDE "smartness" server for Elixir. Implements the JSON-based "Language Server Protocol" standard and provides debugger support via VS Code's debugger protocol.
Apache License 2.0
846 stars 52 forks source link

Module name shadowing confuses IntelliSense #172

Closed ackerdev closed 4 years ago

ackerdev commented 5 years ago

Environment

Explanation

If you attempt to alias a module within a module that has the same name in the final segment as the alias, IntelliSense capabilities fail and cause attempts to use code completion or go to definitions to reference the current module, rather than the module the code actually references.

Reproduction Case

defmodule Foo.Baz do
  def qux() do
    "hello world"
  end
end

defmodule Bar.Baz do
  alias Foo.Baz

  def qux() do
    # IntelliSense believes this points to Bar.Baz.qux,
    # but should actually point to Foo.Baz.qux
    Baz.qux
  end
end
JakeBecker commented 4 years ago

This project has moved!

It's now being maintained by proactive volunteers from the Elixir community over at elixir-lsp/elixir-ls. Updates will continue to be published from that repo to the original VS Code extension, so no need to switch plugins if you're using VS Code.

To avoid inundating the new maintainers with issues, please verify that your issue persists with the latest version of the extension (which is published from the new repo) before re-filing your issue there.

Thanks for using ElixirLS!