From 3a5ce096686f2edae8eaa0a3368c8f407052f890 Mon Sep 17 00:00:00 2001 From: Vinicius Stock Date: Mon, 27 Oct 2025 15:21:06 -0400 Subject: [PATCH] Refresh diagnostics on .rubocop_todo.yml change --- lib/ruby_lsp/server.rb | 4 ++-- test/server_test.rb | 34 ++++++++++++++++++---------------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/lib/ruby_lsp/server.rb b/lib/ruby_lsp/server.rb index 394b85e451..75285543a6 100644 --- a/lib/ruby_lsp/server.rb +++ b/lib/ruby_lsp/server.rb @@ -303,7 +303,7 @@ def run_initialize(message) @current_request_id, Interface::RelativePattern.new( base_uri: @global_state.workspace_uri.to_s, - pattern: "{.rubocop.yml,.rubocop}", + pattern: "{.rubocop.yml,.rubocop,.rubocop_todo.yml}", ), registration_id: "rubocop-watcher", )) @@ -1045,7 +1045,7 @@ def workspace_did_change_watched_files(message) file_name = File.basename(file_path) - if file_name == ".rubocop.yml" || file_name == ".rubocop" + if file_name == ".rubocop.yml" || file_name == ".rubocop" || file_name == ".rubocop_todo.yml" handle_rubocop_config_change(uri) end end diff --git a/test/server_test.rb b/test/server_test.rb index 928371e09d..9d9805b9d2 100644 --- a/test/server_test.rb +++ b/test/server_test.rb @@ -1058,8 +1058,6 @@ def test_edits_outside_of_declarations_do_not_trigger_indexing end def test_rubocop_config_changes_trigger_workspace_diagnostic_refresh - uri = URI::Generic.from_path(path: File.join(Dir.pwd, ".rubocop.yml")) - @server.process_message({ id: 1, method: "initialize", @@ -1073,22 +1071,26 @@ def test_rubocop_config_changes_trigger_workspace_diagnostic_refresh }, }, }) - @server.global_state.index.index_all(uris: []) - @server.process_message({ - method: "workspace/didChangeWatchedFiles", - params: { - changes: [ - { - uri: uri, - type: RubyLsp::Constant::FileChangeType::CHANGED, - }, - ], - }, - }) - request = find_message(RubyLsp::Request) - assert_equal("workspace/diagnostic/refresh", request.method) + [".rubocop.yml", ".rubocop", ".rubocop_todo.yml"].each do |config_file| + uri = URI::Generic.from_path(path: File.join(Dir.pwd, config_file)) + + @server.process_message({ + method: "workspace/didChangeWatchedFiles", + params: { + changes: [ + { + uri: uri, + type: RubyLsp::Constant::FileChangeType::CHANGED, + }, + ], + }, + }) + + request = find_message(RubyLsp::Request) + assert_equal("workspace/diagnostic/refresh", request.method) + end end def test_compose_bundle_creates_file_to_skip_next_compose