MasterJK

MasterJK

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?

Showing Posts 1 to 10

NobbZ

NobbZ

I have never realized an issue with that, as modules are compiled to get their “context”.

Could you please tell us what version of the LS is used?

Recent version of the LS do print this information in the ElixirLS ouptut pane.

MasterJK

MasterJK OP

It prints language_server 0.3.2 in the output pane.

And on startup it also prints the Elixir/Erlang version if that helps

Started ElixirLS Fork v0.3.2
Elixir version: "1.10.2 (compiled with Erlang/OTP 21)"
Erlang version: "22"
NobbZ

NobbZ

@axelson do you know about any problems like this?

axelson

axelson

Scenic Core Team

Well that isn’t expected. Are you getting any errors in the ElixirLS Fork output? Also can you try with elixir 1.10.2-otp22 (instead of elixir 1.10.2-otp21).

MasterJK

MasterJK OP

After installing Elixir 1.10.2-otp22 the log looks like this:

Started ElixirLS Fork v0.3.2
Elixir version: "1.10.2 (compiled with Erlang/OTP 22)"
Erlang version: "22"

but this also doesn’t work.
And i don’t see any errors in the ElixirLS Output.
I also tried a clean install of VSCode, with default Settings and ElixirLS Fork as the only plugin, but with no success.

axelson

axelson

Scenic Core Team

Have you already tried removing the .elixir_ls directory and restarting your editor? Also what operating system are you on and are you using docker?

MasterJK

MasterJK OP

Yes, I tried removing the folder and restarting the Editor. I’m on Ubuntu 18.04 LTS, but I also tried it on Windows 10 with the same result.
No, I do not use Docker.

axelson

axelson

Scenic Core Team

Hmm, ok. Can you post or create a project that suffers from the issue? I haven’t been able to reproduce it on my projects.

MasterJK

MasterJK OP

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: GitHub - JanKneiphof/autocomplete_problem · GitHub

axelson

axelson

Scenic Core Team

Thanks for the reproduction. I’m able to reproduce on my machines. Now just need to dig in.

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
FlyingNoodle
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New
ryanwinchester
apply_graft/2 doesn’t rewrite an add_many sub-workflow’s deps on an add step. Grafted jobs cancel with “upstream job was deleted” Version...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews