Remove unnecessary rpc calls

This commit is contained in:
Jonatan Kłosko 2024-08-17 00:03:57 +09:00
parent 5b7ea6cfbe
commit 987f706f62

View file

@ -47,10 +47,12 @@ defmodule Livebook.Intellisense.Docs do
Fetches documentation for the given module if available.
"""
@spec get_module_documentation(module(), node()) :: documentation()
def get_module_documentation(module, node)
def get_module_documentation(_module, node) when node != node(), do: nil
def get_module_documentation(module, node) do
case :erpc.call(node, Code, :fetch_docs, [module]) do
def get_module_documentation(module, _node) do
case Code.fetch_docs(module) do
{:docs_v1, _, _, format, %{"en" => docstring}, _, _} ->
{format, docstring}
@ -90,13 +92,13 @@ defmodule Livebook.Intellisense.Docs do
def lookup_module_members(_module, _members, node, _opts) when node != node(), do: []
def lookup_module_members(module, members, node, opts) do
def lookup_module_members(module, members, _node, opts) do
members = MapSet.new(members)
kinds = opts[:kinds] || [:function, :macro, :type]
specs =
with true <- :function in kinds or :macro in kinds,
{:ok, specs} <- :erpc.call(node, Code.Typespec, :fetch_specs, [module]) do
{:ok, specs} <- Code.Typespec.fetch_specs(module) do
Map.new(specs)
else
_ -> %{}
@ -104,7 +106,7 @@ defmodule Livebook.Intellisense.Docs do
type_specs =
with true <- :type in kinds,
{:ok, types} <- :erpc.call(node, Code.Typespec, :fetch_types, [module]) do
{:ok, types} <- Code.Typespec.fetch_types(module) do
for {type_kind, {name, _defs, vars}} = type <- types,
type_kind in [:type, :opaque],
into: Map.new(),
@ -113,7 +115,7 @@ defmodule Livebook.Intellisense.Docs do
_ -> %{}
end
case :erpc.call(node, Elixir.Code, :fetch_docs, [module]) do
case Elixir.Code.fetch_docs(module) do
{:docs_v1, _, _, format, _, _, docs} ->
for {{kind, name, base_arity}, _line, signatures, doc, meta} <- docs,
kind in kinds,