From fd8291283976d860c937fa522ad3c3b959996d60 Mon Sep 17 00:00:00 2001 From: Vinicius Stock Date: Wed, 24 Dec 2025 10:57:21 -0300 Subject: [PATCH] Use URI instead of path for read more keyword read more links --- lib/ruby_lsp/listeners/hover.rb | 4 ++-- lib/ruby_lsp/requests/completion_resolve.rb | 4 ++-- test/requests/completion_resolve_test.rb | 3 ++- test/requests/hover_expectations_test.rb | 4 +++- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/ruby_lsp/listeners/hover.rb b/lib/ruby_lsp/listeners/hover.rb index 31e2f216ea..b06e118052 100644 --- a/lib/ruby_lsp/listeners/hover.rb +++ b/lib/ruby_lsp/listeners/hover.rb @@ -283,10 +283,10 @@ def handle_keyword_documentation(keyword) content = KEYWORD_DOCS[keyword] return unless content - doc_path = File.join(STATIC_DOCS_PATH, "#{keyword}.md") + doc_uri = URI::Generic.from_path(path: File.join(STATIC_DOCS_PATH, "#{keyword}.md")) @response_builder.push("```ruby\n#{keyword}\n```", category: :title) - @response_builder.push("[Read more](#{doc_path})", category: :links) + @response_builder.push("[Read more](#{doc_uri})", category: :links) @response_builder.push(content, category: :documentation) end diff --git a/lib/ruby_lsp/requests/completion_resolve.rb b/lib/ruby_lsp/requests/completion_resolve.rb index 3e503bf413..2477fe9978 100644 --- a/lib/ruby_lsp/requests/completion_resolve.rb +++ b/lib/ruby_lsp/requests/completion_resolve.rb @@ -84,7 +84,7 @@ def keyword_resolve(item) content = KEYWORD_DOCS[keyword] if content - doc_path = File.join(STATIC_DOCS_PATH, "#{keyword}.md") + doc_uri = URI::Generic.from_path(path: File.join(STATIC_DOCS_PATH, "#{keyword}.md")) @item[:documentation] = Interface::MarkupContent.new( kind: "markdown", @@ -93,7 +93,7 @@ def keyword_resolve(item) #{keyword} ``` - [Read more](#{doc_path}) + [Read more](#{doc_uri}) #{content} MARKDOWN diff --git a/test/requests/completion_resolve_test.rb b/test/requests/completion_resolve_test.rb index 3a430069c5..c5a7588e8c 100644 --- a/test/requests/completion_resolve_test.rb +++ b/test/requests/completion_resolve_test.rb @@ -204,7 +204,8 @@ def foo RubyLsp::KEYWORD_DOCS["yield"], #: as !nil contents, ) - assert_match("[Read more](#{RubyLsp::STATIC_DOCS_PATH}/yield.md)", contents) + expected_uri = URI::Generic.from_path(path: File.join(RubyLsp::STATIC_DOCS_PATH, "yield.md")) + assert_match("[Read more](#{expected_uri})", contents) end end end diff --git a/test/requests/hover_expectations_test.rb b/test/requests/hover_expectations_test.rb index 41a53c14a0..5b9144c69e 100644 --- a/test/requests/hover_expectations_test.rb +++ b/test/requests/hover_expectations_test.rb @@ -965,7 +965,9 @@ def foo RubyLsp::KEYWORD_DOCS[keyword] || "No documentation found for #{keyword}", contents, ) - assert_match("[Read more](#{RubyLsp::STATIC_DOCS_PATH}/#{keyword}.md)", contents) + + expected_uri = URI::Generic.from_path(path: File.join(RubyLsp::STATIC_DOCS_PATH, "#{keyword}.md")) + assert_match("[Read more](#{expected_uri})", contents) end end end