vishnevskiy / ElixirSublime

Elixir plugin for SublimeText 3 providing code completion and linting.
MIT License
364 stars 25 forks source link

Elixir v1.1.0 autocomplete #18

Closed mr-bt closed 8 years ago

mr-bt commented 8 years ago

Hi,

I was having issues with the autocomplete upon upgrading to Elixir v1.1.0. The issue is on IEx.Autocomplete.expand:

16:39:33.139 [error] Task #PID<0.130.0> started from SublimeCompletion.Supervisor terminating
** (UndefinedFunctionError) undefined function: nil.current_env/0 (module nil is not available)
    nil.current_env()
    lib/iex/autocomplete.ex:172: IEx.Autocomplete.env_aliases/0
    lib/iex/autocomplete.ex:159: IEx.Autocomplete.expand_alias/1
    lib/iex/autocomplete.ex:145: IEx.Autocomplete.expand_elixir_modules/2
    (sublime_completion) lib/sublime_completion.ex:129: SublimeCompletion.expand/1
    (sublime_completion) lib/sublime_completion.ex:41: SublimeCompletion.read_line/1
    (sublime_completion) lib/sublime_completion.ex:29: SublimeCompletion.loop/1
    (elixir) lib/task/supervised.ex:74: Task.Supervised.do_apply/2
Function: &SublimeCompletion.connect/1
    Args: [50625]

It happens because of the following commit: https://github.com/elixir-lang/elixir/commit/5e21d0d22dbbd55ff603763a31afe21885c12658

My simple fix was to add to the sublime_completion config.exs:

config :iex,
      autocomplete_server: IEx.Server,

Bruno.

tfindlow commented 8 years ago

Putting iex in the applications list in module SublimeCompletion.MixFile works too.

defmodule SublimeCompletion.Mixfile do

use Mix.Project ... def application do [ applications: [:iex, :logger, :poison], mod: {SublimeCompletion, []} ] end ... end

rutchkiwi commented 8 years ago

+1

ThomasKliszowski commented 8 years ago

Same here, is it working with older versions of Elixir? If so, maybe we can submit a Merge Request.

ghost commented 8 years ago

+1 to the fix suggested by @mr-bt

gouthamvel commented 8 years ago

:+1: @tfindlow solution worked for me thanks