From 7958ff20f2e4c7e7f8fc086e756529a2ec77d4ad Mon Sep 17 00:00:00 2001 From: Rin Date: Tue, 7 May 2024 01:33:54 +0800 Subject: [PATCH] fix: check if cursor is on definition(#1042) --- apps/language_server/lib/language_server/server.ex | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/apps/language_server/lib/language_server/server.ex b/apps/language_server/lib/language_server/server.ex index a3ef09fd7..46f1859a2 100644 --- a/apps/language_server/lib/language_server/server.ex +++ b/apps/language_server/lib/language_server/server.ex @@ -983,7 +983,18 @@ defmodule ElixirLS.LanguageServer.Server do fun = fn -> {line, character} = SourceFile.lsp_position_to_elixir(source_file.text, {line, character}) parser_context = Parser.parse_immediate(uri, source_file, {line, character}) - Definition.definition(uri, parser_context, line, character, state.project_dir) + + {:ok, result} = + Definition.definition(uri, parser_context, line, character, state.project_dir) + + if result.uri == uri && result.range["start"]["line"] == line - 1 do + case References.references(parser_context, uri, line, character, false, state.project_dir) do + [] -> {:ok, result} + refs -> {:ok, refs} + end + else + {:ok, result} + end end {:async, fun, state}