Adding a Notifier breaks elixir_sense autocompletions

I have recently added an ash Notifier to my project, and it has caused the elixir_sense plugin to throw an error when trying to show documentation. It is attempting to call .sections() on my notifier, but there is no spark DSL for notifiers.
[Error - 11:47:38] Request textDocument/completion failed.
Message: an exception was raised:
** (UndefinedFunctionError) function Ht.SectionAuthorisedRole.Notifier.sections/0 is undefined or private
(heretask 0.1.0) Ht.SectionAuthorisedRole.Notifier.sections()
(elixir 1.14.4) lib/enum.ex:4249: Enum.flat_map_list/2
(elixir 1.14.4) lib/enum.ex:4250: Enum.flat_map_list/2
(spark 1.1.8) lib/spark/elixir_sense/plugin.ex:538: Spark.ElixirSense.Plugin.get_constructors/4
(spark 1.1.8) lib/spark/elixir_sense/plugin.ex:106: Spark.ElixirSense.Plugin.get_suggestions/4
(elixir_sense 2.0.0) lib/elixir_sense/providers/suggestion/generic_reducer.ex:48: ElixirSense.Providers.Suggestion.GenericReducer.reduce/6
(elixir 1.14.4) lib/enum.ex:4751: Enumerable.List.reduce/3
(elixir 1.14.4) lib/enum.ex:2514: Enum.reduce_while/3
Code: -32000
[Error - 11:47:38] Request textDocument/completion failed.
Message: an exception was raised:
** (UndefinedFunctionError) function Ht.SectionAuthorisedRole.Notifier.sections/0 is undefined or private
(heretask 0.1.0) Ht.SectionAuthorisedRole.Notifier.sections()
(elixir 1.14.4) lib/enum.ex:4249: Enum.flat_map_list/2
(elixir 1.14.4) lib/enum.ex:4250: Enum.flat_map_list/2
(spark 1.1.8) lib/spark/elixir_sense/plugin.ex:538: Spark.ElixirSense.Plugin.get_constructors/4
(spark 1.1.8) lib/spark/elixir_sense/plugin.ex:106: Spark.ElixirSense.Plugin.get_suggestions/4
(elixir_sense 2.0.0) lib/elixir_sense/providers/suggestion/generic_reducer.ex:48: ElixirSense.Providers.Suggestion.GenericReducer.reduce/6
(elixir 1.14.4) lib/enum.ex:4751: Enumerable.List.reduce/3
(elixir 1.14.4) lib/enum.ex:2514: Enum.reduce_while/3
Code: -32000
6 Replies
ZachDaniel
ZachDaniel•3y ago
A new release for spark is building, mind trying it out once it releases?
Alan Heywood
Alan HeywoodOP•3y ago
No dice:
[Error - 12:54:34] Process #PID<0.18184.3> raised an exception
** (UndefinedFunctionError) function Ht.SectionAuthorisedRole.Notifier.sections/0 is undefined or private
(heretask 0.1.0) Ht.SectionAuthorisedRole.Notifier.sections()
(elixir 1.14.4) lib/enum.ex:4249: Enum.flat_map_list/2
(elixir 1.14.4) lib/enum.ex:4250: Enum.flat_map_list/2
(spark 1.1.9) lib/spark/elixir_sense/plugin.ex:538: Spark.ElixirSense.Plugin.get_constructors/4
(spark 1.1.9) lib/spark/elixir_sense/plugin.ex:106: Spark.ElixirSense.Plugin.get_suggestions/4
(elixir_sense 2.0.0) lib/elixir_sense/providers/suggestion/generic_reducer.ex:48: ElixirSense.Providers.Suggestion.GenericReducer.reduce/6
(elixir 1.14.4) lib/enum.ex:4751: Enumerable.List.reduce/3
(elixir 1.14.4) lib/enum.ex:2514: Enum.reduce_while/3
[Error - 12:54:34] Process #PID<0.18184.3> raised an exception
** (UndefinedFunctionError) function Ht.SectionAuthorisedRole.Notifier.sections/0 is undefined or private
(heretask 0.1.0) Ht.SectionAuthorisedRole.Notifier.sections()
(elixir 1.14.4) lib/enum.ex:4249: Enum.flat_map_list/2
(elixir 1.14.4) lib/enum.ex:4250: Enum.flat_map_list/2
(spark 1.1.9) lib/spark/elixir_sense/plugin.ex:538: Spark.ElixirSense.Plugin.get_constructors/4
(spark 1.1.9) lib/spark/elixir_sense/plugin.ex:106: Spark.ElixirSense.Plugin.get_suggestions/4
(elixir_sense 2.0.0) lib/elixir_sense/providers/suggestion/generic_reducer.ex:48: ElixirSense.Providers.Suggestion.GenericReducer.reduce/6
(elixir 1.14.4) lib/enum.ex:4751: Enumerable.List.reduce/3
(elixir 1.14.4) lib/enum.ex:2514: Enum.reduce_while/3
ZachDaniel
ZachDaniel•3y ago
Can you try main?
Alan Heywood
Alan HeywoodOP•3y ago
Sure thing 👀
ZachDaniel
ZachDaniel•3y ago
Oh, also, you can do this now:
resource do
simple_notifiers [Foo, Bar]
end
resource do
simple_notifiers [Foo, Bar]
end
Those are "notifiers which aren't extensions", and specifying them there will prevent a compile time dependency So you probably want to do that anyway but if you could still try main and LMK that would be great 😆
Alan Heywood
Alan HeywoodOP•3y ago
That has fixed it, thank you! I wasn't aware of simple_notifiers, will try it out.

Did you find this page helpful?