René's URL Explorer Experiment


Title: plugin clashes with RuboCop's Style/SingleLineDoEndBlock and Style/BlockDelimiters · Issue #1460 · prettier/plugin-ruby · GitHub

Open Graph Title: plugin clashes with RuboCop's Style/SingleLineDoEndBlock and Style/BlockDelimiters · Issue #1460 · prettier/plugin-ruby

X Title: plugin clashes with RuboCop's Style/SingleLineDoEndBlock and Style/BlockDelimiters · Issue #1460 · prettier/plugin-ruby

Description: Hello there! I'm working on a project which is using this plugin to format ruby code along with RuboCop for additional linting and style consistency. We're following the documented "Usage with RuboCop" procedure of inheriting from the .r...

Open Graph Description: Hello there! I'm working on a project which is using this plugin to format ruby code along with RuboCop for additional linting and style consistency. We're following the documented "Usage with Rubo...

X Description: Hello there! I'm working on a project which is using this plugin to format ruby code along with RuboCop for additional linting and style consistency. We're following the documented "Us...

Opengraph URL: https://github.com/prettier/plugin-ruby/issues/1460

X: @github

direct link

Domain: patch-diff.githubusercontent.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"plugin clashes with RuboCop's Style/SingleLineDoEndBlock and Style/BlockDelimiters","articleBody":"Hello there!\n\nI'm working on a project which is using this plugin to format ruby code along with RuboCop for additional linting and style consistency.\n\nWe're following the documented \"[Usage with RuboCop](https://github.com/prettier/plugin-ruby/issues/new)\" procedure of inheriting from the `.rubocop.yml` provided by this plugin.\n\nNevertheless, we've noticed an example where the two tools clash with each other. I've made a sample repo to reproduce this here: https://github.com/maxjacobson/prettier-plugin-ruby-example/\n\nI'll summarize the gist of the issue here as well.\n\n## Expected behavior:\n\nGiven a file `app.rb`\n\n```ruby\nexpect do\n  foo\nend.to change(Bar, :baz, 1)\n```\n\nWhen I run `bundle exec rubocop --auto-correct \u0026\u0026 node_modules/.bin/prettier --write .`\n\nAnd I run `bundle exec rubocop`\n\nThen zero RuboCop offenses will be reported\n\n## Actual behavior\n\nprettier changes that file to \n\n```ruby\nexpect do foo end.to change(Bar, :baz, 1)\n```\n\nAnd rubocop finds these offenses:\n\n```\n$ bundle exec rubocop\nInspecting 2 files\n.C\n\nOffenses:\n\napp.rb:1:1: C: [Correctable] Style/SingleLineDoEndBlock: Prefer multiline do...end block.\nexpect do foo end.to change(Bar, :baz, 1)\n^^^^^^^^^^^^^^^^^\napp.rb:1:8: C: [Correctable] Style/BlockDelimiters: Prefer {...} over do...end for single-line blocks.\nexpect do foo end.to change(Bar, :baz, 1)\n       ^^\n\n2 files inspected, 2 offenses detected, 2 offenses autocorrectable\n```\n\nIt seems that those two RuboCop cops, Style/SingleLineDoEndBlock and Style/BlockDelimiters, clash with this plugin. RuboCop wants this snippet to be three lines and prettier wants this snippet to be one line, so the file keeps bouncing back and forth trying to please both masters.\n\n## Brainstorming options\n\n- the plugin's `.rubocop.yml` could disable those two cops\n- perhaps the plugin's `.rubocop.yml` could _configure_ those two cops to be better aligned with this plugin's behavior\n- perhaps the plugin shouldn't touch this code at all? I'm not sure that the one line version is actually better than the three line version. It's not particularly idiomatic to have single line do end blocks, is it?\n- or if this plugin really does want to squash this block onto one line, perhaps it should use a curly-brace-delimited block instead of a do/end block. That would avoid tripping those RuboCop cops\n\n## one more question...\n\nOut of curiosity, I'm wondering if this project is still being worked on? It overall is pretty stable and very useful, but it has been pretty quiet release-wise all the same. \n\nMany thanks!","author":{"url":"https://github.com/maxjacobson","@type":"Person","name":"maxjacobson"},"datePublished":"2025-05-07T13:59:52.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/1460/plugin-ruby/issues/1460"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:bd8c4760-f9df-8fcf-5e68-9375a4188f51
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-id9BCE:1545B1:27C11:31B13:698D0501
html-safe-nonce5b54046490e7cebd66db5de38ae88d928f8a50fbe7721608c964f56803175d58
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5QkNFOjE1NDVCMToyN0MxMTozMUIxMzo2OThEMDUwMSIsInZpc2l0b3JfaWQiOiI2OTcxOTU1ODc1OTQ2ODM2NDkiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmacd4cccff096e683e6a35946818a10e6edeaa58c532462b96d512924de65fbcaa7
hovercard-subject-tagissue:3046078064
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/prettier/plugin-ruby/1460/issue_layout
twitter:imagehttps://opengraph.githubassets.com/f32dfa0d4aee233f25f987d86c467811f6650f5cb2a02065175b51ee76901588/prettier/plugin-ruby/issues/1460
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/f32dfa0d4aee233f25f987d86c467811f6650f5cb2a02065175b51ee76901588/prettier/plugin-ruby/issues/1460
og:image:altHello there! I'm working on a project which is using this plugin to format ruby code along with RuboCop for additional linting and style consistency. We're following the documented "Usage with Rubo...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamemaxjacobson
hostnamegithub.com
expected-hostnamegithub.com
Nonef2da95634bce8a94cfa4123788169bfabdf845fd1d790fbaaaaab09dcfebdf28
turbo-cache-controlno-preview
go-importgithub.com/prettier/plugin-ruby git https://github.com/prettier/plugin-ruby.git
octolytics-dimension-user_id25822731
octolytics-dimension-user_loginprettier
octolytics-dimension-repository_id134440972
octolytics-dimension-repository_nwoprettier/plugin-ruby
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id134440972
octolytics-dimension-repository_network_root_nwoprettier/plugin-ruby
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasec21843b18feba17d11efb1895a7db61e8672f2cf
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/prettier/plugin-ruby/issues/1460#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fprettier%2Fplugin-ruby%2Fissues%2F1460
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Fprettier%2Fplugin-ruby%2Fissues%2F1460
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=prettier%2Fplugin-ruby
Reloadhttps://patch-diff.githubusercontent.com/prettier/plugin-ruby/issues/1460
Reloadhttps://patch-diff.githubusercontent.com/prettier/plugin-ruby/issues/1460
Reloadhttps://patch-diff.githubusercontent.com/prettier/plugin-ruby/issues/1460
prettier https://patch-diff.githubusercontent.com/prettier
plugin-rubyhttps://patch-diff.githubusercontent.com/prettier/plugin-ruby
Please reload this pagehttps://patch-diff.githubusercontent.com/prettier/plugin-ruby/issues/1460
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Fprettier%2Fplugin-ruby
Fork 101 https://patch-diff.githubusercontent.com/login?return_to=%2Fprettier%2Fplugin-ruby
Star 1.5k https://patch-diff.githubusercontent.com/login?return_to=%2Fprettier%2Fplugin-ruby
Code https://patch-diff.githubusercontent.com/prettier/plugin-ruby
Issues 10 https://patch-diff.githubusercontent.com/prettier/plugin-ruby/issues
Pull requests 9 https://patch-diff.githubusercontent.com/prettier/plugin-ruby/pulls
Actions https://patch-diff.githubusercontent.com/prettier/plugin-ruby/actions
Security 0 https://patch-diff.githubusercontent.com/prettier/plugin-ruby/security
Insights https://patch-diff.githubusercontent.com/prettier/plugin-ruby/pulse
Code https://patch-diff.githubusercontent.com/prettier/plugin-ruby
Issues https://patch-diff.githubusercontent.com/prettier/plugin-ruby/issues
Pull requests https://patch-diff.githubusercontent.com/prettier/plugin-ruby/pulls
Actions https://patch-diff.githubusercontent.com/prettier/plugin-ruby/actions
Security https://patch-diff.githubusercontent.com/prettier/plugin-ruby/security
Insights https://patch-diff.githubusercontent.com/prettier/plugin-ruby/pulse
New issuehttps://patch-diff.githubusercontent.com/login?return_to=https://github.com/prettier/plugin-ruby/issues/1460
New issuehttps://patch-diff.githubusercontent.com/login?return_to=https://github.com/prettier/plugin-ruby/issues/1460
plugin clashes with RuboCop's Style/SingleLineDoEndBlock and Style/BlockDelimitershttps://patch-diff.githubusercontent.com/prettier/plugin-ruby/issues/1460#top
https://github.com/maxjacobson
https://github.com/maxjacobson
maxjacobsonhttps://github.com/maxjacobson
on May 7, 2025https://github.com/prettier/plugin-ruby/issues/1460#issue-3046078064
Usage with RuboCophttps://github.com/prettier/plugin-ruby/issues/new
https://github.com/maxjacobson/prettier-plugin-ruby-example/https://github.com/maxjacobson/prettier-plugin-ruby-example/
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.