Current section
Files
Jump to
Current section
Files
lib/next_ls/logger.ex
defmodule NextLS.Logger do
@moduledoc false
use GenServer
def start_link(arg) do
GenServer.start_link(__MODULE__, arg, Keyword.take(arg, [:name]))
end
def log(server, msg), do: GenServer.cast(server, {:log, :log, msg})
def error(server, msg), do: GenServer.cast(server, {:log, :error, msg})
def info(server, msg), do: GenServer.cast(server, {:log, :info, msg})
def warning(server, msg), do: GenServer.cast(server, {:log, :warning, msg})
def init(args) do
lsp = Keyword.fetch!(args, :lsp)
{:ok, %{lsp: lsp}}
end
def handle_cast({:log, type, msg}, state) do
apply(GenLSP, type, [state.lsp, String.trim("[NextLS] #{msg}")])
{:noreply, state}
end
end