diff --git a/lib/ruby_lsp/listeners/hover.rb b/lib/ruby_lsp/listeners/hover.rb index 31e2f216e..b06e11805 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 3e503bf41..2477fe997 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 3a430069c..c5a7588e8 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 41a53c14a..5b9144c69 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