MasterJK
Problem with 'use' Macro in VSCode + ElixirLS
I use Visual Studio Code with the ElixirLS Fork extension.
I am trying out Elixir/Phoenix and when i call the ‘use’ Macro for something like
defmodule TestWeb.MyController
use TestWeb :controller
...
or
defmodule Test.mySchema
use Ecto.Schema
...
there is no Autocomplete or Documentation available from the Modules that are imported or aliased in the __using__/1 macro. The Code does work and there are no Errors or Warnings from ElixirLS or Dialyzer.
Importing/Aliasing the needed Modules directly, like
defmodule TestWeb.MyController
use TestWeb :controller
import Phoenix.Controller
import Plug.Conn
import TestWeb.Gettext
alias TestWeb.Router.Helpers, as: Routes
...
does provide autocomplete and Documentation in VSCode.
So is ElixirLS not evaluating the __using__ macro for autocomplete? Or is maybe something wrong with my Setup?
And is there a way to make autocomplete work without importing/aliasing the Modules directly?
Most Liked
lud
I just followed the instructions linked in the Github issue : Fix: VSCode + ElixirLS Intellisense for code imported with `use` - Dragosh Mocrii and it works well.
(It is to compile ElixirLS with the local system Elixir install)
axelson
Thanks for the reproduction. I’m able to reproduce on my machines. Now just need to dig in.
axelson
FYI, we’re tracking this in #193:
Unfortunately I’m not sure there is an easy fix.
lukaszsamson
@aifrak I opened Metadata build crashes on Absinthe schema · Issue #999 · elixir-lsp/elixir-ls · GitHub for tracking
MasterJK
I do not have autocompletion/Documentation on any imports/alias from ‘use’ macros.
I noticed it while trying out Phoenix, after creating a new Phoenix (1.4.16) Project with mix phx.new ..
I also made a simple example, created with mix new ., with only 2 .ex files in /lib and without any dependencies here: https://github.com/JanKneiphof/autocomplete_problem







