diff --git a/lib/next_ls/db.ex b/lib/next_ls/db.ex index 10315294..4b3b00dc 100644 --- a/lib/next_ls/db.ex +++ b/lib/next_ls/db.ex @@ -148,11 +148,11 @@ defmodule NextLS.DB do module: module } = reference + line = meta[:line] || 0 col = meta[:column] || 0 - {{start_line, start_column}, {end_line, end_column}} = - {{meta[:line], col}, - {meta[:line], col + String.length(identifier |> to_string() |> String.replace("Elixir.", ""))}} + {start_line, start_column} = {line, col} + {end_line, end_column} = {line, line + String.length(identifier |> to_string() |> String.replace("Elixir.", ""))} __query__( {conn, s.logger}, diff --git a/lib/next_ls/runtime/sidecar.ex b/lib/next_ls/runtime/sidecar.ex index c0b0d062..053faa48 100644 --- a/lib/next_ls/runtime/sidecar.ex +++ b/lib/next_ls/runtime/sidecar.ex @@ -15,14 +15,23 @@ defmodule NextLS.Runtime.Sidecar do end def handle_info({:tracer, payload}, state) do + payload = replace_nil(payload, :start_line, 1) DB.insert_symbol(state.db, payload) {:noreply, state} end def handle_info({{:tracer, :reference}, payload}, state) do + payload = replace_nil(payload, :start_line, 1) DB.insert_reference(state.db, payload) {:noreply, state} end + + defp replace_nil(data, field, replacement) do + case data do + %{^field => nil} -> %{data | field => replacement} + %{} -> data + end + end end