-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Enable implicit usings #631
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
📝 WalkthroughWalkthroughEnables project-level implicit/global usings via Directory.Build.props and adjusts targets for net35; removes many per-file using directives across library, payloads, demos, and tests; adds project-level Using entries for the test project and a single fully-qualified Encoder.Quality reference in PdfByteQRCode. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20–25 minutes Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
QRCoder/PdfByteQRCode.cs (1)
86-86: Simplify to use the existing using directive.Since
System.Drawing.Imagingis already imported at line 2, the fully-qualified referenceSystem.Drawing.Imaging.Encoder.Qualityis unnecessary. The originalEncoder.Qualityshould work correctly.Apply this diff to simplify the reference:
- Param = new EncoderParameter[] { new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, jpgQuality) } + Param = new EncoderParameter[] { new EncoderParameter(Encoder.Quality, jpgQuality) }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (89)
Directory.Build.props(2 hunks)Directory.Build.targets(1 hunks)QRCoder.Xaml/XamlQRCode.cs(0 hunks)QRCoder/ASCIIQRCode.cs(0 hunks)QRCoder/ArtQRCode.cs(0 hunks)QRCoder/Base64QRCode.cs(0 hunks)QRCoder/BitmapByteQRCode.cs(0 hunks)QRCoder/Exceptions/DataTooLongException.cs(0 hunks)QRCoder/Extensions/BitArrayExtensions.cs(0 hunks)QRCoder/Extensions/StringValueAttribute.cs(0 hunks)QRCoder/PayloadGenerator.cs(0 hunks)QRCoder/PayloadGenerator/BezahlCode.cs(0 hunks)QRCoder/PayloadGenerator/BitcoinLikeCryptoCurrencyAddress.cs(0 hunks)QRCoder/PayloadGenerator/CalendarEvent.cs(0 hunks)QRCoder/PayloadGenerator/ContactData.cs(0 hunks)QRCoder/PayloadGenerator/Girocode.cs(0 hunks)QRCoder/PayloadGenerator/MMS.cs(0 hunks)QRCoder/PayloadGenerator/Mail.cs(0 hunks)QRCoder/PayloadGenerator/MoneroTransaction.cs(0 hunks)QRCoder/PayloadGenerator/OneTimePassword.cs(0 hunks)QRCoder/PayloadGenerator/RussiaPaymentOrder.cs(0 hunks)QRCoder/PayloadGenerator/SMS.cs(0 hunks)QRCoder/PayloadGenerator/ShadowSocksConfig.cs(0 hunks)QRCoder/PayloadGenerator/SlovenianUpnQr.cs(0 hunks)QRCoder/PayloadGenerator/SwissQrCode.cs(0 hunks)QRCoder/PayloadGenerator/Url.cs(0 hunks)QRCoder/PayloadGenerator/WhatsAppMessage.cs(0 hunks)QRCoder/PdfByteQRCode.cs(1 hunks)QRCoder/PngByteQRCode.cs(0 hunks)QRCoder/PostscriptQRCode.cs(0 hunks)QRCoder/QRCode.cs(0 hunks)QRCoder/QRCodeData.cs(0 hunks)QRCoder/QRCodeGenerator.cs(0 hunks)QRCoder/QRCodeGenerator/AlignmentPattern.cs(0 hunks)QRCoder/QRCodeGenerator/AlignmentPatterns.cs(0 hunks)QRCoder/QRCodeGenerator/AlphanumericEncoder.cs(0 hunks)QRCoder/QRCodeGenerator/CapacityTables.cs(0 hunks)QRCoder/QRCodeGenerator/CodewordBlock.cs(0 hunks)QRCoder/QRCodeGenerator/GaloisField.cs(0 hunks)QRCoder/QRCodeGenerator/ModulePlacer.BlockedModules.cs(0 hunks)QRCoder/QRCodeGenerator/ModulePlacer.MaskPattern.cs(0 hunks)QRCoder/QRCodeGenerator/ModulePlacer.cs(0 hunks)QRCoder/QRCodeGenerator/Point.cs(0 hunks)QRCoder/QRCodeGenerator/Polynom.cs(0 hunks)QRCoder/QRCodeGenerator/VersionInfo.cs(0 hunks)QRCoder/QRCodeGenerator/VersionInfoDetails.cs(0 hunks)QRCoder/SvgQRCode.cs(0 hunks)QRCoderApiTests/ApiApprovalTests.cs(0 hunks)QRCoderConsole/Program.cs(0 hunks)QRCoderDemo/Form1.cs(0 hunks)QRCoderDemo/Program.cs(0 hunks)QRCoderDemoUWP/App.xaml.cs(0 hunks)QRCoderDemoUWP/MainPage.xaml.cs(0 hunks)QRCoderTests/ArtQRCodeRendererTests.cs(0 hunks)QRCoderTests/AsciiQRCodeRendererTests.cs(0 hunks)QRCoderTests/Base64QRCodeRendererTests.cs(0 hunks)QRCoderTests/BitmapByteQRCodeRendererTests.cs(0 hunks)QRCoderTests/Helpers/HelperFunctions.cs(0 hunks)QRCoderTests/Helpers/ShouldMatchApprovedBinaryExtensions.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/BezahlCodeTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/BitcoinAddressTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/BitcoinCashAddressTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/BookmarkTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/CalendarEventTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/ContactDataTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/GeolocationTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/GirocodeTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/IbanTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/LitecoinAddressTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/MMSTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/MailTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/MoneroTransactionTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/OneTimePasswordTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/PhoneNumberTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/RussiaPaymentOrderTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/SMSTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/ShadowSocksConfigTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/SkypeCallTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/SwissQrCodeTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/UrlTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/WhatsAppMessageTests.cs(0 hunks)QRCoderTests/PayloadGeneratorTests/WiFiTests.cs(0 hunks)QRCoderTests/PngByteQRCodeRendererTests.cs(0 hunks)QRCoderTests/PostscriptQRCodeRendererTests.cs(0 hunks)QRCoderTests/QRCodeRendererTests.cs(0 hunks)QRCoderTests/QRCoderTests.csproj(1 hunks)QRCoderTests/QRGeneratorTests.cs(0 hunks)QRCoderTests/SvgQRCodeRendererTests.cs(0 hunks)QRCoderTests/XamlQRCodeRendererTests.cs(0 hunks)
💤 Files with no reviewable changes (85)
- QRCoder/Extensions/BitArrayExtensions.cs
- QRCoderDemoUWP/MainPage.xaml.cs
- QRCoder/PayloadGenerator/WhatsAppMessage.cs
- QRCoder/SvgQRCode.cs
- QRCoderDemoUWP/App.xaml.cs
- QRCoder/PayloadGenerator/RussiaPaymentOrder.cs
- QRCoderTests/PayloadGeneratorTests/CalendarEventTests.cs
- QRCoderTests/PayloadGeneratorTests/GirocodeTests.cs
- QRCoderTests/PayloadGeneratorTests/SkypeCallTests.cs
- QRCoderTests/PostscriptQRCodeRendererTests.cs
- QRCoder/PayloadGenerator/MMS.cs
- QRCoderTests/PayloadGeneratorTests/OneTimePasswordTests.cs
- QRCoderTests/BitmapByteQRCodeRendererTests.cs
- QRCoder/Base64QRCode.cs
- QRCoderTests/PayloadGeneratorTests/GeolocationTests.cs
- QRCoder/BitmapByteQRCode.cs
- QRCoderTests/AsciiQRCodeRendererTests.cs
- QRCoder/QRCodeGenerator/GaloisField.cs
- QRCoderTests/PayloadGeneratorTests/MMSTests.cs
- QRCoder/PngByteQRCode.cs
- QRCoder/QRCodeGenerator/VersionInfo.cs
- QRCoderDemo/Form1.cs
- QRCoderConsole/Program.cs
- QRCoder/QRCodeGenerator/CapacityTables.cs
- QRCoder/PayloadGenerator/BezahlCode.cs
- QRCoder/Exceptions/DataTooLongException.cs
- QRCoder/PayloadGenerator/Girocode.cs
- QRCoderTests/PayloadGeneratorTests/ContactDataTests.cs
- QRCoder/PostscriptQRCode.cs
- QRCoderTests/PayloadGeneratorTests/ShadowSocksConfigTests.cs
- QRCoder/PayloadGenerator/Mail.cs
- QRCoderTests/PayloadGeneratorTests/RussiaPaymentOrderTests.cs
- QRCoder/Extensions/StringValueAttribute.cs
- QRCoderTests/PayloadGeneratorTests/BezahlCodeTests.cs
- QRCoder/PayloadGenerator/OneTimePassword.cs
- QRCoder/QRCodeGenerator/Point.cs
- QRCoder/QRCodeGenerator/AlignmentPattern.cs
- QRCoder/QRCodeGenerator/CodewordBlock.cs
- QRCoder/ArtQRCode.cs
- QRCoderTests/PayloadGeneratorTests/SwissQrCodeTests.cs
- QRCoderTests/PayloadGeneratorTests/UrlTests.cs
- QRCoderTests/PayloadGeneratorTests/IbanTests.cs
- QRCoder/PayloadGenerator/CalendarEvent.cs
- QRCoder/QRCodeGenerator/Polynom.cs
- QRCoderTests/PayloadGeneratorTests/WiFiTests.cs
- QRCoderTests/QRCodeRendererTests.cs
- QRCoder.Xaml/XamlQRCode.cs
- QRCoderTests/PayloadGeneratorTests/WhatsAppMessageTests.cs
- QRCoder/PayloadGenerator/ContactData.cs
- QRCoder/QRCode.cs
- QRCoder/PayloadGenerator/BitcoinLikeCryptoCurrencyAddress.cs
- QRCoderTests/ArtQRCodeRendererTests.cs
- QRCoderTests/PngByteQRCodeRendererTests.cs
- QRCoder/PayloadGenerator/SwissQrCode.cs
- QRCoderTests/PayloadGeneratorTests/LitecoinAddressTests.cs
- QRCoderTests/SvgQRCodeRendererTests.cs
- QRCoderTests/PayloadGeneratorTests/SMSTests.cs
- QRCoder/PayloadGenerator.cs
- QRCoder/QRCodeGenerator/ModulePlacer.cs
- QRCoderTests/PayloadGeneratorTests/BitcoinCashAddressTests.cs
- QRCoderDemo/Program.cs
- QRCoder/QRCodeGenerator.cs
- QRCoderTests/XamlQRCodeRendererTests.cs
- QRCoder/PayloadGenerator/MoneroTransaction.cs
- QRCoderTests/PayloadGeneratorTests/PhoneNumberTests.cs
- QRCoder/PayloadGenerator/ShadowSocksConfig.cs
- QRCoder/PayloadGenerator/SMS.cs
- QRCoder/PayloadGenerator/SlovenianUpnQr.cs
- QRCoderTests/PayloadGeneratorTests/MoneroTransactionTests.cs
- QRCoderTests/PayloadGeneratorTests/MailTests.cs
- QRCoder/QRCodeGenerator/VersionInfoDetails.cs
- QRCoder/PayloadGenerator/Url.cs
- QRCoderTests/QRGeneratorTests.cs
- QRCoder/QRCodeGenerator/ModulePlacer.MaskPattern.cs
- QRCoder/QRCodeData.cs
- QRCoder/QRCodeGenerator/AlignmentPatterns.cs
- QRCoderTests/PayloadGeneratorTests/BitcoinAddressTests.cs
- QRCoderTests/Helpers/HelperFunctions.cs
- QRCoderTests/Base64QRCodeRendererTests.cs
- QRCoder/QRCodeGenerator/ModulePlacer.BlockedModules.cs
- QRCoder/ASCIIQRCode.cs
- QRCoderTests/PayloadGeneratorTests/BookmarkTests.cs
- QRCoderApiTests/ApiApprovalTests.cs
- QRCoder/QRCodeGenerator/AlphanumericEncoder.cs
- QRCoderTests/Helpers/ShouldMatchApprovedBinaryExtensions.cs
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: additional-tests
- GitHub Check: build
🔇 Additional comments (4)
Directory.Build.targets (1)
14-18: LGTM! Correct workaround for net35 compatibility.The conditional removal of
System.Threading.Tasksfor net35 targets is necessary and correct, as this namespace does not exist in .NET Framework 3.5. The comment clearly explains the rationale.QRCoderTests/QRCoderTests.csproj (1)
60-66: LGTM! Appropriate test-specific global usings.The explicit
Usingentries for test namespaces (QRCoder, test helpers, Shouldly, System.Drawing, and Xunit) are appropriate and will streamline test code by eliminating repetitive using directives.Directory.Build.props (2)
17-17: LGTM! Enables modern implicit usings feature.Enabling
ImplicitUsingsis appropriate for this codebase and aligns with modern C# best practices, reducing boilerplate across the solution.
53-59: LGTM! Appropriate global using directives.The explicit global usings for commonly used namespaces (System.Globalization, System.Text, System.Text.RegularExpressions) are well-chosen. The
BitArrayalias forSystem.Collections.BitArrayis a good practice to avoid potential naming conflicts with other collection types.
Summary by CodeRabbit
New Features
Bug Fixes
Refactor
Tests
Chores