diff --git a/.tool-versions b/.tool-versions index 11e973e..1f992bb 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,4 +1,4 @@ -dart 3.6.2 -flutter 3.27.4 +dart 3.7.0 +flutter 3.29.0 java temurin-17.0.14+7 bun 1.2.2 diff --git a/examples/nilts_example/android/.gitignore b/examples/nilts_example/android/.gitignore index 8744f45..a32122b 100644 --- a/examples/nilts_example/android/.gitignore +++ b/examples/nilts_example/android/.gitignore @@ -6,6 +6,7 @@ gradle-wrapper.jar /gradlew.bat /local.properties GeneratedPluginRegistrant.java +.cxx/ # Remember to never publicly share your keystore. # See https://flutter.dev/to/reference-keystore diff --git a/examples/nilts_example/android/app/build.gradle b/examples/nilts_example/android/app/build.gradle deleted file mode 100644 index f35fd45..0000000 --- a/examples/nilts_example/android/app/build.gradle +++ /dev/null @@ -1,43 +0,0 @@ -plugins { - id "com.android.application" - id "kotlin-android" - id "dev.flutter.flutter-gradle-plugin" -} - -android { - namespace = "com.ronnnnn.nilts_example" - compileSdkVersion = flutter.compileSdkVersion - ndkVersion = flutter.ndkVersion - - compileOptions { - // Up to Java 11 APIs are available through desugaring - // https://developer.android.com/studio/write/java11-minimal-support-table - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_11 - } - - defaultConfig { - // You can update the following values to match your application needs. - // For more information, see: https://flutter.dev/to/review-gradle-config. - minSdk = flutter.minSdkVersion - targetSdk = flutter.targetSdkVersion - versionCode = flutter.versionCode - versionName = flutter.versionName - } - - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig = signingConfigs.debug - } - } -} - -flutter { - source = "../.." -} diff --git a/examples/nilts_example/android/app/build.gradle.kts b/examples/nilts_example/android/app/build.gradle.kts new file mode 100644 index 0000000..30dc811 --- /dev/null +++ b/examples/nilts_example/android/app/build.gradle.kts @@ -0,0 +1,45 @@ +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.ronnnnn.nilts_example" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + // Up to Java 11 APIs are available through desugaring + // https://developer.android.com/studio/write/java11-minimal-support-table + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + defaultConfig { + applicationId = "com.ronnnnn.nilts_example" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/examples/nilts_example/android/build.gradle b/examples/nilts_example/android/build.gradle deleted file mode 100644 index d2ffbff..0000000 --- a/examples/nilts_example/android/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -allprojects { - repositories { - google() - mavenCentral() - } -} - -rootProject.buildDir = "../build" -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(":app") -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/examples/nilts_example/android/build.gradle.kts b/examples/nilts_example/android/build.gradle.kts new file mode 100644 index 0000000..559eff8 --- /dev/null +++ b/examples/nilts_example/android/build.gradle.kts @@ -0,0 +1,21 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/examples/nilts_example/android/gradle.properties b/examples/nilts_example/android/gradle.properties index 2597170..f018a61 100644 --- a/examples/nilts_example/android/gradle.properties +++ b/examples/nilts_example/android/gradle.properties @@ -1,3 +1,3 @@ -org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true diff --git a/examples/nilts_example/android/gradle/wrapper/gradle-wrapper.properties b/examples/nilts_example/android/gradle/wrapper/gradle-wrapper.properties index dedd5d1..d9fbee2 100644 --- a/examples/nilts_example/android/gradle/wrapper/gradle-wrapper.properties +++ b/examples/nilts_example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/examples/nilts_example/android/settings.gradle b/examples/nilts_example/android/settings.gradle deleted file mode 100644 index d0a1b95..0000000 --- a/examples/nilts_example/android/settings.gradle +++ /dev/null @@ -1,25 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.5.1" apply false - id "org.jetbrains.kotlin.android" version "2.0.0" apply false -} - -include ":app" diff --git a/examples/nilts_example/android/settings.gradle.kts b/examples/nilts_example/android/settings.gradle.kts new file mode 100644 index 0000000..96e11b3 --- /dev/null +++ b/examples/nilts_example/android/settings.gradle.kts @@ -0,0 +1,25 @@ +pluginManagement { + val flutterSdkPath = run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.8.1" apply false + id("org.jetbrains.kotlin.android") version "2.1.10" apply false +} + +include(":app") diff --git a/examples/nilts_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/nilts_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 8e3ca5d..15cada4 100644 --- a/examples/nilts_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/examples/nilts_example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -59,6 +59,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/melos.yaml b/melos.yaml index 8af4f5b..9c52d41 100644 --- a/melos.yaml +++ b/melos.yaml @@ -70,13 +70,11 @@ scripts: description: format (dry-run) fmt:dart: - # https://github.com/dart-lang/sdk/issues/59815 - run: melos exec -c 1 --fail-fast -- dart format --enable-experiment=digit-separators . + run: melos exec -c 1 --fail-fast -- dart format . description: format dart fmt:dart:dry: - # https://github.com/dart-lang/sdk/issues/59815 - run: melos exec -c 1 --fail-fast -- dart format --set-exit-if-changed --enable-experiment=digit-separators . + run: melos exec -c 1 --fail-fast -- dart format --set-exit-if-changed . description: format dart (dry-run) fix: diff --git a/packages/nilts/README.md b/packages/nilts/README.md index b1db099..ed75e0b 100644 --- a/packages/nilts/README.md +++ b/packages/nilts/README.md @@ -731,7 +731,7 @@ Upcoming... 🚀 ## Known issues -### Lint rule errors don't appear and quick fixes don't work in IDE (Resolved) +### Lint rule errors don't appear and quick fixes don't work in IDE (Fixed) > [!IMPORTANT] > This issue is solved on nilts 0.18.3 using custom_lint 0.7.3. @@ -743,10 +743,10 @@ See also: - [analysis.setContextRoots failed - RequestErrorCode.PLUGIN_ERROR ProcessException: / No such file or directory / Command: flutter pub get · Issue #270 · invertase/dart_custom_lint](https://github.com/invertase/dart_custom_lint/issues/270) - [IntelliJ and Android Studio don't show custom lints · Issue #307 · invertase/dart_custom_lint](https://github.com/invertase/dart_custom_lint/issues/307) -### Quick fix priorities (Resolved) +### Quick fix priorities (Fixed) > [!IMPORTANT] -> Finding which a plugin version fixed the issue is hard, but it looks resolved. +> Finding which a plugin version fixed the issue is hard, but it looks work as expected. > Checked works as expected on Dart plugin [242.24931](https://plugins.jetbrains.com/plugin/6351-dart/versions/stable/644082) and [243.23654.44](https://plugins.jetbrains.com/plugin/6351-dart/versions/stable/656656). The priorities assigned to quick fixes are not currently visible in IntelliJ IDEA and Android Studio due to the lack of support for `PrioritizedSourceChange` in these environments. @@ -760,10 +760,10 @@ See also: - [IDEA-336551 Support PrioritizedSourceChange on quick fix.](https://youtrack.jetbrains.com/issue/IDEA-336551/Support-PrioritizedSourceChange-on-quick-fix.) -### fix-all assist (Resolved) +### fix-all assist (Fixed) > [!IMPORTANT] -> Finding which a plugin version fixed the issue is hard, but it looks resolved. +> Finding which a plugin version fixed the issue is hard, but it looks as expected. > Checked works as expected on Dart plugin [242.24931](https://plugins.jetbrains.com/plugin/6351-dart/versions/stable/644082) and [243.23654.44](https://plugins.jetbrains.com/plugin/6351-dart/versions/stable/656656). The fix-all assist feature has been introduced in [custom_lint_builder 0.6.0](https://github.com/invertase/dart_custom_lint/pull/223). diff --git a/packages/nilts_test/pubspec.yaml b/packages/nilts_test/pubspec.yaml index dadda2e..34fd1ce 100644 --- a/packages/nilts_test/pubspec.yaml +++ b/packages/nilts_test/pubspec.yaml @@ -3,8 +3,8 @@ description: A new Flutter module project. publish_to: 'none' environment: - sdk: '>=3.6.0 <4.0.0' - flutter: '>=3.27.4' + sdk: '>=3.7.0 <4.0.0' + flutter: '>=3.29.0' dependencies: flutter: diff --git a/packages/nilts_test/test/dart_version_test.dart b/packages/nilts_test/test/dart_version_test.dart index 6cecabd..4d5566a 100644 --- a/packages/nilts_test/test/dart_version_test.dart +++ b/packages/nilts_test/test/dart_version_test.dart @@ -73,10 +73,7 @@ void main() { () => DartVersion.fromString('3.0.5-0.0.stable'), throwsArgumentError, ); - expect( - () => DartVersion.fromString('3.0.5-0.0.'), - throwsArgumentError, - ); + expect(() => DartVersion.fromString('3.0.5-0.0.'), throwsArgumentError); }); test('Test equals', () async { diff --git a/packages/nilts_test/test/lints/defined_async_callback_type.dart b/packages/nilts_test/test/lints/defined_async_callback_type.dart index 9321acc..c1f754f 100644 --- a/packages/nilts_test/test/lints/defined_async_callback_type.dart +++ b/packages/nilts_test/test/lints/defined_async_callback_type.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element // ignore_for_file: defined_async_value_setter_type // ignore_for_file: defined_async_value_getter_type +// ignore_for_file: unused_element_parameter import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; diff --git a/packages/nilts_test/test/lints/defined_async_value_getter_type.dart b/packages/nilts_test/test/lints/defined_async_value_getter_type.dart index 38ff506..f9a6f72 100644 --- a/packages/nilts_test/test/lints/defined_async_value_getter_type.dart +++ b/packages/nilts_test/test/lints/defined_async_value_getter_type.dart @@ -5,6 +5,7 @@ // ignore_for_file: defined_value_getter_type // ignore_for_file: defined_async_callback_type // ignore_for_file: defined_async_value_setter_type +// ignore_for_file: unused_element_parameter import 'dart:async'; @@ -60,11 +61,7 @@ class MainButton extends StatelessWidget { Widget build(BuildContext context) { return FilledButton( onPressed: () { - _onPressed( - () async {}, - () async => 0, - () => 0, - ); + _onPressed(() async {}, () async => 0, () => 0); onPressed(); }, child: const Text('Hello World!'), diff --git a/packages/nilts_test/test/lints/defined_async_value_setter_type.dart b/packages/nilts_test/test/lints/defined_async_value_setter_type.dart index d28786d..a628b2c 100644 --- a/packages/nilts_test/test/lints/defined_async_value_setter_type.dart +++ b/packages/nilts_test/test/lints/defined_async_value_setter_type.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element // ignore_for_file: defined_async_callback_type // ignore_for_file: defined_async_value_getter_type +// ignore_for_file: unused_element_parameter import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; diff --git a/packages/nilts_test/test/lints/defined_value_callback_type.dart b/packages/nilts_test/test/lints/defined_value_callback_type.dart index bc1409c..f1b3e0d 100644 --- a/packages/nilts_test/test/lints/defined_value_callback_type.dart +++ b/packages/nilts_test/test/lints/defined_value_callback_type.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element // ignore_for_file: defined_void_callback_type // ignore_for_file: defined_value_getter_type +// ignore_for_file: unused_element_parameter import 'package:flutter/material.dart'; diff --git a/packages/nilts_test/test/lints/defined_value_getter_type.dart b/packages/nilts_test/test/lints/defined_value_getter_type.dart index ce264aa..09c0111 100644 --- a/packages/nilts_test/test/lints/defined_value_getter_type.dart +++ b/packages/nilts_test/test/lints/defined_value_getter_type.dart @@ -6,6 +6,7 @@ // ignore_for_file: defined_value_setter_type // ignore_for_file: defined_void_callback_type // ignore_for_file: defined_async_value_getter_type +// ignore_for_file: unused_element_parameter import 'package:flutter/material.dart'; @@ -55,11 +56,7 @@ class MainButton extends StatelessWidget { Widget build(BuildContext context) { return FilledButton( onPressed: () { - _onPressed( - () {}, - () => 0, - () async => 0, - ); + _onPressed(() {}, () => 0, () async => 0); onPressed(); }, child: const Text('Hello World!'), diff --git a/packages/nilts_test/test/lints/defined_void_callback_type.dart b/packages/nilts_test/test/lints/defined_void_callback_type.dart index ea26b00..84fbb27 100644 --- a/packages/nilts_test/test/lints/defined_void_callback_type.dart +++ b/packages/nilts_test/test/lints/defined_void_callback_type.dart @@ -5,6 +5,7 @@ // ignore_for_file: defined_value_changed_type // ignore_for_file: defined_value_setter_type // ignore_for_file: defined_value_getter_type +// ignore_for_file: unused_element_parameter import 'package:flutter/material.dart'; diff --git a/packages/nilts_test/test/lints/fixed_text_scale_rich_text.dart b/packages/nilts_test/test/lints/fixed_text_scale_rich_text.dart index afb6110..ce2c8dd 100644 --- a/packages/nilts_test/test/lints/fixed_text_scale_rich_text.dart +++ b/packages/nilts_test/test/lints/fixed_text_scale_rich_text.dart @@ -11,21 +11,13 @@ class MainApp extends StatelessWidget { return Column( children: [ // expect_lint: fixed_text_scale_rich_text + RichText(text: const TextSpan(text: 'Hello World!')), RichText( - text: const TextSpan( - text: 'Hello World!', - ), - ), - RichText( - text: const TextSpan( - text: 'Hello World!', - ), + text: const TextSpan(text: 'Hello World!'), textScaler: MediaQuery.textScalerOf(context), ), RichText( - text: const TextSpan( - text: 'Hello World!', - ), + text: const TextSpan(text: 'Hello World!'), textScaleFactor: MediaQuery.textScaleFactorOf(context), ), ], diff --git a/packages/nilts_test/test/lints/no_support_multi_text_direction.dart b/packages/nilts_test/test/lints/no_support_multi_text_direction.dart index b542f85..afae279 100644 --- a/packages/nilts_test/test/lints/no_support_multi_text_direction.dart +++ b/packages/nilts_test/test/lints/no_support_multi_text_direction.dart @@ -34,18 +34,10 @@ class Alignments extends StatelessWidget { // expect_lint: no_support_multi_text_direction alignment: Alignment.topRight, ), - Align( - alignment: Alignment.bottomCenter, - ), - Align( - alignment: Alignment.center, - ), - Align( - alignment: Alignment.topCenter, - ), - Align( - alignment: Alignment(12, 12), - ), + Align(alignment: Alignment.bottomCenter), + Align(alignment: Alignment.center), + Align(alignment: Alignment.topCenter), + Align(alignment: Alignment(12, 12)), ], ); } @@ -74,18 +66,12 @@ class Insets extends StatelessWidget { // expect_lint: no_support_multi_text_direction padding: EdgeInsets.only(top: 16, right: 12), ), - const Padding( - padding: EdgeInsets.all(12), - ), + const Padding(padding: EdgeInsets.all(12)), Padding( padding: EdgeInsets.fromViewPadding(View.of(context).padding, 0), ), - const Padding( - padding: EdgeInsets.only(top: 16, bottom: 12), - ), - const Padding( - padding: EdgeInsets.symmetric(horizontal: 12), - ), + const Padding(padding: EdgeInsets.only(top: 16, bottom: 12)), + const Padding(padding: EdgeInsets.symmetric(horizontal: 12)), ], ); } diff --git a/packages/nilts_test/test/lints/shrink_wrapped_scroll_view.dart b/packages/nilts_test/test/lints/shrink_wrapped_scroll_view.dart index 26c24bb..25f7b4b 100644 --- a/packages/nilts_test/test/lints/shrink_wrapped_scroll_view.dart +++ b/packages/nilts_test/test/lints/shrink_wrapped_scroll_view.dart @@ -15,10 +15,7 @@ class MainApp extends StatelessWidget { // expect_lint: shrink_wrapped_scroll_view ListView(shrinkWrap: true), // expect_lint: shrink_wrapped_scroll_view - ListView.builder( - itemBuilder: (_, __) => null, - shrinkWrap: true, - ), + ListView.builder(itemBuilder: (_, __) => null, shrinkWrap: true), // expect_lint: shrink_wrapped_scroll_view ListView.custom( childrenDelegate: SliverChildListDelegate([]), @@ -55,15 +52,9 @@ class MainApp extends StatelessWidget { shrinkWrap: true, ), // expect_lint: shrink_wrapped_scroll_view - GridView.count( - crossAxisCount: 2, - shrinkWrap: true, - ), + GridView.count(crossAxisCount: 2, shrinkWrap: true), // expect_lint: shrink_wrapped_scroll_view - GridView.extent( - maxCrossAxisExtent: 2, - shrinkWrap: true, - ), + GridView.extent(maxCrossAxisExtent: 2, shrinkWrap: true), // expect_lint: shrink_wrapped_scroll_view const CustomScrollView(shrinkWrap: true), ], diff --git a/packages/nilts_test/test/lints/unnecessary_rebuilds_from_media_query.dart b/packages/nilts_test/test/lints/unnecessary_rebuilds_from_media_query.dart index d1bdcc8..ff931b3 100644 --- a/packages/nilts_test/test/lints/unnecessary_rebuilds_from_media_query.dart +++ b/packages/nilts_test/test/lints/unnecessary_rebuilds_from_media_query.dart @@ -107,11 +107,7 @@ class MainApp extends StatelessWidget { final maybeDisplayFeatures = MediaQuery.maybeOf(context)?.displayFeatures; return const MaterialApp( - home: Scaffold( - body: Center( - child: Text('Hello World!'), - ), - ), + home: Scaffold(body: Center(child: Text('Hello World!'))), ); } } diff --git a/pubspec.yaml b/pubspec.yaml index a45dd8b..62972ef 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: nilts_workspace publish_to: 'none' environment: - sdk: '>=3.6.0 <4.0.0' + sdk: '>=3.7.0 <4.0.0' dev_dependencies: melos: 6.3.2