mirror of
https://github.com/livebook-dev/livebook.git
synced 2025-02-22 22:05:03 +08:00
Remove unnecessary rpc calls
This commit is contained in:
parent
5b7ea6cfbe
commit
987f706f62
1 changed files with 8 additions and 6 deletions
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue