From b4a1d865025f972f2d33cb080164b7dcf35ffcce Mon Sep 17 00:00:00 2001 From: Santiago Garcia Gil Date: Tue, 12 Nov 2024 09:19:04 -0500 Subject: [PATCH] Deploy website - based on 3d8f9ddc781b8d407af1da87fe3419972a28b56c --- 404.html | 8 ++++---- ...0120595c.e25a611d.js => 0120595c.f46590e0.js} | 2 +- ...0bb840a8.cdaa1832.js => 0bb840a8.e7606f3b.js} | 2 +- ...1064df68.83d8afa0.js => 1064df68.d3bde002.js} | 2 +- ...153f4cd2.c3ec1d39.js => 153f4cd2.73cfcce0.js} | 2 +- ...1a27f214.e6526f43.js => 1a27f214.6688a058.js} | 2 +- assets/js/25b5a9bc.2f3516ed.js | 1 + ...27dbeb01.c08f3d47.js => 27dbeb01.d125799b.js} | 2 +- ...2820b22c.a2347e78.js => 2820b22c.17e70105.js} | 2 +- ...2ae497f9.e842d322.js => 2ae497f9.ded8f75d.js} | 2 +- ...339362dc.9c25b7e2.js => 339362dc.f3882597.js} | 2 +- ...340969f1.4a84a949.js => 340969f1.e654b32b.js} | 2 +- ...342c214f.c23b0b87.js => 342c214f.255f8c51.js} | 2 +- ...342d2309.2ee1b758.js => 342d2309.16953cac.js} | 2 +- ...37012b73.2a4f860a.js => 37012b73.c740af6a.js} | 2 +- ...38a6c3dd.7dea9689.js => 38a6c3dd.ebea08e0.js} | 2 +- ...39e8fd7d.f36abf12.js => 39e8fd7d.48095be1.js} | 2 +- ...3db17ce4.7fc22f73.js => 3db17ce4.db1d3732.js} | 2 +- ...4b266bc1.196cf307.js => 4b266bc1.dcccf677.js} | 2 +- ...4bce62ec.c6886007.js => 4bce62ec.a5be3b7a.js} | 2 +- ...4d3c1263.90acbba3.js => 4d3c1263.e019875b.js} | 2 +- ...4dccdc48.013004ad.js => 4dccdc48.5d452dd3.js} | 2 +- ...4f7eb955.6d239a03.js => 4f7eb955.17bdd730.js} | 2 +- ...545c8698.73adea0a.js => 545c8698.b05b41ff.js} | 2 +- ...59b78236.fe1c51af.js => 59b78236.380661d5.js} | 2 +- ...59e71fd1.75ce788a.js => 59e71fd1.9433ba0c.js} | 2 +- assets/js/5afd84da.54ca5e5e.js | 1 + assets/js/5afd84da.ad4cd905.js | 1 - ...5dd620ec.30e1f018.js => 5dd620ec.6f647cb9.js} | 2 +- ...5e6ba485.a1e44035.js => 5e6ba485.c6ae729d.js} | 2 +- ...633d8a16.cc2099a1.js => 633d8a16.b56a64f6.js} | 2 +- ...6723db8b.6d94d396.js => 6723db8b.9c928e84.js} | 2 +- ...6744268e.a5627d40.js => 6744268e.d56ea12e.js} | 2 +- ...68812fd8.9c2fcc7c.js => 68812fd8.faa66ae7.js} | 2 +- ...6e5734d8.98471d34.js => 6e5734d8.d92346a4.js} | 2 +- ...74e9b832.5b2bd5b3.js => 74e9b832.562d5313.js} | 2 +- ...77402a57.b1d4b186.js => 77402a57.c7941eb7.js} | 2 +- ...79ad219e.2bd10b5c.js => 79ad219e.adc66f55.js} | 2 +- ...7ac81413.9ee1a43c.js => 7ac81413.afb5776c.js} | 2 +- ...852fee05.5c03c50e.js => 852fee05.efc07cca.js} | 2 +- ...8c4a2621.e02c4864.js => 8c4a2621.2ae39d72.js} | 2 +- assets/js/8f2918f8.5c9c43e7.js | 1 + ...90b032b6.8c47939f.js => 90b032b6.b936c6f1.js} | 2 +- ...918b6acf.b5c19a98.js => 918b6acf.852fb260.js} | 2 +- assets/js/935f2afb.80c2034c.js | 1 + assets/js/935f2afb.ca9f74b2.js | 1 - ...945ab8b8.07d07d56.js => 945ab8b8.ee5a9a16.js} | 2 +- ...97f0a7f6.dca7487d.js => 97f0a7f6.0bb3029c.js} | 2 +- ...abefdb81.c2a19589.js => abefdb81.b34d16b2.js} | 2 +- ...b316a99f.3ef2dff2.js => b316a99f.8f22a47c.js} | 2 +- assets/js/b7c4f7eb.45df1d3e.js | 1 - assets/js/b7c4f7eb.e3adb658.js | 1 + ...bb226fd8.13e27d78.js => bb226fd8.9d988302.js} | 2 +- ...bb2b276a.bdbaac18.js => bb2b276a.77f7047a.js} | 2 +- assets/js/bc2663a9.410d2382.js | 1 - assets/js/bc2663a9.4c338e7f.js | 1 + ...be70f3b9.4bc5c992.js => be70f3b9.696af34a.js} | 2 +- ...bf74b1a6.d353fb92.js => bf74b1a6.80cc167a.js} | 2 +- ...c1017a8f.03cfcc9c.js => c1017a8f.ca0b9e15.js} | 2 +- ...c19cc756.13e052c4.js => c19cc756.56471069.js} | 2 +- assets/js/c1cca2c2.a206106a.js | 1 + ...c4f8173c.dc17d01d.js => c4f8173c.a22f1d4c.js} | 2 +- ...c57f7d8c.25c85cc1.js => c57f7d8c.28947811.js} | 2 +- ...c8addf59.351e24a6.js => c8addf59.d87c4df0.js} | 2 +- ...d2b8e1c1.f1d7b34d.js => d2b8e1c1.7fb6591e.js} | 2 +- ...d384f18d.688147c7.js => d384f18d.948c587e.js} | 2 +- ...d509a802.f3389b09.js => d509a802.9fc846e9.js} | 2 +- ...d9f9c28c.f005556c.js => d9f9c28c.5a7929c3.js} | 2 +- ...da81259c.78b0f6e2.js => da81259c.e9abe844.js} | 2 +- ...dbde3cfd.1d157d05.js => dbde3cfd.a65b9c21.js} | 2 +- ...df575e78.99960f0d.js => df575e78.2ed8bf4c.js} | 2 +- ...e056807d.2ef2c32a.js => e056807d.981c6146.js} | 2 +- ...e1411296.1b50c2ff.js => e1411296.9e1ea09d.js} | 2 +- ...e3c5b79a.b4d899c4.js => e3c5b79a.b9183706.js} | 2 +- ...e4919cfc.441acfa9.js => e4919cfc.755ecca3.js} | 2 +- ...ec1af512.660fffa9.js => ec1af512.1928f3e9.js} | 2 +- assets/js/ed018433.59f089a5.js | 1 + assets/js/ed018433.d3eb40d6.js | 1 - ...f716294d.4a3a8050.js => f716294d.c0c1d789.js} | 2 +- assets/js/f79b33e8.77db4be2.js | 1 + assets/js/f79b33e8.e878b2a6.js | 1 - assets/js/f98a13ed.031c27e2.js | 1 + ...ff693c74.d12713ae.js => ff693c74.f0d572cd.js} | 2 +- assets/js/main.127929d7.js | 2 -- assets/js/main.244a129c.js | 2 ++ ....LICENSE.txt => main.244a129c.js.LICENSE.txt} | 0 assets/js/runtime~main.05cb81f3.js | 1 - assets/js/runtime~main.45fcec6f.js | 1 + docs/anti-patterns/index.html | 8 ++++---- docs/anti-patterns/long-method/index.html | 8 ++++---- .../anti-patterns/long-parameter-list/index.html | 8 ++++---- docs/cli/analyze/index.html | 10 +++++----- docs/cli/check-unnecessary-nullable/index.html | 10 +++++----- docs/cli/check-unused-code/index.html | 10 +++++----- docs/cli/check-unused-files/index.html | 10 +++++----- docs/cli/check-unused-l10n/index.html | 10 +++++----- docs/cli/fix/index.html | 16 ++++++++++++++++ docs/cli/index.html | 10 +++++----- .../configuration/configuring-metrics/index.html | 8 ++++---- docs/configuration/configuring-rules/index.html | 8 ++++---- docs/configuration/excluding-code/index.html | 8 ++++---- docs/configuration/index.html | 8 ++++---- docs/configuration/presets/index.html | 8 ++++---- docs/core-concepts/index.html | 8 ++++---- docs/getting-started/index.html | 8 ++++---- docs/metrics/cyclomatic-complexity/index.html | 8 ++++---- docs/metrics/halstead-volume/index.html | 8 ++++---- docs/metrics/index.html | 8 ++++---- docs/metrics/lines-of-code/index.html | 8 ++++---- docs/metrics/maintainability-index/index.html | 8 ++++---- docs/metrics/maximum-nesting-level/index.html | 8 ++++---- docs/metrics/number-of-methods/index.html | 8 ++++---- docs/metrics/number-of-parameters/index.html | 8 ++++---- docs/metrics/source-lines-of-code/index.html | 8 ++++---- docs/metrics/technical-debt/index.html | 8 ++++---- docs/metrics/weight-of-class/index.html | 8 ++++---- docs/rules/dart/arguments-ordering/index.html | 10 +++++----- docs/rules/dart/avoid-banned-imports/index.html | 10 +++++----- .../dart/avoid-cascade-after-if-null/index.html | 10 +++++----- .../index.html | 12 ++++++------ .../dart/avoid-double-slash-imports/index.html | 12 ++++++------ .../dart/avoid-duplicate-exports/index.html | 12 ++++++------ docs/rules/dart/avoid-dynamic/index.html | 12 ++++++------ docs/rules/dart/avoid-global-state/index.html | 12 ++++++------ .../dart/avoid-ignoring-return-values/index.html | 12 ++++++------ docs/rules/dart/avoid-late-keyword/index.html | 12 ++++++------ .../index.html | 12 ++++++------ .../index.html | 12 ++++++------ .../dart/avoid-non-ascii-symbols/index.html | 12 ++++++------ .../dart/avoid-non-null-assertion/index.html | 12 ++++++------ .../index.html | 12 ++++++------ docs/rules/dart/avoid-redundant-async/index.html | 12 ++++++------ .../dart/avoid-throw-in-catch-block/index.html | 12 ++++++------ .../avoid-top-level-members-in-tests/index.html | 12 ++++++------ .../avoid-unnecessary-conditionals/index.html | 12 ++++++------ .../avoid-unnecessary-type-assertions/index.html | 12 ++++++------ .../dart/avoid-unnecessary-type-casts/index.html | 12 ++++++------ .../avoid-unrelated-type-assertions/index.html | 12 ++++++------ .../dart/avoid-unused-parameters/index.html | 12 ++++++------ docs/rules/dart/ban-name/index.html | 12 ++++++------ .../binary-expression-operand-order/index.html | 12 ++++++------ docs/rules/dart/double-literal-format/index.html | 12 ++++++------ docs/rules/dart/format-comment/index.html | 12 ++++++------ docs/rules/dart/index.html | 10 +++++----- .../dart/list-all-equatable-fields/index.html | 12 ++++++------ docs/rules/dart/member-ordering/index.html | 12 ++++++------ .../rules/dart/missing-test-assertion/index.html | 12 ++++++------ docs/rules/dart/newline-before-return/index.html | 12 ++++++------ .../index.html | 16 ++++++++++++++++ .../dart/no-boolean-literal-compare/index.html | 12 ++++++------ docs/rules/dart/no-empty-block/index.html | 12 ++++++------ docs/rules/dart/no-equal-arguments/index.html | 12 ++++++------ docs/rules/dart/no-equal-then-else/index.html | 12 ++++++------ docs/rules/dart/no-magic-number/index.html | 12 ++++++------ docs/rules/dart/no-object-declaration/index.html | 12 ++++++------ docs/rules/dart/prefer-async-await/index.html | 12 ++++++------ .../index.html | 12 ++++++------ .../prefer-conditional-expressions/index.html | 12 ++++++------ .../prefer-correct-identifier-length/index.html | 12 ++++++------ .../prefer-correct-test-file-name/index.html | 12 ++++++------ .../dart/prefer-correct-type-name/index.html | 12 ++++++------ docs/rules/dart/prefer-enums-by-name/index.html | 12 ++++++------ docs/rules/dart/prefer-first-or-null/index.html | 16 ++++++++++++++++ docs/rules/dart/prefer-first/index.html | 12 ++++++------ .../dart/prefer-immediate-return/index.html | 12 ++++++------ docs/rules/dart/prefer-iterable-of/index.html | 12 ++++++------ docs/rules/dart/prefer-last/index.html | 12 ++++++------ .../rules/dart/prefer-match-file-name/index.html | 12 ++++++------ .../dart/prefer-moving-to-variable/index.html | 12 ++++++------ docs/rules/dart/prefer-single-quotes/index.html | 16 ++++++++++++++++ docs/rules/dart/prefer-static-class/index.html | 12 ++++++------ docs/rules/dart/prefer-trailing-comma/index.html | 12 ++++++------ .../avoid-creating-vector-in-update/index.html | 12 ++++++------ .../avoid-initializing-in-on-mount/index.html | 12 ++++++------ .../avoid-redundant-async-on-load/index.html | 12 ++++++------ docs/rules/flame/index.html | 8 ++++---- .../flutter/always-remove-listener/index.html | 12 ++++++------ docs/rules/flutter/avoid-border-all/index.html | 12 ++++++------ .../flutter/avoid-expanded-as-spacer/index.html | 12 ++++++------ .../flutter/avoid-returning-widgets/index.html | 12 ++++++------ .../avoid-shrink-wrap-in-lists/index.html | 12 ++++++------ .../avoid-unnecessary-setstate/index.html | 12 ++++++------ .../flutter/avoid-wrapping-in-padding/index.html | 12 ++++++------ .../index.html | 12 ++++++------ .../consistent-update-render-object/index.html | 12 ++++++------ docs/rules/flutter/index.html | 8 ++++---- .../prefer-const-border-radius/index.html | 12 ++++++------ .../index.html | 12 ++++++------ .../prefer-extracting-callbacks/index.html | 12 ++++++------ .../prefer-single-widget-per-file/index.html | 12 ++++++------ .../flutter/prefer-using-list-view/index.html | 12 ++++++------ .../use-setstate-synchronously/index.html | 12 ++++++------ docs/rules/index.html | 10 +++++----- docs/rules/intl/index.html | 8 ++++---- docs/rules/intl/prefer-intl-name/index.html | 12 ++++++------ .../prefer-provide-intl-description/index.html | 12 ++++++------ es/404.html | 8 ++++---- ...0120595c.d3380d8f.js => 0120595c.a0ce911d.js} | 2 +- ...0bb840a8.b586d80f.js => 0bb840a8.b5be6a39.js} | 2 +- ...1064df68.2dd65743.js => 1064df68.d5791772.js} | 2 +- ...153f4cd2.51ca2601.js => 153f4cd2.659ad693.js} | 2 +- ...1a27f214.c37e5a9a.js => 1a27f214.60a02309.js} | 2 +- es/assets/js/25b5a9bc.ce8cba3d.js | 1 + ...27dbeb01.6e736eae.js => 27dbeb01.56ce07de.js} | 2 +- ...2820b22c.1c230120.js => 2820b22c.fdf7d129.js} | 2 +- ...2ae497f9.ecacb193.js => 2ae497f9.4c23ad92.js} | 2 +- es/assets/js/339362dc.e055befc.js | 1 - es/assets/js/339362dc.fb03fb30.js | 1 + ...340969f1.75ac1e51.js => 340969f1.51158c64.js} | 2 +- ...342c214f.4f1d1e3e.js => 342c214f.9c6a5731.js} | 2 +- ...342d2309.29146918.js => 342d2309.fed7e304.js} | 2 +- ...37012b73.8db1d67a.js => 37012b73.ad644634.js} | 2 +- ...38a6c3dd.c3b69dc4.js => 38a6c3dd.28e4de15.js} | 2 +- ...39e8fd7d.df1c479b.js => 39e8fd7d.7056ab2d.js} | 2 +- ...3db17ce4.fe49a7d4.js => 3db17ce4.23e206fc.js} | 2 +- ...4b266bc1.424bac61.js => 4b266bc1.cbd1fe0c.js} | 2 +- ...4bce62ec.01651c80.js => 4bce62ec.a00142b5.js} | 2 +- ...4d3c1263.38c75841.js => 4d3c1263.6cdc7e1b.js} | 2 +- ...4dccdc48.c8b7a912.js => 4dccdc48.59a63816.js} | 2 +- ...4f7eb955.86d070a0.js => 4f7eb955.d2dda937.js} | 2 +- ...545c8698.64390453.js => 545c8698.7eb3c802.js} | 2 +- ...59b78236.72e093f1.js => 59b78236.7ee27214.js} | 2 +- ...59e71fd1.6ac12b28.js => 59e71fd1.d3a85a82.js} | 2 +- es/assets/js/5afd84da.1f0e23b1.js | 1 - es/assets/js/5afd84da.b5894eef.js | 1 + ...5dd620ec.d77087c1.js => 5dd620ec.558710a4.js} | 2 +- ...5e6ba485.a88bea3e.js => 5e6ba485.cd399e5f.js} | 2 +- ...633d8a16.93dde505.js => 633d8a16.84ffa503.js} | 2 +- ...6723db8b.08e4e843.js => 6723db8b.24f8b617.js} | 2 +- ...6744268e.47f96203.js => 6744268e.52880783.js} | 2 +- ...68812fd8.33f8b307.js => 68812fd8.eb1a9db8.js} | 2 +- ...6e5734d8.7004ed72.js => 6e5734d8.fd65f6a7.js} | 2 +- ...74e9b832.5166e5bd.js => 74e9b832.f3823d56.js} | 2 +- ...77402a57.037436cd.js => 77402a57.3507902a.js} | 2 +- ...79ad219e.27112e8a.js => 79ad219e.d87c283a.js} | 2 +- ...7ac81413.f93d1189.js => 7ac81413.889971c6.js} | 2 +- ...852fee05.60440f4c.js => 852fee05.0e0424e6.js} | 2 +- ...8c4a2621.b1e02e29.js => 8c4a2621.99bb5b10.js} | 2 +- es/assets/js/8f2918f8.ea5816fb.js | 1 + ...90b032b6.bc480880.js => 90b032b6.b94af40a.js} | 2 +- ...918b6acf.c9442a1b.js => 918b6acf.aa0dfbe2.js} | 2 +- es/assets/js/935f2afb.5d1412db.js | 1 + es/assets/js/935f2afb.e3aa071b.js | 1 - ...945ab8b8.584ee15b.js => 945ab8b8.0d8f0dfb.js} | 2 +- ...97f0a7f6.dffc3cc2.js => 97f0a7f6.2751dfe8.js} | 2 +- ...abefdb81.e074c8de.js => abefdb81.88bec756.js} | 2 +- ...b316a99f.6873fc97.js => b316a99f.6f0c23d9.js} | 2 +- es/assets/js/b7c4f7eb.3880ff1f.js | 1 - es/assets/js/b7c4f7eb.55067a16.js | 1 + ...bb226fd8.cc1b5132.js => bb226fd8.e1fd6f69.js} | 2 +- ...bb2b276a.cd518795.js => bb2b276a.f89d680c.js} | 2 +- es/assets/js/bc2663a9.37866be0.js | 1 - es/assets/js/bc2663a9.79d4f742.js | 1 + ...be70f3b9.103db0a4.js => be70f3b9.0a323b72.js} | 2 +- ...bf74b1a6.e025425f.js => bf74b1a6.8804d6c6.js} | 2 +- ...c1017a8f.f4e197c7.js => c1017a8f.b780e1a6.js} | 2 +- ...c19cc756.aa019a69.js => c19cc756.27a018b9.js} | 2 +- es/assets/js/c1cca2c2.d99c04a9.js | 1 + ...c4f8173c.3c9aa3e1.js => c4f8173c.85293a1d.js} | 2 +- ...c57f7d8c.3968e230.js => c57f7d8c.939ff02c.js} | 2 +- ...c8addf59.1459b085.js => c8addf59.2ca5e07c.js} | 2 +- ...d2b8e1c1.9b62432e.js => d2b8e1c1.538be5fd.js} | 2 +- ...d384f18d.f26f6daa.js => d384f18d.2b8b1d98.js} | 2 +- ...d509a802.d0c02cf6.js => d509a802.1d0ea396.js} | 2 +- ...d9f9c28c.71c14e17.js => d9f9c28c.92308586.js} | 2 +- ...da81259c.fbfc3288.js => da81259c.f0097137.js} | 2 +- ...dbde3cfd.13c0a488.js => dbde3cfd.83911df4.js} | 2 +- ...df575e78.06407090.js => df575e78.6a882263.js} | 2 +- ...e056807d.2c11a588.js => e056807d.08b06435.js} | 2 +- ...e1411296.407355f9.js => e1411296.b0777b0e.js} | 2 +- ...e3c5b79a.15ba6b58.js => e3c5b79a.6012aba8.js} | 2 +- ...e4919cfc.42be4274.js => e4919cfc.68065d77.js} | 2 +- ...ec1af512.97a80703.js => ec1af512.aaf56d4d.js} | 2 +- es/assets/js/ed018433.0a4ae2d2.js | 1 - es/assets/js/ed018433.928ebd4b.js | 1 + ...f716294d.f65d9830.js => f716294d.3412dfa6.js} | 2 +- es/assets/js/f79b33e8.816bcadf.js | 1 - es/assets/js/f79b33e8.cb9cf1a1.js | 1 + es/assets/js/f98a13ed.b84c87a1.js | 1 + ...ff693c74.fd1583d0.js => ff693c74.6bbbf6c8.js} | 2 +- es/assets/js/main.78cfcbca.js | 2 -- es/assets/js/main.9244c150.js | 2 ++ ....LICENSE.txt => main.9244c150.js.LICENSE.txt} | 0 es/assets/js/runtime~main.7766d013.js | 1 - es/assets/js/runtime~main.daa1a711.js | 1 + es/docs/anti-patterns/index.html | 8 ++++---- es/docs/anti-patterns/long-method/index.html | 8 ++++---- .../anti-patterns/long-parameter-list/index.html | 8 ++++---- es/docs/cli/analyze/index.html | 10 +++++----- .../cli/check-unnecessary-nullable/index.html | 10 +++++----- es/docs/cli/check-unused-code/index.html | 10 +++++----- es/docs/cli/check-unused-files/index.html | 10 +++++----- es/docs/cli/check-unused-l10n/index.html | 10 +++++----- es/docs/cli/fix/index.html | 16 ++++++++++++++++ es/docs/cli/index.html | 10 +++++----- .../configuration/configuring-metrics/index.html | 8 ++++---- .../configuration/configuring-rules/index.html | 8 ++++---- es/docs/configuration/excluding-code/index.html | 8 ++++---- es/docs/configuration/index.html | 8 ++++---- es/docs/configuration/presets/index.html | 8 ++++---- es/docs/core-concepts/index.html | 8 ++++---- es/docs/getting-started/index.html | 8 ++++---- es/docs/metrics/cyclomatic-complexity/index.html | 8 ++++---- es/docs/metrics/halstead-volume/index.html | 8 ++++---- es/docs/metrics/index.html | 8 ++++---- es/docs/metrics/lines-of-code/index.html | 8 ++++---- es/docs/metrics/maintainability-index/index.html | 8 ++++---- es/docs/metrics/maximum-nesting-level/index.html | 8 ++++---- es/docs/metrics/number-of-methods/index.html | 8 ++++---- es/docs/metrics/number-of-parameters/index.html | 8 ++++---- es/docs/metrics/source-lines-of-code/index.html | 8 ++++---- es/docs/metrics/technical-debt/index.html | 8 ++++---- es/docs/metrics/weight-of-class/index.html | 8 ++++---- es/docs/rules/dart/arguments-ordering/index.html | 10 +++++----- .../rules/dart/avoid-banned-imports/index.html | 10 +++++----- .../dart/avoid-cascade-after-if-null/index.html | 10 +++++----- .../index.html | 12 ++++++------ .../dart/avoid-double-slash-imports/index.html | 12 ++++++------ .../dart/avoid-duplicate-exports/index.html | 12 ++++++------ es/docs/rules/dart/avoid-dynamic/index.html | 12 ++++++------ es/docs/rules/dart/avoid-global-state/index.html | 12 ++++++------ .../dart/avoid-ignoring-return-values/index.html | 12 ++++++------ es/docs/rules/dart/avoid-late-keyword/index.html | 12 ++++++------ .../index.html | 12 ++++++------ .../index.html | 12 ++++++------ .../dart/avoid-non-ascii-symbols/index.html | 12 ++++++------ .../dart/avoid-non-null-assertion/index.html | 12 ++++++------ .../index.html | 12 ++++++------ .../rules/dart/avoid-redundant-async/index.html | 12 ++++++------ .../dart/avoid-throw-in-catch-block/index.html | 12 ++++++------ .../avoid-top-level-members-in-tests/index.html | 12 ++++++------ .../avoid-unnecessary-conditionals/index.html | 12 ++++++------ .../avoid-unnecessary-type-assertions/index.html | 12 ++++++------ .../dart/avoid-unnecessary-type-casts/index.html | 12 ++++++------ .../avoid-unrelated-type-assertions/index.html | 12 ++++++------ .../dart/avoid-unused-parameters/index.html | 12 ++++++------ es/docs/rules/dart/ban-name/index.html | 12 ++++++------ .../binary-expression-operand-order/index.html | 12 ++++++------ .../rules/dart/double-literal-format/index.html | 12 ++++++------ es/docs/rules/dart/format-comment/index.html | 12 ++++++------ es/docs/rules/dart/index.html | 10 +++++----- .../dart/list-all-equatable-fields/index.html | 12 ++++++------ es/docs/rules/dart/member-ordering/index.html | 12 ++++++------ .../rules/dart/missing-test-assertion/index.html | 12 ++++++------ .../rules/dart/newline-before-return/index.html | 12 ++++++------ .../index.html | 16 ++++++++++++++++ .../dart/no-boolean-literal-compare/index.html | 12 ++++++------ es/docs/rules/dart/no-empty-block/index.html | 12 ++++++------ es/docs/rules/dart/no-equal-arguments/index.html | 12 ++++++------ es/docs/rules/dart/no-equal-then-else/index.html | 12 ++++++------ es/docs/rules/dart/no-magic-number/index.html | 12 ++++++------ .../rules/dart/no-object-declaration/index.html | 12 ++++++------ es/docs/rules/dart/prefer-async-await/index.html | 12 ++++++------ .../index.html | 12 ++++++------ .../prefer-conditional-expressions/index.html | 12 ++++++------ .../prefer-correct-identifier-length/index.html | 12 ++++++------ .../prefer-correct-test-file-name/index.html | 12 ++++++------ .../dart/prefer-correct-type-name/index.html | 12 ++++++------ .../rules/dart/prefer-enums-by-name/index.html | 12 ++++++------ .../rules/dart/prefer-first-or-null/index.html | 16 ++++++++++++++++ es/docs/rules/dart/prefer-first/index.html | 12 ++++++------ .../dart/prefer-immediate-return/index.html | 12 ++++++------ es/docs/rules/dart/prefer-iterable-of/index.html | 12 ++++++------ es/docs/rules/dart/prefer-last/index.html | 12 ++++++------ .../rules/dart/prefer-match-file-name/index.html | 12 ++++++------ .../dart/prefer-moving-to-variable/index.html | 12 ++++++------ .../rules/dart/prefer-single-quotes/index.html | 16 ++++++++++++++++ .../rules/dart/prefer-static-class/index.html | 12 ++++++------ .../rules/dart/prefer-trailing-comma/index.html | 12 ++++++------ .../avoid-creating-vector-in-update/index.html | 12 ++++++------ .../avoid-initializing-in-on-mount/index.html | 12 ++++++------ .../avoid-redundant-async-on-load/index.html | 12 ++++++------ es/docs/rules/flame/index.html | 8 ++++---- .../flutter/always-remove-listener/index.html | 12 ++++++------ .../rules/flutter/avoid-border-all/index.html | 12 ++++++------ .../flutter/avoid-expanded-as-spacer/index.html | 12 ++++++------ .../flutter/avoid-returning-widgets/index.html | 12 ++++++------ .../avoid-shrink-wrap-in-lists/index.html | 12 ++++++------ .../avoid-unnecessary-setstate/index.html | 12 ++++++------ .../flutter/avoid-wrapping-in-padding/index.html | 12 ++++++------ .../index.html | 12 ++++++------ .../consistent-update-render-object/index.html | 12 ++++++------ es/docs/rules/flutter/index.html | 8 ++++---- .../prefer-const-border-radius/index.html | 12 ++++++------ .../index.html | 12 ++++++------ .../prefer-extracting-callbacks/index.html | 12 ++++++------ .../prefer-single-widget-per-file/index.html | 12 ++++++------ .../flutter/prefer-using-list-view/index.html | 12 ++++++------ .../use-setstate-synchronously/index.html | 12 ++++++------ es/docs/rules/index.html | 10 +++++----- es/docs/rules/intl/index.html | 8 ++++---- es/docs/rules/intl/prefer-intl-name/index.html | 12 ++++++------ .../prefer-provide-intl-description/index.html | 12 ++++++------ es/index.html | 8 ++++---- es/markdown-page/index.html | 8 ++++---- es/search/index.html | 8 ++++---- es/sitemap.xml | 2 +- index.html | 8 ++++---- markdown-page/index.html | 8 ++++---- search/index.html | 8 ++++---- sitemap.xml | 2 +- 401 files changed, 1450 insertions(+), 1314 deletions(-) rename assets/js/{0120595c.e25a611d.js => 0120595c.f46590e0.js} (98%) rename assets/js/{0bb840a8.cdaa1832.js => 0bb840a8.e7606f3b.js} (97%) rename assets/js/{1064df68.83d8afa0.js => 1064df68.d3bde002.js} (53%) rename assets/js/{153f4cd2.c3ec1d39.js => 153f4cd2.73cfcce0.js} (98%) rename assets/js/{1a27f214.e6526f43.js => 1a27f214.6688a058.js} (97%) create mode 100644 assets/js/25b5a9bc.2f3516ed.js rename assets/js/{27dbeb01.c08f3d47.js => 27dbeb01.d125799b.js} (97%) rename assets/js/{2820b22c.a2347e78.js => 2820b22c.17e70105.js} (97%) rename assets/js/{2ae497f9.e842d322.js => 2ae497f9.ded8f75d.js} (97%) rename assets/js/{339362dc.9c25b7e2.js => 339362dc.f3882597.js} (53%) rename assets/js/{340969f1.4a84a949.js => 340969f1.e654b32b.js} (97%) rename assets/js/{342c214f.c23b0b87.js => 342c214f.255f8c51.js} (97%) rename assets/js/{342d2309.2ee1b758.js => 342d2309.16953cac.js} (97%) rename assets/js/{37012b73.2a4f860a.js => 37012b73.c740af6a.js} (93%) rename assets/js/{38a6c3dd.7dea9689.js => 38a6c3dd.ebea08e0.js} (98%) rename assets/js/{39e8fd7d.f36abf12.js => 39e8fd7d.48095be1.js} (97%) rename assets/js/{3db17ce4.7fc22f73.js => 3db17ce4.db1d3732.js} (97%) rename assets/js/{4b266bc1.196cf307.js => 4b266bc1.dcccf677.js} (98%) rename assets/js/{4bce62ec.c6886007.js => 4bce62ec.a5be3b7a.js} (97%) rename assets/js/{4d3c1263.90acbba3.js => 4d3c1263.e019875b.js} (97%) rename assets/js/{4dccdc48.013004ad.js => 4dccdc48.5d452dd3.js} (97%) rename assets/js/{4f7eb955.6d239a03.js => 4f7eb955.17bdd730.js} (97%) rename assets/js/{545c8698.73adea0a.js => 545c8698.b05b41ff.js} (96%) rename assets/js/{59b78236.fe1c51af.js => 59b78236.380661d5.js} (97%) rename assets/js/{59e71fd1.75ce788a.js => 59e71fd1.9433ba0c.js} (97%) create mode 100644 assets/js/5afd84da.54ca5e5e.js delete mode 100644 assets/js/5afd84da.ad4cd905.js rename assets/js/{5dd620ec.30e1f018.js => 5dd620ec.6f647cb9.js} (97%) rename assets/js/{5e6ba485.a1e44035.js => 5e6ba485.c6ae729d.js} (96%) rename assets/js/{633d8a16.cc2099a1.js => 633d8a16.b56a64f6.js} (97%) rename assets/js/{6723db8b.6d94d396.js => 6723db8b.9c928e84.js} (96%) rename assets/js/{6744268e.a5627d40.js => 6744268e.d56ea12e.js} (97%) rename assets/js/{68812fd8.9c2fcc7c.js => 68812fd8.faa66ae7.js} (97%) rename assets/js/{6e5734d8.98471d34.js => 6e5734d8.d92346a4.js} (97%) rename assets/js/{74e9b832.5b2bd5b3.js => 74e9b832.562d5313.js} (98%) rename assets/js/{77402a57.b1d4b186.js => 77402a57.c7941eb7.js} (97%) rename assets/js/{79ad219e.2bd10b5c.js => 79ad219e.adc66f55.js} (97%) rename assets/js/{7ac81413.9ee1a43c.js => 7ac81413.afb5776c.js} (96%) rename assets/js/{852fee05.5c03c50e.js => 852fee05.efc07cca.js} (97%) rename assets/js/{8c4a2621.e02c4864.js => 8c4a2621.2ae39d72.js} (97%) create mode 100644 assets/js/8f2918f8.5c9c43e7.js rename assets/js/{90b032b6.8c47939f.js => 90b032b6.b936c6f1.js} (98%) rename assets/js/{918b6acf.b5c19a98.js => 918b6acf.852fb260.js} (97%) create mode 100644 assets/js/935f2afb.80c2034c.js delete mode 100644 assets/js/935f2afb.ca9f74b2.js rename assets/js/{945ab8b8.07d07d56.js => 945ab8b8.ee5a9a16.js} (97%) rename assets/js/{97f0a7f6.dca7487d.js => 97f0a7f6.0bb3029c.js} (97%) rename assets/js/{abefdb81.c2a19589.js => abefdb81.b34d16b2.js} (97%) rename assets/js/{b316a99f.3ef2dff2.js => b316a99f.8f22a47c.js} (97%) delete mode 100644 assets/js/b7c4f7eb.45df1d3e.js create mode 100644 assets/js/b7c4f7eb.e3adb658.js rename assets/js/{bb226fd8.13e27d78.js => bb226fd8.9d988302.js} (97%) rename assets/js/{bb2b276a.bdbaac18.js => bb2b276a.77f7047a.js} (97%) delete mode 100644 assets/js/bc2663a9.410d2382.js create mode 100644 assets/js/bc2663a9.4c338e7f.js rename assets/js/{be70f3b9.4bc5c992.js => be70f3b9.696af34a.js} (97%) rename assets/js/{bf74b1a6.d353fb92.js => bf74b1a6.80cc167a.js} (97%) rename assets/js/{c1017a8f.03cfcc9c.js => c1017a8f.ca0b9e15.js} (97%) rename assets/js/{c19cc756.13e052c4.js => c19cc756.56471069.js} (97%) create mode 100644 assets/js/c1cca2c2.a206106a.js rename assets/js/{c4f8173c.dc17d01d.js => c4f8173c.a22f1d4c.js} (98%) rename assets/js/{c57f7d8c.25c85cc1.js => c57f7d8c.28947811.js} (97%) rename assets/js/{c8addf59.351e24a6.js => c8addf59.d87c4df0.js} (97%) rename assets/js/{d2b8e1c1.f1d7b34d.js => d2b8e1c1.7fb6591e.js} (97%) rename assets/js/{d384f18d.688147c7.js => d384f18d.948c587e.js} (97%) rename assets/js/{d509a802.f3389b09.js => d509a802.9fc846e9.js} (97%) rename assets/js/{d9f9c28c.f005556c.js => d9f9c28c.5a7929c3.js} (96%) rename assets/js/{da81259c.78b0f6e2.js => da81259c.e9abe844.js} (97%) rename assets/js/{dbde3cfd.1d157d05.js => dbde3cfd.a65b9c21.js} (97%) rename assets/js/{df575e78.99960f0d.js => df575e78.2ed8bf4c.js} (98%) rename assets/js/{e056807d.2ef2c32a.js => e056807d.981c6146.js} (97%) rename assets/js/{e1411296.1b50c2ff.js => e1411296.9e1ea09d.js} (97%) rename assets/js/{e3c5b79a.b4d899c4.js => e3c5b79a.b9183706.js} (97%) rename assets/js/{e4919cfc.441acfa9.js => e4919cfc.755ecca3.js} (97%) rename assets/js/{ec1af512.660fffa9.js => ec1af512.1928f3e9.js} (96%) create mode 100644 assets/js/ed018433.59f089a5.js delete mode 100644 assets/js/ed018433.d3eb40d6.js rename assets/js/{f716294d.4a3a8050.js => f716294d.c0c1d789.js} (97%) create mode 100644 assets/js/f79b33e8.77db4be2.js delete mode 100644 assets/js/f79b33e8.e878b2a6.js create mode 100644 assets/js/f98a13ed.031c27e2.js rename assets/js/{ff693c74.d12713ae.js => ff693c74.f0d572cd.js} (97%) delete mode 100644 assets/js/main.127929d7.js create mode 100644 assets/js/main.244a129c.js rename assets/js/{main.127929d7.js.LICENSE.txt => main.244a129c.js.LICENSE.txt} (100%) delete mode 100644 assets/js/runtime~main.05cb81f3.js create mode 100644 assets/js/runtime~main.45fcec6f.js create mode 100644 docs/cli/fix/index.html create mode 100644 docs/rules/dart/no-blank-line-before-single-return/index.html create mode 100644 docs/rules/dart/prefer-first-or-null/index.html create mode 100644 docs/rules/dart/prefer-single-quotes/index.html rename es/assets/js/{0120595c.d3380d8f.js => 0120595c.a0ce911d.js} (98%) rename es/assets/js/{0bb840a8.b586d80f.js => 0bb840a8.b5be6a39.js} (97%) rename es/assets/js/{1064df68.2dd65743.js => 1064df68.d5791772.js} (53%) rename es/assets/js/{153f4cd2.51ca2601.js => 153f4cd2.659ad693.js} (98%) rename es/assets/js/{1a27f214.c37e5a9a.js => 1a27f214.60a02309.js} (97%) create mode 100644 es/assets/js/25b5a9bc.ce8cba3d.js rename es/assets/js/{27dbeb01.6e736eae.js => 27dbeb01.56ce07de.js} (97%) rename es/assets/js/{2820b22c.1c230120.js => 2820b22c.fdf7d129.js} (97%) rename es/assets/js/{2ae497f9.ecacb193.js => 2ae497f9.4c23ad92.js} (97%) delete mode 100644 es/assets/js/339362dc.e055befc.js create mode 100644 es/assets/js/339362dc.fb03fb30.js rename es/assets/js/{340969f1.75ac1e51.js => 340969f1.51158c64.js} (97%) rename es/assets/js/{342c214f.4f1d1e3e.js => 342c214f.9c6a5731.js} (97%) rename es/assets/js/{342d2309.29146918.js => 342d2309.fed7e304.js} (97%) rename es/assets/js/{37012b73.8db1d67a.js => 37012b73.ad644634.js} (93%) rename es/assets/js/{38a6c3dd.c3b69dc4.js => 38a6c3dd.28e4de15.js} (98%) rename es/assets/js/{39e8fd7d.df1c479b.js => 39e8fd7d.7056ab2d.js} (97%) rename es/assets/js/{3db17ce4.fe49a7d4.js => 3db17ce4.23e206fc.js} (97%) rename es/assets/js/{4b266bc1.424bac61.js => 4b266bc1.cbd1fe0c.js} (98%) rename es/assets/js/{4bce62ec.01651c80.js => 4bce62ec.a00142b5.js} (97%) rename es/assets/js/{4d3c1263.38c75841.js => 4d3c1263.6cdc7e1b.js} (97%) rename es/assets/js/{4dccdc48.c8b7a912.js => 4dccdc48.59a63816.js} (97%) rename es/assets/js/{4f7eb955.86d070a0.js => 4f7eb955.d2dda937.js} (97%) rename es/assets/js/{545c8698.64390453.js => 545c8698.7eb3c802.js} (96%) rename es/assets/js/{59b78236.72e093f1.js => 59b78236.7ee27214.js} (97%) rename es/assets/js/{59e71fd1.6ac12b28.js => 59e71fd1.d3a85a82.js} (97%) delete mode 100644 es/assets/js/5afd84da.1f0e23b1.js create mode 100644 es/assets/js/5afd84da.b5894eef.js rename es/assets/js/{5dd620ec.d77087c1.js => 5dd620ec.558710a4.js} (97%) rename es/assets/js/{5e6ba485.a88bea3e.js => 5e6ba485.cd399e5f.js} (96%) rename es/assets/js/{633d8a16.93dde505.js => 633d8a16.84ffa503.js} (97%) rename es/assets/js/{6723db8b.08e4e843.js => 6723db8b.24f8b617.js} (96%) rename es/assets/js/{6744268e.47f96203.js => 6744268e.52880783.js} (97%) rename es/assets/js/{68812fd8.33f8b307.js => 68812fd8.eb1a9db8.js} (97%) rename es/assets/js/{6e5734d8.7004ed72.js => 6e5734d8.fd65f6a7.js} (97%) rename es/assets/js/{74e9b832.5166e5bd.js => 74e9b832.f3823d56.js} (98%) rename es/assets/js/{77402a57.037436cd.js => 77402a57.3507902a.js} (97%) rename es/assets/js/{79ad219e.27112e8a.js => 79ad219e.d87c283a.js} (97%) rename es/assets/js/{7ac81413.f93d1189.js => 7ac81413.889971c6.js} (96%) rename es/assets/js/{852fee05.60440f4c.js => 852fee05.0e0424e6.js} (97%) rename es/assets/js/{8c4a2621.b1e02e29.js => 8c4a2621.99bb5b10.js} (97%) create mode 100644 es/assets/js/8f2918f8.ea5816fb.js rename es/assets/js/{90b032b6.bc480880.js => 90b032b6.b94af40a.js} (98%) rename es/assets/js/{918b6acf.c9442a1b.js => 918b6acf.aa0dfbe2.js} (97%) create mode 100644 es/assets/js/935f2afb.5d1412db.js delete mode 100644 es/assets/js/935f2afb.e3aa071b.js rename es/assets/js/{945ab8b8.584ee15b.js => 945ab8b8.0d8f0dfb.js} (97%) rename es/assets/js/{97f0a7f6.dffc3cc2.js => 97f0a7f6.2751dfe8.js} (97%) rename es/assets/js/{abefdb81.e074c8de.js => abefdb81.88bec756.js} (97%) rename es/assets/js/{b316a99f.6873fc97.js => b316a99f.6f0c23d9.js} (97%) delete mode 100644 es/assets/js/b7c4f7eb.3880ff1f.js create mode 100644 es/assets/js/b7c4f7eb.55067a16.js rename es/assets/js/{bb226fd8.cc1b5132.js => bb226fd8.e1fd6f69.js} (97%) rename es/assets/js/{bb2b276a.cd518795.js => bb2b276a.f89d680c.js} (97%) delete mode 100644 es/assets/js/bc2663a9.37866be0.js create mode 100644 es/assets/js/bc2663a9.79d4f742.js rename es/assets/js/{be70f3b9.103db0a4.js => be70f3b9.0a323b72.js} (97%) rename es/assets/js/{bf74b1a6.e025425f.js => bf74b1a6.8804d6c6.js} (97%) rename es/assets/js/{c1017a8f.f4e197c7.js => c1017a8f.b780e1a6.js} (97%) rename es/assets/js/{c19cc756.aa019a69.js => c19cc756.27a018b9.js} (97%) create mode 100644 es/assets/js/c1cca2c2.d99c04a9.js rename es/assets/js/{c4f8173c.3c9aa3e1.js => c4f8173c.85293a1d.js} (98%) rename es/assets/js/{c57f7d8c.3968e230.js => c57f7d8c.939ff02c.js} (97%) rename es/assets/js/{c8addf59.1459b085.js => c8addf59.2ca5e07c.js} (97%) rename es/assets/js/{d2b8e1c1.9b62432e.js => d2b8e1c1.538be5fd.js} (97%) rename es/assets/js/{d384f18d.f26f6daa.js => d384f18d.2b8b1d98.js} (97%) rename es/assets/js/{d509a802.d0c02cf6.js => d509a802.1d0ea396.js} (97%) rename es/assets/js/{d9f9c28c.71c14e17.js => d9f9c28c.92308586.js} (96%) rename es/assets/js/{da81259c.fbfc3288.js => da81259c.f0097137.js} (97%) rename es/assets/js/{dbde3cfd.13c0a488.js => dbde3cfd.83911df4.js} (97%) rename es/assets/js/{df575e78.06407090.js => df575e78.6a882263.js} (98%) rename es/assets/js/{e056807d.2c11a588.js => e056807d.08b06435.js} (97%) rename es/assets/js/{e1411296.407355f9.js => e1411296.b0777b0e.js} (97%) rename es/assets/js/{e3c5b79a.15ba6b58.js => e3c5b79a.6012aba8.js} (97%) rename es/assets/js/{e4919cfc.42be4274.js => e4919cfc.68065d77.js} (97%) rename es/assets/js/{ec1af512.97a80703.js => ec1af512.aaf56d4d.js} (96%) delete mode 100644 es/assets/js/ed018433.0a4ae2d2.js create mode 100644 es/assets/js/ed018433.928ebd4b.js rename es/assets/js/{f716294d.f65d9830.js => f716294d.3412dfa6.js} (97%) delete mode 100644 es/assets/js/f79b33e8.816bcadf.js create mode 100644 es/assets/js/f79b33e8.cb9cf1a1.js create mode 100644 es/assets/js/f98a13ed.b84c87a1.js rename es/assets/js/{ff693c74.fd1583d0.js => ff693c74.6bbbf6c8.js} (97%) delete mode 100644 es/assets/js/main.78cfcbca.js create mode 100644 es/assets/js/main.9244c150.js rename es/assets/js/{main.78cfcbca.js.LICENSE.txt => main.9244c150.js.LICENSE.txt} (100%) delete mode 100644 es/assets/js/runtime~main.7766d013.js create mode 100644 es/assets/js/runtime~main.daa1a711.js create mode 100644 es/docs/cli/fix/index.html create mode 100644 es/docs/rules/dart/no-blank-line-before-single-return/index.html create mode 100644 es/docs/rules/dart/prefer-first-or-null/index.html create mode 100644 es/docs/rules/dart/prefer-single-quotes/index.html diff --git a/404.html b/404.html index 3f53ab5ea..099d6f91d 100644 --- a/404.html +++ b/404.html @@ -4,13 +4,13 @@ Page Not Found | Dart Code Linter - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/assets/js/0120595c.e25a611d.js b/assets/js/0120595c.f46590e0.js similarity index 98% rename from assets/js/0120595c.e25a611d.js rename to assets/js/0120595c.f46590e0.js index 0e257dca8..b280d5705 100644 --- a/assets/js/0120595c.e25a611d.js +++ b/assets/js/0120595c.f46590e0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[598],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,l=e.parentName,u=d(e,["components","mdxType","originalType","parentName"]),p=s(n),m=i,g=p["".concat(l,".").concat(m)]||p[m]||c[m]||a;return n?r.createElement(g,o(o({ref:t},u),{},{components:n})):r.createElement(g,o({ref:t},u))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=m;var d={};for(var l in t)hasOwnProperty.call(t,l)&&(d[l]=t[l]);d.originalType=e,d[p]="string"==typeof e?e:i,o[1]=d;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>d,toc:()=>s});var r=n(7462),i=(n(7294),n(3905));const a={},o="avoid-returning-widgets",d={unversionedId:"rules/flutter/avoid-returning-widgets",id:"rules/flutter/avoid-returning-widgets",title:"avoid-returning-widgets",description:"added in: 1.6.0 warning",source:"@site/docs/rules/flutter/avoid-returning-widgets.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/avoid-returning-widgets",permalink:"/docs/rules/flutter/avoid-returning-widgets",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/avoid-returning-widgets.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-expanded-as-spacer",permalink:"/docs/rules/flutter/avoid-expanded-as-spacer"},next:{title:"avoid-shrink-wrap-in-lists",permalink:"/docs/rules/flutter/avoid-shrink-wrap-in-lists"}},l={},s=[],u={toc:s},p="wrapper";function c(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"avoid-returning-widgets"},"avoid-returning-widgets"),(0,i.kt)("p",null,"added in: 1.6.0 ",(0,i.kt)("span",{style:{color:"orange"}},"warning")),(0,i.kt)("p",null,"Warns when a method, function or getter returns a Widget or subclass of a Widget."),(0,i.kt)("p",null,"Extracting widgets to a method is considered as a Flutter anti-pattern, because when Flutter rebuilds widget tree, it calls the function all the time, making more processor time for the operations."),(0,i.kt)("p",null,"Consider creating a separate widget instead of a function or method."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"The following patterns will not trigger the rule:"),(0,i.kt)("ul",{parentName:"admonition"},(0,i.kt)("li",{parentName:"ul"},"Widget build method overrides."),(0,i.kt)("li",{parentName:"ul"},"Class method that is passed to a builder."),(0,i.kt)("li",{parentName:"ul"},"Functions with functional_widget package annotations.:::")),(0,i.kt)("p",{parentName:"admonition"},"Additional resources:"),(0,i.kt)("ul",{parentName:"admonition"},(0,i.kt)("li",{parentName:"ul"},"[https://github.com/flutter/flutter/issues/19269]"),(0,i.kt)("li",{parentName:"ul"},"[https://flutter.dev/docs/perf/rendering/best-practices#controlling-build-cost]"),(0,i.kt)("li",{parentName:"ul"},"[https://www.reddit.com/r/FlutterDev/comments/avhvco/extracting_widgets_to_a_function_is_not_an/]"),(0,i.kt)("li",{parentName:"ul"},"[https://medium.com/flutter-community/splitting-widgets-to-methods-is-a-performance-antipattern-16aa3fb4026c]")),(0,i.kt)("h2",{parentName:"admonition",id:"config"},"Config"),(0,i.kt)("p",{parentName:"admonition"},"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"ignored-names")," (default is none) to ignore a function or method name."),(0,i.kt)("p",{parentName:"admonition"},"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"ignored-annotations")," (default is ","[",(0,i.kt)("inlineCode",{parentName:"p"},"FunctionalWidget"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"swidget"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"hwidget"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"hcwidget"),"]",") to override default ignored annotation list."),(0,i.kt)("p",{parentName:"admonition"},"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"allow-nullable")," to allow functions or methods with the nullable return type."),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - avoid-returning-widgets:\n ignored-names:\n - testFunction\n ignored-annotations:\n - allowedAnnotation\n")),(0,i.kt)("p",{parentName:"admonition"},"will ignore all functions named ",(0,i.kt)("inlineCode",{parentName:"p"},"testFunction")," and all functions having ",(0,i.kt)("inlineCode",{parentName:"p"},"allowedAnnotation")," annotation."),(0,i.kt)("h2",{parentName:"admonition",id:"example"},"Example"),(0,i.kt)("h3",{parentName:"admonition",id:"bad"},"Bad:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class MyWidget extends StatelessWidget {\n const MyWidget();\n\n // LINT\n Widget _getWidget() => Container();\n\n Widget _buildShinyWidget() {\n return Container(\n child: Column(\n children: [\n Text('Hello'),\n ...\n ],\n ),\n );\n }\n\n @override\n Widget build(BuildContext context) {\n return Row(\n children: [\n Text('Text!'),\n ...\n _buildShinyWidget(), // LINT\n ],\n );\n }\n}\n")),(0,i.kt)("h3",{parentName:"admonition",id:"good"},"Good:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class MyWidget extends StatelessWidget {\n const MyWidget();\n\n @override\n Widget build(BuildContext context) {\n return Row(\n children: [\n Text('Text!'),\n ...\n const _MyShinyWidget(),\n ],\n );\n }\n}\n\nclass _MyShinyWidget extends StatelessWidget {\n const _MyShinyWidget();\n\n @override\n Widget build(BuildContext context) {\n return Container(\n child: Column(\n children: [\n Text('Hello'),\n ...\n ],\n ),\n );\n }\n}\n")),(0,i.kt)("h3",{parentName:"admonition",id:"good-1"},"Good:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class MyWidget extends StatelessWidget {\n Widget _buildMyWidget(BuildContext context) {\n return Container();\n }\n\n @override\n Widget build(BuildContext context) {\n return Builder(\n builder: _buildMyWidget,\n );\n }\n}\n"))))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[598],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,l=e.parentName,u=d(e,["components","mdxType","originalType","parentName"]),p=s(n),m=i,g=p["".concat(l,".").concat(m)]||p[m]||c[m]||a;return n?r.createElement(g,o(o({ref:t},u),{},{components:n})):r.createElement(g,o({ref:t},u))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=m;var d={};for(var l in t)hasOwnProperty.call(t,l)&&(d[l]=t[l]);d.originalType=e,d[p]="string"==typeof e?e:i,o[1]=d;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>d,toc:()=>s});var r=n(7462),i=(n(7294),n(3905));const a={},o="avoid-returning-widgets",d={unversionedId:"rules/flutter/avoid-returning-widgets",id:"rules/flutter/avoid-returning-widgets",title:"avoid-returning-widgets",description:"added in: 1.0.0 warning",source:"@site/docs/rules/flutter/avoid-returning-widgets.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/avoid-returning-widgets",permalink:"/docs/rules/flutter/avoid-returning-widgets",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/avoid-returning-widgets.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-expanded-as-spacer",permalink:"/docs/rules/flutter/avoid-expanded-as-spacer"},next:{title:"avoid-shrink-wrap-in-lists",permalink:"/docs/rules/flutter/avoid-shrink-wrap-in-lists"}},l={},s=[],u={toc:s},p="wrapper";function c(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"avoid-returning-widgets"},"avoid-returning-widgets"),(0,i.kt)("p",null,"added in: 1.0.0 ",(0,i.kt)("span",{style:{color:"orange"}},"warning")),(0,i.kt)("p",null,"Warns when a method, function or getter returns a Widget or subclass of a Widget."),(0,i.kt)("p",null,"Extracting widgets to a method is considered as a Flutter anti-pattern, because when Flutter rebuilds widget tree, it calls the function all the time, making more processor time for the operations."),(0,i.kt)("p",null,"Consider creating a separate widget instead of a function or method."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"The following patterns will not trigger the rule:"),(0,i.kt)("ul",{parentName:"admonition"},(0,i.kt)("li",{parentName:"ul"},"Widget build method overrides."),(0,i.kt)("li",{parentName:"ul"},"Class method that is passed to a builder."),(0,i.kt)("li",{parentName:"ul"},"Functions with functional_widget package annotations.:::")),(0,i.kt)("p",{parentName:"admonition"},"Additional resources:"),(0,i.kt)("ul",{parentName:"admonition"},(0,i.kt)("li",{parentName:"ul"},"[https://github.com/flutter/flutter/issues/19269]"),(0,i.kt)("li",{parentName:"ul"},"[https://flutter.dev/docs/perf/rendering/best-practices#controlling-build-cost]"),(0,i.kt)("li",{parentName:"ul"},"[https://www.reddit.com/r/FlutterDev/comments/avhvco/extracting_widgets_to_a_function_is_not_an/]"),(0,i.kt)("li",{parentName:"ul"},"[https://medium.com/flutter-community/splitting-widgets-to-methods-is-a-performance-antipattern-16aa3fb4026c]")),(0,i.kt)("h2",{parentName:"admonition",id:"config"},"Config"),(0,i.kt)("p",{parentName:"admonition"},"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"ignored-names")," (default is none) to ignore a function or method name."),(0,i.kt)("p",{parentName:"admonition"},"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"ignored-annotations")," (default is ","[",(0,i.kt)("inlineCode",{parentName:"p"},"FunctionalWidget"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"swidget"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"hwidget"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"hcwidget"),"]",") to override default ignored annotation list."),(0,i.kt)("p",{parentName:"admonition"},"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"allow-nullable")," to allow functions or methods with the nullable return type."),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - avoid-returning-widgets:\n ignored-names:\n - testFunction\n ignored-annotations:\n - allowedAnnotation\n")),(0,i.kt)("p",{parentName:"admonition"},"will ignore all functions named ",(0,i.kt)("inlineCode",{parentName:"p"},"testFunction")," and all functions having ",(0,i.kt)("inlineCode",{parentName:"p"},"allowedAnnotation")," annotation."),(0,i.kt)("h2",{parentName:"admonition",id:"example"},"Example"),(0,i.kt)("h3",{parentName:"admonition",id:"bad"},"Bad:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class MyWidget extends StatelessWidget {\n const MyWidget();\n\n // LINT\n Widget _getWidget() => Container();\n\n Widget _buildShinyWidget() {\n return Container(\n child: Column(\n children: [\n Text('Hello'),\n ...\n ],\n ),\n );\n }\n\n @override\n Widget build(BuildContext context) {\n return Row(\n children: [\n Text('Text!'),\n ...\n _buildShinyWidget(), // LINT\n ],\n );\n }\n}\n")),(0,i.kt)("h3",{parentName:"admonition",id:"good"},"Good:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class MyWidget extends StatelessWidget {\n const MyWidget();\n\n @override\n Widget build(BuildContext context) {\n return Row(\n children: [\n Text('Text!'),\n ...\n const _MyShinyWidget(),\n ],\n );\n }\n}\n\nclass _MyShinyWidget extends StatelessWidget {\n const _MyShinyWidget();\n\n @override\n Widget build(BuildContext context) {\n return Container(\n child: Column(\n children: [\n Text('Hello'),\n ...\n ],\n ),\n );\n }\n}\n")),(0,i.kt)("h3",{parentName:"admonition",id:"good-1"},"Good:"),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class MyWidget extends StatelessWidget {\n Widget _buildMyWidget(BuildContext context) {\n return Container();\n }\n\n @override\n Widget build(BuildContext context) {\n return Builder(\n builder: _buildMyWidget,\n );\n }\n}\n"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0bb840a8.cdaa1832.js b/assets/js/0bb840a8.e7606f3b.js similarity index 97% rename from assets/js/0bb840a8.cdaa1832.js rename to assets/js/0bb840a8.e7606f3b.js index 4147cfbc4..edecf8e9e 100644 --- a/assets/js/0bb840a8.cdaa1832.js +++ b/assets/js/0bb840a8.e7606f3b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4049],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var d=n.createContext({}),p=function(e){var t=n.useContext(d),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(d.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=p(r),f=a,m=s["".concat(d,".").concat(f)]||s[f]||u[f]||o;return r?n.createElement(m,i(i({ref:t},c),{},{components:r})):n.createElement(m,i({ref:t},c))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=f;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(7462),a=(r(7294),r(3905));const o={},i="avoid-expanded-as-spacer",l={unversionedId:"rules/flutter/avoid-expanded-as-spacer",id:"rules/flutter/avoid-expanded-as-spacer",title:"avoid-expanded-as-spacer",description:"added in: 1.6.0 warning",source:"@site/docs/rules/flutter/avoid-expanded-as-spacer.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/avoid-expanded-as-spacer",permalink:"/docs/rules/flutter/avoid-expanded-as-spacer",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/avoid-expanded-as-spacer.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-border-all",permalink:"/docs/rules/flutter/avoid-border-all"},next:{title:"avoid-returning-widgets",permalink:"/docs/rules/flutter/avoid-returning-widgets"}},d={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:p},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-expanded-as-spacer"},"avoid-expanded-as-spacer"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"The rule detects ",(0,a.kt)("inlineCode",{parentName:"p"},"Expanded")," widgets that contain empty ",(0,a.kt)("inlineCode",{parentName:"p"},"SizedBox/Container")," and proposes to replace them with the ",(0,a.kt)("inlineCode",{parentName:"p"},"Spacer")," widget."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"Column(\n children: [\n Container(),\n const Expanded(child: SizedBox()),\n Container(),\n ]\n)\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"Column(\n children: [\n Container(),\n const Spacer(),\n Container(),\n ]\n)\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4049],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var d=n.createContext({}),p=function(e){var t=n.useContext(d),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(d.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=p(r),f=a,m=s["".concat(d,".").concat(f)]||s[f]||u[f]||o;return r?n.createElement(m,i(i({ref:t},c),{},{components:r})):n.createElement(m,i({ref:t},c))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=f;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(7462),a=(r(7294),r(3905));const o={},i="avoid-expanded-as-spacer",l={unversionedId:"rules/flutter/avoid-expanded-as-spacer",id:"rules/flutter/avoid-expanded-as-spacer",title:"avoid-expanded-as-spacer",description:"added in: 1.0.0 warning",source:"@site/docs/rules/flutter/avoid-expanded-as-spacer.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/avoid-expanded-as-spacer",permalink:"/docs/rules/flutter/avoid-expanded-as-spacer",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/avoid-expanded-as-spacer.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-border-all",permalink:"/docs/rules/flutter/avoid-border-all"},next:{title:"avoid-returning-widgets",permalink:"/docs/rules/flutter/avoid-returning-widgets"}},d={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:p},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-expanded-as-spacer"},"avoid-expanded-as-spacer"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"The rule detects ",(0,a.kt)("inlineCode",{parentName:"p"},"Expanded")," widgets that contain empty ",(0,a.kt)("inlineCode",{parentName:"p"},"SizedBox/Container")," and proposes to replace them with the ",(0,a.kt)("inlineCode",{parentName:"p"},"Spacer")," widget."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"Column(\n children: [\n Container(),\n const Expanded(child: SizedBox()),\n Container(),\n ]\n)\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"Column(\n children: [\n Container(),\n const Spacer(),\n Container(),\n ]\n)\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1064df68.83d8afa0.js b/assets/js/1064df68.d3bde002.js similarity index 53% rename from assets/js/1064df68.83d8afa0.js rename to assets/js/1064df68.d3bde002.js index 037fdcd1f..4f73cd675 100644 --- a/assets/js/1064df68.83d8afa0.js +++ b/assets/js/1064df68.d3bde002.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[1578],{3905:(e,r,t)=>{t.d(r,{Zo:()=>s,kt:()=>m});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),u=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},s=function(e){var r=u(e.components);return n.createElement(c.Provider,{value:r},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=u(t),f=o,m=d["".concat(c,".").concat(f)]||d[f]||p[f]||a;return t?n.createElement(m,l(l({ref:r},s),{},{components:t})):n.createElement(m,l({ref:r},s))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,l=new Array(a);l[0]=f;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i[d]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=t(7462),o=(t(7294),t(3905));const a={},l="newline-before-return",i={unversionedId:"rules/dart/newline-before-return",id:"rules/dart/newline-before-return",title:"newline-before-return",description:"added in: 1.5.0 style",source:"@site/docs/rules/dart/newline-before-return.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/newline-before-return",permalink:"/docs/rules/dart/newline-before-return",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/newline-before-return.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"missing-test-assertion",permalink:"/docs/rules/dart/missing-test-assertion"},next:{title:"no-boolean-literal-compare",permalink:"/docs/rules/dart/no-boolean-literal-compare"}},c={},u=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],s={toc:u},d="wrapper";function p(e){let{components:r,...t}=e;return(0,o.kt)(d,(0,n.Z)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"newline-before-return"},"newline-before-return"),(0,o.kt)("p",null,"added in: 1.5.0 ",(0,o.kt)("span",{style:{color:"green"}},"style")),(0,o.kt)("p",null,"Enforces a blank line between statements and return in a block."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"}," if ( ... ) {\n ...\n return ...; // LINT\n }\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"}," if ( ... ) {\n return ...;\n }\n\n if ( ... ) {\n ...\n\n return ...;\n }\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[1578],{3905:(e,r,t)=>{t.d(r,{Zo:()=>s,kt:()=>b});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var u=n.createContext({}),c=function(e){var r=n.useContext(u),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(u.Provider,{value:r},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=c(t),f=o,b=d["".concat(u,".").concat(f)]||d[f]||p[f]||a;return t?n.createElement(b,l(l({ref:r},s),{},{components:t})):n.createElement(b,l({ref:r},s))}));function b(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,l=new Array(a);l[0]=f;var i={};for(var u in r)hasOwnProperty.call(r,u)&&(i[u]=r[u]);i.originalType=e,i[d]="string"==typeof e?e:o,l[1]=i;for(var c=2;c{t.r(r),t.d(r,{assets:()=>u,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=t(7462),o=(t(7294),t(3905));const a={},l="newline-before-return",i={unversionedId:"rules/dart/newline-before-return",id:"rules/dart/newline-before-return",title:"newline-before-return",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/newline-before-return.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/newline-before-return",permalink:"/docs/rules/dart/newline-before-return",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/newline-before-return.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"missing-test-assertion",permalink:"/docs/rules/dart/missing-test-assertion"},next:{title:"no-blank-line-before-single-return",permalink:"/docs/rules/dart/no-blank-line-before-single-return"}},u={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],s={toc:c},d="wrapper";function p(e){let{components:r,...t}=e;return(0,o.kt)(d,(0,n.Z)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"newline-before-return"},"newline-before-return"),(0,o.kt)("p",null,"added in: 1.0.0 ",(0,o.kt)("span",{style:{color:"green"}},"style")),(0,o.kt)("p",null,"Enforces a blank line between statements and return in a block."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"}," if ( ... ) {\n ...\n return ...; // LINT\n }\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"}," if ( ... ) {\n return ...;\n }\n\n if ( ... ) {\n ...\n\n return ...;\n }\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/153f4cd2.c3ec1d39.js b/assets/js/153f4cd2.73cfcce0.js similarity index 98% rename from assets/js/153f4cd2.c3ec1d39.js rename to assets/js/153f4cd2.73cfcce0.js index b744e5a02..75f25f50c 100644 --- a/assets/js/153f4cd2.c3ec1d39.js +++ b/assets/js/153f4cd2.73cfcce0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4029],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},s=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,d=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=l(n),b=o,f=u["".concat(c,".").concat(b)]||u[b]||p[b]||d;return n?r.createElement(f,a(a({ref:t},s),{},{components:n})):r.createElement(f,a({ref:t},s))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var d=n.length,a=new Array(d);a[0]=b;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>d,metadata:()=>i,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const d={},a="consistent-update-render-object",i={unversionedId:"rules/flutter/consistent-update-render-object",id:"rules/flutter/consistent-update-render-object",title:"consistent-update-render-object",description:"added in: 1.6.0 warning",source:"@site/docs/rules/flutter/consistent-update-render-object.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/consistent-update-render-object",permalink:"/docs/rules/flutter/consistent-update-render-object",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/consistent-update-render-object.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"check-for-equals-in-render-object-setters",permalink:"/docs/rules/flutter/check-for-equals-in-render-object-setters"},next:{title:"prefer-const-border-radius",permalink:"/docs/rules/flutter/prefer-const-border-radius"}},c={},l=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3},{value:"Bad:",id:"bad-1",level:3},{value:"Good:",id:"good-1",level:3},{value:"Bad:",id:"bad-2",level:3},{value:"Good:",id:"good-2",level:3}],s={toc:l},u="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"consistent-update-render-object"},"consistent-update-render-object"),(0,o.kt)("p",null,"added in: 1.6.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Warns when an ",(0,o.kt)("inlineCode",{parentName:"p"},"updateRenderObject")," method is absent or doesn't update all fields set in ",(0,o.kt)("inlineCode",{parentName:"p"},"createRenderObject"),"."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"// LINT\nclass ColorFiltered extends SingleChildRenderObjectWidget {\n const ColorFiltered({required this.value});\n\n final int value;\n\n @override\n RenderObject createRenderObject(BuildContext context) =>\n _ColorFilterRenderObject(colorFilter);\n}\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class ColorFiltered extends SingleChildRenderObjectWidget {\n const ColorFiltered({required this.value});\n\n final int value;\n\n @override\n RenderObject createRenderObject(BuildContext context) =>\n _ColorFilterRenderObject(colorFilter);\n\n @override\n void updateRenderObject(BuildContext context, RenderObject renderObject) {\n (renderObject as _ColorFilterRenderObject).value = value;\n }\n}\n")),(0,o.kt)("h3",{id:"bad-1"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class _MenuItem extends SingleChildRenderObjectWidget {\n const _MenuItem({required this.value});\n\n final bool value;\n\n @override\n RenderObject createRenderObject(BuildContext context) {\n return _RenderMenuItem(value);\n }\n\n @override\n // LINT\n void updateRenderObject(BuildContext context, _RenderMenuItem renderObject) {}\n}\n")),(0,o.kt)("h3",{id:"good-1"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class _MenuItem extends SingleChildRenderObjectWidget {\n const _MenuItem({required this.value});\n\n final bool value;\n\n @override\n RenderObject createRenderObject(BuildContext context) {\n return _RenderMenuItem(value);\n }\n\n @override\n void updateRenderObject(BuildContext context, _RenderMenuItem renderObject) {\n renderObject.value = value;\n }\n}\n")),(0,o.kt)("h3",{id:"bad-2"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class _Decorator extends RenderObjectWidget {\n const _Decorator({\n required this.textDirection,\n required this.isFocused,\n required this.expands,\n });\n\n final TextDirection textDirection;\n final bool isFocused;\n final bool expands;\n\n @override\n _RenderDecoration createRenderObject(BuildContext context) {\n return _RenderDecoration(\n textDirection: textDirection,\n isFocused: isFocused,\n expands: expands,\n );\n }\n\n @override\n // LINT\n void updateRenderObject(\n BuildContext context,\n _RenderDecoration renderObject,\n ) {\n renderObject\n ..expands = expands\n ..textDirection = textDirection;\n }\n}\n")),(0,o.kt)("h3",{id:"good-2"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class _Decorator extends RenderObjectWidget {\n const _Decorator({\n required this.textDirection,\n required this.isFocused,\n required this.expands,\n });\n\n final TextDirection textDirection;\n final bool isFocused;\n final bool expands;\n\n @override\n _RenderDecoration createRenderObject(BuildContext context) {\n return _RenderDecoration(\n textDirection: textDirection,\n isFocused: isFocused,\n expands: expands,\n );\n }\n\n @override\n void updateRenderObject(\n BuildContext context,\n _RenderDecoration renderObject,\n ) {\n renderObject\n ..expands = expands\n ..isFocused = isFocused\n ..textDirection = textDirection;\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4029],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},s=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,d=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=l(n),b=o,f=u["".concat(c,".").concat(b)]||u[b]||p[b]||d;return n?r.createElement(f,a(a({ref:t},s),{},{components:n})):r.createElement(f,a({ref:t},s))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var d=n.length,a=new Array(d);a[0]=b;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>d,metadata:()=>i,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const d={},a="consistent-update-render-object",i={unversionedId:"rules/flutter/consistent-update-render-object",id:"rules/flutter/consistent-update-render-object",title:"consistent-update-render-object",description:"added in: 1.0.0 warning",source:"@site/docs/rules/flutter/consistent-update-render-object.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/consistent-update-render-object",permalink:"/docs/rules/flutter/consistent-update-render-object",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/consistent-update-render-object.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"check-for-equals-in-render-object-setters",permalink:"/docs/rules/flutter/check-for-equals-in-render-object-setters"},next:{title:"prefer-const-border-radius",permalink:"/docs/rules/flutter/prefer-const-border-radius"}},c={},l=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3},{value:"Bad:",id:"bad-1",level:3},{value:"Good:",id:"good-1",level:3},{value:"Bad:",id:"bad-2",level:3},{value:"Good:",id:"good-2",level:3}],s={toc:l},u="wrapper";function p(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"consistent-update-render-object"},"consistent-update-render-object"),(0,o.kt)("p",null,"added in: 1.0.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Warns when an ",(0,o.kt)("inlineCode",{parentName:"p"},"updateRenderObject")," method is absent or doesn't update all fields set in ",(0,o.kt)("inlineCode",{parentName:"p"},"createRenderObject"),"."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"// LINT\nclass ColorFiltered extends SingleChildRenderObjectWidget {\n const ColorFiltered({required this.value});\n\n final int value;\n\n @override\n RenderObject createRenderObject(BuildContext context) =>\n _ColorFilterRenderObject(colorFilter);\n}\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class ColorFiltered extends SingleChildRenderObjectWidget {\n const ColorFiltered({required this.value});\n\n final int value;\n\n @override\n RenderObject createRenderObject(BuildContext context) =>\n _ColorFilterRenderObject(colorFilter);\n\n @override\n void updateRenderObject(BuildContext context, RenderObject renderObject) {\n (renderObject as _ColorFilterRenderObject).value = value;\n }\n}\n")),(0,o.kt)("h3",{id:"bad-1"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class _MenuItem extends SingleChildRenderObjectWidget {\n const _MenuItem({required this.value});\n\n final bool value;\n\n @override\n RenderObject createRenderObject(BuildContext context) {\n return _RenderMenuItem(value);\n }\n\n @override\n // LINT\n void updateRenderObject(BuildContext context, _RenderMenuItem renderObject) {}\n}\n")),(0,o.kt)("h3",{id:"good-1"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class _MenuItem extends SingleChildRenderObjectWidget {\n const _MenuItem({required this.value});\n\n final bool value;\n\n @override\n RenderObject createRenderObject(BuildContext context) {\n return _RenderMenuItem(value);\n }\n\n @override\n void updateRenderObject(BuildContext context, _RenderMenuItem renderObject) {\n renderObject.value = value;\n }\n}\n")),(0,o.kt)("h3",{id:"bad-2"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class _Decorator extends RenderObjectWidget {\n const _Decorator({\n required this.textDirection,\n required this.isFocused,\n required this.expands,\n });\n\n final TextDirection textDirection;\n final bool isFocused;\n final bool expands;\n\n @override\n _RenderDecoration createRenderObject(BuildContext context) {\n return _RenderDecoration(\n textDirection: textDirection,\n isFocused: isFocused,\n expands: expands,\n );\n }\n\n @override\n // LINT\n void updateRenderObject(\n BuildContext context,\n _RenderDecoration renderObject,\n ) {\n renderObject\n ..expands = expands\n ..textDirection = textDirection;\n }\n}\n")),(0,o.kt)("h3",{id:"good-2"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class _Decorator extends RenderObjectWidget {\n const _Decorator({\n required this.textDirection,\n required this.isFocused,\n required this.expands,\n });\n\n final TextDirection textDirection;\n final bool isFocused;\n final bool expands;\n\n @override\n _RenderDecoration createRenderObject(BuildContext context) {\n return _RenderDecoration(\n textDirection: textDirection,\n isFocused: isFocused,\n expands: expands,\n );\n }\n\n @override\n void updateRenderObject(\n BuildContext context,\n _RenderDecoration renderObject,\n ) {\n renderObject\n ..expands = expands\n ..isFocused = isFocused\n ..textDirection = textDirection;\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1a27f214.e6526f43.js b/assets/js/1a27f214.6688a058.js similarity index 97% rename from assets/js/1a27f214.e6526f43.js rename to assets/js/1a27f214.6688a058.js index ea1d9efb6..dd2188e25 100644 --- a/assets/js/1a27f214.e6526f43.js +++ b/assets/js/1a27f214.6688a058.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[5193],{3905:(e,r,t)=>{t.d(r,{Zo:()=>u,kt:()=>m});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function s(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var a=n.createContext({}),i=function(e){var r=n.useContext(a),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=i(e.components);return n.createElement(a.Provider,{value:r},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,s=e.originalType,a=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=i(t),f=o,m=d["".concat(a,".").concat(f)]||d[f]||p[f]||s;return t?n.createElement(m,c(c({ref:r},u),{},{components:t})):n.createElement(m,c({ref:r},u))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var s=t.length,c=new Array(s);c[0]=f;var l={};for(var a in r)hasOwnProperty.call(r,a)&&(l[a]=r[a]);l.originalType=e,l[d]="string"==typeof e?e:o,c[1]=l;for(var i=2;i{t.r(r),t.d(r,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>s,metadata:()=>l,toc:()=>i});var n=t(7462),o=(t(7294),t(3905));const s={},c="prefer-correct-edge-insets-constructor",l={unversionedId:"rules/flutter/prefer-correct-edge-insets-constructor",id:"rules/flutter/prefer-correct-edge-insets-constructor",title:"prefer-correct-edge-insets-constructor",description:"added in: 1.6.0 style",source:"@site/docs/rules/flutter/prefer-correct-edge-insets-constructor.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/prefer-correct-edge-insets-constructor",permalink:"/docs/rules/flutter/prefer-correct-edge-insets-constructor",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/prefer-correct-edge-insets-constructor.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-const-border-radius",permalink:"/docs/rules/flutter/prefer-const-border-radius"},next:{title:"prefer-extracting-callbacks",permalink:"/docs/rules/flutter/prefer-extracting-callbacks"}},a={},i=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:i},d="wrapper";function p(e){let{components:r,...t}=e;return(0,o.kt)(d,(0,n.Z)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"prefer-correct-edge-insets-constructor"},"prefer-correct-edge-insets-constructor"),(0,o.kt)("p",null,"added in: 1.6.0 ",(0,o.kt)("span",{style:{color:"green"}},"style")),(0,o.kt)("p",null,"If any value, passed to EdgeInsets.fromLTRB, equals 0, then EdgeInsets.fromLTRB should be replaced with EdgeInsets.only passing all non-zero values. If passed values are symmetric, then EdgeInsets.fromLTRB or EdgeInsets.only should be replaced with EdgeInsets.symmetric."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"EdgeInsets.fromLTRB(8, 0, 8, 0)\nEdgeInsets.fromLTRB (8, 0, 0, 0)\nEdgeInsets.only(left: 16, right: 16)\nEdgeInsets.fromLTRB(8, 8, 8, 8)\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"EdgeInsets.symmetric(horizontal: 8)\nEdgeInsets.only(left: 8)\nEdgeInsets.symmetric(horizontal: 16)\nEdgeInsets.all(8)\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[5193],{3905:(e,r,t)=>{t.d(r,{Zo:()=>u,kt:()=>m});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function s(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var a=n.createContext({}),i=function(e){var r=n.useContext(a),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=i(e.components);return n.createElement(a.Provider,{value:r},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,s=e.originalType,a=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=i(t),f=o,m=d["".concat(a,".").concat(f)]||d[f]||p[f]||s;return t?n.createElement(m,c(c({ref:r},u),{},{components:t})):n.createElement(m,c({ref:r},u))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var s=t.length,c=new Array(s);c[0]=f;var l={};for(var a in r)hasOwnProperty.call(r,a)&&(l[a]=r[a]);l.originalType=e,l[d]="string"==typeof e?e:o,c[1]=l;for(var i=2;i{t.r(r),t.d(r,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>s,metadata:()=>l,toc:()=>i});var n=t(7462),o=(t(7294),t(3905));const s={},c="prefer-correct-edge-insets-constructor",l={unversionedId:"rules/flutter/prefer-correct-edge-insets-constructor",id:"rules/flutter/prefer-correct-edge-insets-constructor",title:"prefer-correct-edge-insets-constructor",description:"added in: 1.0.0 style",source:"@site/docs/rules/flutter/prefer-correct-edge-insets-constructor.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/prefer-correct-edge-insets-constructor",permalink:"/docs/rules/flutter/prefer-correct-edge-insets-constructor",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/prefer-correct-edge-insets-constructor.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-const-border-radius",permalink:"/docs/rules/flutter/prefer-const-border-radius"},next:{title:"prefer-extracting-callbacks",permalink:"/docs/rules/flutter/prefer-extracting-callbacks"}},a={},i=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:i},d="wrapper";function p(e){let{components:r,...t}=e;return(0,o.kt)(d,(0,n.Z)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"prefer-correct-edge-insets-constructor"},"prefer-correct-edge-insets-constructor"),(0,o.kt)("p",null,"added in: 1.0.0 ",(0,o.kt)("span",{style:{color:"green"}},"style")),(0,o.kt)("p",null,"If any value, passed to EdgeInsets.fromLTRB, equals 0, then EdgeInsets.fromLTRB should be replaced with EdgeInsets.only passing all non-zero values. If passed values are symmetric, then EdgeInsets.fromLTRB or EdgeInsets.only should be replaced with EdgeInsets.symmetric."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"EdgeInsets.fromLTRB(8, 0, 8, 0)\nEdgeInsets.fromLTRB (8, 0, 0, 0)\nEdgeInsets.only(left: 16, right: 16)\nEdgeInsets.fromLTRB(8, 8, 8, 8)\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"EdgeInsets.symmetric(horizontal: 8)\nEdgeInsets.only(left: 8)\nEdgeInsets.symmetric(horizontal: 16)\nEdgeInsets.all(8)\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/25b5a9bc.2f3516ed.js b/assets/js/25b5a9bc.2f3516ed.js new file mode 100644 index 000000000..10befc405 --- /dev/null +++ b/assets/js/25b5a9bc.2f3516ed.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[5599],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(n),f=o,m=p["".concat(c,".").concat(f)]||p[f]||d[f]||a;return n?r.createElement(m,l(l({ref:t},u),{},{components:n})):r.createElement(m,l({ref:t},u))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,l=new Array(a);l[0]=f;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:o,l[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var r=n(7462),o=(n(7294),n(3905));const a={},l="Fix",i={unversionedId:"cli/fix",id:"cli/fix",title:"Fix",description:"added in: 1.2.0 style",source:"@site/docs/cli/fix.md",sourceDirName:"cli",slug:"/cli/fix",permalink:"/docs/cli/fix",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/cli/fix.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Check Unused L10n",permalink:"/docs/cli/check-unused-l10n"},next:{title:"Rules",permalink:"/docs/rules/"}},c={},s=[],u={toc:s},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"fix"},"Fix"),(0,o.kt)("p",null,"added in: 1.2.0 ",(0,o.kt)("span",{style:{color:"green"}},"style")),(0,o.kt)("p",null,"Fixes violations for lint rules that have a replacement."),(0,o.kt)("p",null,"To execute the command, run:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-sh"},"$ dart run dart_code_linter:metrics fix lib\n")),(0,o.kt)("p",null,"info"),(0,o.kt)("p",null,"You need to configure rules entry in the analysis_options.yaml to have a rules report included into the result."),(0,o.kt)("p",null,"Full command description:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-sh"},'Usage: dcl fix [arguments] \n-h, --help Print this usage information.\n\n\n-r, --reporter= The format of the output of the analysis.\n [console (default), checkstyle, codeclimate, github, gitlab, json]\n --json-path= Path to the JSON file with the output of the analysis.\n\n\n-c, --print-config Print resolved config.\n\n\n --root-folder=<./> Root folder.\n (defaults to current directory)\n --sdk-path= Dart SDK directory path.\n If the project has a `.fvm/flutter_sdk` symlink, it will be used if the SDK is not found. \n --exclude=<{**/*.g.dart,**/*.freezed.dart}> File paths in Glob syntax to be exclude.\n (defaults to "{**/*.g.dart,**/*.freezed.dart}")\n\n\n --no-congratulate Don\'t show output even when there are no issues.\n\n\n --[no-]verbose Show verbose logs.\n\n\n --set-exit-on-violation-level= Set exit code 2 if code violations same or higher level than selected are detected.\n [noted, warning, alarm]\n \n --[no-]fatal-style Treat style level issues as fatal.\n --[no-]fatal-performance Treat performance level issues as fatal.\n --[no-]fatal-warnings Treat warning level issues as fatal.\n (defaults to on)\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/27dbeb01.c08f3d47.js b/assets/js/27dbeb01.d125799b.js similarity index 97% rename from assets/js/27dbeb01.c08f3d47.js rename to assets/js/27dbeb01.d125799b.js index c59be9d1b..2968b48c3 100644 --- a/assets/js/27dbeb01.c08f3d47.js +++ b/assets/js/27dbeb01.d125799b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4359],{3905:(e,r,n)=>{n.d(r,{Zo:()=>p,kt:()=>f});var t=n(7294);function a(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function o(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var r=1;r=0||(a[n]=e[n]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=t.createContext({}),c=function(e){var r=t.useContext(s),n=r;return e&&(n="function"==typeof e?e(r):i(i({},r),e)),n},p=function(e){var r=c(e.components);return t.createElement(s.Provider,{value:r},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},u=t.forwardRef((function(e,r){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),u=a,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||o;return n?t.createElement(f,i(i({ref:r},p),{},{components:n})):t.createElement(f,i({ref:r},p))}));function f(e,r){var n=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in r)hasOwnProperty.call(r,s)&&(l[s]=r[s]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(r),n.d(r,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var t=n(7462),a=(n(7294),n(3905));const o={},i="prefer-commenting-analyzer-ignores",l={unversionedId:"rules/dart/prefer-commenting-analyzer-ignores",id:"rules/dart/prefer-commenting-analyzer-ignores",title:"prefer-commenting-analyzer-ignores",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/prefer-commenting-analyzer-ignores.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-commenting-analyzer-ignores",permalink:"/docs/rules/dart/prefer-commenting-analyzer-ignores",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-commenting-analyzer-ignores.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-async-await",permalink:"/docs/rules/dart/prefer-async-await"},next:{title:"prefer-conditional-expressions",permalink:"/docs/rules/dart/prefer-conditional-expressions"}},s={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:c},d="wrapper";function m(e){let{components:r,...n}=e;return(0,a.kt)(d,(0,t.Z)({},p,n,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-commenting-analyzer-ignores"},"prefer-commenting-analyzer-ignores"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when ",(0,a.kt)("inlineCode",{parentName:"p"},"// ignore:")," comments are left without any additional description why this ignore is applied."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This rule doesn't trigger on global ignore_for_file: comments.")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// ignore: deprecated_member_use\nfinal map = Map(); // LINT\n\n// ignore: deprecated_member_use, long-method\nfinal set = Set(); // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// Ignored for some reasons\n// ignore: deprecated_member_use\nfinal list = List();\n\n// ignore: deprecated_member_use same line ignore\nfinal queue = Queue();\n\n// ignore: deprecated_member_use, long-method multiple same line ignore\nfinal linkedList = LinkedList();\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4359],{3905:(e,r,n)=>{n.d(r,{Zo:()=>p,kt:()=>f});var t=n(7294);function a(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function o(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var r=1;r=0||(a[n]=e[n]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=t.createContext({}),c=function(e){var r=t.useContext(s),n=r;return e&&(n="function"==typeof e?e(r):i(i({},r),e)),n},p=function(e){var r=c(e.components);return t.createElement(s.Provider,{value:r},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},u=t.forwardRef((function(e,r){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),u=a,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||o;return n?t.createElement(f,i(i({ref:r},p),{},{components:n})):t.createElement(f,i({ref:r},p))}));function f(e,r){var n=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=u;var l={};for(var s in r)hasOwnProperty.call(r,s)&&(l[s]=r[s]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{n.r(r),n.d(r,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var t=n(7462),a=(n(7294),n(3905));const o={},i="prefer-commenting-analyzer-ignores",l={unversionedId:"rules/dart/prefer-commenting-analyzer-ignores",id:"rules/dart/prefer-commenting-analyzer-ignores",title:"prefer-commenting-analyzer-ignores",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/prefer-commenting-analyzer-ignores.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-commenting-analyzer-ignores",permalink:"/docs/rules/dart/prefer-commenting-analyzer-ignores",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-commenting-analyzer-ignores.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-async-await",permalink:"/docs/rules/dart/prefer-async-await"},next:{title:"prefer-conditional-expressions",permalink:"/docs/rules/dart/prefer-conditional-expressions"}},s={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:c},d="wrapper";function m(e){let{components:r,...n}=e;return(0,a.kt)(d,(0,t.Z)({},p,n,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-commenting-analyzer-ignores"},"prefer-commenting-analyzer-ignores"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when ",(0,a.kt)("inlineCode",{parentName:"p"},"// ignore:")," comments are left without any additional description why this ignore is applied."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This rule doesn't trigger on global ignore_for_file: comments.")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// ignore: deprecated_member_use\nfinal map = Map(); // LINT\n\n// ignore: deprecated_member_use, long-method\nfinal set = Set(); // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// Ignored for some reasons\n// ignore: deprecated_member_use\nfinal list = List();\n\n// ignore: deprecated_member_use same line ignore\nfinal queue = Queue();\n\n// ignore: deprecated_member_use, long-method multiple same line ignore\nfinal linkedList = LinkedList();\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2820b22c.a2347e78.js b/assets/js/2820b22c.17e70105.js similarity index 97% rename from assets/js/2820b22c.a2347e78.js rename to assets/js/2820b22c.17e70105.js index 6dd28a86a..52b9d91bc 100644 --- a/assets/js/2820b22c.a2347e78.js +++ b/assets/js/2820b22c.17e70105.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[3404],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=d(n),m=a,g=s["".concat(c,".").concat(m)]||s[m]||p[m]||o;return n?r.createElement(g,l(l({ref:t},u),{},{components:n})):r.createElement(g,l({ref:t},u))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var d=2;d{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const o={},l="no-magic-number",i={unversionedId:"rules/dart/no-magic-number",id:"rules/dart/no-magic-number",title:"no-magic-number",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/no-magic-number.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/no-magic-number",permalink:"/docs/rules/dart/no-magic-number",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/no-magic-number.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"no-equal-then-else",permalink:"/docs/rules/dart/no-equal-then-else"},next:{title:"no-object-declaration",permalink:"/docs/rules/dart/no-object-declaration"}},c={},d=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3},{value:"Bad:",id:"bad-1",level:3},{value:"Good:",id:"good-1",level:3},{value:"Exception:",id:"exception",level:2}],u={toc:d},s="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"no-magic-number"},"no-magic-number"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns against using number literals outside of named constants or variables. Exceptions are made for common constants (by default: -1, 0 and 1) and for literals inside DateTime constructor as there is no way to create ",(0,a.kt)("inlineCode",{parentName:"p"},"const DateTime")," and extracting each int argument to separate named constant is far too inconvenient."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"allowed")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"[-1, 0, 1]"),") to configure the list of allowed numbers"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"allow-only-once")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to allow magic numbers that are used one time within a file."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - no-magic-number:\n allowed: [3.14, 100, 12]\n allow-only-once: true\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"double circleArea(double radius) => 3.14 * pow(radius, 2); // warns against 3.14\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"const pi = 3.14;\ndouble circleArea(double radius) => pi * pow(radius, 2); // using named constant so no warning\n")),(0,a.kt)("h3",{id:"bad-1"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"...\nfinal finalPrice = cart.productCount > 4 // warns against 4\n ? cart.totalPrice - (cart.totalPrice * 0.25); // warns against 0.25\n : cart.totalPrice\n...\n")),(0,a.kt)("h3",{id:"good-1"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"...\nconst productCountThresholdForDiscount = 4;\nconst discount = 0.25;\nfinal finalPrice = cart.productCount > productCountThresholdForDiscount\n ? cart.totalPrice - (cart.totalPrice * discount);\n : cart.totalPrice\n...\n")),(0,a.kt)("h2",{id:"exception"},"Exception:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final someDay = DateTime(2006, 12, 1); // DateTime has no const constructor\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[3404],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),d=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=d(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=d(n),m=a,g=s["".concat(c,".").concat(m)]||s[m]||p[m]||o;return n?r.createElement(g,l(l({ref:t},u),{},{components:n})):r.createElement(g,l({ref:t},u))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var d=2;d{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const o={},l="no-magic-number",i={unversionedId:"rules/dart/no-magic-number",id:"rules/dart/no-magic-number",title:"no-magic-number",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/no-magic-number.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/no-magic-number",permalink:"/docs/rules/dart/no-magic-number",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/no-magic-number.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"no-equal-then-else",permalink:"/docs/rules/dart/no-equal-then-else"},next:{title:"no-object-declaration",permalink:"/docs/rules/dart/no-object-declaration"}},c={},d=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3},{value:"Bad:",id:"bad-1",level:3},{value:"Good:",id:"good-1",level:3},{value:"Exception:",id:"exception",level:2}],u={toc:d},s="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"no-magic-number"},"no-magic-number"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns against using number literals outside of named constants or variables. Exceptions are made for common constants (by default: -1, 0 and 1) and for literals inside DateTime constructor as there is no way to create ",(0,a.kt)("inlineCode",{parentName:"p"},"const DateTime")," and extracting each int argument to separate named constant is far too inconvenient."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"allowed")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"[-1, 0, 1]"),") to configure the list of allowed numbers"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"allow-only-once")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to allow magic numbers that are used one time within a file."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - no-magic-number:\n allowed: [3.14, 100, 12]\n allow-only-once: true\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"double circleArea(double radius) => 3.14 * pow(radius, 2); // warns against 3.14\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"const pi = 3.14;\ndouble circleArea(double radius) => pi * pow(radius, 2); // using named constant so no warning\n")),(0,a.kt)("h3",{id:"bad-1"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"...\nfinal finalPrice = cart.productCount > 4 // warns against 4\n ? cart.totalPrice - (cart.totalPrice * 0.25); // warns against 0.25\n : cart.totalPrice\n...\n")),(0,a.kt)("h3",{id:"good-1"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"...\nconst productCountThresholdForDiscount = 4;\nconst discount = 0.25;\nfinal finalPrice = cart.productCount > productCountThresholdForDiscount\n ? cart.totalPrice - (cart.totalPrice * discount);\n : cart.totalPrice\n...\n")),(0,a.kt)("h2",{id:"exception"},"Exception:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final someDay = DateTime(2006, 12, 1); // DateTime has no const constructor\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2ae497f9.e842d322.js b/assets/js/2ae497f9.ded8f75d.js similarity index 97% rename from assets/js/2ae497f9.e842d322.js rename to assets/js/2ae497f9.ded8f75d.js index aca56d241..5d76dea9a 100644 --- a/assets/js/2ae497f9.e842d322.js +++ b/assets/js/2ae497f9.ded8f75d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[377],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),u=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},m=function(e){var n=u(e.components);return r.createElement(s.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},p=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),c=u(t),p=a,f=c["".concat(s,".").concat(p)]||c[p]||d[p]||l;return t?r.createElement(f,i(i({ref:n},m),{},{components:t})):r.createElement(f,i({ref:n},m))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,i=new Array(l);i[0]=p;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o[c]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var r=t(7462),a=(t(7294),t(3905));const l={},i="no-equal-arguments",o={unversionedId:"rules/dart/no-equal-arguments",id:"rules/dart/no-equal-arguments",title:"no-equal-arguments",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/no-equal-arguments.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/no-equal-arguments",permalink:"/docs/rules/dart/no-equal-arguments",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/no-equal-arguments.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"no-empty-block",permalink:"/docs/rules/dart/no-empty-block"},next:{title:"no-equal-then-else",permalink:"/docs/rules/dart/no-equal-then-else"}},s={},u=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],m={toc:u},c="wrapper";function d(e){let{components:n,...t}=e;return(0,a.kt)(c,(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"no-equal-arguments"},"no-equal-arguments"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when equal arguments passed to a function or method invocation."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignored-parameters")," (default is none) to ignore specific named parameters."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignored-arguments")," (default is none) to ignore specific argument names."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignore-inline-functions")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to ignore inline functions that are passed as arguments."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - no-equal-arguments:\n ignored-parameters:\n - height\n - width\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class User {\n final String firstName;\n final String lastName;\n\n const User(this.firstName, this.lastName);\n}\n\nUser createUser(String firstName, String lastName) {\n return User(\n firstName,\n firstName, // LINT\n );\n}\n\nvoid getUserData(User user) {\n String getFullName(String firstName, String lastName) {\n return firstName + ' ' + lastName;\n }\n\n final fullName = getFullName(\n user.firstName,\n user.firstName, // LINT\n );\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class User {\n final String firstName;\n final String lastName;\n\n const User(this.firstName, this.lastName);\n}\n\nUser createUser(String firstName, String lastName) {\n return User(\n firstName,\n lastName,\n );\n}\n\nvoid getUserData(User user) {\n String getFullName(String firstName, String lastName) {\n return firstName + ' ' + lastName;\n }\n\n final fullName = getFullName(\n user.firstName,\n user.lastName,\n );\n}\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[377],{3905:(e,n,t)=>{t.d(n,{Zo:()=>m,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),u=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},m=function(e){var n=u(e.components);return r.createElement(s.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},p=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),c=u(t),p=a,f=c["".concat(s,".").concat(p)]||c[p]||d[p]||l;return t?r.createElement(f,i(i({ref:n},m),{},{components:t})):r.createElement(f,i({ref:n},m))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,i=new Array(l);i[0]=p;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o[c]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var r=t(7462),a=(t(7294),t(3905));const l={},i="no-equal-arguments",o={unversionedId:"rules/dart/no-equal-arguments",id:"rules/dart/no-equal-arguments",title:"no-equal-arguments",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/no-equal-arguments.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/no-equal-arguments",permalink:"/docs/rules/dart/no-equal-arguments",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/no-equal-arguments.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"no-empty-block",permalink:"/docs/rules/dart/no-empty-block"},next:{title:"no-equal-then-else",permalink:"/docs/rules/dart/no-equal-then-else"}},s={},u=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],m={toc:u},c="wrapper";function d(e){let{components:n,...t}=e;return(0,a.kt)(c,(0,r.Z)({},m,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"no-equal-arguments"},"no-equal-arguments"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when equal arguments passed to a function or method invocation."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignored-parameters")," (default is none) to ignore specific named parameters."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignored-arguments")," (default is none) to ignore specific argument names."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignore-inline-functions")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to ignore inline functions that are passed as arguments."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - no-equal-arguments:\n ignored-parameters:\n - height\n - width\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class User {\n final String firstName;\n final String lastName;\n\n const User(this.firstName, this.lastName);\n}\n\nUser createUser(String firstName, String lastName) {\n return User(\n firstName,\n firstName, // LINT\n );\n}\n\nvoid getUserData(User user) {\n String getFullName(String firstName, String lastName) {\n return firstName + ' ' + lastName;\n }\n\n final fullName = getFullName(\n user.firstName,\n user.firstName, // LINT\n );\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class User {\n final String firstName;\n final String lastName;\n\n const User(this.firstName, this.lastName);\n}\n\nUser createUser(String firstName, String lastName) {\n return User(\n firstName,\n lastName,\n );\n}\n\nvoid getUserData(User user) {\n String getFullName(String firstName, String lastName) {\n return firstName + ' ' + lastName;\n }\n\n final fullName = getFullName(\n user.firstName,\n user.lastName,\n );\n}\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/339362dc.9c25b7e2.js b/assets/js/339362dc.f3882597.js similarity index 53% rename from assets/js/339362dc.9c25b7e2.js rename to assets/js/339362dc.f3882597.js index 06b0e45fc..a5f930374 100644 --- a/assets/js/339362dc.9c25b7e2.js +++ b/assets/js/339362dc.f3882597.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[6803],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),d=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=d(r),m=a,f=s["".concat(c,".").concat(m)]||s[m]||u[m]||o;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var d=2;d{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var n=r(7462),a=(r(7294),r(3905));const o={},l="prefer-moving-to-variable",i={unversionedId:"rules/dart/prefer-moving-to-variable",id:"rules/dart/prefer-moving-to-variable",title:"prefer-moving-to-variable",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/prefer-moving-to-variable.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-moving-to-variable",permalink:"/docs/rules/dart/prefer-moving-to-variable",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-moving-to-variable.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-match-file-name",permalink:"/docs/rules/dart/prefer-match-file-name"},next:{title:"prefer-static-class",permalink:"/docs/rules/dart/prefer-static-class"}},c={},d=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:d},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-moving-to-variable"},"prefer-moving-to-variable"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when a property access or a method invocation start with duplicated chains of other invocations / accesses inside a single function or method block."),(0,a.kt)("p",null,"For instance, you have a function ",(0,a.kt)("inlineCode",{parentName:"p"},"getUser()")," that returns a class instance with two fields: ",(0,a.kt)("inlineCode",{parentName:"p"},"name")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"age"),". If you call this function twice inside another function body, like:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final name = getUser().name;\nfinal age = getUser().age;\n")),(0,a.kt)("p",null,"the rule will suggest to move ",(0,a.kt)("inlineCode",{parentName:"p"},"getUser()")," call to a single variable."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"allowed-duplicated-chains")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"none"),") to configure a threshold after which the rule should trigger on duplicated lines."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-moving-to-variable:\n allowed-duplicated-chains: 3\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"return Container(\n color: Theme.of(context).colorScheme.secondary, // LINT\n child: Text(\n 'Text with a background color',\n style: Theme.of(context).textTheme.headline6, // LINT\n ),\n);\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final theme = Theme.of(context);\n\nreturn Container(\n color: theme.colorScheme.secondary,\n child: Text(\n 'Text with a background color',\n style: theme.textTheme.headline6,\n ),\n);\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[6803],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),d=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=d(r),m=a,f=s["".concat(c,".").concat(m)]||s[m]||u[m]||o;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var d=2;d{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var n=r(7462),a=(r(7294),r(3905));const o={},l="prefer-moving-to-variable",i={unversionedId:"rules/dart/prefer-moving-to-variable",id:"rules/dart/prefer-moving-to-variable",title:"prefer-moving-to-variable",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/prefer-moving-to-variable.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-moving-to-variable",permalink:"/docs/rules/dart/prefer-moving-to-variable",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-moving-to-variable.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-match-file-name",permalink:"/docs/rules/dart/prefer-match-file-name"},next:{title:"prefer-single-quotes",permalink:"/docs/rules/dart/prefer-single-quotes"}},c={},d=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:d},s="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-moving-to-variable"},"prefer-moving-to-variable"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when a property access or a method invocation start with duplicated chains of other invocations / accesses inside a single function or method block."),(0,a.kt)("p",null,"For instance, you have a function ",(0,a.kt)("inlineCode",{parentName:"p"},"getUser()")," that returns a class instance with two fields: ",(0,a.kt)("inlineCode",{parentName:"p"},"name")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"age"),". If you call this function twice inside another function body, like:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final name = getUser().name;\nfinal age = getUser().age;\n")),(0,a.kt)("p",null,"the rule will suggest to move ",(0,a.kt)("inlineCode",{parentName:"p"},"getUser()")," call to a single variable."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"allowed-duplicated-chains")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"none"),") to configure a threshold after which the rule should trigger on duplicated lines."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-moving-to-variable:\n allowed-duplicated-chains: 3\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"return Container(\n color: Theme.of(context).colorScheme.secondary, // LINT\n child: Text(\n 'Text with a background color',\n style: Theme.of(context).textTheme.headline6, // LINT\n ),\n);\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final theme = Theme.of(context);\n\nreturn Container(\n color: theme.colorScheme.secondary,\n child: Text(\n 'Text with a background color',\n style: theme.textTheme.headline6,\n ),\n);\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/340969f1.4a84a949.js b/assets/js/340969f1.e654b32b.js similarity index 97% rename from assets/js/340969f1.4a84a949.js rename to assets/js/340969f1.e654b32b.js index bea66ccb5..f2eef2432 100644 --- a/assets/js/340969f1.4a84a949.js +++ b/assets/js/340969f1.e654b32b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2681],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=p(r),m=i,f=d["".concat(s,".").concat(m)]||d[m]||u[m]||a;return r?n.createElement(f,l(l({ref:t},c),{},{components:r})):n.createElement(f,l({ref:t},c))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,l=new Array(a);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[d]="string"==typeof e?e:i,l[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var n=r(7462),i=(r(7294),r(3905));const a={},l="avoid-shrink-wrap-in-lists",o={unversionedId:"rules/flutter/avoid-shrink-wrap-in-lists",id:"rules/flutter/avoid-shrink-wrap-in-lists",title:"avoid-shrink-wrap-in-lists",description:"added in: 1.6.0performance",source:"@site/docs/rules/flutter/avoid-shrink-wrap-in-lists.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/avoid-shrink-wrap-in-lists",permalink:"/docs/rules/flutter/avoid-shrink-wrap-in-lists",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/avoid-shrink-wrap-in-lists.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-returning-widgets",permalink:"/docs/rules/flutter/avoid-returning-widgets"},next:{title:"avoid-unnecessary-setstate",permalink:"/docs/rules/flutter/avoid-unnecessary-setstate"}},s={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:p},d="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(d,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"avoid-shrink-wrap-in-lists"},"avoid-shrink-wrap-in-lists"),(0,i.kt)("p",null,"added in: 1.6.0",(0,i.kt)("span",{style:{color:"blue"}},"performance")),(0,i.kt)("p",null,"Warns when a ",(0,i.kt)("inlineCode",{parentName:"p"},"ListView")," widget with ",(0,i.kt)("inlineCode",{parentName:"p"},"shrinkWrap")," parameter is wrapped in a ",(0,i.kt)("inlineCode",{parentName:"p"},"Column"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"Row")," or another ",(0,i.kt)("inlineCode",{parentName:"p"},"ListView")," widget."),(0,i.kt)("p",null,"According to the Flutter documentation, using ",(0,i.kt)("inlineCode",{parentName:"p"},"shrinkWrap")," in lists is expensive performance-wise and should be avoided, since using slivers is significantly cheaper and achieves the same or even better results."),(0,i.kt)("p",null,"Additional resources:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/dart-lang/linter/issues/3496"},"https://github.com/dart-lang/linter/issues/3496"))),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("h3",{id:"bad"},"Bad:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"Column(\n children: [\n Expanded(\n // LINT\n child: ListView(\n shrinkWrap: true,\n physics: const NeverScrollableScrollPhysics(),\n children: [],\n ),\n ),\n ],\n),\n")),(0,i.kt)("h3",{id:"good"},"Good:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"CustomScrollView(\n slivers: [\n SliverList(\n delegate: SliverChildBuilderDelegate(\n (context, index) => Container(),\n childCount: someObject.length,\n ),\n ),\n ],\n),\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2681],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=p(r),m=i,f=d["".concat(s,".").concat(m)]||d[m]||u[m]||a;return r?n.createElement(f,l(l({ref:t},c),{},{components:r})):n.createElement(f,l({ref:t},c))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,l=new Array(a);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[d]="string"==typeof e?e:i,l[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var n=r(7462),i=(r(7294),r(3905));const a={},l="avoid-shrink-wrap-in-lists",o={unversionedId:"rules/flutter/avoid-shrink-wrap-in-lists",id:"rules/flutter/avoid-shrink-wrap-in-lists",title:"avoid-shrink-wrap-in-lists",description:"added in: 1.0.0performance",source:"@site/docs/rules/flutter/avoid-shrink-wrap-in-lists.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/avoid-shrink-wrap-in-lists",permalink:"/docs/rules/flutter/avoid-shrink-wrap-in-lists",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/avoid-shrink-wrap-in-lists.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-returning-widgets",permalink:"/docs/rules/flutter/avoid-returning-widgets"},next:{title:"avoid-unnecessary-setstate",permalink:"/docs/rules/flutter/avoid-unnecessary-setstate"}},s={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:p},d="wrapper";function u(e){let{components:t,...r}=e;return(0,i.kt)(d,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"avoid-shrink-wrap-in-lists"},"avoid-shrink-wrap-in-lists"),(0,i.kt)("p",null,"added in: 1.0.0",(0,i.kt)("span",{style:{color:"blue"}},"performance")),(0,i.kt)("p",null,"Warns when a ",(0,i.kt)("inlineCode",{parentName:"p"},"ListView")," widget with ",(0,i.kt)("inlineCode",{parentName:"p"},"shrinkWrap")," parameter is wrapped in a ",(0,i.kt)("inlineCode",{parentName:"p"},"Column"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"Row")," or another ",(0,i.kt)("inlineCode",{parentName:"p"},"ListView")," widget."),(0,i.kt)("p",null,"According to the Flutter documentation, using ",(0,i.kt)("inlineCode",{parentName:"p"},"shrinkWrap")," in lists is expensive performance-wise and should be avoided, since using slivers is significantly cheaper and achieves the same or even better results."),(0,i.kt)("p",null,"Additional resources:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/dart-lang/linter/issues/3496"},"https://github.com/dart-lang/linter/issues/3496"))),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("h3",{id:"bad"},"Bad:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"Column(\n children: [\n Expanded(\n // LINT\n child: ListView(\n shrinkWrap: true,\n physics: const NeverScrollableScrollPhysics(),\n children: [],\n ),\n ),\n ],\n),\n")),(0,i.kt)("h3",{id:"good"},"Good:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"CustomScrollView(\n slivers: [\n SliverList(\n delegate: SliverChildBuilderDelegate(\n (context, index) => Container(),\n childCount: someObject.length,\n ),\n ),\n ],\n),\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/342c214f.c23b0b87.js b/assets/js/342c214f.255f8c51.js similarity index 97% rename from assets/js/342c214f.c23b0b87.js rename to assets/js/342c214f.255f8c51.js index 693e34499..b3d43d30e 100644 --- a/assets/js/342c214f.c23b0b87.js +++ b/assets/js/342c214f.255f8c51.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4683],{3905:(e,r,t)=>{t.d(r,{Zo:()=>d,kt:()=>f});var n=t(7294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=n.createContext({}),c=function(e){var r=n.useContext(u),t=r;return e&&(t="function"==typeof e?e(r):o(o({},r),e)),t},d=function(e){var r=c(e.components);return n.createElement(u.Provider,{value:r},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(t),m=a,f=p["".concat(u,".").concat(m)]||p[m]||s[m]||i;return t?n.createElement(f,o(o({ref:r},d),{},{components:t})):n.createElement(f,o({ref:r},d))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=m;var l={};for(var u in r)hasOwnProperty.call(r,u)&&(l[u]=r[u]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{t.r(r),t.d(r,{assets:()=>u,contentTitle:()=>o,default:()=>s,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var n=t(7462),a=(t(7294),t(3905));const i={},o="prefer-immediate-return",l={unversionedId:"rules/dart/prefer-immediate-return",id:"rules/dart/prefer-immediate-return",title:"prefer-immediate-return",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/prefer-immediate-return.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-immediate-return",permalink:"/docs/rules/dart/prefer-immediate-return",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-immediate-return.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-first",permalink:"/docs/rules/dart/prefer-first"},next:{title:"prefer-iterable-of",permalink:"/docs/rules/dart/prefer-iterable-of"}},u={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:c},p="wrapper";function s(e){let{components:r,...t}=e;return(0,a.kt)(p,(0,n.Z)({},d,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-immediate-return"},"prefer-immediate-return"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Declaring a local variable only to immediately return it might be considered a bad practice. The name of a function or a class method with its return type should give enough information about what should be returned."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void calculateSum(int a, int b) {\n final sum = a + b;\n return sum; // LINT\n}\n\nvoid calculateArea(int width, int height) {\n final result = width * height;\n return result; // LINT\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void calculateSum(int a, int b) {\n return a + b;\n}\n\nvoid calculateArea(int width, int height) => width * height;\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4683],{3905:(e,r,t)=>{t.d(r,{Zo:()=>d,kt:()=>f});var n=t(7294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=n.createContext({}),c=function(e){var r=n.useContext(u),t=r;return e&&(t="function"==typeof e?e(r):o(o({},r),e)),t},d=function(e){var r=c(e.components);return n.createElement(u.Provider,{value:r},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(t),m=a,f=p["".concat(u,".").concat(m)]||p[m]||s[m]||i;return t?n.createElement(f,o(o({ref:r},d),{},{components:t})):n.createElement(f,o({ref:r},d))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=m;var l={};for(var u in r)hasOwnProperty.call(r,u)&&(l[u]=r[u]);l.originalType=e,l[p]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{t.r(r),t.d(r,{assets:()=>u,contentTitle:()=>o,default:()=>s,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var n=t(7462),a=(t(7294),t(3905));const i={},o="prefer-immediate-return",l={unversionedId:"rules/dart/prefer-immediate-return",id:"rules/dart/prefer-immediate-return",title:"prefer-immediate-return",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/prefer-immediate-return.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-immediate-return",permalink:"/docs/rules/dart/prefer-immediate-return",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-immediate-return.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-first",permalink:"/docs/rules/dart/prefer-first"},next:{title:"prefer-iterable-of",permalink:"/docs/rules/dart/prefer-iterable-of"}},u={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:c},p="wrapper";function s(e){let{components:r,...t}=e;return(0,a.kt)(p,(0,n.Z)({},d,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-immediate-return"},"prefer-immediate-return"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Declaring a local variable only to immediately return it might be considered a bad practice. The name of a function or a class method with its return type should give enough information about what should be returned."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void calculateSum(int a, int b) {\n final sum = a + b;\n return sum; // LINT\n}\n\nvoid calculateArea(int width, int height) {\n final result = width * height;\n return result; // LINT\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void calculateSum(int a, int b) {\n return a + b;\n}\n\nvoid calculateArea(int width, int height) => width * height;\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/342d2309.2ee1b758.js b/assets/js/342d2309.16953cac.js similarity index 97% rename from assets/js/342d2309.2ee1b758.js rename to assets/js/342d2309.16953cac.js index 91f5019a1..49cee27ca 100644 --- a/assets/js/342d2309.2ee1b758.js +++ b/assets/js/342d2309.16953cac.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[490],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var d=r.createContext({}),s=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(d.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,d=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=s(n),u=a,f=p["".concat(d,".").concat(u)]||p[u]||m[u]||l;return n?r.createElement(f,i(i({ref:t},c),{},{components:n})):r.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=u;var o={};for(var d in t)hasOwnProperty.call(t,d)&&(o[d]=t[d]);o.originalType=e,o[p]="string"==typeof e?e:a,i[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));const l={},i="prefer-match-file-name",o={unversionedId:"rules/dart/prefer-match-file-name",id:"rules/dart/prefer-match-file-name",title:"prefer-match-file-name",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/prefer-match-file-name.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-match-file-name",permalink:"/docs/rules/dart/prefer-match-file-name",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-match-file-name.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-last",permalink:"/docs/rules/dart/prefer-last"},next:{title:"prefer-moving-to-variable",permalink:"/docs/rules/dart/prefer-moving-to-variable"}},d={},s=[{value:"Example",id:"example",level:2},{value:"Example 1 One class in the file",id:"example-1-one-class-in-the-file",level:3},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3},{value:"Example 2 Multiple class in the file",id:"example-2-multiple-class-in-the-file",level:3},{value:"Bad:",id:"bad-1",level:3},{value:"Good:",id:"good-1",level:3}],c={toc:s},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-match-file-name"},"prefer-match-file-name"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns if the file name does not match the name of the first public class / mixin / extension / enum in the file or a private one if there are no public entries."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"For this rule it's recommended to exclude the ",(0,a.kt)("inlineCode",{parentName:"p"},"test")," folder.")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-match-file-name:\n exclude:\n - test/**\n ...\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"example-1-one-class-in-the-file"},"Example 1 One class in the file"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"File name: some_widget.dart\n\nclass SomeOtherWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n //...\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("p",null,"File name: ",(0,a.kt)("strong",{parentName:"p"},"some_widget.dart")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class SomeWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n //...\n }\n}\n")),(0,a.kt)("h3",{id:"example-2-multiple-class-in-the-file"},"Example 2 Multiple class in the file"),(0,a.kt)("h3",{id:"bad-1"},"Bad:"),(0,a.kt)("p",null,"File name: ",(0,a.kt)("strong",{parentName:"p"},"some_other_widget.dart")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class _SomeOtherWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n //...\n }\n}\n\nclass SomeWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n //...\n }\n}\n")),(0,a.kt)("h3",{id:"good-1"},"Good:"),(0,a.kt)("p",null,"File name: ",(0,a.kt)("strong",{parentName:"p"},"some_widget.dart")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class _SomeOtherWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n //...\n }\n}\n\nclass SomeWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n //...\n }\n}\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[490],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var d=r.createContext({}),s=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(d.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,d=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=s(n),u=a,f=p["".concat(d,".").concat(u)]||p[u]||m[u]||l;return n?r.createElement(f,i(i({ref:t},c),{},{components:n})):r.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=u;var o={};for(var d in t)hasOwnProperty.call(t,d)&&(o[d]=t[d]);o.originalType=e,o[p]="string"==typeof e?e:a,i[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));const l={},i="prefer-match-file-name",o={unversionedId:"rules/dart/prefer-match-file-name",id:"rules/dart/prefer-match-file-name",title:"prefer-match-file-name",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/prefer-match-file-name.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-match-file-name",permalink:"/docs/rules/dart/prefer-match-file-name",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-match-file-name.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-last",permalink:"/docs/rules/dart/prefer-last"},next:{title:"prefer-moving-to-variable",permalink:"/docs/rules/dart/prefer-moving-to-variable"}},d={},s=[{value:"Example",id:"example",level:2},{value:"Example 1 One class in the file",id:"example-1-one-class-in-the-file",level:3},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3},{value:"Example 2 Multiple class in the file",id:"example-2-multiple-class-in-the-file",level:3},{value:"Bad:",id:"bad-1",level:3},{value:"Good:",id:"good-1",level:3}],c={toc:s},p="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-match-file-name"},"prefer-match-file-name"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns if the file name does not match the name of the first public class / mixin / extension / enum in the file or a private one if there are no public entries."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"For this rule it's recommended to exclude the ",(0,a.kt)("inlineCode",{parentName:"p"},"test")," folder.")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-match-file-name:\n exclude:\n - test/**\n ...\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"example-1-one-class-in-the-file"},"Example 1 One class in the file"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"File name: some_widget.dart\n\nclass SomeOtherWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n //...\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("p",null,"File name: ",(0,a.kt)("strong",{parentName:"p"},"some_widget.dart")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class SomeWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n //...\n }\n}\n")),(0,a.kt)("h3",{id:"example-2-multiple-class-in-the-file"},"Example 2 Multiple class in the file"),(0,a.kt)("h3",{id:"bad-1"},"Bad:"),(0,a.kt)("p",null,"File name: ",(0,a.kt)("strong",{parentName:"p"},"some_other_widget.dart")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class _SomeOtherWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n //...\n }\n}\n\nclass SomeWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n //...\n }\n}\n")),(0,a.kt)("h3",{id:"good-1"},"Good:"),(0,a.kt)("p",null,"File name: ",(0,a.kt)("strong",{parentName:"p"},"some_widget.dart")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class _SomeOtherWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n //...\n }\n}\n\nclass SomeWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n //...\n }\n}\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/37012b73.2a4f860a.js b/assets/js/37012b73.c740af6a.js similarity index 93% rename from assets/js/37012b73.2a4f860a.js rename to assets/js/37012b73.c740af6a.js index 50faf578c..01f0781f4 100644 --- a/assets/js/37012b73.2a4f860a.js +++ b/assets/js/37012b73.c740af6a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2601],{3905:(e,r,t)=>{t.d(r,{Zo:()=>c,kt:()=>m});var n=t(7294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=n.createContext({}),s=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},c=function(e){var r=s(e.components);return n.createElement(p.Provider,{value:r},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=s(t),f=a,m=d["".concat(p,".").concat(f)]||d[f]||u[f]||o;return t?n.createElement(m,l(l({ref:r},c),{},{components:t})):n.createElement(m,l({ref:r},c))}));function m(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=f;var i={};for(var p in r)hasOwnProperty.call(r,p)&&(i[p]=r[p]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=t(7462),a=(t(7294),t(3905));const o={},l="prefer-first",i={unversionedId:"rules/dart/prefer-first",id:"rules/dart/prefer-first",title:"prefer-first",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/prefer-first.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-first",permalink:"/docs/rules/dart/prefer-first",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-first.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-enums-by-name",permalink:"/docs/rules/dart/prefer-enums-by-name"},next:{title:"prefer-immediate-return",permalink:"/docs/rules/dart/prefer-immediate-return"}},p={},s=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:s},d="wrapper";function u(e){let{components:r,...t}=e;return(0,a.kt)(d,(0,n.Z)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-first"},"prefer-first"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns when the first element of an Iterable or a List is accessed by ",(0,a.kt)("inlineCode",{parentName:"p"},"list[0]")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable.elementAt(0)")," instead of calling ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable.first"),"."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"...\nconst array = [1, 2, 3, 4, 5, 6, 7, 8, 9];\n\narray.elementAt(0); // LINT\narray[0]; // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];\n\narray.first;\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2601],{3905:(e,r,t)=>{t.d(r,{Zo:()=>c,kt:()=>m});var n=t(7294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=n.createContext({}),s=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},c=function(e){var r=s(e.components);return n.createElement(p.Provider,{value:r},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=s(t),f=a,m=d["".concat(p,".").concat(f)]||d[f]||u[f]||o;return t?n.createElement(m,l(l({ref:r},c),{},{components:t})):n.createElement(m,l({ref:r},c))}));function m(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=f;var i={};for(var p in r)hasOwnProperty.call(r,p)&&(i[p]=r[p]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=t(7462),a=(t(7294),t(3905));const o={},l="prefer-first",i={unversionedId:"rules/dart/prefer-first",id:"rules/dart/prefer-first",title:"prefer-first",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/prefer-first.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-first",permalink:"/docs/rules/dart/prefer-first",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-first.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-first-or-null",permalink:"/docs/rules/dart/prefer-first-or-null"},next:{title:"prefer-immediate-return",permalink:"/docs/rules/dart/prefer-immediate-return"}},p={},s=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:s},d="wrapper";function u(e){let{components:r,...t}=e;return(0,a.kt)(d,(0,n.Z)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-first"},"prefer-first"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns when the first element of an Iterable or a List is accessed by ",(0,a.kt)("inlineCode",{parentName:"p"},"list[0]")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable.elementAt(0)")," instead of calling ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable.first"),"."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"...\nconst array = [1, 2, 3, 4, 5, 6, 7, 8, 9];\n\narray.elementAt(0); // LINT\narray[0]; // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];\n\narray.first;\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/38a6c3dd.7dea9689.js b/assets/js/38a6c3dd.ebea08e0.js similarity index 98% rename from assets/js/38a6c3dd.7dea9689.js rename to assets/js/38a6c3dd.ebea08e0.js index 87fd24ee0..104cfb801 100644 --- a/assets/js/38a6c3dd.7dea9689.js +++ b/assets/js/38a6c3dd.ebea08e0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[7753],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>L});var r=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var d=r.createContext({}),l=function(e){var n=r.useContext(d),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},p=function(e){var n=l(e.components);return r.createElement(d.Provider,{value:n},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,i=e.mdxType,s=e.originalType,d=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),c=l(t),m=i,L=c["".concat(d,".").concat(m)]||c[m]||u[m]||s;return t?r.createElement(L,o(o({ref:n},p),{},{components:t})):r.createElement(L,o({ref:n},p))}));function L(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var s=t.length,o=new Array(s);o[0]=m;var a={};for(var d in n)hasOwnProperty.call(n,d)&&(a[d]=n[d]);a.originalType=e,a[c]="string"==typeof e?e:i,o[1]=a;for(var l=2;l{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var r=t(7462),i=(t(7294),t(3905));const s={},o="always-remove-listener",a={unversionedId:"rules/flutter/always-remove-listener",id:"rules/flutter/always-remove-listener",title:"always-remove-listener",description:"added in: 1.6.0 warning",source:"@site/docs/rules/flutter/always-remove-listener.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/always-remove-listener",permalink:"/docs/rules/flutter/always-remove-listener",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/always-remove-listener.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Flutter",permalink:"/docs/rules/flutter/"},next:{title:"avoid-border-all",permalink:"/docs/rules/flutter/avoid-border-all"}},d={},l=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:l},c="wrapper";function u(e){let{components:n,...t}=e;return(0,i.kt)(c,(0,r.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"always-remove-listener"},"always-remove-listener"),(0,i.kt)("p",null,"added in: 1.6.0 ",(0,i.kt)("span",{style:{color:"orange"}},"warning")),(0,i.kt)("p",null,"Warns when an event listener is added but never removed."),(0,i.kt)("p",null,"StatefulWidget classes sometimes add event listeners but fail to remove them. This results in memory leaks if the valueListenable lifecycle is significantly longer than the widget."),(0,i.kt)("p",null,"Every listener added manually needs to be removed typically in the dispose method. If listeners are added in ",(0,i.kt)("inlineCode",{parentName:"p"},"didUpdateWidget")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"updateDependencies")," then they also need to be removed from those methods as otherwise widgets end up with multiple listeners."),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("h3",{id:"bad"},"Bad:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class ShinyWidget {\n final someListener = Listener();\n final anotherListener = Listener();\n\n const ShinyWidget();\n}\n\nclass _ShinyWidgetState extends State {\n final _someListener = Listener();\n final _anotherListener = Listener();\n final _thirdListener = Listener();\n final _disposedListener = Listener();\n\n const _ShinyWidgetState();\n\n @override\n void initState() {\n super.initState();\n\n _someListener.addListener(listener);\n _anotherListener.addListener(listener); // LINT\n _thirdListener.addListener(listener); // LINT\n _disposedListener.addListener(listener);\n\n widget.someListener.addListener(listener); // LINT\n\n widget.anotherListener\n ..addListener(listener)\n ..addListener(listener)\n ..addListener(() {}); // LINT\n }\n\n @override\n void didUpdateWidget(ShinyWidget oldWidget) {\n widget.someListener.addListener(listener);\n oldWidget.someListener.removeListener(listener);\n\n widget.anotherListener.addListener(listener); // LINT\n\n _someListener.addListener(listener); // LINT\n\n _anotherListener.removeListener(listener);\n _anotherListener.addListener(listener);\n }\n\n void dispose() {\n _someListener.removeListener(listener);\n _thirdListener.removeListener(wrongListener);\n\n _disposedListener.dispose();\n\n widget.anotherListener.removeListener(listener);\n\n super.dispose();\n }\n\n void listener() {\n // ...\n }\n\n void wrongListener() {\n // ...\n }\n}\n")),(0,i.kt)("h3",{id:"good"},"Good:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class ShinyWidget {\n final someListener = Listener();\n final anotherListener = Listener();\n\n const ShinyWidget();\n}\n\nclass _ShinyWidgetState extends State {\n final _someListener = Listener();\n final _disposedListener = Listener();\n\n const _ShinyWidgetState();\n\n @override\n void initState() {\n super.initState();\n\n _someListener.addListener(listener);\n\n _disposedListener.addListener(listener);\n\n widget.anotherListener.addListener(listener);\n }\n\n @override\n void didUpdateWidget(ShinyWidget oldWidget) {\n widget.someListener.addListener(listener);\n oldWidget.someListener.removeListener(listener);\n\n widget.anotherListener.removeListener(listener);\n widget.anotherListener.addListener(listener);\n\n _someListener.removeListener(listener);\n _someListener.addListener(listener);\n }\n\n void dispose() {\n _someListener.removeListener(listener);\n\n _disposedListener.dispose();\n\n widget.anotherListener.removeListener(listener);\n\n super.dispose();\n }\n\n void listener() {\n // ...\n }\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[7753],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>L});var r=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var d=r.createContext({}),l=function(e){var n=r.useContext(d),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},p=function(e){var n=l(e.components);return r.createElement(d.Provider,{value:n},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,i=e.mdxType,s=e.originalType,d=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),c=l(t),m=i,L=c["".concat(d,".").concat(m)]||c[m]||u[m]||s;return t?r.createElement(L,o(o({ref:n},p),{},{components:t})):r.createElement(L,o({ref:n},p))}));function L(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var s=t.length,o=new Array(s);o[0]=m;var a={};for(var d in n)hasOwnProperty.call(n,d)&&(a[d]=n[d]);a.originalType=e,a[c]="string"==typeof e?e:i,o[1]=a;for(var l=2;l{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var r=t(7462),i=(t(7294),t(3905));const s={},o="always-remove-listener",a={unversionedId:"rules/flutter/always-remove-listener",id:"rules/flutter/always-remove-listener",title:"always-remove-listener",description:"added in: 1.0.0 warning",source:"@site/docs/rules/flutter/always-remove-listener.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/always-remove-listener",permalink:"/docs/rules/flutter/always-remove-listener",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/always-remove-listener.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Flutter",permalink:"/docs/rules/flutter/"},next:{title:"avoid-border-all",permalink:"/docs/rules/flutter/avoid-border-all"}},d={},l=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:l},c="wrapper";function u(e){let{components:n,...t}=e;return(0,i.kt)(c,(0,r.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"always-remove-listener"},"always-remove-listener"),(0,i.kt)("p",null,"added in: 1.0.0 ",(0,i.kt)("span",{style:{color:"orange"}},"warning")),(0,i.kt)("p",null,"Warns when an event listener is added but never removed."),(0,i.kt)("p",null,"StatefulWidget classes sometimes add event listeners but fail to remove them. This results in memory leaks if the valueListenable lifecycle is significantly longer than the widget."),(0,i.kt)("p",null,"Every listener added manually needs to be removed typically in the dispose method. If listeners are added in ",(0,i.kt)("inlineCode",{parentName:"p"},"didUpdateWidget")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"updateDependencies")," then they also need to be removed from those methods as otherwise widgets end up with multiple listeners."),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("h3",{id:"bad"},"Bad:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class ShinyWidget {\n final someListener = Listener();\n final anotherListener = Listener();\n\n const ShinyWidget();\n}\n\nclass _ShinyWidgetState extends State {\n final _someListener = Listener();\n final _anotherListener = Listener();\n final _thirdListener = Listener();\n final _disposedListener = Listener();\n\n const _ShinyWidgetState();\n\n @override\n void initState() {\n super.initState();\n\n _someListener.addListener(listener);\n _anotherListener.addListener(listener); // LINT\n _thirdListener.addListener(listener); // LINT\n _disposedListener.addListener(listener);\n\n widget.someListener.addListener(listener); // LINT\n\n widget.anotherListener\n ..addListener(listener)\n ..addListener(listener)\n ..addListener(() {}); // LINT\n }\n\n @override\n void didUpdateWidget(ShinyWidget oldWidget) {\n widget.someListener.addListener(listener);\n oldWidget.someListener.removeListener(listener);\n\n widget.anotherListener.addListener(listener); // LINT\n\n _someListener.addListener(listener); // LINT\n\n _anotherListener.removeListener(listener);\n _anotherListener.addListener(listener);\n }\n\n void dispose() {\n _someListener.removeListener(listener);\n _thirdListener.removeListener(wrongListener);\n\n _disposedListener.dispose();\n\n widget.anotherListener.removeListener(listener);\n\n super.dispose();\n }\n\n void listener() {\n // ...\n }\n\n void wrongListener() {\n // ...\n }\n}\n")),(0,i.kt)("h3",{id:"good"},"Good:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class ShinyWidget {\n final someListener = Listener();\n final anotherListener = Listener();\n\n const ShinyWidget();\n}\n\nclass _ShinyWidgetState extends State {\n final _someListener = Listener();\n final _disposedListener = Listener();\n\n const _ShinyWidgetState();\n\n @override\n void initState() {\n super.initState();\n\n _someListener.addListener(listener);\n\n _disposedListener.addListener(listener);\n\n widget.anotherListener.addListener(listener);\n }\n\n @override\n void didUpdateWidget(ShinyWidget oldWidget) {\n widget.someListener.addListener(listener);\n oldWidget.someListener.removeListener(listener);\n\n widget.anotherListener.removeListener(listener);\n widget.anotherListener.addListener(listener);\n\n _someListener.removeListener(listener);\n _someListener.addListener(listener);\n }\n\n void dispose() {\n _someListener.removeListener(listener);\n\n _disposedListener.dispose();\n\n widget.anotherListener.removeListener(listener);\n\n super.dispose();\n }\n\n void listener() {\n // ...\n }\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/39e8fd7d.f36abf12.js b/assets/js/39e8fd7d.48095be1.js similarity index 97% rename from assets/js/39e8fd7d.f36abf12.js rename to assets/js/39e8fd7d.48095be1.js index 676d29bf1..2e4287375 100644 --- a/assets/js/39e8fd7d.f36abf12.js +++ b/assets/js/39e8fd7d.48095be1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4317],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(r),f=a,m=p["".concat(s,".").concat(f)]||p[f]||d[f]||o;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(7462),a=(r(7294),r(3905));const o={},l="prefer-async-await",i={unversionedId:"rules/dart/prefer-async-await",id:"rules/dart/prefer-async-await",title:"prefer-async-await",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/prefer-async-await.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-async-await",permalink:"/docs/rules/dart/prefer-async-await",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-async-await.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"no-object-declaration",permalink:"/docs/rules/dart/no-object-declaration"},next:{title:"prefer-commenting-analyzer-ignores",permalink:"/docs/rules/dart/prefer-commenting-analyzer-ignores"}},s={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:c},p="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-async-await"},"prefer-async-await"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Recommends to use async/await syntax to handle Futures result instead of ",(0,a.kt)("inlineCode",{parentName:"p"},".then()")," invocation. Also can help prevent errors with mixed await and ",(0,a.kt)("inlineCode",{parentName:"p"},".then()")," usages, since awaiting the result of a ",(0,a.kt)("inlineCode",{parentName:"p"},"Future")," with ",(0,a.kt)("inlineCode",{parentName:"p"},".then()")," invocation awaits the completion of ",(0,a.kt)("inlineCode",{parentName:"p"},".then()"),"."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"Future main() async {\n someFuture.then((result) => handleResult(result)); // LINT\n\n await (foo.asyncMethod()).then((result) => handleResult(result)); // LINT\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"Future main() async {\n final result = await someFuture;\n handleResult(result);\n\n final anotherResult = await foo.asyncMethod();\n handleResult(anotherResult);\n}\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4317],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(r),f=a,m=p["".concat(s,".").concat(f)]||p[f]||d[f]||o;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(7462),a=(r(7294),r(3905));const o={},l="prefer-async-await",i={unversionedId:"rules/dart/prefer-async-await",id:"rules/dart/prefer-async-await",title:"prefer-async-await",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/prefer-async-await.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-async-await",permalink:"/docs/rules/dart/prefer-async-await",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-async-await.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"no-object-declaration",permalink:"/docs/rules/dart/no-object-declaration"},next:{title:"prefer-commenting-analyzer-ignores",permalink:"/docs/rules/dart/prefer-commenting-analyzer-ignores"}},s={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:c},p="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-async-await"},"prefer-async-await"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Recommends to use async/await syntax to handle Futures result instead of ",(0,a.kt)("inlineCode",{parentName:"p"},".then()")," invocation. Also can help prevent errors with mixed await and ",(0,a.kt)("inlineCode",{parentName:"p"},".then()")," usages, since awaiting the result of a ",(0,a.kt)("inlineCode",{parentName:"p"},"Future")," with ",(0,a.kt)("inlineCode",{parentName:"p"},".then()")," invocation awaits the completion of ",(0,a.kt)("inlineCode",{parentName:"p"},".then()"),"."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"Future main() async {\n someFuture.then((result) => handleResult(result)); // LINT\n\n await (foo.asyncMethod()).then((result) => handleResult(result)); // LINT\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"Future main() async {\n final result = await someFuture;\n handleResult(result);\n\n final anotherResult = await foo.asyncMethod();\n handleResult(anotherResult);\n}\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3db17ce4.7fc22f73.js b/assets/js/3db17ce4.db1d3732.js similarity index 97% rename from assets/js/3db17ce4.7fc22f73.js rename to assets/js/3db17ce4.db1d3732.js index 183f83f52..351bc8645 100644 --- a/assets/js/3db17ce4.7fc22f73.js +++ b/assets/js/3db17ce4.db1d3732.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2586],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),u=a,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||i;return n?r.createElement(f,o(o({ref:t},p),{},{components:n})):r.createElement(f,o({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const i={},o="avoid-collection-methods-with-unrelated-types",l={unversionedId:"rules/dart/avoid-collection-methods-with-unrelated-types",id:"rules/dart/avoid-collection-methods-with-unrelated-types",title:"avoid-collection-methods-with-unrelated-types",description:"added in: 1.6.0 warning.",source:"@site/docs/rules/dart/avoid-collection-methods-with-unrelated-types.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-collection-methods-with-unrelated-types",permalink:"/docs/rules/dart/avoid-collection-methods-with-unrelated-types",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-collection-methods-with-unrelated-types.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-cascade-after-if-null",permalink:"/docs/rules/dart/avoid-cascade-after-if-null"},next:{title:"avoid-double-slash-imports",permalink:"/docs/rules/dart/avoid-double-slash-imports"}},s={},c=[],p={toc:c},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-collection-methods-with-unrelated-types"},"avoid-collection-methods-with-unrelated-types"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning"),"."),(0,a.kt)("p",null,"Avoid using collection methods with unrelated types, such as accessing a map of integers using a string key."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This lint has been requested for a long time: Follow ",(0,a.kt)("u",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/dart-lang/linter/issues/1307"},"this link"))," this link to see the details.\nRelated: Dart's built-in ",(0,a.kt)("inlineCode",{parentName:"p"},"list_remove_unrelated_type")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable_contains_unrelated_type"),". :::"),(0,a.kt)("p",{parentName:"admonition"},"Use strict configuration (default is true), if you want dynamic or Object type keys to not trigger the warning."),(0,a.kt)("h2",{parentName:"admonition",id:"config-example"},"Config example"),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart:"},"dart_code_linter:\n ...\n rules:\n ...\n - avoid-collection-methods-with-unrelated-types:\n strict: false\n")),(0,a.kt)("h2",{parentName:"admonition",id:"example"},"Example"),(0,a.kt)("h3",{parentName:"admonition",id:"bad"},"Bad:"),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart"},'final map = Map();\nmap["str"] = "value"; // LINT\nvar a = map["str"]; // LINT\nmap.containsKey("str"); // LINT\nmap.containsValue(42); // LINT\nmap.remove("str"); // LINT\n\nIterable.empty().contains("str"); // LINT\n\nList().remove("str"); // LINT\n\nfinal set = {10, 20, 30};\nset.contains("str"); // LINT\nset.containsAll(Iterable.empty()); // LINT\nset.difference({}); // LINT\nprimitiveSet.intersection({}); // LINT\nset.lookup("str"); // LINT\nprimitiveList.remove("str"); // LINT\nset.removeAll(Iterable.empty()); // LINT\nset.retainAll(Iterable.empty()); // LINT\n')),(0,a.kt)("h3",{parentName:"admonition",id:"good"},"Good:"),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart"},'final map = Map();\nmap[42] = "value";\nvar a = map[42];\nmap.containsKey(42);\nmap.containsValue("value");\nmap.remove(42);\n\nIterable.empty().contains(42);\n\nList().remove(42);\n\nfinal set = {10, 20, 30};\nset.contains(42);\nset.containsAll(Iterable.empty());\nset.difference({});\nprimitiveSet.intersection({});\nset.lookup(42);\nprimitiveList.remove(42);\nset.removeAll(Iterable.empty());\nset.retainAll(Iterable.empty());\n'))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2586],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),u=a,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||i;return n?r.createElement(f,o(o({ref:t},p),{},{components:n})):r.createElement(f,o({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const i={},o="avoid-collection-methods-with-unrelated-types",l={unversionedId:"rules/dart/avoid-collection-methods-with-unrelated-types",id:"rules/dart/avoid-collection-methods-with-unrelated-types",title:"avoid-collection-methods-with-unrelated-types",description:"added in: 1.0.0 warning.",source:"@site/docs/rules/dart/avoid-collection-methods-with-unrelated-types.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-collection-methods-with-unrelated-types",permalink:"/docs/rules/dart/avoid-collection-methods-with-unrelated-types",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-collection-methods-with-unrelated-types.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-cascade-after-if-null",permalink:"/docs/rules/dart/avoid-cascade-after-if-null"},next:{title:"avoid-double-slash-imports",permalink:"/docs/rules/dart/avoid-double-slash-imports"}},s={},c=[],p={toc:c},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-collection-methods-with-unrelated-types"},"avoid-collection-methods-with-unrelated-types"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning"),"."),(0,a.kt)("p",null,"Avoid using collection methods with unrelated types, such as accessing a map of integers using a string key."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This lint has been requested for a long time: Follow ",(0,a.kt)("u",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/dart-lang/linter/issues/1307"},"this link"))," this link to see the details.\nRelated: Dart's built-in ",(0,a.kt)("inlineCode",{parentName:"p"},"list_remove_unrelated_type")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable_contains_unrelated_type"),". :::"),(0,a.kt)("p",{parentName:"admonition"},"Use strict configuration (default is true), if you want dynamic or Object type keys to not trigger the warning."),(0,a.kt)("h2",{parentName:"admonition",id:"config-example"},"Config example"),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart:"},"dart_code_linter:\n ...\n rules:\n ...\n - avoid-collection-methods-with-unrelated-types:\n strict: false\n")),(0,a.kt)("h2",{parentName:"admonition",id:"example"},"Example"),(0,a.kt)("h3",{parentName:"admonition",id:"bad"},"Bad:"),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart"},'final map = Map();\nmap["str"] = "value"; // LINT\nvar a = map["str"]; // LINT\nmap.containsKey("str"); // LINT\nmap.containsValue(42); // LINT\nmap.remove("str"); // LINT\n\nIterable.empty().contains("str"); // LINT\n\nList().remove("str"); // LINT\n\nfinal set = {10, 20, 30};\nset.contains("str"); // LINT\nset.containsAll(Iterable.empty()); // LINT\nset.difference({}); // LINT\nprimitiveSet.intersection({}); // LINT\nset.lookup("str"); // LINT\nprimitiveList.remove("str"); // LINT\nset.removeAll(Iterable.empty()); // LINT\nset.retainAll(Iterable.empty()); // LINT\n')),(0,a.kt)("h3",{parentName:"admonition",id:"good"},"Good:"),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart"},'final map = Map();\nmap[42] = "value";\nvar a = map[42];\nmap.containsKey(42);\nmap.containsValue("value");\nmap.remove(42);\n\nIterable.empty().contains(42);\n\nList().remove(42);\n\nfinal set = {10, 20, 30};\nset.contains(42);\nset.containsAll(Iterable.empty());\nset.difference({});\nprimitiveSet.intersection({});\nset.lookup(42);\nprimitiveList.remove(42);\nset.removeAll(Iterable.empty());\nset.retainAll(Iterable.empty());\n'))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4b266bc1.196cf307.js b/assets/js/4b266bc1.dcccf677.js similarity index 98% rename from assets/js/4b266bc1.196cf307.js rename to assets/js/4b266bc1.dcccf677.js index 8638673b9..62168087a 100644 --- a/assets/js/4b266bc1.196cf307.js +++ b/assets/js/4b266bc1.dcccf677.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[3275],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=p(r),c=a,f=u["".concat(s,".").concat(c)]||u[c]||m[c]||l;return r?n.createElement(f,i(i({ref:t},d),{},{components:r})):n.createElement(f,i({ref:t},d))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var n=r(7462),a=(r(7294),r(3905));const l={},i="member-ordering",o={unversionedId:"rules/dart/member-ordering",id:"rules/dart/member-ordering",title:"member-ordering",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/member-ordering.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/member-ordering",permalink:"/docs/rules/dart/member-ordering",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/member-ordering.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"list-all-equatable-fields",permalink:"/docs/rules/dart/list-all-equatable-fields"},next:{title:"missing-test-assertion",permalink:"/docs/rules/dart/missing-test-assertion"}},s={},p=[{value:"Config",id:"config",level:2},{value:"Config example",id:"config-example",level:2}],d={toc:p},u="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"member-ordering"},"member-ordering"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Enforces member ordering."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"order")," to configure the order for regular classes."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"widgets-order")," to configure the order for widget classes."),(0,a.kt)("p",null,"The value for the ",(0,a.kt)("inlineCode",{parentName:"p"},"order")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"widgets-order")," entries should match the following pattern:"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"< (overridden | protected)- >< (private | public)- >< static- >< late- >< (var | final | const)- >< nullable- >< named- >< factory- > (fields | getters | getters-setters | setters | constructors | methods)")),(0,a.kt)("p",null,"where values in the ",(0,a.kt)("inlineCode",{parentName:"p"},"<>")," are optional, values in the ",(0,a.kt)("inlineCode",{parentName:"p"},"()")," are interchangeable and the last part of the pattern which represents a class member type is ",(0,a.kt)("strong",{parentName:"p"},"REQUIRED"),"."),(0,a.kt)("p",null,"You can also apply order to a separate method, field or constructor by listing its name like:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"build-method"),(0,a.kt)("li",{parentName:"ul"},"dispose-method"),(0,a.kt)("li",{parentName:"ul"},"init-state-method"),(0,a.kt)("li",{parentName:"ul"},"my-custom-cool-thing-method"),(0,a.kt)("li",{parentName:"ul"},"from-json-constructor"),(0,a.kt)("li",{parentName:"ul"},"custom-field")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Not all of the pattern parts are applicable for every case, for example, late-constructors are not expected, since they are not supported by the language itself.")),(0,a.kt)("p",null,"For example, the value for ",(0,a.kt)("inlineCode",{parentName:"p"},"order")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"widgets-order")," may be an array consisting of the following strings:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"public-late-final-fields"),(0,a.kt)("li",{parentName:"ul"},"private-late-final-fields"),(0,a.kt)("li",{parentName:"ul"},"public-nullable-fields"),(0,a.kt)("li",{parentName:"ul"},"private-nullable-fields"),(0,a.kt)("li",{parentName:"ul"},"named-constructors"),(0,a.kt)("li",{parentName:"ul"},"factory-constructors"),(0,a.kt)("li",{parentName:"ul"},"getters"),(0,a.kt)("li",{parentName:"ul"},"setters"),(0,a.kt)("li",{parentName:"ul"},"public-static-methods"),(0,a.kt)("li",{parentName:"ul"},"private-static-methods"),(0,a.kt)("li",{parentName:"ul"},"protected-methods"),(0,a.kt)("li",{parentName:"ul"},"etc.")),(0,a.kt)("p",null,"You can simply configure the rule to sort only by a type:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"fields"),(0,a.kt)("li",{parentName:"ul"},"methods"),(0,a.kt)("li",{parentName:"ul"},"setters"),(0,a.kt)("li",{parentName:"ul"},"getters (or just ",(0,a.kt)("strong",{parentName:"li"},"getters-setters")," if you don't want to separate them)"),(0,a.kt)("li",{parentName:"ul"},"constructors")),(0,a.kt)("p",null,"The default config for ",(0,a.kt)("inlineCode",{parentName:"p"},"order")," is:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"public-fields"),(0,a.kt)("li",{parentName:"ul"},"private-fields"),(0,a.kt)("li",{parentName:"ul"},"public-getters"),(0,a.kt)("li",{parentName:"ul"},"private-getters"),(0,a.kt)("li",{parentName:"ul"},"public-setters"),(0,a.kt)("li",{parentName:"ul"},"private-setters"),(0,a.kt)("li",{parentName:"ul"},"constructors"),(0,a.kt)("li",{parentName:"ul"},"public-methods"),(0,a.kt)("li",{parentName:"ul"},"private-methods")),(0,a.kt)("p",null,"The default config for ",(0,a.kt)("inlineCode",{parentName:"p"},"widgets-order")," is (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#order-other-class-members-in-a-way-that-makes-sense"},"from Flutter style guide"),"):"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"constructor"),(0,a.kt)("li",{parentName:"ul"},"named-constructor"),(0,a.kt)("li",{parentName:"ul"},"const-fields"),(0,a.kt)("li",{parentName:"ul"},"static-methods"),(0,a.kt)("li",{parentName:"ul"},"final-fields"),(0,a.kt)("li",{parentName:"ul"},"init-state-method"),(0,a.kt)("li",{parentName:"ul"},"var-fields"),(0,a.kt)("li",{parentName:"ul"},"init-state-method"),(0,a.kt)("li",{parentName:"ul"},"private-methods"),(0,a.kt)("li",{parentName:"ul"},"overridden-public-methods"),(0,a.kt)("li",{parentName:"ul"},"build-method")),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"alphabetize")," option will enforce that members within the same category should be alphabetically sorted by name."),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"alphabetize-by-type")," option will enforce that members within the same category should be alphabetically sorted by theirs type name."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"Only one alphabetize option could be applied at the same time.")),(0,a.kt)("h2",{id:"config-example"},"Config example"),(0,a.kt)("p",null,"With the default config:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - member-ordering\n")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"OR")," with a custom one:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - member-ordering:\n alphabetize: true\n order:\n - public-fields\n - private-fields\n - constructors\n")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"OR")," Flutter specific:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - member-ordering:\n widgets-order:\n - build-method\n - init-state-method\n - did-change-dependencies-method\n - did-update-widget-method\n - dispose-method\n")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"OR")," both custom and Flutter specific:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - member-ordering:\n order:\n - public-fields\n - private-fields\n - constructors\n - close-method\n - dispose-method\n widgets-order:\n - constructor\n - build-method\n - init-state-method\n - did-change-dependencies-method\n - did-update-widget-method\n - dispose-method\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[3275],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=p(r),c=a,f=u["".concat(s,".").concat(c)]||u[c]||m[c]||l;return r?n.createElement(f,i(i({ref:t},d),{},{components:r})):n.createElement(f,i({ref:t},d))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var n=r(7462),a=(r(7294),r(3905));const l={},i="member-ordering",o={unversionedId:"rules/dart/member-ordering",id:"rules/dart/member-ordering",title:"member-ordering",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/member-ordering.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/member-ordering",permalink:"/docs/rules/dart/member-ordering",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/member-ordering.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"list-all-equatable-fields",permalink:"/docs/rules/dart/list-all-equatable-fields"},next:{title:"missing-test-assertion",permalink:"/docs/rules/dart/missing-test-assertion"}},s={},p=[{value:"Config",id:"config",level:2},{value:"Config example",id:"config-example",level:2}],d={toc:p},u="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"member-ordering"},"member-ordering"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Enforces member ordering."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"order")," to configure the order for regular classes."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"widgets-order")," to configure the order for widget classes."),(0,a.kt)("p",null,"The value for the ",(0,a.kt)("inlineCode",{parentName:"p"},"order")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"widgets-order")," entries should match the following pattern:"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"< (overridden | protected)- >< (private | public)- >< static- >< late- >< (var | final | const)- >< nullable- >< named- >< factory- > (fields | getters | getters-setters | setters | constructors | methods)")),(0,a.kt)("p",null,"where values in the ",(0,a.kt)("inlineCode",{parentName:"p"},"<>")," are optional, values in the ",(0,a.kt)("inlineCode",{parentName:"p"},"()")," are interchangeable and the last part of the pattern which represents a class member type is ",(0,a.kt)("strong",{parentName:"p"},"REQUIRED"),"."),(0,a.kt)("p",null,"You can also apply order to a separate method, field or constructor by listing its name like:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"build-method"),(0,a.kt)("li",{parentName:"ul"},"dispose-method"),(0,a.kt)("li",{parentName:"ul"},"init-state-method"),(0,a.kt)("li",{parentName:"ul"},"my-custom-cool-thing-method"),(0,a.kt)("li",{parentName:"ul"},"from-json-constructor"),(0,a.kt)("li",{parentName:"ul"},"custom-field")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Not all of the pattern parts are applicable for every case, for example, late-constructors are not expected, since they are not supported by the language itself.")),(0,a.kt)("p",null,"For example, the value for ",(0,a.kt)("inlineCode",{parentName:"p"},"order")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"widgets-order")," may be an array consisting of the following strings:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"public-late-final-fields"),(0,a.kt)("li",{parentName:"ul"},"private-late-final-fields"),(0,a.kt)("li",{parentName:"ul"},"public-nullable-fields"),(0,a.kt)("li",{parentName:"ul"},"private-nullable-fields"),(0,a.kt)("li",{parentName:"ul"},"named-constructors"),(0,a.kt)("li",{parentName:"ul"},"factory-constructors"),(0,a.kt)("li",{parentName:"ul"},"getters"),(0,a.kt)("li",{parentName:"ul"},"setters"),(0,a.kt)("li",{parentName:"ul"},"public-static-methods"),(0,a.kt)("li",{parentName:"ul"},"private-static-methods"),(0,a.kt)("li",{parentName:"ul"},"protected-methods"),(0,a.kt)("li",{parentName:"ul"},"etc.")),(0,a.kt)("p",null,"You can simply configure the rule to sort only by a type:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"fields"),(0,a.kt)("li",{parentName:"ul"},"methods"),(0,a.kt)("li",{parentName:"ul"},"setters"),(0,a.kt)("li",{parentName:"ul"},"getters (or just ",(0,a.kt)("strong",{parentName:"li"},"getters-setters")," if you don't want to separate them)"),(0,a.kt)("li",{parentName:"ul"},"constructors")),(0,a.kt)("p",null,"The default config for ",(0,a.kt)("inlineCode",{parentName:"p"},"order")," is:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"public-fields"),(0,a.kt)("li",{parentName:"ul"},"private-fields"),(0,a.kt)("li",{parentName:"ul"},"public-getters"),(0,a.kt)("li",{parentName:"ul"},"private-getters"),(0,a.kt)("li",{parentName:"ul"},"public-setters"),(0,a.kt)("li",{parentName:"ul"},"private-setters"),(0,a.kt)("li",{parentName:"ul"},"constructors"),(0,a.kt)("li",{parentName:"ul"},"public-methods"),(0,a.kt)("li",{parentName:"ul"},"private-methods")),(0,a.kt)("p",null,"The default config for ",(0,a.kt)("inlineCode",{parentName:"p"},"widgets-order")," is (",(0,a.kt)("a",{parentName:"p",href:"https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#order-other-class-members-in-a-way-that-makes-sense"},"from Flutter style guide"),"):"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"constructor"),(0,a.kt)("li",{parentName:"ul"},"named-constructor"),(0,a.kt)("li",{parentName:"ul"},"const-fields"),(0,a.kt)("li",{parentName:"ul"},"static-methods"),(0,a.kt)("li",{parentName:"ul"},"final-fields"),(0,a.kt)("li",{parentName:"ul"},"init-state-method"),(0,a.kt)("li",{parentName:"ul"},"var-fields"),(0,a.kt)("li",{parentName:"ul"},"init-state-method"),(0,a.kt)("li",{parentName:"ul"},"private-methods"),(0,a.kt)("li",{parentName:"ul"},"overridden-public-methods"),(0,a.kt)("li",{parentName:"ul"},"build-method")),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"alphabetize")," option will enforce that members within the same category should be alphabetically sorted by name."),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"alphabetize-by-type")," option will enforce that members within the same category should be alphabetically sorted by theirs type name."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"Only one alphabetize option could be applied at the same time.")),(0,a.kt)("h2",{id:"config-example"},"Config example"),(0,a.kt)("p",null,"With the default config:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - member-ordering\n")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"OR")," with a custom one:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - member-ordering:\n alphabetize: true\n order:\n - public-fields\n - private-fields\n - constructors\n")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"OR")," Flutter specific:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - member-ordering:\n widgets-order:\n - build-method\n - init-state-method\n - did-change-dependencies-method\n - did-update-widget-method\n - dispose-method\n")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"OR")," both custom and Flutter specific:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - member-ordering:\n order:\n - public-fields\n - private-fields\n - constructors\n - close-method\n - dispose-method\n widgets-order:\n - constructor\n - build-method\n - init-state-method\n - did-change-dependencies-method\n - did-update-widget-method\n - dispose-method\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4bce62ec.c6886007.js b/assets/js/4bce62ec.a5be3b7a.js similarity index 97% rename from assets/js/4bce62ec.c6886007.js rename to assets/js/4bce62ec.a5be3b7a.js index 54c279dc9..d1b01cb60 100644 --- a/assets/js/4bce62ec.c6886007.js +++ b/assets/js/4bce62ec.a5be3b7a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[144],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),d=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=d(e.components);return r.createElement(l.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=d(t),m=o,f=p["".concat(l,".").concat(m)]||p[m]||u[m]||a;return t?r.createElement(f,i(i({ref:n},c),{},{components:t})):r.createElement(f,i({ref:n},c))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=m;var s={};for(var l in n)hasOwnProperty.call(n,l)&&(s[l]=n[l]);s.originalType=e,s[p]="string"==typeof e?e:o,i[1]=s;for(var d=2;d{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var r=t(7462),o=(t(7294),t(3905));const a={},i="avoid-nested-conditional-expressions",s={unversionedId:"rules/dart/avoid-nested-conditional-expressions",id:"rules/dart/avoid-nested-conditional-expressions",title:"avoid-nested-conditional-expressions",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/avoid-nested-conditional-expressions.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-nested-conditional-expressions",permalink:"/docs/rules/dart/avoid-nested-conditional-expressions",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-nested-conditional-expressions.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-missing-enum-constant-in-map",permalink:"/docs/rules/dart/avoid-missing-enum-constant-in-map"},next:{title:"avoid-non-ascii-symbols",permalink:"/docs/rules/dart/avoid-non-ascii-symbols"}},l={},d=[{value:"Config example",id:"config-example",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:d},p="wrapper";function u(e){let{components:n,...t}=e;return(0,o.kt)(p,(0,r.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-nested-conditional-expressions"},"avoid-nested-conditional-expressions"),(0,o.kt)("p",null,"added in: 1.6.0 ",(0,o.kt)("span",{style:{color:"green"}},"style")),(0,o.kt)("p",null,"Checks for nested conditional expressions."),(0,o.kt)("h2",{id:"config-example"},"Config example"),(0,o.kt)("p",null,"Set ",(0,o.kt)("inlineCode",{parentName:"p"},"acceptable-level")," (default is ",(0,o.kt)("inlineCode",{parentName:"p"},"1"),") to configure the acceptable nesting level."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - avoid-nested-conditional-expressions:\n acceptable-level: 2\n")),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final str = '';\n\nfinal oneLevel = str.isEmpty ? 'hi' : '1';\n\nfinal twoLevels = str.isEmpty\n ? str.isEmpty // LINT\n ? 'hi'\n : '1'\n : '2';\n\nfinal threeLevels = str.isEmpty\n ? str.isEmpty // LINT\n ? str.isEmpty // LINT\n ? 'hi'\n : '1'\n : '2'\n : '3';\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final str = '';\n\nfinal oneLevel = str.isEmpty ? 'hi' : '1';\n\nfinal twoLevels = _getStr(str);\n\nString _getStr(String str) {\n if (str.isEmpty) {\n return 'hi';\n }\n\n ...\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[144],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=r.createContext({}),d=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=d(e.components);return r.createElement(l.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=d(t),m=o,f=p["".concat(l,".").concat(m)]||p[m]||u[m]||a;return t?r.createElement(f,i(i({ref:n},c),{},{components:t})):r.createElement(f,i({ref:n},c))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=m;var s={};for(var l in n)hasOwnProperty.call(n,l)&&(s[l]=n[l]);s.originalType=e,s[p]="string"==typeof e?e:o,i[1]=s;for(var d=2;d{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var r=t(7462),o=(t(7294),t(3905));const a={},i="avoid-nested-conditional-expressions",s={unversionedId:"rules/dart/avoid-nested-conditional-expressions",id:"rules/dart/avoid-nested-conditional-expressions",title:"avoid-nested-conditional-expressions",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/avoid-nested-conditional-expressions.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-nested-conditional-expressions",permalink:"/docs/rules/dart/avoid-nested-conditional-expressions",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-nested-conditional-expressions.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-missing-enum-constant-in-map",permalink:"/docs/rules/dart/avoid-missing-enum-constant-in-map"},next:{title:"avoid-non-ascii-symbols",permalink:"/docs/rules/dart/avoid-non-ascii-symbols"}},l={},d=[{value:"Config example",id:"config-example",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:d},p="wrapper";function u(e){let{components:n,...t}=e;return(0,o.kt)(p,(0,r.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-nested-conditional-expressions"},"avoid-nested-conditional-expressions"),(0,o.kt)("p",null,"added in: 1.0.0 ",(0,o.kt)("span",{style:{color:"green"}},"style")),(0,o.kt)("p",null,"Checks for nested conditional expressions."),(0,o.kt)("h2",{id:"config-example"},"Config example"),(0,o.kt)("p",null,"Set ",(0,o.kt)("inlineCode",{parentName:"p"},"acceptable-level")," (default is ",(0,o.kt)("inlineCode",{parentName:"p"},"1"),") to configure the acceptable nesting level."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - avoid-nested-conditional-expressions:\n acceptable-level: 2\n")),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final str = '';\n\nfinal oneLevel = str.isEmpty ? 'hi' : '1';\n\nfinal twoLevels = str.isEmpty\n ? str.isEmpty // LINT\n ? 'hi'\n : '1'\n : '2';\n\nfinal threeLevels = str.isEmpty\n ? str.isEmpty // LINT\n ? str.isEmpty // LINT\n ? 'hi'\n : '1'\n : '2'\n : '3';\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final str = '';\n\nfinal oneLevel = str.isEmpty ? 'hi' : '1';\n\nfinal twoLevels = _getStr(str);\n\nString _getStr(String str) {\n if (str.isEmpty) {\n return 'hi';\n }\n\n ...\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4d3c1263.90acbba3.js b/assets/js/4d3c1263.e019875b.js similarity index 97% rename from assets/js/4d3c1263.90acbba3.js rename to assets/js/4d3c1263.e019875b.js index 9a2c2a988..1ae91873b 100644 --- a/assets/js/4d3c1263.90acbba3.js +++ b/assets/js/4d3c1263.e019875b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[5049],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>v});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),d=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=d(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(n),m=o,v=u["".concat(l,".").concat(m)]||u[m]||s[m]||a;return n?r.createElement(v,i(i({ref:t},p),{},{components:n})):r.createElement(v,i({ref:t},p))}));function v(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var d=2;d{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var r=n(7462),o=(n(7294),n(3905));const a={},i="avoid-creating-vector-in-update",c={unversionedId:"rules/flame/avoid-creating-vector-in-update",id:"rules/flame/avoid-creating-vector-in-update",title:"avoid-creating-vector-in-update",description:"added in: 1.6.0 warning.",source:"@site/docs/rules/flame/avoid-creating-vector-in-update.mdx",sourceDirName:"rules/flame",slug:"/rules/flame/avoid-creating-vector-in-update",permalink:"/docs/rules/flame/avoid-creating-vector-in-update",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flame/avoid-creating-vector-in-update.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Flame",permalink:"/docs/rules/flame/"},next:{title:"avoid-initializing-in-on-mount",permalink:"/docs/rules/flame/avoid-initializing-in-on-mount"}},l={},d=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:d},u="wrapper";function s(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-creating-vector-in-update"},"avoid-creating-vector-in-update"),(0,o.kt)("p",null,"added in: 1.6.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning"),"."),(0,o.kt)("p",null,"Warns when a Vector2 is created inside a Component's ",(0,o.kt)("inlineCode",{parentName:"p"},"update")," method."),(0,o.kt)("p",null,"Creating a new vector every tick can affect the performance. Instead, an existing vector should be updated."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class MyComponent extends Component {\n @override\n void update(double dt) {\n final newVector = Vector2(10, 10); // LINT\n }\n}\n\nclass MyComponent extends Component {\n final vector1 = Vector2(10, 10);\n final vector2 = Vector2(20, 20);\n\n @override\n void update(double dt) {\n final addVector = vector1 + vector2; // LINT\n final subVector = vector1 - vector2; // LINT\n }\n}\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class MyComponent extends Component {\n final _temporaryVector = Vector2.zero();\n\n @override\n void update(double dt) {\n _temporaryVector.setValues(10, 10);\n }\n}\n\nclass MyComponent extends Component {\n final vector1 = Vector2(10, 10);\n final vector2 = Vector2(20, 20);\n\n final _temporaryVector = Vector2.zero();\n\n @override\n void update(double dt) {\n _temporaryVector\n ..setFrom(vector1)\n ..add(vector2);\n }\n}\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[5049],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>v});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),d=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=d(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(n),m=o,v=u["".concat(l,".").concat(m)]||u[m]||s[m]||a;return n?r.createElement(v,i(i({ref:t},p),{},{components:n})):r.createElement(v,i({ref:t},p))}));function v(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var d=2;d{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var r=n(7462),o=(n(7294),n(3905));const a={},i="avoid-creating-vector-in-update",c={unversionedId:"rules/flame/avoid-creating-vector-in-update",id:"rules/flame/avoid-creating-vector-in-update",title:"avoid-creating-vector-in-update",description:"added in: 1.0.0 warning.",source:"@site/docs/rules/flame/avoid-creating-vector-in-update.mdx",sourceDirName:"rules/flame",slug:"/rules/flame/avoid-creating-vector-in-update",permalink:"/docs/rules/flame/avoid-creating-vector-in-update",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flame/avoid-creating-vector-in-update.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Flame",permalink:"/docs/rules/flame/"},next:{title:"avoid-initializing-in-on-mount",permalink:"/docs/rules/flame/avoid-initializing-in-on-mount"}},l={},d=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:d},u="wrapper";function s(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-creating-vector-in-update"},"avoid-creating-vector-in-update"),(0,o.kt)("p",null,"added in: 1.0.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning"),"."),(0,o.kt)("p",null,"Warns when a Vector2 is created inside a Component's ",(0,o.kt)("inlineCode",{parentName:"p"},"update")," method."),(0,o.kt)("p",null,"Creating a new vector every tick can affect the performance. Instead, an existing vector should be updated."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class MyComponent extends Component {\n @override\n void update(double dt) {\n final newVector = Vector2(10, 10); // LINT\n }\n}\n\nclass MyComponent extends Component {\n final vector1 = Vector2(10, 10);\n final vector2 = Vector2(20, 20);\n\n @override\n void update(double dt) {\n final addVector = vector1 + vector2; // LINT\n final subVector = vector1 - vector2; // LINT\n }\n}\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class MyComponent extends Component {\n final _temporaryVector = Vector2.zero();\n\n @override\n void update(double dt) {\n _temporaryVector.setValues(10, 10);\n }\n}\n\nclass MyComponent extends Component {\n final vector1 = Vector2(10, 10);\n final vector2 = Vector2(20, 20);\n\n final _temporaryVector = Vector2.zero();\n\n @override\n void update(double dt) {\n _temporaryVector\n ..setFrom(vector1)\n ..add(vector2);\n }\n}\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4dccdc48.013004ad.js b/assets/js/4dccdc48.5d452dd3.js similarity index 97% rename from assets/js/4dccdc48.013004ad.js rename to assets/js/4dccdc48.5d452dd3.js index 4c4a963bd..8e6a3a6d8 100644 --- a/assets/js/4dccdc48.013004ad.js +++ b/assets/js/4dccdc48.5d452dd3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2275],{3905:(e,r,t)=>{t.d(r,{Zo:()=>s,kt:()=>b});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function d(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),u=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):d(d({},r),e)),t},s=function(e){var r=u(e.components);return n.createElement(l.Provider,{value:r},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=u(t),f=o,b=c["".concat(l,".").concat(f)]||c[f]||p[f]||a;return t?n.createElement(b,d(d({ref:r},s),{},{components:t})):n.createElement(b,d({ref:r},s))}));function b(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,d=new Array(a);d[0]=f;var i={};for(var l in r)hasOwnProperty.call(r,l)&&(i[l]=r[l]);i.originalType=e,i[c]="string"==typeof e?e:o,d[1]=i;for(var u=2;u{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>d,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=t(7462),o=(t(7294),t(3905));const a={},d="prefer-const-border-radius",i={unversionedId:"rules/flutter/prefer-const-border-radius",id:"rules/flutter/prefer-const-border-radius",title:"prefer-const-border-radius",description:"added in: 1.6.0performance",source:"@site/docs/rules/flutter/prefer-const-border-radius.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/prefer-const-border-radius",permalink:"/docs/rules/flutter/prefer-const-border-radius",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/prefer-const-border-radius.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"consistent-update-render-object",permalink:"/docs/rules/flutter/consistent-update-render-object"},next:{title:"prefer-correct-edge-insets-constructor",permalink:"/docs/rules/flutter/prefer-correct-edge-insets-constructor"}},l={},u=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],s={toc:u},c="wrapper";function p(e){let{components:r,...t}=e;return(0,o.kt)(c,(0,n.Z)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"prefer-const-border-radius"},"prefer-const-border-radius"),(0,o.kt)("p",null,"added in: 1.6.0",(0,o.kt)("span",{style:{color:"blue"}},"performance")),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"BorderRadius.circular")," constructor calls const ",(0,o.kt)("inlineCode",{parentName:"p"},"BorderRadius.all")," constructor under the hood. This rule allows to replace ",(0,o.kt)("inlineCode",{parentName:"p"},"BorderRadius.circular(value)")," with const ",(0,o.kt)("inlineCode",{parentName:"p"},"BorderRadius.all(Radius.circular(value))")," if radius is a constant value."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final _defaultFinalRadius = BorderRadius.circular(8); // LINT\n\nclass RoundedWidget extends StatelessWidget {\n final BorderRadius borderRadius;\n final Widget child;\n\n const RoundedWidget({\n Key? key,\n this.borderRadius = _defaultRadius,\n required this.child,\n }) : super(key: key);\n\n @override\n Widget build(BuildContext context) {\n return ClipRRect(\n borderRadius: borderRadius,\n child: child,\n );\n }\n}\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"const _defaultRadius = BorderRadius.all(Radius.circular(8));\n\nclass RoundedWidget extends StatelessWidget {\n final BorderRadius borderRadius;\n final Widget child;\n\n const RoundedWidget({\n Key? key,\n this.borderRadius = _defaultRadius,\n required this.child,\n }) : super(key: key);\n\n @override\n Widget build(BuildContext context) {\n return ClipRRect(\n borderRadius: borderRadius,\n child: child,\n );\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2275],{3905:(e,r,t)=>{t.d(r,{Zo:()=>s,kt:()=>b});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function d(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),u=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):d(d({},r),e)),t},s=function(e){var r=u(e.components);return n.createElement(l.Provider,{value:r},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=u(t),f=o,b=c["".concat(l,".").concat(f)]||c[f]||p[f]||a;return t?n.createElement(b,d(d({ref:r},s),{},{components:t})):n.createElement(b,d({ref:r},s))}));function b(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,d=new Array(a);d[0]=f;var i={};for(var l in r)hasOwnProperty.call(r,l)&&(i[l]=r[l]);i.originalType=e,i[c]="string"==typeof e?e:o,d[1]=i;for(var u=2;u{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>d,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=t(7462),o=(t(7294),t(3905));const a={},d="prefer-const-border-radius",i={unversionedId:"rules/flutter/prefer-const-border-radius",id:"rules/flutter/prefer-const-border-radius",title:"prefer-const-border-radius",description:"added in: 1.0.0performance",source:"@site/docs/rules/flutter/prefer-const-border-radius.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/prefer-const-border-radius",permalink:"/docs/rules/flutter/prefer-const-border-radius",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/prefer-const-border-radius.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"consistent-update-render-object",permalink:"/docs/rules/flutter/consistent-update-render-object"},next:{title:"prefer-correct-edge-insets-constructor",permalink:"/docs/rules/flutter/prefer-correct-edge-insets-constructor"}},l={},u=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],s={toc:u},c="wrapper";function p(e){let{components:r,...t}=e;return(0,o.kt)(c,(0,n.Z)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"prefer-const-border-radius"},"prefer-const-border-radius"),(0,o.kt)("p",null,"added in: 1.0.0",(0,o.kt)("span",{style:{color:"blue"}},"performance")),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"BorderRadius.circular")," constructor calls const ",(0,o.kt)("inlineCode",{parentName:"p"},"BorderRadius.all")," constructor under the hood. This rule allows to replace ",(0,o.kt)("inlineCode",{parentName:"p"},"BorderRadius.circular(value)")," with const ",(0,o.kt)("inlineCode",{parentName:"p"},"BorderRadius.all(Radius.circular(value))")," if radius is a constant value."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final _defaultFinalRadius = BorderRadius.circular(8); // LINT\n\nclass RoundedWidget extends StatelessWidget {\n final BorderRadius borderRadius;\n final Widget child;\n\n const RoundedWidget({\n Key? key,\n this.borderRadius = _defaultRadius,\n required this.child,\n }) : super(key: key);\n\n @override\n Widget build(BuildContext context) {\n return ClipRRect(\n borderRadius: borderRadius,\n child: child,\n );\n }\n}\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"const _defaultRadius = BorderRadius.all(Radius.circular(8));\n\nclass RoundedWidget extends StatelessWidget {\n final BorderRadius borderRadius;\n final Widget child;\n\n const RoundedWidget({\n Key? key,\n this.borderRadius = _defaultRadius,\n required this.child,\n }) : super(key: key);\n\n @override\n Widget build(BuildContext context) {\n return ClipRRect(\n borderRadius: borderRadius,\n child: child,\n );\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4f7eb955.6d239a03.js b/assets/js/4f7eb955.17bdd730.js similarity index 97% rename from assets/js/4f7eb955.6d239a03.js rename to assets/js/4f7eb955.17bdd730.js index 10031c9ad..98ea60880 100644 --- a/assets/js/4f7eb955.6d239a03.js +++ b/assets/js/4f7eb955.17bdd730.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[8613],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),s=p(r),u=a,m=s["".concat(c,".").concat(u)]||s[u]||f[u]||o;return r?n.createElement(m,i(i({ref:t},d),{},{components:r})):n.createElement(m,i({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(7462),a=(r(7294),r(3905));const o={},i="prefer-correct-test-file-name",l={unversionedId:"rules/dart/prefer-correct-test-file-name",id:"rules/dart/prefer-correct-test-file-name",title:"prefer-correct-test-file-name",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/prefer-correct-test-file-name.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-correct-test-file-name",permalink:"/docs/rules/dart/prefer-correct-test-file-name",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-correct-test-file-name.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-correct-identifier-length",permalink:"/docs/rules/dart/prefer-correct-identifier-length"},next:{title:"prefer-correct-type-name",permalink:"/docs/rules/dart/prefer-correct-type-name"}},c={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-correct-test-file-name"},"prefer-correct-test-file-name"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns if the file within ",(0,a.kt)("inlineCode",{parentName:"p"},"/test")," contains a ",(0,a.kt)("inlineCode",{parentName:"p"},"main"),", but the file name doesn't end with ",(0,a.kt)("inlineCode",{parentName:"p"},"_test.dart"),"."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"If you want to set ",(0,a.kt)("inlineCode",{parentName:"p"},"exclude")," config for this rule, the default ","[",(0,a.kt)("inlineCode",{parentName:"p"},"'lib/**', 'bin/**'"),"]"," will be overriden.")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"File name: some_file.dart\n\nvoid main() {\n ...\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"File name: some_file_test.dart\n\nvoid main() {\n ...\n}\n\nFile name: some_other_file.dart\n\nvoid helperFunction() {\n ...\n}\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[8613],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),s=p(r),u=a,m=s["".concat(c,".").concat(u)]||s[u]||f[u]||o;return r?n.createElement(m,i(i({ref:t},d),{},{components:r})):n.createElement(m,i({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(7462),a=(r(7294),r(3905));const o={},i="prefer-correct-test-file-name",l={unversionedId:"rules/dart/prefer-correct-test-file-name",id:"rules/dart/prefer-correct-test-file-name",title:"prefer-correct-test-file-name",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/prefer-correct-test-file-name.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-correct-test-file-name",permalink:"/docs/rules/dart/prefer-correct-test-file-name",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-correct-test-file-name.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-correct-identifier-length",permalink:"/docs/rules/dart/prefer-correct-identifier-length"},next:{title:"prefer-correct-type-name",permalink:"/docs/rules/dart/prefer-correct-type-name"}},c={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,a.kt)(s,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-correct-test-file-name"},"prefer-correct-test-file-name"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns if the file within ",(0,a.kt)("inlineCode",{parentName:"p"},"/test")," contains a ",(0,a.kt)("inlineCode",{parentName:"p"},"main"),", but the file name doesn't end with ",(0,a.kt)("inlineCode",{parentName:"p"},"_test.dart"),"."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"If you want to set ",(0,a.kt)("inlineCode",{parentName:"p"},"exclude")," config for this rule, the default ","[",(0,a.kt)("inlineCode",{parentName:"p"},"'lib/**', 'bin/**'"),"]"," will be overriden.")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"File name: some_file.dart\n\nvoid main() {\n ...\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"File name: some_file_test.dart\n\nvoid main() {\n ...\n}\n\nFile name: some_other_file.dart\n\nvoid helperFunction() {\n ...\n}\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/545c8698.73adea0a.js b/assets/js/545c8698.b05b41ff.js similarity index 96% rename from assets/js/545c8698.73adea0a.js rename to assets/js/545c8698.b05b41ff.js index d42f09848..512e18c4d 100644 --- a/assets/js/545c8698.73adea0a.js +++ b/assets/js/545c8698.b05b41ff.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[1248],{3905:(e,r,t)=>{t.d(r,{Zo:()=>p,kt:()=>b});var n=t(7294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var d=n.createContext({}),s=function(e){var r=n.useContext(d),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},p=function(e){var r=s(e.components);return n.createElement(d.Provider,{value:r},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=s(t),f=a,b=c["".concat(d,".").concat(f)]||c[f]||u[f]||o;return t?n.createElement(b,i(i({ref:r},p),{},{components:t})):n.createElement(b,i({ref:r},p))}));function b(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=f;var l={};for(var d in r)hasOwnProperty.call(r,d)&&(l[d]=r[d]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{t.r(r),t.d(r,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=t(7462),a=(t(7294),t(3905));const o={},i="binary-expression-operand-order",l={unversionedId:"rules/dart/binary-expression-operand-order",id:"rules/dart/binary-expression-operand-order",title:"binary-expression-operand-order",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/binary-expression-operand-order.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/binary-expression-operand-order",permalink:"/docs/rules/dart/binary-expression-operand-order",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/binary-expression-operand-order.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"ban-name",permalink:"/docs/rules/dart/ban-name"},next:{title:"double-literal-format",permalink:"/docs/rules/dart/double-literal-format"}},d={},s=[{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:s},c="wrapper";function u(e){let{components:r,...t}=e;return(0,a.kt)(c,(0,n.Z)({},p,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"binary-expression-operand-order"},"binary-expression-operand-order"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns when a literal value is on the left hand side in a binary expressions."),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final a = 1 + b;\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final a = b + 1;\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[1248],{3905:(e,r,t)=>{t.d(r,{Zo:()=>p,kt:()=>b});var n=t(7294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var d=n.createContext({}),s=function(e){var r=n.useContext(d),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},p=function(e){var r=s(e.components);return n.createElement(d.Provider,{value:r},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=s(t),f=a,b=c["".concat(d,".").concat(f)]||c[f]||u[f]||o;return t?n.createElement(b,i(i({ref:r},p),{},{components:t})):n.createElement(b,i({ref:r},p))}));function b(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=f;var l={};for(var d in r)hasOwnProperty.call(r,d)&&(l[d]=r[d]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{t.r(r),t.d(r,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=t(7462),a=(t(7294),t(3905));const o={},i="binary-expression-operand-order",l={unversionedId:"rules/dart/binary-expression-operand-order",id:"rules/dart/binary-expression-operand-order",title:"binary-expression-operand-order",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/binary-expression-operand-order.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/binary-expression-operand-order",permalink:"/docs/rules/dart/binary-expression-operand-order",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/binary-expression-operand-order.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"ban-name",permalink:"/docs/rules/dart/ban-name"},next:{title:"double-literal-format",permalink:"/docs/rules/dart/double-literal-format"}},d={},s=[{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:s},c="wrapper";function u(e){let{components:r,...t}=e;return(0,a.kt)(c,(0,n.Z)({},p,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"binary-expression-operand-order"},"binary-expression-operand-order"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns when a literal value is on the left hand side in a binary expressions."),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final a = 1 + b;\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final a = b + 1;\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/59b78236.fe1c51af.js b/assets/js/59b78236.380661d5.js similarity index 97% rename from assets/js/59b78236.fe1c51af.js rename to assets/js/59b78236.380661d5.js index cf7e7d00e..009ff4f4c 100644 --- a/assets/js/59b78236.fe1c51af.js +++ b/assets/js/59b78236.380661d5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2377],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var d=a.createContext({}),s=function(e){var t=a.useContext(d),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(d.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,d=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(d,".").concat(m)]||u[m]||c[m]||n;return r?a.createElement(f,l(l({ref:t},p),{},{components:r})):a.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,l=new Array(n);l[0]=m;var i={};for(var d in t)hasOwnProperty.call(t,d)&&(i[d]=t[d]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>c,frontMatter:()=>n,metadata:()=>i,toc:()=>s});var a=r(7462),o=(r(7294),r(3905));const n={},l="avoid-double-slash-imports",i={unversionedId:"rules/dart/avoid-double-slash-imports",id:"rules/dart/avoid-double-slash-imports",title:"avoid-double-slash-imports",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-double-slash-imports.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-double-slash-imports",permalink:"/docs/rules/dart/avoid-double-slash-imports",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-double-slash-imports.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-collection-methods-with-unrelated-types",permalink:"/docs/rules/dart/avoid-collection-methods-with-unrelated-types"},next:{title:"avoid-duplicate-exports",permalink:"/docs/rules/dart/avoid-duplicate-exports"}},d={},s=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:s},u="wrapper";function c(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-double-slash-imports"},"avoid-double-slash-imports"),(0,o.kt)("p",null,"added in: 1.6.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Warns when an import/export directive contains a double slash."),(0,o.kt)("p",null,"Double slash in the URI is considered valid, but under some circumstances the program won't run."),(0,o.kt)("p",null,"See:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/dart-lang/sdk/issues/36337"},"https://github.com/dart-lang/sdk/issues/36337"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"import 'package:test//material.dart'; // LINT\nimport 'package:mocktail/good_file.dart';\nimport '../../..//rule_utils_test.dart'; // LINT\n\nexport 'package:mocktail//good_file.dart'; // LINT\n\npart '../../..//individual/rules/empty.dart'; // LINT\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"import 'package:test/material.dart';\nimport 'package:mocktail/good_file.dart';\nimport '../../../rule_utils_test.dart';\n\nexport 'package:mocktail/good_file.dart';\n\npart '../../../individual/rules/empty.dart';\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2377],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var a=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var d=a.createContext({}),s=function(e){var t=a.useContext(d),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return a.createElement(d.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,d=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),m=o,f=u["".concat(d,".").concat(m)]||u[m]||c[m]||n;return r?a.createElement(f,l(l({ref:t},p),{},{components:r})):a.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,l=new Array(n);l[0]=m;var i={};for(var d in t)hasOwnProperty.call(t,d)&&(i[d]=t[d]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>c,frontMatter:()=>n,metadata:()=>i,toc:()=>s});var a=r(7462),o=(r(7294),r(3905));const n={},l="avoid-double-slash-imports",i={unversionedId:"rules/dart/avoid-double-slash-imports",id:"rules/dart/avoid-double-slash-imports",title:"avoid-double-slash-imports",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-double-slash-imports.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-double-slash-imports",permalink:"/docs/rules/dart/avoid-double-slash-imports",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-double-slash-imports.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-collection-methods-with-unrelated-types",permalink:"/docs/rules/dart/avoid-collection-methods-with-unrelated-types"},next:{title:"avoid-duplicate-exports",permalink:"/docs/rules/dart/avoid-duplicate-exports"}},d={},s=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:s},u="wrapper";function c(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-double-slash-imports"},"avoid-double-slash-imports"),(0,o.kt)("p",null,"added in: 1.0.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Warns when an import/export directive contains a double slash."),(0,o.kt)("p",null,"Double slash in the URI is considered valid, but under some circumstances the program won't run."),(0,o.kt)("p",null,"See:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/dart-lang/sdk/issues/36337"},"https://github.com/dart-lang/sdk/issues/36337"))),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"import 'package:test//material.dart'; // LINT\nimport 'package:mocktail/good_file.dart';\nimport '../../..//rule_utils_test.dart'; // LINT\n\nexport 'package:mocktail//good_file.dart'; // LINT\n\npart '../../..//individual/rules/empty.dart'; // LINT\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"import 'package:test/material.dart';\nimport 'package:mocktail/good_file.dart';\nimport '../../../rule_utils_test.dart';\n\nexport 'package:mocktail/good_file.dart';\n\npart '../../../individual/rules/empty.dart';\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/59e71fd1.75ce788a.js b/assets/js/59e71fd1.9433ba0c.js similarity index 97% rename from assets/js/59e71fd1.75ce788a.js rename to assets/js/59e71fd1.9433ba0c.js index 2e7418b0e..ed74cc363 100644 --- a/assets/js/59e71fd1.75ce788a.js +++ b/assets/js/59e71fd1.9433ba0c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[7624],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>g});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=r.createContext({}),m=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=m(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,l=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=m(n),d=i,g=c["".concat(s,".").concat(d)]||c[d]||u[d]||l;return n?r.createElement(g,a(a({ref:t},p),{},{components:n})):r.createElement(g,a({ref:t},p))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=n.length,a=new Array(l);a[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[c]="string"==typeof e?e:i,a[1]=o;for(var m=2;m{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>u,frontMatter:()=>l,metadata:()=>o,toc:()=>m});var r=n(7462),i=(n(7294),n(3905));const l={},a="prefer-intl-name",o={unversionedId:"rules/intl/prefer-intl-name",id:"rules/intl/prefer-intl-name",title:"prefer-intl-name",description:"added in: 1.6.0 warning.",source:"@site/docs/rules/intl/prefer-intl-name.mdx",sourceDirName:"rules/intl",slug:"/rules/intl/prefer-intl-name",permalink:"/docs/rules/intl/prefer-intl-name",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/intl/prefer-intl-name.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Intl",permalink:"/docs/rules/intl/"},next:{title:"prefer-providing-intl-description",permalink:"/docs/rules/intl/prefer-provide-intl-description"}},s={},m=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:m},c="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"prefer-intl-name"},"prefer-intl-name"),(0,i.kt)("p",null,"added in: 1.6.0 ",(0,i.kt)("span",{style:{color:"orange"}},"warning"),"."),(0,i.kt)("p",null,"Recommends to use ",(0,i.kt)("inlineCode",{parentName:"p"},"${ClassName}_${ClassMemberName}")," pattern for ",(0,i.kt)("inlineCode",{parentName:"p"},"name")," argument in ",(0,i.kt)("inlineCode",{parentName:"p"},"Intl.message()"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"Intl.plural()"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"Intl.gender()"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"Intl.select()")," methods."),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("h3",{id:"bad"},"Bad:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"import 'package:intl/intl.dart';\n\nclass SomeButtonI18n {\n static final String title1 = Intl.message(\n 'One Title',\n name: 'SomeButtonI18n_titleOne'\n );\n\n final String title2 = Intl.message(\n 'Two Title',\n name: 'titleTwo'\n );\n\n String get title3 => Intl.message(\n 'Three Title',\n name: 'SomeButtonI18n_titleThree'\n );\n\n static String get title4 => Intl.message(\n 'Four Title',\n name: 'SomeButtonI18n_titleFour'\n );\n\n String title5() => Intl.message(\n 'Five Title',\n name: 'SomeButtonI18n_titleFive'\n );\n\n static String title6() {\n return Intl.message(\n 'Six Title',\n name: 'SomeButtonI18n_titleSix'\n );\n }\n}\n\nString title7() {\n return Intl.message(\n 'Seven Title',\n name: 'SomeButtonI18n_titleSeven'\n );\n}\n\nString title8() => Intl.message(\n 'Eight Title',\n name: 'titleEight'\n);\n")),(0,i.kt)("h3",{id:"good"},"Good:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"import 'package:intl/intl.dart';\n\nclass SomeButtonCorrectI18n {\n static final int number = int.parse('1');\n\n static final String title1 = Intl.message(\n 'One Title',\n name: 'SomeButtonCorrectI18n_title1'\n );\n\n final String title2 = Intl.message(\n 'Two Title',\n name: 'SomeButtonCorrectI18n_title2'\n );\n\n String get title3 => Intl.message(\n 'Three Title',\n name: 'SomeButtonCorrectI18n_title3'\n );\n\n static String get title4 => Intl.message(\n 'Four Title',\n name: 'SomeButtonCorrectI18n_title4'\n );\n\n String get title5 => Intl.message(\n 'Three Title',\n name: 'SomeButtonCorrectI18n_title5'\n );\n\n static String get title6 => Intl.message(\n 'Four Title',\n name: 'SomeButtonCorrectI18n_title6'\n );\n}\n\nString title77() {\n return Intl.message(\n 'Seven seven Title',\n name: 'title77'\n );\n}\n\nString title8() => Intl.message(\n 'Eight Title',\n name: 'title8'\n);\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[7624],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>g});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=r.createContext({}),m=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=m(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,l=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=m(n),d=i,g=c["".concat(s,".").concat(d)]||c[d]||u[d]||l;return n?r.createElement(g,a(a({ref:t},p),{},{components:n})):r.createElement(g,a({ref:t},p))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=n.length,a=new Array(l);a[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[c]="string"==typeof e?e:i,a[1]=o;for(var m=2;m{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>u,frontMatter:()=>l,metadata:()=>o,toc:()=>m});var r=n(7462),i=(n(7294),n(3905));const l={},a="prefer-intl-name",o={unversionedId:"rules/intl/prefer-intl-name",id:"rules/intl/prefer-intl-name",title:"prefer-intl-name",description:"added in: 1.0.0 warning.",source:"@site/docs/rules/intl/prefer-intl-name.mdx",sourceDirName:"rules/intl",slug:"/rules/intl/prefer-intl-name",permalink:"/docs/rules/intl/prefer-intl-name",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/intl/prefer-intl-name.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Intl",permalink:"/docs/rules/intl/"},next:{title:"prefer-providing-intl-description",permalink:"/docs/rules/intl/prefer-provide-intl-description"}},s={},m=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:m},c="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"prefer-intl-name"},"prefer-intl-name"),(0,i.kt)("p",null,"added in: 1.0.0 ",(0,i.kt)("span",{style:{color:"orange"}},"warning"),"."),(0,i.kt)("p",null,"Recommends to use ",(0,i.kt)("inlineCode",{parentName:"p"},"${ClassName}_${ClassMemberName}")," pattern for ",(0,i.kt)("inlineCode",{parentName:"p"},"name")," argument in ",(0,i.kt)("inlineCode",{parentName:"p"},"Intl.message()"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"Intl.plural()"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"Intl.gender()"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"Intl.select()")," methods."),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("h3",{id:"bad"},"Bad:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"import 'package:intl/intl.dart';\n\nclass SomeButtonI18n {\n static final String title1 = Intl.message(\n 'One Title',\n name: 'SomeButtonI18n_titleOne'\n );\n\n final String title2 = Intl.message(\n 'Two Title',\n name: 'titleTwo'\n );\n\n String get title3 => Intl.message(\n 'Three Title',\n name: 'SomeButtonI18n_titleThree'\n );\n\n static String get title4 => Intl.message(\n 'Four Title',\n name: 'SomeButtonI18n_titleFour'\n );\n\n String title5() => Intl.message(\n 'Five Title',\n name: 'SomeButtonI18n_titleFive'\n );\n\n static String title6() {\n return Intl.message(\n 'Six Title',\n name: 'SomeButtonI18n_titleSix'\n );\n }\n}\n\nString title7() {\n return Intl.message(\n 'Seven Title',\n name: 'SomeButtonI18n_titleSeven'\n );\n}\n\nString title8() => Intl.message(\n 'Eight Title',\n name: 'titleEight'\n);\n")),(0,i.kt)("h3",{id:"good"},"Good:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"import 'package:intl/intl.dart';\n\nclass SomeButtonCorrectI18n {\n static final int number = int.parse('1');\n\n static final String title1 = Intl.message(\n 'One Title',\n name: 'SomeButtonCorrectI18n_title1'\n );\n\n final String title2 = Intl.message(\n 'Two Title',\n name: 'SomeButtonCorrectI18n_title2'\n );\n\n String get title3 => Intl.message(\n 'Three Title',\n name: 'SomeButtonCorrectI18n_title3'\n );\n\n static String get title4 => Intl.message(\n 'Four Title',\n name: 'SomeButtonCorrectI18n_title4'\n );\n\n String get title5 => Intl.message(\n 'Three Title',\n name: 'SomeButtonCorrectI18n_title5'\n );\n\n static String get title6 => Intl.message(\n 'Four Title',\n name: 'SomeButtonCorrectI18n_title6'\n );\n}\n\nString title77() {\n return Intl.message(\n 'Seven seven Title',\n name: 'title77'\n );\n}\n\nString title8() => Intl.message(\n 'Eight Title',\n name: 'title8'\n);\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5afd84da.54ca5e5e.js b/assets/js/5afd84da.54ca5e5e.js new file mode 100644 index 000000000..c267d2cde --- /dev/null +++ b/assets/js/5afd84da.54ca5e5e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[294],{3905:(n,e,t)=>{t.d(e,{Zo:()=>p,kt:()=>f});var i=t(7294);function o(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function a(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,i)}return t}function l(n){for(var e=1;e=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}var s=i.createContext({}),d=function(n){var e=i.useContext(s),t=e;return n&&(t="function"==typeof n?n(e):l(l({},e),n)),t},p=function(n){var e=d(n.components);return i.createElement(s.Provider,{value:e},n.children)},c="mdxType",m={inlineCode:"code",wrapper:function(n){var e=n.children;return i.createElement(i.Fragment,{},e)}},u=i.forwardRef((function(n,e){var t=n.components,o=n.mdxType,a=n.originalType,s=n.parentName,p=r(n,["components","mdxType","originalType","parentName"]),c=d(t),u=o,f=c["".concat(s,".").concat(u)]||c[u]||m[u]||a;return t?i.createElement(f,l(l({ref:e},p),{},{components:t})):i.createElement(f,l({ref:e},p))}));function f(n,e){var t=arguments,o=e&&e.mdxType;if("string"==typeof n||o){var a=t.length,l=new Array(a);l[0]=u;var r={};for(var s in e)hasOwnProperty.call(e,s)&&(r[s]=e[s]);r.originalType=n,r[c]="string"==typeof n?n:o,l[1]=r;for(var d=2;d{t.d(e,{Z:()=>c});var i=t(7294),o=t(6010),a=t(5281),l=t(5999);const r={admonition:"admonition_LlT9",admonitionHeading:"admonitionHeading_tbUL",admonitionIcon:"admonitionIcon_kALy",admonitionContent:"admonitionContent_S0QG"};const s={note:{infimaClassName:"secondary",iconComponent:function(){return i.createElement("svg",{viewBox:"0 0 14 16"},i.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:i.createElement(l.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return i.createElement("svg",{viewBox:"0 0 12 16"},i.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:i.createElement(l.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return i.createElement("svg",{viewBox:"0 0 12 16"},i.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:i.createElement(l.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return i.createElement("svg",{viewBox:"0 0 14 16"},i.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:i.createElement(l.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return i.createElement("svg",{viewBox:"0 0 16 16"},i.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:i.createElement(l.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},d={secondary:"note",important:"info",success:"tip",warning:"danger"};function p(n){const{mdxAdmonitionTitle:e,rest:t}=function(n){const e=i.Children.toArray(n),t=e.find((n=>i.isValidElement(n)&&"mdxAdmonitionTitle"===n.props?.mdxType)),o=i.createElement(i.Fragment,null,e.filter((n=>n!==t)));return{mdxAdmonitionTitle:t,rest:o}}(n.children);return{...n,title:n.title??e,children:t}}function c(n){const{children:e,type:t,title:l,icon:c}=p(n),m=function(n){const e=d[n]??n,t=s[e];return t||(console.warn(`No admonition config found for admonition type "${e}". Using Info as fallback.`),s.info)}(t),u=l??m.label,{iconComponent:f}=m,y=c??i.createElement(f,null);return i.createElement("div",{className:(0,o.Z)(a.k.common.admonition,a.k.common.admonitionType(n.type),"alert",`alert--${m.infimaClassName}`,r.admonition)},i.createElement("div",{className:r.admonitionHeading},i.createElement("span",{className:r.admonitionIcon},y),u),i.createElement("div",{className:r.admonitionContent},e))}},4778:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>l,metadata:()=>s,toc:()=>p});var i=t(7462),o=(t(7294),t(3905)),a=t(3612);const l={sidebar_position:5},r="Rules",s={unversionedId:"rules/rules",id:"rules/rules",title:"Rules",description:"General rules configuration is described here.",source:"@site/docs/rules/rules.mdx",sourceDirName:"rules",slug:"/rules/",permalink:"/docs/rules/",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/rules.mdx",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Fix",permalink:"/docs/cli/fix"},next:{title:"Dart",permalink:"/docs/rules/dart/"}},d={},p=[{value:"Dart",id:"dart",level:2},{value:"Flutter specific",id:"flutter-specific",level:2},{value:"Flame",id:"flame",level:2},{value:"Intl specific",id:"intl-specific",level:2}],c={toc:p},m="wrapper";function u(n){let{components:e,...t}=n;return(0,o.kt)(m,(0,i.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"rules"},"Rules"),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"General rules configuration is ",(0,o.kt)("a",{parentName:"p",href:"../configuration/configuring-rules"},"described here"),".")),(0,o.kt)("p",null,"Rules are grouped by category to help you understand their purpose. Each rule has emojis denoting:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u2699\ufe0f - this rule is configurable"),(0,o.kt)("li",{parentName:"ul"},"\ud83d\udee0 - some problems reported by this rule can be fixed by editor suggestions"),(0,o.kt)("li",{parentName:"ul"},"\u26a0\ufe0f - this rule is deprecated and will be removed in the next major release ")),(0,o.kt)("h2",{id:"dart"},"Dart"),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"arguments-ordering",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Enforces named argument order in function and constructor invocations to be the same as corresponding named parameter declaration order.\nstyle\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-banned-imports\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Configure some imports that you want to ban.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-cascade-after-if-null\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a cascade expression is used after if null (??) binary expression without parentheses.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-collection-methods-with-unrelated-types\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Avoid using collection methods with unrelated types, such as accessing a map of integers using a string key.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-double-slash-imports\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when an import/export directive contains a double slash.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-duplicate-exports\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a file has multiple exports declarations with the same URI.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-dynamic\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when dynamic type is used as variable type in declaration, return type of a function, etc.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-global-state\n",mdxType:"Admonition"},(0,o.kt)("p",null,"Warns about usage mutable global variables. warning")),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-ignoring-return-values\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a return value of a method or function invocation or a class instance property access is not used.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-late-keyword\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a field or variable is declared with a late keyword.\nwarning\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-missing-enum-constant-in-map\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a enum constant is missing in a map declaration.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-nested-conditional-expressions\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns about nested conditional expressions.\nstyle"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-non-ascii-symbols\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a string literal contains non ascii characters.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-non-null-assertion\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when non null assertion operator ! (or \u201cbang\u201d operator) is used for a property access or method invocation. The operator check works at runtime and it may fail and throw a runtime exception.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-passing-async-when-sync-expected\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when an asynchronous function is used as an argument where a synchronous function is expected.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-redundant-async\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Checks for redundant async in a method or function body.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-throw-in-catch-block\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when call throw in a catch block.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-top-level-members-in-tests\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a public top-level member (except the entrypoint) is declared inside a test file.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-unnecessary-conditionals\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Checks for unnessesary conditional expressions.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-unnecessary-type-assertions\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns about unnecessary usage of is and whereType operators.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-unnecessary-type-casts\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns about unnecessary usage of as operators.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-unrelated-type-assertions\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns about unrelated usages of is operators.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-unused-parameters\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Checks for unused parameters inside a function or method body.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"ban-name\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Configure some names that you want to ban.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"binary-expression-operand-order\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a literal value is on the left hand side in a binary expressions.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"double-literal-format\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Checks that double literals should begin with 0. instead of just ., and should not end with a trailing 0.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"format-comment\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Prefer format comments like sentences.\nstyle\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"list-all-equatable-fields\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a field is not added to props getter of a class that extends Equatable or EquatableMixin.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"member-ordering\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Enforces ordering for a class members.\nstyle\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"missing-test-assertion\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns that there is no assertion in the test.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"newline-before-return\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Enforces blank line between statements and return in a block.\nstyle\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"no-boolean-literal-compare\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns on comparison to a boolean literal, as in x == true.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"no-empty-block\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Disallows empty blocks except catch clause block.\nstyle"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"no-equal-arguments\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when equal arguments are passed to a function or method invocation.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"no-equal-then-else\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when if statement has equal then and else statements or conditional expression has equal then and else expressions.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"no-magic-number\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns against using number literals outside of named constants or variables.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"no-object-declaration\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a class member is declared with Object type.\nstyle"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-async-await\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Recommends to use async/await syntax to handle a Future result instead of .then() invocation.\nstyle"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-commenting-analyzer-ignores\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when // ignore: comments are left without any additional description why this ignore is applied.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-conditional-expressions\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Recommends to use a conditional expression instead of assigning to the same thing or return statement in each branch of an if statement.\nstyle\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-correct-identifier-length\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when an identifier name length is very short or long.\nstyle\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-correct-test-file-name\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns if the file within /test contains a main, but the file name doesn't end with _test.dart.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-correct-type-name\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Type name should only contain alphanumeric characters, start with an uppercase character and span between min-length and max-length characters in length.\nstyle\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-enums-by-name\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Since Dart 2.15 it's possible to use byName method on enum values prop instead of searching the value with firstWhere.\nstyle"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-first\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Use first to gets the first element.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-immediate-return\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a method or a function returns a variable declared right before the return statement.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-iterable-of\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when List.from() factory is used instead of List.of().\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-last\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Use last to gets the last element.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-match-file-name\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a file name does not match the class name.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-moving-to-variable\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a property access or a method invocation start with duplicated chains of other invocations / accesses inside a single function or method block.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-static-class\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Suggests to use static class member instead of global constants, variables and functions.\nstyle\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-trailing-comma",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Checks for a trailing comma for arguments, parameters, enum values and collections.\nstyle\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"tag-name",mdxType:"Admonition"},(0,o.kt)("p",null,"Warns when a tag name does not match the class name. warning \u2699\ufe0f\ud83d\udee0")),(0,o.kt)("h2",{id:"flutter-specific"},"Flutter specific"),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"always-remove-listener\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when an event listener is added but never removed.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-border-all\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Avoid using Border.all constructor.\nperformance\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-returning-widgets\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a method or function returns a Widget or subclass of a Widget.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-shrink-wrap-in-lists\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a ListView widget with shrinkWrap parameter is wrapped in a Column, Row or another ListView widget.\nperformance"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-unnecessary-setstate\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when setState is called inside initState, didUpdateWidget or build methods and when it is called from a sync method that is called inside those methods.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"use-setstate-synchronously",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when setState is called past an await point.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-expanded-as-spacer\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Avoid using Expanded widget as Spacer.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-wrapping-in-padding\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a widget is wrapped in a Padding widget but has a padding settings by itself.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"check-for-equals-in-render-object-setters\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a RenderObject setter doesn't have an equality check for the new value.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"consistent-update-render-object\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when an updateRenderObject method is absent or doesn't update all fields set in createRenderObject.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-const-border-radius\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a non-const border radius is used.\nperformance\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-correct-edge-insets-constructor\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Prefer correct EdgeInsets constructor.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-extracting-callbacks\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns about inline callbacks in a widget tree and suggest to extract them to a widget method.\nstyle\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-single-widget-per-file\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a file contains more than a single widget.\nstyle\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-using-list-view\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a Column widget with only children parameter is wrapped in a SingleChildScrollView widget.\nperformance"))),(0,o.kt)("h2",{id:"flame"},"Flame"),(0,o.kt)("p",null,"Lints for the ",(0,o.kt)("a",{parentName:"p",href:"https://pub.dev/packages/flame"},"Flame package"),"."),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-creating-vector-in-update\n",mdxType:"Admonition"},(0,o.kt)("p",null,"Warns when a Vector2 is created inside a Component's update method. warning")),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-initializing-in-on-mount\n",mdxType:"Admonition"},(0,o.kt)("p",null,"Warns when a late final variable is being initialized in the Component's onMount method. warning")),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-redundant-async-on-load\n",mdxType:"Admonition"},(0,o.kt)("p",null,"Warns when a Component's onLoad method can be made sync. warning \ud83d\udee0")),(0,o.kt)("h2",{id:"intl-specific"},"Intl specific"),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-intl-name\n",mdxType:"Admonition"},(0,o.kt)("p",null,"Recommends to use ClassName_ClassMemberName pattern for Intl methods name argument. style \ud83d\udee0")),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-provide-intl-description\n",mdxType:"Admonition"},(0,o.kt)("p",null,"Warns when a Intl method invoked without a description. warning")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5afd84da.ad4cd905.js b/assets/js/5afd84da.ad4cd905.js deleted file mode 100644 index 15f502a1c..000000000 --- a/assets/js/5afd84da.ad4cd905.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[294],{3905:(n,e,t)=>{t.d(e,{Zo:()=>p,kt:()=>f});var i=t(7294);function o(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function a(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,i)}return t}function l(n){for(var e=1;e=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}var s=i.createContext({}),d=function(n){var e=i.useContext(s),t=e;return n&&(t="function"==typeof n?n(e):l(l({},e),n)),t},p=function(n){var e=d(n.components);return i.createElement(s.Provider,{value:e},n.children)},c="mdxType",m={inlineCode:"code",wrapper:function(n){var e=n.children;return i.createElement(i.Fragment,{},e)}},u=i.forwardRef((function(n,e){var t=n.components,o=n.mdxType,a=n.originalType,s=n.parentName,p=r(n,["components","mdxType","originalType","parentName"]),c=d(t),u=o,f=c["".concat(s,".").concat(u)]||c[u]||m[u]||a;return t?i.createElement(f,l(l({ref:e},p),{},{components:t})):i.createElement(f,l({ref:e},p))}));function f(n,e){var t=arguments,o=e&&e.mdxType;if("string"==typeof n||o){var a=t.length,l=new Array(a);l[0]=u;var r={};for(var s in e)hasOwnProperty.call(e,s)&&(r[s]=e[s]);r.originalType=n,r[c]="string"==typeof n?n:o,l[1]=r;for(var d=2;d{t.d(e,{Z:()=>c});var i=t(7294),o=t(6010),a=t(5281),l=t(5999);const r={admonition:"admonition_LlT9",admonitionHeading:"admonitionHeading_tbUL",admonitionIcon:"admonitionIcon_kALy",admonitionContent:"admonitionContent_S0QG"};const s={note:{infimaClassName:"secondary",iconComponent:function(){return i.createElement("svg",{viewBox:"0 0 14 16"},i.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:i.createElement(l.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return i.createElement("svg",{viewBox:"0 0 12 16"},i.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:i.createElement(l.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return i.createElement("svg",{viewBox:"0 0 12 16"},i.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:i.createElement(l.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return i.createElement("svg",{viewBox:"0 0 14 16"},i.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:i.createElement(l.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return i.createElement("svg",{viewBox:"0 0 16 16"},i.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:i.createElement(l.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},d={secondary:"note",important:"info",success:"tip",warning:"danger"};function p(n){const{mdxAdmonitionTitle:e,rest:t}=function(n){const e=i.Children.toArray(n),t=e.find((n=>i.isValidElement(n)&&"mdxAdmonitionTitle"===n.props?.mdxType)),o=i.createElement(i.Fragment,null,e.filter((n=>n!==t)));return{mdxAdmonitionTitle:t,rest:o}}(n.children);return{...n,title:n.title??e,children:t}}function c(n){const{children:e,type:t,title:l,icon:c}=p(n),m=function(n){const e=d[n]??n,t=s[e];return t||(console.warn(`No admonition config found for admonition type "${e}". Using Info as fallback.`),s.info)}(t),u=l??m.label,{iconComponent:f}=m,y=c??i.createElement(f,null);return i.createElement("div",{className:(0,o.Z)(a.k.common.admonition,a.k.common.admonitionType(n.type),"alert",`alert--${m.infimaClassName}`,r.admonition)},i.createElement("div",{className:r.admonitionHeading},i.createElement("span",{className:r.admonitionIcon},y),u),i.createElement("div",{className:r.admonitionContent},e))}},4778:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>l,metadata:()=>s,toc:()=>p});var i=t(7462),o=(t(7294),t(3905)),a=t(3612);const l={sidebar_position:5},r="Rules",s={unversionedId:"rules/rules",id:"rules/rules",title:"Rules",description:"General rules configuration is described here.",source:"@site/docs/rules/rules.mdx",sourceDirName:"rules",slug:"/rules/",permalink:"/docs/rules/",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/rules.mdx",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Check Unused L10n",permalink:"/docs/cli/check-unused-l10n"},next:{title:"Dart",permalink:"/docs/rules/dart/"}},d={},p=[{value:"Dart",id:"dart",level:2},{value:"Flutter specific",id:"flutter-specific",level:2},{value:"Flame",id:"flame",level:2},{value:"Intl specific",id:"intl-specific",level:2}],c={toc:p},m="wrapper";function u(n){let{components:e,...t}=n;return(0,o.kt)(m,(0,i.Z)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"rules"},"Rules"),(0,o.kt)("admonition",{type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"General rules configuration is ",(0,o.kt)("a",{parentName:"p",href:"../configuration/configuring-rules"},"described here"),".")),(0,o.kt)("p",null,"Rules are grouped by category to help you understand their purpose. Each rule has emojis denoting:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u2699\ufe0f - this rule is configurable"),(0,o.kt)("li",{parentName:"ul"},"\ud83d\udee0 - some problems reported by this rule can be fixed by editor suggestions"),(0,o.kt)("li",{parentName:"ul"},"\u26a0\ufe0f - this rule is deprecated and will be removed in the next major release ")),(0,o.kt)("h2",{id:"dart"},"Dart"),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"arguments-ordering",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Enforces named argument order in function and constructor invocations to be the same as corresponding named parameter declaration order.\nstyle\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-banned-imports\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Configure some imports that you want to ban.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-cascade-after-if-null\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a cascade expression is used after if null (??) binary expression without parentheses.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-collection-methods-with-unrelated-types\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Avoid using collection methods with unrelated types, such as accessing a map of integers using a string key.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-double-slash-imports\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when an import/export directive contains a double slash.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-duplicate-exports\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a file has multiple exports declarations with the same URI.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-dynamic\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when dynamic type is used as variable type in declaration, return type of a function, etc.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-global-state\n",mdxType:"Admonition"},(0,o.kt)("p",null,"Warns about usage mutable global variables. warning")),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-ignoring-return-values\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a return value of a method or function invocation or a class instance property access is not used.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-late-keyword\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a field or variable is declared with a late keyword.\nwarning\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-missing-enum-constant-in-map\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a enum constant is missing in a map declaration.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-nested-conditional-expressions\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns about nested conditional expressions.\nstyle"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-non-ascii-symbols\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a string literal contains non ascii characters.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-non-null-assertion\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when non null assertion operator ! (or \u201cbang\u201d operator) is used for a property access or method invocation. The operator check works at runtime and it may fail and throw a runtime exception.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-passing-async-when-sync-expected\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when an asynchronous function is used as an argument where a synchronous function is expected.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-redundant-async\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Checks for redundant async in a method or function body.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-throw-in-catch-block\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when call throw in a catch block.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-top-level-members-in-tests\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a public top-level member (except the entrypoint) is declared inside a test file.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-unnecessary-conditionals\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Checks for unnessesary conditional expressions.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-unnecessary-type-assertions\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns about unnecessary usage of is and whereType operators.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-unnecessary-type-casts\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns about unnecessary usage of as operators.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-unrelated-type-assertions\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns about unrelated usages of is operators.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-unused-parameters\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Checks for unused parameters inside a function or method body.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"ban-name\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Configure some names that you want to ban.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"binary-expression-operand-order\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a literal value is on the left hand side in a binary expressions.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"double-literal-format\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Checks that double literals should begin with 0. instead of just ., and should not end with a trailing 0.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"format-comment\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Prefer format comments like sentences.\nstyle\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"list-all-equatable-fields\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a field is not added to props getter of a class that extends Equatable or EquatableMixin.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"member-ordering\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Enforces ordering for a class members.\nstyle\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"missing-test-assertion\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns that there is no assertion in the test.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"newline-before-return\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Enforces blank line between statements and return in a block.\nstyle\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"no-boolean-literal-compare\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns on comparison to a boolean literal, as in x == true.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"no-empty-block\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Disallows empty blocks except catch clause block.\nstyle"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"no-equal-arguments\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when equal arguments are passed to a function or method invocation.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"no-equal-then-else\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when if statement has equal then and else statements or conditional expression has equal then and else expressions.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"no-magic-number\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns against using number literals outside of named constants or variables.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"no-object-declaration\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a class member is declared with Object type.\nstyle"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-async-await\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Recommends to use async/await syntax to handle a Future result instead of .then() invocation.\nstyle"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-commenting-analyzer-ignores\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when // ignore: comments are left without any additional description why this ignore is applied.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-conditional-expressions\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Recommends to use a conditional expression instead of assigning to the same thing or return statement in each branch of an if statement.\nstyle\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-correct-identifier-length\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when an identifier name length is very short or long.\nstyle\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-correct-test-file-name\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns if the file within /test contains a main, but the file name doesn't end with _test.dart.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-correct-type-name\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Type name should only contain alphanumeric characters, start with an uppercase character and span between min-length and max-length characters in length.\nstyle\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-enums-by-name\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Since Dart 2.15 it's possible to use byName method on enum values prop instead of searching the value with firstWhere.\nstyle"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-first\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Use first to gets the first element.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-immediate-return\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a method or a function returns a variable declared right before the return statement.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-iterable-of\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when List.from() factory is used instead of List.of().\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-last\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Use last to gets the last element.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-match-file-name\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a file name does not match the class name.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-moving-to-variable\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a property access or a method invocation start with duplicated chains of other invocations / accesses inside a single function or method block.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-static-class\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Suggests to use static class member instead of global constants, variables and functions.\nstyle\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-trailing-comma",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Checks for a trailing comma for arguments, parameters, enum values and collections.\nstyle\n\u2699\ufe0f\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"tag-name",mdxType:"Admonition"},(0,o.kt)("p",null,"Warns when a tag name does not match the class name. warning \u2699\ufe0f\ud83d\udee0")),(0,o.kt)("h2",{id:"flutter-specific"},"Flutter specific"),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"always-remove-listener\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when an event listener is added but never removed.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-border-all\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Avoid using Border.all constructor.\nperformance\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-returning-widgets\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a method or function returns a Widget or subclass of a Widget.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-shrink-wrap-in-lists\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a ListView widget with shrinkWrap parameter is wrapped in a Column, Row or another ListView widget.\nperformance"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-unnecessary-setstate\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when setState is called inside initState, didUpdateWidget or build methods and when it is called from a sync method that is called inside those methods.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"use-setstate-synchronously",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when setState is called past an await point.\nwarning\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-expanded-as-spacer\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Avoid using Expanded widget as Spacer.\nwarning\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-wrapping-in-padding\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a widget is wrapped in a Padding widget but has a padding settings by itself.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"check-for-equals-in-render-object-setters\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a RenderObject setter doesn't have an equality check for the new value.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"consistent-update-render-object\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when an updateRenderObject method is absent or doesn't update all fields set in createRenderObject.\nwarning"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-const-border-radius\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a non-const border radius is used.\nperformance\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-correct-edge-insets-constructor\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Prefer correct EdgeInsets constructor.\nstyle\n\ud83d\udee0"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-extracting-callbacks\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns about inline callbacks in a widget tree and suggest to extract them to a widget method.\nstyle\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-single-widget-per-file\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a file contains more than a single widget.\nstyle\n\u2699\ufe0f"))),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-using-list-view\n",mdxType:"Admonition"},(0,o.kt)("p",null,(0,o.kt)("p",null,"Warns when a Column widget with only children parameter is wrapped in a SingleChildScrollView widget.\nperformance"))),(0,o.kt)("h2",{id:"flame"},"Flame"),(0,o.kt)("p",null,"Lints for the ",(0,o.kt)("a",{parentName:"p",href:"https://pub.dev/packages/flame"},"Flame package"),"."),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-creating-vector-in-update\n",mdxType:"Admonition"},(0,o.kt)("p",null,"Warns when a Vector2 is created inside a Component's update method. warning")),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-initializing-in-on-mount\n",mdxType:"Admonition"},(0,o.kt)("p",null,"Warns when a late final variable is being initialized in the Component's onMount method. warning")),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"avoid-redundant-async-on-load\n",mdxType:"Admonition"},(0,o.kt)("p",null,"Warns when a Component's onLoad method can be made sync. warning \ud83d\udee0")),(0,o.kt)("h2",{id:"intl-specific"},"Intl specific"),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-intl-name\n",mdxType:"Admonition"},(0,o.kt)("p",null,"Recommends to use ClassName_ClassMemberName pattern for Intl methods name argument. style \ud83d\udee0")),(0,o.kt)(a.Z,{type:"info",icon:"-",title:"prefer-provide-intl-description\n",mdxType:"Admonition"},(0,o.kt)("p",null,"Warns when a Intl method invoked without a description. warning")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5dd620ec.30e1f018.js b/assets/js/5dd620ec.6f647cb9.js similarity index 97% rename from assets/js/5dd620ec.30e1f018.js rename to assets/js/5dd620ec.6f647cb9.js index 9f48d725e..46aa0ac87 100644 --- a/assets/js/5dd620ec.30e1f018.js +++ b/assets/js/5dd620ec.6f647cb9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[8981],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,i=e.originalType,u=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),c=s(r),f=l,m=c["".concat(u,".").concat(f)]||c[f]||d[f]||i;return r?n.createElement(m,o(o({ref:t},p),{},{components:r})):n.createElement(m,o({ref:t},p))}));function m(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=r.length,o=new Array(i);o[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a[c]="string"==typeof e?e:l,o[1]=a;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>s});var n=r(7462),l=(r(7294),r(3905));const i={},o="prefer-using-list-view",a={unversionedId:"rules/flutter/prefer-using-list-view",id:"rules/flutter/prefer-using-list-view",title:"prefer-using-list-view",description:"added in: 1.6.0 performance",source:"@site/docs/rules/flutter/prefer-using-list-view.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/prefer-using-list-view",permalink:"/docs/rules/flutter/prefer-using-list-view",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/prefer-using-list-view.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-single-widget-per-file",permalink:"/docs/rules/flutter/prefer-single-widget-per-file"},next:{title:"use-setstate-synchronously",permalink:"/docs/rules/flutter/use-setstate-synchronously"}},u={},s=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:s},c="wrapper";function d(e){let{components:t,...r}=e;return(0,l.kt)(c,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"prefer-using-list-view"},"prefer-using-list-view"),(0,l.kt)("p",null,"added in: 1.6.0 ",(0,l.kt)("span",{style:{color:"blue"}},"performance")),(0,l.kt)("p",null,"Warns when a ",(0,l.kt)("inlineCode",{parentName:"p"},"Column")," widget with only ",(0,l.kt)("inlineCode",{parentName:"p"},"children")," parameter is wrapped in a ",(0,l.kt)("inlineCode",{parentName:"p"},"SingleChildScrollView")," widget."),(0,l.kt)("p",null,"Additional resources:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://stackoverflow.com/a/62147092"},"https://stackoverflow.com/a/62147092"))),(0,l.kt)("h2",{id:"example"},"Example"),(0,l.kt)("h3",{id:"bad"},"Bad:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-dart"},"SingleChildScrollView(\n child: Column(\n children: [\n Text('Wow lint rule'),\n Text('Wow another lint rule'),\n ],\n ),\n),\n")),(0,l.kt)("h3",{id:"good"},"Good:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-dart"},"ListView(\n children: [\n Text('Wow lint rule'),\n Text('Wow another lint rule'),\n ],\n),\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[8981],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,i=e.originalType,u=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),c=s(r),f=l,m=c["".concat(u,".").concat(f)]||c[f]||d[f]||i;return r?n.createElement(m,o(o({ref:t},p),{},{components:r})):n.createElement(m,o({ref:t},p))}));function m(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=r.length,o=new Array(i);o[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a[c]="string"==typeof e?e:l,o[1]=a;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>s});var n=r(7462),l=(r(7294),r(3905));const i={},o="prefer-using-list-view",a={unversionedId:"rules/flutter/prefer-using-list-view",id:"rules/flutter/prefer-using-list-view",title:"prefer-using-list-view",description:"added in: 1.0.0 performance",source:"@site/docs/rules/flutter/prefer-using-list-view.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/prefer-using-list-view",permalink:"/docs/rules/flutter/prefer-using-list-view",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/prefer-using-list-view.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-single-widget-per-file",permalink:"/docs/rules/flutter/prefer-single-widget-per-file"},next:{title:"use-setstate-synchronously",permalink:"/docs/rules/flutter/use-setstate-synchronously"}},u={},s=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:s},c="wrapper";function d(e){let{components:t,...r}=e;return(0,l.kt)(c,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"prefer-using-list-view"},"prefer-using-list-view"),(0,l.kt)("p",null,"added in: 1.0.0 ",(0,l.kt)("span",{style:{color:"blue"}},"performance")),(0,l.kt)("p",null,"Warns when a ",(0,l.kt)("inlineCode",{parentName:"p"},"Column")," widget with only ",(0,l.kt)("inlineCode",{parentName:"p"},"children")," parameter is wrapped in a ",(0,l.kt)("inlineCode",{parentName:"p"},"SingleChildScrollView")," widget."),(0,l.kt)("p",null,"Additional resources:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://stackoverflow.com/a/62147092"},"https://stackoverflow.com/a/62147092"))),(0,l.kt)("h2",{id:"example"},"Example"),(0,l.kt)("h3",{id:"bad"},"Bad:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-dart"},"SingleChildScrollView(\n child: Column(\n children: [\n Text('Wow lint rule'),\n Text('Wow another lint rule'),\n ],\n ),\n),\n")),(0,l.kt)("h3",{id:"good"},"Good:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-dart"},"ListView(\n children: [\n Text('Wow lint rule'),\n Text('Wow another lint rule'),\n ],\n),\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5e6ba485.a1e44035.js b/assets/js/5e6ba485.c6ae729d.js similarity index 96% rename from assets/js/5e6ba485.a1e44035.js rename to assets/js/5e6ba485.c6ae729d.js index 1b13dfca5..9d1b14fa9 100644 --- a/assets/js/5e6ba485.a1e44035.js +++ b/assets/js/5e6ba485.c6ae729d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[7224],{3905:(e,r,t)=>{t.d(r,{Zo:()=>d,kt:()=>y});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),c=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},d=function(e){var r=c(e.components);return n.createElement(l.Provider,{value:r},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(t),f=o,y=u["".concat(l,".").concat(f)]||u[f]||p[f]||a;return t?n.createElement(y,i(i({ref:r},d),{},{components:t})):n.createElement(y,i({ref:r},d))}));function y(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=f;var s={};for(var l in r)hasOwnProperty.call(r,l)&&(s[l]=r[l]);s.originalType=e,s[u]="string"==typeof e?e:o,i[1]=s;for(var c=2;c{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var n=t(7462),o=(t(7294),t(3905));const a={},i="avoid-unnecessary-conditionals",s={unversionedId:"rules/dart/avoid-unnecessary-conditionals",id:"rules/dart/avoid-unnecessary-conditionals",title:"avoid-unnecessary-conditionals",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-unnecessary-conditionals.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-unnecessary-conditionals",permalink:"/docs/rules/dart/avoid-unnecessary-conditionals",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-unnecessary-conditionals.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-top-level-members-in-tests",permalink:"/docs/rules/dart/avoid-top-level-members-in-tests"},next:{title:"avoid-unnecessary-type-assertions",permalink:"/docs/rules/dart/avoid-unnecessary-type-assertions"}},l={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:c},u="wrapper";function p(e){let{components:r,...t}=e;return(0,o.kt)(u,(0,n.Z)({},d,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-unnecessary-conditionals"},"avoid-unnecessary-conditionals"),(0,o.kt)("p",null,"added in: 1.6.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Checks for unnecessary conditional expressions."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"bool baz() => foo ? true : false; // LINT\n\nbool bar() => foo ? false : true; // LINT\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"bool baz() => foo;\n\nbool bar() => !foo;\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[7224],{3905:(e,r,t)=>{t.d(r,{Zo:()=>d,kt:()=>y});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),c=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},d=function(e){var r=c(e.components);return n.createElement(l.Provider,{value:r},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),u=c(t),f=o,y=u["".concat(l,".").concat(f)]||u[f]||p[f]||a;return t?n.createElement(y,i(i({ref:r},d),{},{components:t})):n.createElement(y,i({ref:r},d))}));function y(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=f;var s={};for(var l in r)hasOwnProperty.call(r,l)&&(s[l]=r[l]);s.originalType=e,s[u]="string"==typeof e?e:o,i[1]=s;for(var c=2;c{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var n=t(7462),o=(t(7294),t(3905));const a={},i="avoid-unnecessary-conditionals",s={unversionedId:"rules/dart/avoid-unnecessary-conditionals",id:"rules/dart/avoid-unnecessary-conditionals",title:"avoid-unnecessary-conditionals",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-unnecessary-conditionals.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-unnecessary-conditionals",permalink:"/docs/rules/dart/avoid-unnecessary-conditionals",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-unnecessary-conditionals.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-top-level-members-in-tests",permalink:"/docs/rules/dart/avoid-top-level-members-in-tests"},next:{title:"avoid-unnecessary-type-assertions",permalink:"/docs/rules/dart/avoid-unnecessary-type-assertions"}},l={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:c},u="wrapper";function p(e){let{components:r,...t}=e;return(0,o.kt)(u,(0,n.Z)({},d,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-unnecessary-conditionals"},"avoid-unnecessary-conditionals"),(0,o.kt)("p",null,"added in: 1.0.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Checks for unnecessary conditional expressions."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"bool baz() => foo ? true : false; // LINT\n\nbool bar() => foo ? false : true; // LINT\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"bool baz() => foo;\n\nbool bar() => !foo;\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/633d8a16.cc2099a1.js b/assets/js/633d8a16.b56a64f6.js similarity index 97% rename from assets/js/633d8a16.cc2099a1.js rename to assets/js/633d8a16.b56a64f6.js index 1361bdd77..408466518 100644 --- a/assets/js/633d8a16.cc2099a1.js +++ b/assets/js/633d8a16.b56a64f6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[9711],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>y});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=r.createContext({}),c=function(e){var n=r.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},s=function(e){var n=c(e.components);return r.createElement(i.Provider,{value:n},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),u=c(t),m=a,y=u["".concat(i,".").concat(m)]||u[m]||p[m]||o;return t?r.createElement(y,l(l({ref:n},s),{},{components:t})):r.createElement(y,l({ref:n},s))}));function y(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=m;var d={};for(var i in n)hasOwnProperty.call(n,i)&&(d[i]=n[i]);d.originalType=e,d[u]="string"==typeof e?e:a,l[1]=d;for(var c=2;c{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>d,toc:()=>c});var r=t(7462),a=(t(7294),t(3905));const o={},l="avoid-redundant-async-on-load",d={unversionedId:"rules/flame/avoid-redundant-async-on-load",id:"rules/flame/avoid-redundant-async-on-load",title:"avoid-redundant-async-on-load",description:"added in: 1.6.0 warning.",source:"@site/docs/rules/flame/avoid-redundant-async-on-load.mdx",sourceDirName:"rules/flame",slug:"/rules/flame/avoid-redundant-async-on-load",permalink:"/docs/rules/flame/avoid-redundant-async-on-load",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flame/avoid-redundant-async-on-load.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-initializing-in-on-mount",permalink:"/docs/rules/flame/avoid-initializing-in-on-mount"},next:{title:"Intl",permalink:"/docs/rules/intl/"}},i={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],s={toc:c},u="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(u,(0,r.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-redundant-async-on-load"},"avoid-redundant-async-on-load"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning"),"."),(0,a.kt)("p",null,"Warns when a Component's ",(0,a.kt)("inlineCode",{parentName:"p"},"onLoad")," method can be made sync."),(0,a.kt)("p",null,"Refactoring async onLoad to sync helps Flame directly continue in it's loading cycle."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class MyComponent extends Component {\n Future onLoad() async {\n ... // LINT, has no await\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class MyComponent extends Component {\n Future onLoad() async {\n await ...\n }\n}\n\nclass MyComponent extends Component {\n void onLoad() {\n ...\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[9711],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>y});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=r.createContext({}),c=function(e){var n=r.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},s=function(e){var n=c(e.components);return r.createElement(i.Provider,{value:n},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),u=c(t),m=a,y=u["".concat(i,".").concat(m)]||u[m]||p[m]||o;return t?r.createElement(y,l(l({ref:n},s),{},{components:t})):r.createElement(y,l({ref:n},s))}));function y(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=m;var d={};for(var i in n)hasOwnProperty.call(n,i)&&(d[i]=n[i]);d.originalType=e,d[u]="string"==typeof e?e:a,l[1]=d;for(var c=2;c{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>d,toc:()=>c});var r=t(7462),a=(t(7294),t(3905));const o={},l="avoid-redundant-async-on-load",d={unversionedId:"rules/flame/avoid-redundant-async-on-load",id:"rules/flame/avoid-redundant-async-on-load",title:"avoid-redundant-async-on-load",description:"added in: 1.0.0 warning.",source:"@site/docs/rules/flame/avoid-redundant-async-on-load.mdx",sourceDirName:"rules/flame",slug:"/rules/flame/avoid-redundant-async-on-load",permalink:"/docs/rules/flame/avoid-redundant-async-on-load",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flame/avoid-redundant-async-on-load.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-initializing-in-on-mount",permalink:"/docs/rules/flame/avoid-initializing-in-on-mount"},next:{title:"Intl",permalink:"/docs/rules/intl/"}},i={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],s={toc:c},u="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(u,(0,r.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-redundant-async-on-load"},"avoid-redundant-async-on-load"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning"),"."),(0,a.kt)("p",null,"Warns when a Component's ",(0,a.kt)("inlineCode",{parentName:"p"},"onLoad")," method can be made sync."),(0,a.kt)("p",null,"Refactoring async onLoad to sync helps Flame directly continue in it's loading cycle."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class MyComponent extends Component {\n Future onLoad() async {\n ... // LINT, has no await\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class MyComponent extends Component {\n Future onLoad() async {\n await ...\n }\n}\n\nclass MyComponent extends Component {\n void onLoad() {\n ...\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6723db8b.6d94d396.js b/assets/js/6723db8b.9c928e84.js similarity index 96% rename from assets/js/6723db8b.6d94d396.js rename to assets/js/6723db8b.9c928e84.js index decb781a8..d4c07c235 100644 --- a/assets/js/6723db8b.6d94d396.js +++ b/assets/js/6723db8b.9c928e84.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[9318],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),d=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=d(r),m=o,h=s["".concat(l,".").concat(m)]||s[m]||u[m]||a;return r?n.createElement(h,c(c({ref:t},p),{},{components:r})):n.createElement(h,c({ref:t},p))}));function h(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var d=2;d{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var n=r(7462),o=(r(7294),r(3905));const a={},c="avoid-throw-in-catch-block",i={unversionedId:"rules/dart/avoid-throw-in-catch-block",id:"rules/dart/avoid-throw-in-catch-block",title:"avoid-throw-in-catch-block",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-throw-in-catch-block.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-throw-in-catch-block",permalink:"/docs/rules/dart/avoid-throw-in-catch-block",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-throw-in-catch-block.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-redundant-async",permalink:"/docs/rules/dart/avoid-redundant-async"},next:{title:"avoid-top-level-members-in-tests",permalink:"/docs/rules/dart/avoid-top-level-members-in-tests"}},l={},d=[{value:"Example",id:"example",level:2}],p={toc:d},s="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(s,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-throw-in-catch-block"},"avoid-throw-in-catch-block"),(0,o.kt)("p",null,"added in: 1.6.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Call throw in a catch block loses the original stack trace and the original exception."),(0,o.kt)("p",null,"Since 2.16 version you can use ",(0,o.kt)("a",{parentName:"p",href:"https://api.dart.dev/dev/2.16.0-9.0.dev/dart-core/Error/throwWithStackTrace.html"},"Error.throwWithStackTrace"),"."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"void repository() {\n try {\n networkDataProvider();\n } on Object {\n throw RepositoryException(); // LINT\n }\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[9318],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),d=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=d(r),m=o,h=s["".concat(l,".").concat(m)]||s[m]||u[m]||a;return r?n.createElement(h,c(c({ref:t},p),{},{components:r})):n.createElement(h,c({ref:t},p))}));function h(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var d=2;d{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var n=r(7462),o=(r(7294),r(3905));const a={},c="avoid-throw-in-catch-block",i={unversionedId:"rules/dart/avoid-throw-in-catch-block",id:"rules/dart/avoid-throw-in-catch-block",title:"avoid-throw-in-catch-block",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-throw-in-catch-block.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-throw-in-catch-block",permalink:"/docs/rules/dart/avoid-throw-in-catch-block",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-throw-in-catch-block.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-redundant-async",permalink:"/docs/rules/dart/avoid-redundant-async"},next:{title:"avoid-top-level-members-in-tests",permalink:"/docs/rules/dart/avoid-top-level-members-in-tests"}},l={},d=[{value:"Example",id:"example",level:2}],p={toc:d},s="wrapper";function u(e){let{components:t,...r}=e;return(0,o.kt)(s,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-throw-in-catch-block"},"avoid-throw-in-catch-block"),(0,o.kt)("p",null,"added in: 1.0.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Call throw in a catch block loses the original stack trace and the original exception."),(0,o.kt)("p",null,"Since 2.16 version you can use ",(0,o.kt)("a",{parentName:"p",href:"https://api.dart.dev/dev/2.16.0-9.0.dev/dart-core/Error/throwWithStackTrace.html"},"Error.throwWithStackTrace"),"."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"void repository() {\n try {\n networkDataProvider();\n } on Object {\n throw RepositoryException(); // LINT\n }\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6744268e.a5627d40.js b/assets/js/6744268e.d56ea12e.js similarity index 97% rename from assets/js/6744268e.a5627d40.js rename to assets/js/6744268e.d56ea12e.js index e0e1c46a6..953980839 100644 --- a/assets/js/6744268e.a5627d40.js +++ b/assets/js/6744268e.d56ea12e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[1583],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>m});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),u=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=u(e.components);return r.createElement(s.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},f=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(t),f=a,m=d["".concat(s,".").concat(f)]||d[f]||p[f]||l;return t?r.createElement(m,o(o({ref:n},c),{},{components:t})):r.createElement(m,o({ref:n},c))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,o=new Array(l);o[0]=f;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[d]="string"==typeof e?e:a,o[1]=i;for(var u=2;u{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var r=t(7462),a=(t(7294),t(3905));const l={},o="no-equal-then-else",i={unversionedId:"rules/dart/no-equal-then-else",id:"rules/dart/no-equal-then-else",title:"no-equal-then-else",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/no-equal-then-else.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/no-equal-then-else",permalink:"/docs/rules/dart/no-equal-then-else",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/no-equal-then-else.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"no-equal-arguments",permalink:"/docs/rules/dart/no-equal-arguments"},next:{title:"no-magic-number",permalink:"/docs/rules/dart/no-magic-number"}},s={},u=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:u},d="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(d,(0,r.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"no-equal-then-else"},"no-equal-then-else"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when an if statement has equal then and else statements or conditional expression has equal then and else expressions."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final firstValue = 1;\nfinal secondValue = 2;\n\n...\n\n// LINT\nif (condition) {\n result = firstValue;\n} else {\n result = firstValue;\n}\n\n...\n\nresult = condition ? firstValue : firstValue; // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final firstValue = 1;\nfinal secondValue = 2;\n\n...\n\nif (condition) {\n result = firstValue;\n} else {\n result = secondValue;\n}\n\n...\n\nresult = condition ? firstValue : secondValue;\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[1583],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>m});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),u=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=u(e.components);return r.createElement(s.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},f=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=u(t),f=a,m=d["".concat(s,".").concat(f)]||d[f]||p[f]||l;return t?r.createElement(m,o(o({ref:n},c),{},{components:t})):r.createElement(m,o({ref:n},c))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,o=new Array(l);o[0]=f;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[d]="string"==typeof e?e:a,o[1]=i;for(var u=2;u{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var r=t(7462),a=(t(7294),t(3905));const l={},o="no-equal-then-else",i={unversionedId:"rules/dart/no-equal-then-else",id:"rules/dart/no-equal-then-else",title:"no-equal-then-else",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/no-equal-then-else.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/no-equal-then-else",permalink:"/docs/rules/dart/no-equal-then-else",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/no-equal-then-else.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"no-equal-arguments",permalink:"/docs/rules/dart/no-equal-arguments"},next:{title:"no-magic-number",permalink:"/docs/rules/dart/no-magic-number"}},s={},u=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:u},d="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(d,(0,r.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"no-equal-then-else"},"no-equal-then-else"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when an if statement has equal then and else statements or conditional expression has equal then and else expressions."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final firstValue = 1;\nfinal secondValue = 2;\n\n...\n\n// LINT\nif (condition) {\n result = firstValue;\n} else {\n result = firstValue;\n}\n\n...\n\nresult = condition ? firstValue : firstValue; // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final firstValue = 1;\nfinal secondValue = 2;\n\n...\n\nif (condition) {\n result = firstValue;\n} else {\n result = secondValue;\n}\n\n...\n\nresult = condition ? firstValue : secondValue;\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/68812fd8.9c2fcc7c.js b/assets/js/68812fd8.faa66ae7.js similarity index 97% rename from assets/js/68812fd8.9c2fcc7c.js rename to assets/js/68812fd8.faa66ae7.js index 03945c8f0..3df54ee81 100644 --- a/assets/js/68812fd8.9c2fcc7c.js +++ b/assets/js/68812fd8.faa66ae7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4658],{3905:(n,e,t)=>{t.d(e,{Zo:()=>l,kt:()=>y});var r=t(7294);function o(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function a(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function i(n){for(var e=1;e=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}var d=r.createContext({}),c=function(n){var e=r.useContext(d),t=e;return n&&(t="function"==typeof n?n(e):i(i({},e),n)),t},l=function(n){var e=c(n.components);return r.createElement(d.Provider,{value:e},n.children)},u="mdxType",m={inlineCode:"code",wrapper:function(n){var e=n.children;return r.createElement(r.Fragment,{},e)}},p=r.forwardRef((function(n,e){var t=n.components,o=n.mdxType,a=n.originalType,d=n.parentName,l=s(n,["components","mdxType","originalType","parentName"]),u=c(t),p=o,y=u["".concat(d,".").concat(p)]||u[p]||m[p]||a;return t?r.createElement(y,i(i({ref:e},l),{},{components:t})):r.createElement(y,i({ref:e},l))}));function y(n,e){var t=arguments,o=e&&e.mdxType;if("string"==typeof n||o){var a=t.length,i=new Array(a);i[0]=p;var s={};for(var d in e)hasOwnProperty.call(e,d)&&(s[d]=e[d]);s.originalType=n,s[u]="string"==typeof n?n:o,i[1]=s;for(var c=2;c{t.r(e),t.d(e,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var r=t(7462),o=(t(7294),t(3905));const a={},i="avoid-missing-enum-constant-in-map",s={unversionedId:"rules/dart/avoid-missing-enum-constant-in-map",id:"rules/dart/avoid-missing-enum-constant-in-map",title:"avoid-missing-enum-constant-in-map",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-missing-enum-constant-in-map.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-missing-enum-constant-in-map",permalink:"/docs/rules/dart/avoid-missing-enum-constant-in-map",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-missing-enum-constant-in-map.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-late-keyword",permalink:"/docs/rules/dart/avoid-late-keyword"},next:{title:"avoid-nested-conditional-expressions",permalink:"/docs/rules/dart/avoid-nested-conditional-expressions"}},d={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],l={toc:c},u="wrapper";function m(n){let{components:e,...t}=n;return(0,o.kt)(u,(0,r.Z)({},l,t,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-missing-enum-constant-in-map"},"avoid-missing-enum-constant-in-map"),(0,o.kt)("p",null,"added in: 1.6.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Warns when a enum constant is missing in a map declaration."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"enum SomeEnum {\n firstEntry,\n secondEntry,\n thirdEntry,\n}\n\nextension SomeX on SomeEnum {\n // LINT\n static const firstMap = {\n CountyCode.firstEntry: 'foo',\n CountyCode.secondEntry: 'bar',\n };\n\n // LINT twice since `secondEntry` and `thirdEntry` are missing\n static const secondMap = {\n CountyCode.firstEntry: 'foo',\n };\n}\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"enum SomeEnum {\n firstEntry,\n secondEntry,\n thirdEntry,\n}\n\nextension SomeX on SomeEnum {\n static const firstMap = {\n CountyCode.firstEntry: 'foo',\n CountyCode.secondEntry: 'bar',\n CountyCode.thirdEntry: 'baz',\n };\n\n static const secondMap = {\n CountyCode.firstEntry: 'foo',\n CountyCode.secondEntry: 'bar',\n CountyCode.thirdEntry: 'baz',\n };\n}\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4658],{3905:(n,e,t)=>{t.d(e,{Zo:()=>l,kt:()=>y});var r=t(7294);function o(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function a(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,r)}return t}function i(n){for(var e=1;e=0||(o[t]=n[t]);return o}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(o[t]=n[t])}return o}var d=r.createContext({}),c=function(n){var e=r.useContext(d),t=e;return n&&(t="function"==typeof n?n(e):i(i({},e),n)),t},l=function(n){var e=c(n.components);return r.createElement(d.Provider,{value:e},n.children)},u="mdxType",m={inlineCode:"code",wrapper:function(n){var e=n.children;return r.createElement(r.Fragment,{},e)}},p=r.forwardRef((function(n,e){var t=n.components,o=n.mdxType,a=n.originalType,d=n.parentName,l=s(n,["components","mdxType","originalType","parentName"]),u=c(t),p=o,y=u["".concat(d,".").concat(p)]||u[p]||m[p]||a;return t?r.createElement(y,i(i({ref:e},l),{},{components:t})):r.createElement(y,i({ref:e},l))}));function y(n,e){var t=arguments,o=e&&e.mdxType;if("string"==typeof n||o){var a=t.length,i=new Array(a);i[0]=p;var s={};for(var d in e)hasOwnProperty.call(e,d)&&(s[d]=e[d]);s.originalType=n,s[u]="string"==typeof n?n:o,i[1]=s;for(var c=2;c{t.r(e),t.d(e,{assets:()=>d,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var r=t(7462),o=(t(7294),t(3905));const a={},i="avoid-missing-enum-constant-in-map",s={unversionedId:"rules/dart/avoid-missing-enum-constant-in-map",id:"rules/dart/avoid-missing-enum-constant-in-map",title:"avoid-missing-enum-constant-in-map",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-missing-enum-constant-in-map.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-missing-enum-constant-in-map",permalink:"/docs/rules/dart/avoid-missing-enum-constant-in-map",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-missing-enum-constant-in-map.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-late-keyword",permalink:"/docs/rules/dart/avoid-late-keyword"},next:{title:"avoid-nested-conditional-expressions",permalink:"/docs/rules/dart/avoid-nested-conditional-expressions"}},d={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],l={toc:c},u="wrapper";function m(n){let{components:e,...t}=n;return(0,o.kt)(u,(0,r.Z)({},l,t,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-missing-enum-constant-in-map"},"avoid-missing-enum-constant-in-map"),(0,o.kt)("p",null,"added in: 1.0.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Warns when a enum constant is missing in a map declaration."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"enum SomeEnum {\n firstEntry,\n secondEntry,\n thirdEntry,\n}\n\nextension SomeX on SomeEnum {\n // LINT\n static const firstMap = {\n CountyCode.firstEntry: 'foo',\n CountyCode.secondEntry: 'bar',\n };\n\n // LINT twice since `secondEntry` and `thirdEntry` are missing\n static const secondMap = {\n CountyCode.firstEntry: 'foo',\n };\n}\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"enum SomeEnum {\n firstEntry,\n secondEntry,\n thirdEntry,\n}\n\nextension SomeX on SomeEnum {\n static const firstMap = {\n CountyCode.firstEntry: 'foo',\n CountyCode.secondEntry: 'bar',\n CountyCode.thirdEntry: 'baz',\n };\n\n static const secondMap = {\n CountyCode.firstEntry: 'foo',\n CountyCode.secondEntry: 'bar',\n CountyCode.thirdEntry: 'baz',\n };\n}\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6e5734d8.98471d34.js b/assets/js/6e5734d8.d92346a4.js similarity index 97% rename from assets/js/6e5734d8.98471d34.js rename to assets/js/6e5734d8.d92346a4.js index 15e547e68..45e1fb49a 100644 --- a/assets/js/6e5734d8.98471d34.js +++ b/assets/js/6e5734d8.d92346a4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[8380],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(n),m=o,f=p["".concat(s,".").concat(m)]||p[m]||u[m]||a;return n?r.createElement(f,i(i({ref:t},d),{},{components:n})):r.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var r=n(7462),o=(n(7294),n(3905));const a={},i="avoid-top-level-members-in-tests",l={unversionedId:"rules/dart/avoid-top-level-members-in-tests",id:"rules/dart/avoid-top-level-members-in-tests",title:"avoid-top-level-members-in-tests",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-top-level-members-in-tests.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-top-level-members-in-tests",permalink:"/docs/rules/dart/avoid-top-level-members-in-tests",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-top-level-members-in-tests.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-throw-in-catch-block",permalink:"/docs/rules/dart/avoid-throw-in-catch-block"},next:{title:"avoid-unnecessary-conditionals",permalink:"/docs/rules/dart/avoid-unnecessary-conditionals"}},s={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-top-level-members-in-tests"},"avoid-top-level-members-in-tests"),(0,o.kt)("p",null,"added in: 1.6.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Warns when a public top-level member (expect the entrypoint) is declared inside a test file."),(0,o.kt)("p",null,"It helps reduce code bloat and find unused declarations in test files."),(0,o.kt)("p",null,"::: note\nIf you want to set exclude config for this rule, the default ","[",(0,o.kt)("inlineCode",{parentName:"p"},"'lib/**', 'bin/**'"),"]"," will be overriden.\n:::"),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final public = 1; // LINT\n\nvoid function() {} // LINT\n\nclass Class {} // LINT\n\nmixin Mixin {} // LINT\n\nextension Extension on String {} // LINT\n\nenum Enum { first, second } // LINT\n\ntypedef Public = String; // LINT\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final _private = 2;\n\nvoid _function() {}\n\nclass _Class {}\n\nmixin _Mixin {}\n\nextension _Extension on String {}\n\nenum _Enum { first, second }\n\ntypedef _Private = String;\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[8380],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=c(n),m=o,f=p["".concat(s,".").concat(m)]||p[m]||u[m]||a;return n?r.createElement(f,i(i({ref:t},d),{},{components:n})):r.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var r=n(7462),o=(n(7294),n(3905));const a={},i="avoid-top-level-members-in-tests",l={unversionedId:"rules/dart/avoid-top-level-members-in-tests",id:"rules/dart/avoid-top-level-members-in-tests",title:"avoid-top-level-members-in-tests",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-top-level-members-in-tests.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-top-level-members-in-tests",permalink:"/docs/rules/dart/avoid-top-level-members-in-tests",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-top-level-members-in-tests.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-throw-in-catch-block",permalink:"/docs/rules/dart/avoid-throw-in-catch-block"},next:{title:"avoid-unnecessary-conditionals",permalink:"/docs/rules/dart/avoid-unnecessary-conditionals"}},s={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:c},p="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-top-level-members-in-tests"},"avoid-top-level-members-in-tests"),(0,o.kt)("p",null,"added in: 1.0.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Warns when a public top-level member (expect the entrypoint) is declared inside a test file."),(0,o.kt)("p",null,"It helps reduce code bloat and find unused declarations in test files."),(0,o.kt)("p",null,"::: note\nIf you want to set exclude config for this rule, the default ","[",(0,o.kt)("inlineCode",{parentName:"p"},"'lib/**', 'bin/**'"),"]"," will be overriden.\n:::"),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final public = 1; // LINT\n\nvoid function() {} // LINT\n\nclass Class {} // LINT\n\nmixin Mixin {} // LINT\n\nextension Extension on String {} // LINT\n\nenum Enum { first, second } // LINT\n\ntypedef Public = String; // LINT\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final _private = 2;\n\nvoid _function() {}\n\nclass _Class {}\n\nmixin _Mixin {}\n\nextension _Extension on String {}\n\nenum _Enum { first, second }\n\ntypedef _Private = String;\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/74e9b832.5b2bd5b3.js b/assets/js/74e9b832.562d5313.js similarity index 98% rename from assets/js/74e9b832.5b2bd5b3.js rename to assets/js/74e9b832.562d5313.js index b3913858a..56cfbf657 100644 --- a/assets/js/74e9b832.5b2bd5b3.js +++ b/assets/js/74e9b832.562d5313.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[3101],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,c=d(e,["components","mdxType","originalType","parentName"]),u=l(n),y=a,m=u["".concat(s,".").concat(y)]||u[y]||p[y]||i;return n?r.createElement(m,o(o({ref:t},c),{},{components:n})):r.createElement(m,o({ref:t},c))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=y;var d={};for(var s in t)hasOwnProperty.call(t,s)&&(d[s]=t[s]);d.originalType=e,d[u]="string"==typeof e?e:a,o[1]=d;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>d,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const i={},o="avoid-unnecessary-setstate",d={unversionedId:"rules/flutter/avoid-unnecessary-setstate",id:"rules/flutter/avoid-unnecessary-setstate",title:"avoid-unnecessary-setstate",description:"added in: 1.6.0 warning",source:"@site/docs/rules/flutter/avoid-unnecessary-setstate.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/avoid-unnecessary-setstate",permalink:"/docs/rules/flutter/avoid-unnecessary-setstate",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/avoid-unnecessary-setstate.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-shrink-wrap-in-lists",permalink:"/docs/rules/flutter/avoid-shrink-wrap-in-lists"},next:{title:"avoid-wrapping-in-padding",permalink:"/docs/rules/flutter/avoid-wrapping-in-padding"}},s={},l=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:l},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-unnecessary-setstate"},"avoid-unnecessary-setstate"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when setState is called inside ",(0,a.kt)("inlineCode",{parentName:"p"},"initState"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"didUpdateWidget")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"build")," methods and when it's called from a ",(0,a.kt)("inlineCode",{parentName:"p"},"sync")," method that is called inside those methods."),(0,a.kt)("p",null,"Calling setState in those cases will lead to an additional widget rerender which is bad for performance."),(0,a.kt)("p",null,"Consider changing state directly without calling ",(0,a.kt)("inlineCode",{parentName:"p"},"setState"),"."),(0,a.kt)("p",null,"Additional resources:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://stackoverflow.com/questions/53363774/importance-of-calling-setstate-inside-initstate/53373017#53373017"},"https://stackoverflow.com/questions/53363774/importance-of-calling-setstate-inside-initstate/53373017#53373017"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},'class MyWidget extends StatefulWidget {\n @override\n _MyWidgetState createState() => _MyWidgetState();\n}\n\nclass _MyWidgetState extends State {\n String myString = \'\';\n\n @override\n void initState() {\n super.initState();\n\n // LINT\n setState(() {\n myString = "Hello";\n });\n\n if (condition) {\n // LINT\n setState(() {\n myString = "Hello";\n });\n }\n\n myStateUpdateMethod(); // LINT\n }\n\n @override\n void didUpdateWidget(MyWidget oldWidget) {\n // LINT\n setState(() {\n myString = "Hello";\n });\n }\n\n void myStateUpdateMethod() {\n setState(() {\n myString = "Hello";\n });\n }\n\n @override\n Widget build(BuildContext context) {\n // LINT\n setState(() {\n myString = "Hello";\n });\n\n if (condition) {\n // LINT\n setState(() {\n myString = "Hello";\n });\n }\n\n myStateUpdateMethod(); // LINT\n\n return ElevatedButton(\n onPressed: () => myStateUpdateMethod(),\n onLongPress: () {\n setState(() {\n myString = data;\n });\n },\n child: Text(\'PRESS\'),\n );\n }\n}\n')),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},'class MyWidget extends StatefulWidget {\n @override\n _MyWidgetState createState() => _MyWidgetState();\n}\n\nclass _MyWidgetState extends State {\n String myString = \'\';\n\n final classWithMethod = SomeClassWithMethod();\n\n @override\n void initState() {\n super.initState();\n\n myString = "Hello";\n\n classWithMethod.myMethod();\n myAsyncMethod();\n }\n\n @override\n void didUpdateWidget(MyWidget oldWidget) {\n myString = "Hello";\n }\n\n void myStateUpdateMethod() {\n setState(() {\n myString = "Hello";\n });\n }\n\n Future myAsyncMethod() async {\n final data = await service.fetchData();\n\n setState(() {\n myString = data;\n });\n }\n\n @override\n Widget build(BuildContext context) {\n myAsyncMethod();\n\n return ElevatedButton(\n onPressed: () => myStateUpdateMethod(),\n onLongPress: () {\n setState(() {\n myString = data;\n });\n },\n child: Text(\'PRESS\'),\n );\n }\n}\n')))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[3101],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,c=d(e,["components","mdxType","originalType","parentName"]),u=l(n),y=a,m=u["".concat(s,".").concat(y)]||u[y]||p[y]||i;return n?r.createElement(m,o(o({ref:t},c),{},{components:n})):r.createElement(m,o({ref:t},c))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=y;var d={};for(var s in t)hasOwnProperty.call(t,s)&&(d[s]=t[s]);d.originalType=e,d[u]="string"==typeof e?e:a,o[1]=d;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>d,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const i={},o="avoid-unnecessary-setstate",d={unversionedId:"rules/flutter/avoid-unnecessary-setstate",id:"rules/flutter/avoid-unnecessary-setstate",title:"avoid-unnecessary-setstate",description:"added in: 1.0.0 warning",source:"@site/docs/rules/flutter/avoid-unnecessary-setstate.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/avoid-unnecessary-setstate",permalink:"/docs/rules/flutter/avoid-unnecessary-setstate",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/avoid-unnecessary-setstate.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-shrink-wrap-in-lists",permalink:"/docs/rules/flutter/avoid-shrink-wrap-in-lists"},next:{title:"avoid-wrapping-in-padding",permalink:"/docs/rules/flutter/avoid-wrapping-in-padding"}},s={},l=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:l},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-unnecessary-setstate"},"avoid-unnecessary-setstate"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when setState is called inside ",(0,a.kt)("inlineCode",{parentName:"p"},"initState"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"didUpdateWidget")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"build")," methods and when it's called from a ",(0,a.kt)("inlineCode",{parentName:"p"},"sync")," method that is called inside those methods."),(0,a.kt)("p",null,"Calling setState in those cases will lead to an additional widget rerender which is bad for performance."),(0,a.kt)("p",null,"Consider changing state directly without calling ",(0,a.kt)("inlineCode",{parentName:"p"},"setState"),"."),(0,a.kt)("p",null,"Additional resources:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://stackoverflow.com/questions/53363774/importance-of-calling-setstate-inside-initstate/53373017#53373017"},"https://stackoverflow.com/questions/53363774/importance-of-calling-setstate-inside-initstate/53373017#53373017"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},'class MyWidget extends StatefulWidget {\n @override\n _MyWidgetState createState() => _MyWidgetState();\n}\n\nclass _MyWidgetState extends State {\n String myString = \'\';\n\n @override\n void initState() {\n super.initState();\n\n // LINT\n setState(() {\n myString = "Hello";\n });\n\n if (condition) {\n // LINT\n setState(() {\n myString = "Hello";\n });\n }\n\n myStateUpdateMethod(); // LINT\n }\n\n @override\n void didUpdateWidget(MyWidget oldWidget) {\n // LINT\n setState(() {\n myString = "Hello";\n });\n }\n\n void myStateUpdateMethod() {\n setState(() {\n myString = "Hello";\n });\n }\n\n @override\n Widget build(BuildContext context) {\n // LINT\n setState(() {\n myString = "Hello";\n });\n\n if (condition) {\n // LINT\n setState(() {\n myString = "Hello";\n });\n }\n\n myStateUpdateMethod(); // LINT\n\n return ElevatedButton(\n onPressed: () => myStateUpdateMethod(),\n onLongPress: () {\n setState(() {\n myString = data;\n });\n },\n child: Text(\'PRESS\'),\n );\n }\n}\n')),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},'class MyWidget extends StatefulWidget {\n @override\n _MyWidgetState createState() => _MyWidgetState();\n}\n\nclass _MyWidgetState extends State {\n String myString = \'\';\n\n final classWithMethod = SomeClassWithMethod();\n\n @override\n void initState() {\n super.initState();\n\n myString = "Hello";\n\n classWithMethod.myMethod();\n myAsyncMethod();\n }\n\n @override\n void didUpdateWidget(MyWidget oldWidget) {\n myString = "Hello";\n }\n\n void myStateUpdateMethod() {\n setState(() {\n myString = "Hello";\n });\n }\n\n Future myAsyncMethod() async {\n final data = await service.fetchData();\n\n setState(() {\n myString = data;\n });\n }\n\n @override\n Widget build(BuildContext context) {\n myAsyncMethod();\n\n return ElevatedButton(\n onPressed: () => myStateUpdateMethod(),\n onLongPress: () {\n setState(() {\n myString = data;\n });\n },\n child: Text(\'PRESS\'),\n );\n }\n}\n')))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/77402a57.b1d4b186.js b/assets/js/77402a57.c7941eb7.js similarity index 97% rename from assets/js/77402a57.b1d4b186.js rename to assets/js/77402a57.c7941eb7.js index fcb8476ef..04c35f7bf 100644 --- a/assets/js/77402a57.b1d4b186.js +++ b/assets/js/77402a57.c7941eb7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[5613],{3905:(e,n,r)=>{r.d(n,{Zo:()=>p,kt:()=>m});var t=r(7294);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function o(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function i(e){for(var n=1;n=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=t.createContext({}),c=function(e){var n=t.useContext(s),r=n;return e&&(r="function"==typeof e?e(n):i(i({},n),e)),r},p=function(e){var n=c(e.components);return t.createElement(s.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},f=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(r),f=a,m=d["".concat(s,".").concat(f)]||d[f]||u[f]||o;return r?t.createElement(m,i(i({ref:n},p),{},{components:r})):t.createElement(m,i({ref:n},p))}));function m(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=f;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{r.r(n),r.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var t=r(7462),a=(r(7294),r(3905));const o={},i="prefer-conditional-expressions",l={unversionedId:"rules/dart/prefer-conditional-expressions",id:"rules/dart/prefer-conditional-expressions",title:"prefer-conditional-expressions",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/prefer-conditional-expressions.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-conditional-expressions",permalink:"/docs/rules/dart/prefer-conditional-expressions",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-conditional-expressions.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-commenting-analyzer-ignores",permalink:"/docs/rules/dart/prefer-commenting-analyzer-ignores"},next:{title:"prefer-correct-identifier-length",permalink:"/docs/rules/dart/prefer-correct-identifier-length"}},s={},c=[{value:"Config example",id:"config-example",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:c},d="wrapper";function u(e){let{components:n,...r}=e;return(0,a.kt)(d,(0,t.Z)({},p,r,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-conditional-expressions"},"prefer-conditional-expressions"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Recommends to use a conditional expression instead of assigning to the same thing or return statement in each branch of an if statement."),(0,a.kt)("h2",{id:"config-example"},"Config example"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignore-nested")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to ignore cases with multiple nested conditional expressions."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-conditional-expressions:\n ignore-nested: true\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"}," int a = 0;\n\n // LINT\n if (a > 0) {\n a = 1;\n } else {\n a = 2;\n }\n\n // LINT\n if (a > 0) a = 1;\n else a = 2;\n\n int function() {\n // LINT\n if (a == 1) {\n return 0;\n } else {\n return 1;\n }\n\n // LINT\n if (a == 2) return 0;\n else return 1;\n }\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"}," int a = 0;\n\n a = a > 0 ? 1 : 2;\n\n int function() {\n return a == 2 ? 0 : 1;\n }\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[5613],{3905:(e,n,r)=>{r.d(n,{Zo:()=>p,kt:()=>m});var t=r(7294);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function o(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function i(e){for(var n=1;n=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=t.createContext({}),c=function(e){var n=t.useContext(s),r=n;return e&&(r="function"==typeof e?e(n):i(i({},n),e)),r},p=function(e){var n=c(e.components);return t.createElement(s.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},f=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(r),f=a,m=d["".concat(s,".").concat(f)]||d[f]||u[f]||o;return r?t.createElement(m,i(i({ref:n},p),{},{components:r})):t.createElement(m,i({ref:n},p))}));function m(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=f;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{r.r(n),r.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var t=r(7462),a=(r(7294),r(3905));const o={},i="prefer-conditional-expressions",l={unversionedId:"rules/dart/prefer-conditional-expressions",id:"rules/dart/prefer-conditional-expressions",title:"prefer-conditional-expressions",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/prefer-conditional-expressions.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-conditional-expressions",permalink:"/docs/rules/dart/prefer-conditional-expressions",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-conditional-expressions.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-commenting-analyzer-ignores",permalink:"/docs/rules/dart/prefer-commenting-analyzer-ignores"},next:{title:"prefer-correct-identifier-length",permalink:"/docs/rules/dart/prefer-correct-identifier-length"}},s={},c=[{value:"Config example",id:"config-example",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:c},d="wrapper";function u(e){let{components:n,...r}=e;return(0,a.kt)(d,(0,t.Z)({},p,r,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-conditional-expressions"},"prefer-conditional-expressions"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Recommends to use a conditional expression instead of assigning to the same thing or return statement in each branch of an if statement."),(0,a.kt)("h2",{id:"config-example"},"Config example"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignore-nested")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to ignore cases with multiple nested conditional expressions."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-conditional-expressions:\n ignore-nested: true\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"}," int a = 0;\n\n // LINT\n if (a > 0) {\n a = 1;\n } else {\n a = 2;\n }\n\n // LINT\n if (a > 0) a = 1;\n else a = 2;\n\n int function() {\n // LINT\n if (a == 1) {\n return 0;\n } else {\n return 1;\n }\n\n // LINT\n if (a == 2) return 0;\n else return 1;\n }\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"}," int a = 0;\n\n a = a > 0 ? 1 : 2;\n\n int function() {\n return a == 2 ? 0 : 1;\n }\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/79ad219e.2bd10b5c.js b/assets/js/79ad219e.adc66f55.js similarity index 97% rename from assets/js/79ad219e.2bd10b5c.js rename to assets/js/79ad219e.adc66f55.js index dfbf91cce..3372903df 100644 --- a/assets/js/79ad219e.2bd10b5c.js +++ b/assets/js/79ad219e.adc66f55.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[406],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>b});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),c=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=c(r),m=n,b=u["".concat(s,".").concat(m)]||u[m]||p[m]||o;return r?a.createElement(b,l(l({ref:t},d),{},{components:r})):a.createElement(b,l({ref:t},d))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:n,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=r(7462),n=(r(7294),r(3905));const o={},l="avoid-global-state",i={unversionedId:"rules/dart/avoid-global-state",id:"rules/dart/avoid-global-state",title:"avoid-global-state",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-global-state.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-global-state",permalink:"/docs/rules/dart/avoid-global-state",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-global-state.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-dynamic",permalink:"/docs/rules/dart/avoid-dynamic"},next:{title:"avoid-ignoring-return-values",permalink:"/docs/rules/dart/avoid-ignoring-return-values"}},s={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:c},u="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"avoid-global-state"},"avoid-global-state"),(0,n.kt)("p",null,"added in: 1.6.0 ",(0,n.kt)("span",{style:{color:"orange"}},"warning")),(0,n.kt)("p",null,"The rule should violate on not final and non-const top-level variables."),(0,n.kt)("p",null,"Having many mutable global variables inside application is a pretty bad practice:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"application state becomes distributed between multiple files"),(0,n.kt)("li",{parentName:"ul"},"application state is not protected: it can be modified in almost any place"),(0,n.kt)("li",{parentName:"ul"},"it might be hard to debug such applications")),(0,n.kt)("p",null,"So the common practice is to use state management solutions instead of mutable global variables."),(0,n.kt)("h2",{id:"example"},"Example"),(0,n.kt)("h3",{id:"bad"},"Bad:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"},"var answer = 42; // LINT\nvar evenNumbers = [1, 2, 3].where((element) => element.isEven); // LINT\n\nclass Foo {\n static int? bar; // LINT\n}\n")),(0,n.kt)("h3",{id:"good"},"Good:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"},"const answer = 42;\nfinal evenNumbers = [1, 2, 3].where((element) => element.isEven);\n\nclass Foo {\n static int bar = 42;\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[406],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>b});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),c=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=c(r),m=n,b=u["".concat(s,".").concat(m)]||u[m]||p[m]||o;return r?a.createElement(b,l(l({ref:t},d),{},{components:r})):a.createElement(b,l({ref:t},d))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:n,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=r(7462),n=(r(7294),r(3905));const o={},l="avoid-global-state",i={unversionedId:"rules/dart/avoid-global-state",id:"rules/dart/avoid-global-state",title:"avoid-global-state",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-global-state.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-global-state",permalink:"/docs/rules/dart/avoid-global-state",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-global-state.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-dynamic",permalink:"/docs/rules/dart/avoid-dynamic"},next:{title:"avoid-ignoring-return-values",permalink:"/docs/rules/dart/avoid-ignoring-return-values"}},s={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:c},u="wrapper";function p(e){let{components:t,...r}=e;return(0,n.kt)(u,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"avoid-global-state"},"avoid-global-state"),(0,n.kt)("p",null,"added in: 1.0.0 ",(0,n.kt)("span",{style:{color:"orange"}},"warning")),(0,n.kt)("p",null,"The rule should violate on not final and non-const top-level variables."),(0,n.kt)("p",null,"Having many mutable global variables inside application is a pretty bad practice:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"application state becomes distributed between multiple files"),(0,n.kt)("li",{parentName:"ul"},"application state is not protected: it can be modified in almost any place"),(0,n.kt)("li",{parentName:"ul"},"it might be hard to debug such applications")),(0,n.kt)("p",null,"So the common practice is to use state management solutions instead of mutable global variables."),(0,n.kt)("h2",{id:"example"},"Example"),(0,n.kt)("h3",{id:"bad"},"Bad:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"},"var answer = 42; // LINT\nvar evenNumbers = [1, 2, 3].where((element) => element.isEven); // LINT\n\nclass Foo {\n static int? bar; // LINT\n}\n")),(0,n.kt)("h3",{id:"good"},"Good:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"},"const answer = 42;\nfinal evenNumbers = [1, 2, 3].where((element) => element.isEven);\n\nclass Foo {\n static int bar = 42;\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7ac81413.9ee1a43c.js b/assets/js/7ac81413.afb5776c.js similarity index 96% rename from assets/js/7ac81413.9ee1a43c.js rename to assets/js/7ac81413.afb5776c.js index bce428dcd..40139c8c2 100644 --- a/assets/js/7ac81413.9ee1a43c.js +++ b/assets/js/7ac81413.afb5776c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[767],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=p(r),f=a,m=d["".concat(s,".").concat(f)]||d[f]||u[f]||l;return r?n.createElement(m,o(o({ref:t},c),{},{components:r})):n.createElement(m,o({ref:t},c))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(7462),a=(r(7294),r(3905));const l={},o="prefer-last",i={unversionedId:"rules/dart/prefer-last",id:"rules/dart/prefer-last",title:"prefer-last",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/prefer-last.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-last",permalink:"/docs/rules/dart/prefer-last",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-last.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-iterable-of",permalink:"/docs/rules/dart/prefer-iterable-of"},next:{title:"prefer-match-file-name",permalink:"/docs/rules/dart/prefer-match-file-name"}},s={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:p},d="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-last"},"prefer-last"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns when the last element of an Iterable is accessed by ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable[iterable.length - 1]")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable.elementAt(iterable.length - 1)")," instead of calling ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable.last"),"."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"...\nconst list = [1, 2, 3, 4, 5, 6, 7, 8, 9];\n\nlist.elementAt(list.length - 1); // LINT\nlist[list.length - 1]; // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"const list = [1, 2, 3, 4, 5, 6, 7, 8, 9];\n\nlist.last;\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[767],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),d=p(r),f=a,m=d["".concat(s,".").concat(f)]||d[f]||u[f]||l;return r?n.createElement(m,o(o({ref:t},c),{},{components:r})):n.createElement(m,o({ref:t},c))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=f;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(7462),a=(r(7294),r(3905));const l={},o="prefer-last",i={unversionedId:"rules/dart/prefer-last",id:"rules/dart/prefer-last",title:"prefer-last",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/prefer-last.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-last",permalink:"/docs/rules/dart/prefer-last",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-last.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-iterable-of",permalink:"/docs/rules/dart/prefer-iterable-of"},next:{title:"prefer-match-file-name",permalink:"/docs/rules/dart/prefer-match-file-name"}},s={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:p},d="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-last"},"prefer-last"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns when the last element of an Iterable is accessed by ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable[iterable.length - 1]")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable.elementAt(iterable.length - 1)")," instead of calling ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable.last"),"."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"...\nconst list = [1, 2, 3, 4, 5, 6, 7, 8, 9];\n\nlist.elementAt(list.length - 1); // LINT\nlist[list.length - 1]; // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"const list = [1, 2, 3, 4, 5, 6, 7, 8, 9];\n\nlist.last;\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/852fee05.5c03c50e.js b/assets/js/852fee05.efc07cca.js similarity index 97% rename from assets/js/852fee05.5c03c50e.js rename to assets/js/852fee05.efc07cca.js index eb4af7391..a13e1d3ae 100644 --- a/assets/js/852fee05.5c03c50e.js +++ b/assets/js/852fee05.efc07cca.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2845],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>y});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var d=r.createContext({}),c=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(d.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,d=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=c(n),m=a,y=s["".concat(d,".").concat(m)]||s[m]||u[m]||i;return n?r.createElement(y,o(o({ref:t},p),{},{components:n})):r.createElement(y,o({ref:t},p))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[s]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const i={},o="avoid-dynamic",l={unversionedId:"rules/dart/avoid-dynamic",id:"rules/dart/avoid-dynamic",title:"avoid-dynamic",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-dynamic.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-dynamic",permalink:"/docs/rules/dart/avoid-dynamic",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-dynamic.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-duplicate-exports",permalink:"/docs/rules/dart/avoid-duplicate-exports"},next:{title:"avoid-global-state",permalink:"/docs/rules/dart/avoid-global-state"}},d={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:c},s="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-dynamic"},"avoid-dynamic"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when the ",(0,a.kt)("inlineCode",{parentName:"p"},"dynamic")," type is used as a variable type in a declaration, return type of a function, etc. Using ",(0,a.kt)("inlineCode",{parentName:"p"},"dynamic")," is considered unsafe since it can easily result in runtime errors."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Using the ",(0,a.kt)("inlineCode",{parentName:"p"},"dynamic")," type for a ",(0,a.kt)("inlineCode",{parentName:"p"},"Map<>")," is considered fine, since there is no better way to declare a type of a JSON payload.")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"dynamic x = 10; // LINT\n\n// LINT\nString concat(dynamic a, dynamic b) {\n return a + b;\n}\n\n(dynamic,) _getValue() => (null, ); // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"int x = 10;\n\nfinal x = 10;\n\nString concat(String a, String b) {\n return a + b;\n}\n\n(int?,) _getValue() => (null, ); // LINT\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2845],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>y});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var d=r.createContext({}),c=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(d.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,d=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=c(n),m=a,y=s["".concat(d,".").concat(m)]||s[m]||u[m]||i;return n?r.createElement(y,o(o({ref:t},p),{},{components:n})):r.createElement(y,o({ref:t},p))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[s]="string"==typeof e?e:a,o[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const i={},o="avoid-dynamic",l={unversionedId:"rules/dart/avoid-dynamic",id:"rules/dart/avoid-dynamic",title:"avoid-dynamic",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-dynamic.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-dynamic",permalink:"/docs/rules/dart/avoid-dynamic",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-dynamic.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-duplicate-exports",permalink:"/docs/rules/dart/avoid-duplicate-exports"},next:{title:"avoid-global-state",permalink:"/docs/rules/dart/avoid-global-state"}},d={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:c},s="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-dynamic"},"avoid-dynamic"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when the ",(0,a.kt)("inlineCode",{parentName:"p"},"dynamic")," type is used as a variable type in a declaration, return type of a function, etc. Using ",(0,a.kt)("inlineCode",{parentName:"p"},"dynamic")," is considered unsafe since it can easily result in runtime errors."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Using the ",(0,a.kt)("inlineCode",{parentName:"p"},"dynamic")," type for a ",(0,a.kt)("inlineCode",{parentName:"p"},"Map<>")," is considered fine, since there is no better way to declare a type of a JSON payload.")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"dynamic x = 10; // LINT\n\n// LINT\nString concat(dynamic a, dynamic b) {\n return a + b;\n}\n\n(dynamic,) _getValue() => (null, ); // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"int x = 10;\n\nfinal x = 10;\n\nString concat(String a, String b) {\n return a + b;\n}\n\n(int?,) _getValue() => (null, ); // LINT\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8c4a2621.e02c4864.js b/assets/js/8c4a2621.2ae39d72.js similarity index 97% rename from assets/js/8c4a2621.e02c4864.js rename to assets/js/8c4a2621.2ae39d72.js index b635b85be..7c55c79c3 100644 --- a/assets/js/8c4a2621.e02c4864.js +++ b/assets/js/8c4a2621.2ae39d72.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[1070],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>y});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=r.createContext({}),c=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=c(e.components);return r.createElement(l.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=c(t),m=a,y=u["".concat(l,".").concat(m)]||u[m]||d[m]||s;return t?r.createElement(y,i(i({ref:n},p),{},{components:t})):r.createElement(y,i({ref:n},p))}));function y(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var s=t.length,i=new Array(s);i[0]=m;var o={};for(var l in n)hasOwnProperty.call(n,l)&&(o[l]=n[l]);o.originalType=e,o[u]="string"==typeof e?e:a,i[1]=o;for(var c=2;c{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var r=t(7462),a=(t(7294),t(3905));const s={},i="avoid-unnecessary-type-assertions",o={unversionedId:"rules/dart/avoid-unnecessary-type-assertions",id:"rules/dart/avoid-unnecessary-type-assertions",title:"avoid-unnecessary-type-assertions",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-unnecessary-type-assertions.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-unnecessary-type-assertions",permalink:"/docs/rules/dart/avoid-unnecessary-type-assertions",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-unnecessary-type-assertions.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-unnecessary-conditionals",permalink:"/docs/rules/dart/avoid-unnecessary-conditionals"},next:{title:"avoid-unnecessary-type-casts",permalink:"/docs/rules/dart/avoid-unnecessary-type-casts"}},l={},c=[{value:"Example",id:"example",level:2},{value:"Example 1: check is same type",id:"example-1-check-is-same-type",level:4},{value:"Example 2: whereType method",id:"example-2-wheretype-method",level:4},{value:"Example 3: patterns",id:"example-3-patterns",level:4}],p={toc:c},u="wrapper";function d(e){let{components:n,...t}=e;return(0,a.kt)(u,(0,r.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-unnecessary-type-assertions"},"avoid-unnecessary-type-assertions"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns about unnecessary usage of ",(0,a.kt)("inlineCode",{parentName:"p"},"is")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"whereType")," operators."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h4",{id:"example-1-check-is-same-type"},"Example 1: check is same type"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Example {\n final myList = [1, 2, 3];\n\n void main() {\n final result = myList is List; // LINT\n myList.whereType();\n }\n}\n")),(0,a.kt)("h4",{id:"example-2-wheretype-method"},"Example 2: whereType method"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"main(){\n ['1', '2'].whereType(); // LINT\n}\n")),(0,a.kt)("h4",{id:"example-3-patterns"},"Example 3: patterns"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Animal {}\n\nclass HomeAnimal extends Animal {}\n\nvoid main() {\n final animal = Animal();\n\n if (animal case HomeAnimal result) {}\n if (animal case HomeAnimal()) {}\n\n if (animal case Animal result) {} // LINT\n if (animal case Animal()) {} // LINT\n}\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[1070],{3905:(e,n,t)=>{t.d(n,{Zo:()=>p,kt:()=>y});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=r.createContext({}),c=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=c(e.components);return r.createElement(l.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,s=e.originalType,l=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=c(t),m=a,y=u["".concat(l,".").concat(m)]||u[m]||d[m]||s;return t?r.createElement(y,i(i({ref:n},p),{},{components:t})):r.createElement(y,i({ref:n},p))}));function y(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var s=t.length,i=new Array(s);i[0]=m;var o={};for(var l in n)hasOwnProperty.call(n,l)&&(o[l]=n[l]);o.originalType=e,o[u]="string"==typeof e?e:a,i[1]=o;for(var c=2;c{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var r=t(7462),a=(t(7294),t(3905));const s={},i="avoid-unnecessary-type-assertions",o={unversionedId:"rules/dart/avoid-unnecessary-type-assertions",id:"rules/dart/avoid-unnecessary-type-assertions",title:"avoid-unnecessary-type-assertions",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-unnecessary-type-assertions.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-unnecessary-type-assertions",permalink:"/docs/rules/dart/avoid-unnecessary-type-assertions",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-unnecessary-type-assertions.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-unnecessary-conditionals",permalink:"/docs/rules/dart/avoid-unnecessary-conditionals"},next:{title:"avoid-unnecessary-type-casts",permalink:"/docs/rules/dart/avoid-unnecessary-type-casts"}},l={},c=[{value:"Example",id:"example",level:2},{value:"Example 1: check is same type",id:"example-1-check-is-same-type",level:4},{value:"Example 2: whereType method",id:"example-2-wheretype-method",level:4},{value:"Example 3: patterns",id:"example-3-patterns",level:4}],p={toc:c},u="wrapper";function d(e){let{components:n,...t}=e;return(0,a.kt)(u,(0,r.Z)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-unnecessary-type-assertions"},"avoid-unnecessary-type-assertions"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns about unnecessary usage of ",(0,a.kt)("inlineCode",{parentName:"p"},"is")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"whereType")," operators."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h4",{id:"example-1-check-is-same-type"},"Example 1: check is same type"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Example {\n final myList = [1, 2, 3];\n\n void main() {\n final result = myList is List; // LINT\n myList.whereType();\n }\n}\n")),(0,a.kt)("h4",{id:"example-2-wheretype-method"},"Example 2: whereType method"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"main(){\n ['1', '2'].whereType(); // LINT\n}\n")),(0,a.kt)("h4",{id:"example-3-patterns"},"Example 3: patterns"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Animal {}\n\nclass HomeAnimal extends Animal {}\n\nvoid main() {\n final animal = Animal();\n\n if (animal case HomeAnimal result) {}\n if (animal case HomeAnimal()) {}\n\n if (animal case Animal result) {} // LINT\n if (animal case Animal()) {} // LINT\n}\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8f2918f8.5c9c43e7.js b/assets/js/8f2918f8.5c9c43e7.js new file mode 100644 index 000000000..ebcb74dfc --- /dev/null +++ b/assets/js/8f2918f8.5c9c43e7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[1825],{3905:(e,r,n)=>{n.d(r,{Zo:()=>s,kt:()=>b});var t=n(7294);function o(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function l(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function a(e){for(var r=1;r=0||(o[n]=e[n]);return o}(e,r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=t.createContext({}),c=function(e){var r=t.useContext(u),n=r;return e&&(n="function"==typeof e?e(r):a(a({},r),e)),n},s=function(e){var r=c(e.components);return t.createElement(u.Provider,{value:r},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},f=t.forwardRef((function(e,r){var n=e.components,o=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=c(n),f=o,b=d["".concat(u,".").concat(f)]||d[f]||p[f]||l;return n?t.createElement(b,a(a({ref:r},s),{},{components:n})):t.createElement(b,a({ref:r},s))}));function b(e,r){var n=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var l=n.length,a=new Array(l);a[0]=f;var i={};for(var u in r)hasOwnProperty.call(r,u)&&(i[u]=r[u]);i.originalType=e,i[d]="string"==typeof e?e:o,a[1]=i;for(var c=2;c{n.r(r),n.d(r,{assets:()=>u,contentTitle:()=>a,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var t=n(7462),o=(n(7294),n(3905));const l={},a="no-blank-line-before-single-return",i={unversionedId:"rules/dart/no-blank-line-before-single-return",id:"rules/dart/no-blank-line-before-single-return",title:"no-blank-line-before-single-return",description:"added in: 1.2.0 style",source:"@site/docs/rules/dart/no-blank-line-before-single-return.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/no-blank-line-before-single-return",permalink:"/docs/rules/dart/no-blank-line-before-single-return",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/no-blank-line-before-single-return.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"newline-before-return",permalink:"/docs/rules/dart/newline-before-return"},next:{title:"no-boolean-literal-compare",permalink:"/docs/rules/dart/no-boolean-literal-compare"}},u={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],s={toc:c},d="wrapper";function p(e){let{components:r,...n}=e;return(0,o.kt)(d,(0,t.Z)({},s,n,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"no-blank-line-before-single-return"},"no-blank-line-before-single-return"),(0,o.kt)("p",null,"added in: 1.2.0 ",(0,o.kt)("span",{style:{color:"green"}},"style")),(0,o.kt)("p",null,"Disallows empty blank lines before a return inside a code block that only contains a return statement."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"}," // LINT\n if ( ... ) {\n\n return;\n }\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"}," if ( ... ) {\n return;\n }\n\n if ( ... ) {\n // TODO(developername): need to implement.\n return;\n }\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/90b032b6.8c47939f.js b/assets/js/90b032b6.b936c6f1.js similarity index 98% rename from assets/js/90b032b6.8c47939f.js rename to assets/js/90b032b6.b936c6f1.js index 98a1a475f..b5dec6fd8 100644 --- a/assets/js/90b032b6.8c47939f.js +++ b/assets/js/90b032b6.b936c6f1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4368],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),d=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=d(n),m=a,f=u["".concat(s,".").concat(m)]||u[m]||p[m]||i;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:a,l[1]=o;for(var d=2;d{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const i={},l="prefer-extracting-callbacks",o={unversionedId:"rules/flutter/prefer-extracting-callbacks",id:"rules/flutter/prefer-extracting-callbacks",title:"prefer-extracting-callbacks",description:"added in: 1.6.0 style",source:"@site/docs/rules/flutter/prefer-extracting-callbacks.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/prefer-extracting-callbacks",permalink:"/docs/rules/flutter/prefer-extracting-callbacks",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/prefer-extracting-callbacks.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-correct-edge-insets-constructor",permalink:"/docs/rules/flutter/prefer-correct-edge-insets-constructor"},next:{title:"prefer-single-widget-per-file",permalink:"/docs/rules/flutter/prefer-single-widget-per-file"}},s={},d=[],c={toc:d},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-extracting-callbacks"},"prefer-extracting-callbacks"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns about inline callbacks in a widget tree and suggests to extract them to widget methods in order to make a build method more readable. In addition extracting can help test those methods separately as well."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This rule will not trigger on:"),(0,a.kt)("ul",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ul"},"arrow functions like ",(0,a.kt)("inlineCode",{parentName:"li"},"onPressed: () => _handler(...)")," in order to cover cases when a callback needs a variable from the outside;"),(0,a.kt)("li",{parentName:"ul"},"empty blocks."),(0,a.kt)("li",{parentName:"ul"},"Flutter specific: arguments with functions returning ",(0,a.kt)("inlineCode",{parentName:"li"},"Widget")," type (or its subclass) and with first parameter of type ",(0,a.kt)("inlineCode",{parentName:"li"},"BuildContext"),'. "Builder" functions is a common pattern in Flutter, for example, ',(0,a.kt)("u",null,(0,a.kt)("a",{parentName:"li",href:"https://api.flutter.dev/flutter/widgets/IndexedWidgetBuilder.html"},"IndexedWidgetBuilder"))," typedef is used in ",(0,a.kt)("u",null,(0,a.kt)("a",{parentName:"li",href:"https://api.flutter.dev/flutter/widgets/ListView/ListView.builder.html"},"ListView.builder")),".:::")),(0,a.kt)("h2",{parentName:"admonition",id:"config"},"Config"),(0,a.kt)("p",{parentName:"admonition"},"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"allowed-line-count")," (default is none) to configure the maximum number of lines after which the rule should trigger."),(0,a.kt)("p",{parentName:"admonition"},"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignored-named-arguments")," (default is none) to ignore specific named parameters."),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-extracting-callbacks:\n ignored-named-arguments:\n - onPressed\n allowed-line-count: 3\n")),(0,a.kt)("h2",{parentName:"admonition",id:"example"},"Example"),(0,a.kt)("h3",{parentName:"admonition",id:"bad"},"Bad:"),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class MyWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n return TextButton(\n style: ...,\n onPressed: () { // LINT\n // Some\n // Huge\n // Callback\n },\n child: ...\n );\n }\n}\n")),(0,a.kt)("h3",{parentName:"admonition",id:"good"},"Good:"),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class MyWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n return TextButton(\n style: ...,\n onPressed: () => handlePressed(context),\n child: ...\n );\n }\n\n void handlePressed(BuildContext context) {\n ...\n }\n}\n\nclass MyWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n return TextButton(\n style: ...,\n onPressed: handlePressed,\n child: ...\n );\n }\n\n void handlePressed() {\n ...\n }\n}\n"))))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4368],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),d=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=d(n),m=a,f=u["".concat(s,".").concat(m)]||u[m]||p[m]||i;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=m;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:a,l[1]=o;for(var d=2;d{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const i={},l="prefer-extracting-callbacks",o={unversionedId:"rules/flutter/prefer-extracting-callbacks",id:"rules/flutter/prefer-extracting-callbacks",title:"prefer-extracting-callbacks",description:"added in: 1.0.0 style",source:"@site/docs/rules/flutter/prefer-extracting-callbacks.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/prefer-extracting-callbacks",permalink:"/docs/rules/flutter/prefer-extracting-callbacks",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/prefer-extracting-callbacks.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-correct-edge-insets-constructor",permalink:"/docs/rules/flutter/prefer-correct-edge-insets-constructor"},next:{title:"prefer-single-widget-per-file",permalink:"/docs/rules/flutter/prefer-single-widget-per-file"}},s={},d=[],c={toc:d},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-extracting-callbacks"},"prefer-extracting-callbacks"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns about inline callbacks in a widget tree and suggests to extract them to widget methods in order to make a build method more readable. In addition extracting can help test those methods separately as well."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"This rule will not trigger on:"),(0,a.kt)("ul",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ul"},"arrow functions like ",(0,a.kt)("inlineCode",{parentName:"li"},"onPressed: () => _handler(...)")," in order to cover cases when a callback needs a variable from the outside;"),(0,a.kt)("li",{parentName:"ul"},"empty blocks."),(0,a.kt)("li",{parentName:"ul"},"Flutter specific: arguments with functions returning ",(0,a.kt)("inlineCode",{parentName:"li"},"Widget")," type (or its subclass) and with first parameter of type ",(0,a.kt)("inlineCode",{parentName:"li"},"BuildContext"),'. "Builder" functions is a common pattern in Flutter, for example, ',(0,a.kt)("u",null,(0,a.kt)("a",{parentName:"li",href:"https://api.flutter.dev/flutter/widgets/IndexedWidgetBuilder.html"},"IndexedWidgetBuilder"))," typedef is used in ",(0,a.kt)("u",null,(0,a.kt)("a",{parentName:"li",href:"https://api.flutter.dev/flutter/widgets/ListView/ListView.builder.html"},"ListView.builder")),".:::")),(0,a.kt)("h2",{parentName:"admonition",id:"config"},"Config"),(0,a.kt)("p",{parentName:"admonition"},"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"allowed-line-count")," (default is none) to configure the maximum number of lines after which the rule should trigger."),(0,a.kt)("p",{parentName:"admonition"},"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignored-named-arguments")," (default is none) to ignore specific named parameters."),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-extracting-callbacks:\n ignored-named-arguments:\n - onPressed\n allowed-line-count: 3\n")),(0,a.kt)("h2",{parentName:"admonition",id:"example"},"Example"),(0,a.kt)("h3",{parentName:"admonition",id:"bad"},"Bad:"),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class MyWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n return TextButton(\n style: ...,\n onPressed: () { // LINT\n // Some\n // Huge\n // Callback\n },\n child: ...\n );\n }\n}\n")),(0,a.kt)("h3",{parentName:"admonition",id:"good"},"Good:"),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class MyWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n return TextButton(\n style: ...,\n onPressed: () => handlePressed(context),\n child: ...\n );\n }\n\n void handlePressed(BuildContext context) {\n ...\n }\n}\n\nclass MyWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n return TextButton(\n style: ...,\n onPressed: handlePressed,\n child: ...\n );\n }\n\n void handlePressed() {\n ...\n }\n}\n"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/918b6acf.b5c19a98.js b/assets/js/918b6acf.852fb260.js similarity index 97% rename from assets/js/918b6acf.b5c19a98.js rename to assets/js/918b6acf.852fb260.js index a2f03ea48..e808aea17 100644 --- a/assets/js/918b6acf.b5c19a98.js +++ b/assets/js/918b6acf.852fb260.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2599],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=i(r),m=a,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||l;return r?n.createElement(f,o(o({ref:t},s),{},{components:r})):n.createElement(f,o({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:a,o[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>c,toc:()=>i});var n=r(7462),a=(r(7294),r(3905));const l={},o="prefer-correct-type-name",c={unversionedId:"rules/dart/prefer-correct-type-name",id:"rules/dart/prefer-correct-type-name",title:"prefer-correct-type-name",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/prefer-correct-type-name.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-correct-type-name",permalink:"/docs/rules/dart/prefer-correct-type-name",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-correct-type-name.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-correct-test-file-name",permalink:"/docs/rules/dart/prefer-correct-test-file-name"},next:{title:"prefer-enums-by-name",permalink:"/docs/rules/dart/prefer-enums-by-name"}},p={},i=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],s={toc:i},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-correct-type-name"},"prefer-correct-type-name"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Rule checks that the type name should only contain alphanumeric characters, start with an uppercase character and span between min-length and ",(0,a.kt)("inlineCode",{parentName:"p"},"max-length")," characters in length."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"min-length")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"3"),") to configure the minimum type name length."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"max-length")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"40"),") to configure the maximum type name length."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"excluded")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"none"),") to ignore specific type names."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-correct-type-name:\n excluded: [ 'exampleExclude' ]\n min-length: 3\n max-length: 40\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class example { // not capitalized\n //...\n}\nclass ex { // length equals 2\n //...\n}\nclass multiplatformConfigurationPointWithExtras { // length equals 41\n //...\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Example { // length equals 7\n //...\n}\n\nclass _Example { // length equals 7\n //...\n}\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2599],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=i(r),m=a,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||l;return r?n.createElement(f,o(o({ref:t},s),{},{components:r})):n.createElement(f,o({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=m;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:a,o[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>c,toc:()=>i});var n=r(7462),a=(r(7294),r(3905));const l={},o="prefer-correct-type-name",c={unversionedId:"rules/dart/prefer-correct-type-name",id:"rules/dart/prefer-correct-type-name",title:"prefer-correct-type-name",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/prefer-correct-type-name.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-correct-type-name",permalink:"/docs/rules/dart/prefer-correct-type-name",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-correct-type-name.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-correct-test-file-name",permalink:"/docs/rules/dart/prefer-correct-test-file-name"},next:{title:"prefer-enums-by-name",permalink:"/docs/rules/dart/prefer-enums-by-name"}},p={},i=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],s={toc:i},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-correct-type-name"},"prefer-correct-type-name"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Rule checks that the type name should only contain alphanumeric characters, start with an uppercase character and span between min-length and ",(0,a.kt)("inlineCode",{parentName:"p"},"max-length")," characters in length."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"min-length")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"3"),") to configure the minimum type name length."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"max-length")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"40"),") to configure the maximum type name length."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"excluded")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"none"),") to ignore specific type names."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-correct-type-name:\n excluded: [ 'exampleExclude' ]\n min-length: 3\n max-length: 40\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class example { // not capitalized\n //...\n}\nclass ex { // length equals 2\n //...\n}\nclass multiplatformConfigurationPointWithExtras { // length equals 41\n //...\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Example { // length equals 7\n //...\n}\n\nclass _Example { // length equals 7\n //...\n}\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.80c2034c.js b/assets/js/935f2afb.80c2034c.js new file mode 100644 index 000000000..710a698db --- /dev/null +++ b/assets/js/935f2afb.80c2034c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Getting Started","href":"/docs/getting-started","docId":"getting-started"},{"type":"link","label":"Core Concepts","href":"/docs/core-concepts","docId":"core-concepts"},{"type":"category","label":"Configuration","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Configuring Metrics","href":"/docs/configuration/configuring-metrics","docId":"configuration/configuring-metrics"},{"type":"link","label":"Configuring Rules","href":"/docs/configuration/configuring-rules","docId":"configuration/configuring-rules"},{"type":"link","label":"Excluding Code from Analysis","href":"/docs/configuration/excluding-code","docId":"configuration/excluding-code"},{"type":"link","label":"Presets","href":"/docs/configuration/presets","docId":"configuration/presets"}],"href":"/docs/configuration/"},{"type":"category","label":"CLI","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Analyze","href":"/docs/cli/analyze","docId":"cli/analyze"},{"type":"link","label":"Check Unnecessary Nullable Parameters","href":"/docs/cli/check-unnecessary-nullable","docId":"cli/check-unnecessary-nullable"},{"type":"link","label":"Check Unused Code","href":"/docs/cli/check-unused-code","docId":"cli/check-unused-code"},{"type":"link","label":"Check Unused Files","href":"/docs/cli/check-unused-files","docId":"cli/check-unused-files"},{"type":"link","label":"Check Unused L10n","href":"/docs/cli/check-unused-l10n","docId":"cli/check-unused-l10n"},{"type":"link","label":"Fix","href":"/docs/cli/fix","docId":"cli/fix"}],"href":"/docs/cli/"},{"type":"category","label":"Rules","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Dart","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"arguments-ordering","href":"/docs/rules/dart/arguments-ordering","docId":"rules/dart/arguments-ordering"},{"type":"link","label":"avoid-banned-imports","href":"/docs/rules/dart/avoid-banned-imports","docId":"rules/dart/avoid-banned-imports"},{"type":"link","label":"avoid-cascade-after-if-null","href":"/docs/rules/dart/avoid-cascade-after-if-null","docId":"rules/dart/avoid-cascade-after-if-null"},{"type":"link","label":"avoid-collection-methods-with-unrelated-types","href":"/docs/rules/dart/avoid-collection-methods-with-unrelated-types","docId":"rules/dart/avoid-collection-methods-with-unrelated-types"},{"type":"link","label":"avoid-double-slash-imports","href":"/docs/rules/dart/avoid-double-slash-imports","docId":"rules/dart/avoid-double-slash-imports"},{"type":"link","label":"avoid-duplicate-exports","href":"/docs/rules/dart/avoid-duplicate-exports","docId":"rules/dart/avoid-duplicate-exports"},{"type":"link","label":"avoid-dynamic","href":"/docs/rules/dart/avoid-dynamic","docId":"rules/dart/avoid-dynamic"},{"type":"link","label":"avoid-global-state","href":"/docs/rules/dart/avoid-global-state","docId":"rules/dart/avoid-global-state"},{"type":"link","label":"avoid-ignoring-return-values","href":"/docs/rules/dart/avoid-ignoring-return-values","docId":"rules/dart/avoid-ignoring-return-values"},{"type":"link","label":"avoid-late-keyword","href":"/docs/rules/dart/avoid-late-keyword","docId":"rules/dart/avoid-late-keyword"},{"type":"link","label":"avoid-missing-enum-constant-in-map","href":"/docs/rules/dart/avoid-missing-enum-constant-in-map","docId":"rules/dart/avoid-missing-enum-constant-in-map"},{"type":"link","label":"avoid-nested-conditional-expressions","href":"/docs/rules/dart/avoid-nested-conditional-expressions","docId":"rules/dart/avoid-nested-conditional-expressions"},{"type":"link","label":"avoid-non-ascii-symbols","href":"/docs/rules/dart/avoid-non-ascii-symbols","docId":"rules/dart/avoid-non-ascii-symbols"},{"type":"link","label":"avoid-non-null-assertion","href":"/docs/rules/dart/avoid-non-null-assertion","docId":"rules/dart/avoid-non-null-assertion"},{"type":"link","label":"avoid-passing-async-when-sync-expected","href":"/docs/rules/dart/avoid-passing-async-when-sync-expected","docId":"rules/dart/avoid-passing-async-when-sync-expected"},{"type":"link","label":"avoid-redundant-async","href":"/docs/rules/dart/avoid-redundant-async","docId":"rules/dart/avoid-redundant-async"},{"type":"link","label":"avoid-throw-in-catch-block","href":"/docs/rules/dart/avoid-throw-in-catch-block","docId":"rules/dart/avoid-throw-in-catch-block"},{"type":"link","label":"avoid-top-level-members-in-tests","href":"/docs/rules/dart/avoid-top-level-members-in-tests","docId":"rules/dart/avoid-top-level-members-in-tests"},{"type":"link","label":"avoid-unnecessary-conditionals","href":"/docs/rules/dart/avoid-unnecessary-conditionals","docId":"rules/dart/avoid-unnecessary-conditionals"},{"type":"link","label":"avoid-unnecessary-type-assertions","href":"/docs/rules/dart/avoid-unnecessary-type-assertions","docId":"rules/dart/avoid-unnecessary-type-assertions"},{"type":"link","label":"avoid-unnecessary-type-casts","href":"/docs/rules/dart/avoid-unnecessary-type-casts","docId":"rules/dart/avoid-unnecessary-type-casts"},{"type":"link","label":"avoid-unrelated-type-assertions","href":"/docs/rules/dart/avoid-unrelated-type-assertions","docId":"rules/dart/avoid-unrelated-type-assertions"},{"type":"link","label":"avoid-unused-parameters","href":"/docs/rules/dart/avoid-unused-parameters","docId":"rules/dart/avoid-unused-parameters"},{"type":"link","label":"ban-name","href":"/docs/rules/dart/ban-name","docId":"rules/dart/ban-name"},{"type":"link","label":"binary-expression-operand-order","href":"/docs/rules/dart/binary-expression-operand-order","docId":"rules/dart/binary-expression-operand-order"},{"type":"link","label":"double-literal-format","href":"/docs/rules/dart/double-literal-format","docId":"rules/dart/double-literal-format"},{"type":"link","label":"format-comment","href":"/docs/rules/dart/format-comment","docId":"rules/dart/format-comment"},{"type":"link","label":"list-all-equatable-fields","href":"/docs/rules/dart/list-all-equatable-fields","docId":"rules/dart/list-all-equatable-fields"},{"type":"link","label":"member-ordering","href":"/docs/rules/dart/member-ordering","docId":"rules/dart/member-ordering"},{"type":"link","label":"missing-test-assertion","href":"/docs/rules/dart/missing-test-assertion","docId":"rules/dart/missing-test-assertion"},{"type":"link","label":"newline-before-return","href":"/docs/rules/dart/newline-before-return","docId":"rules/dart/newline-before-return"},{"type":"link","label":"no-blank-line-before-single-return","href":"/docs/rules/dart/no-blank-line-before-single-return","docId":"rules/dart/no-blank-line-before-single-return"},{"type":"link","label":"no-boolean-literal-compare","href":"/docs/rules/dart/no-boolean-literal-compare","docId":"rules/dart/no-boolean-literal-compare"},{"type":"link","label":"no-empty-block","href":"/docs/rules/dart/no-empty-block","docId":"rules/dart/no-empty-block"},{"type":"link","label":"no-equal-arguments","href":"/docs/rules/dart/no-equal-arguments","docId":"rules/dart/no-equal-arguments"},{"type":"link","label":"no-equal-then-else","href":"/docs/rules/dart/no-equal-then-else","docId":"rules/dart/no-equal-then-else"},{"type":"link","label":"no-magic-number","href":"/docs/rules/dart/no-magic-number","docId":"rules/dart/no-magic-number"},{"type":"link","label":"no-object-declaration","href":"/docs/rules/dart/no-object-declaration","docId":"rules/dart/no-object-declaration"},{"type":"link","label":"prefer-async-await","href":"/docs/rules/dart/prefer-async-await","docId":"rules/dart/prefer-async-await"},{"type":"link","label":"prefer-commenting-analyzer-ignores","href":"/docs/rules/dart/prefer-commenting-analyzer-ignores","docId":"rules/dart/prefer-commenting-analyzer-ignores"},{"type":"link","label":"prefer-conditional-expressions","href":"/docs/rules/dart/prefer-conditional-expressions","docId":"rules/dart/prefer-conditional-expressions"},{"type":"link","label":"prefer-correct-identifier-length","href":"/docs/rules/dart/prefer-correct-identifier-length","docId":"rules/dart/prefer-correct-identifier-length"},{"type":"link","label":"prefer-correct-test-file-name","href":"/docs/rules/dart/prefer-correct-test-file-name","docId":"rules/dart/prefer-correct-test-file-name"},{"type":"link","label":"prefer-correct-type-name","href":"/docs/rules/dart/prefer-correct-type-name","docId":"rules/dart/prefer-correct-type-name"},{"type":"link","label":"prefer-enums-by-name","href":"/docs/rules/dart/prefer-enums-by-name","docId":"rules/dart/prefer-enums-by-name"},{"type":"link","label":"prefer-first-or-null","href":"/docs/rules/dart/prefer-first-or-null","docId":"rules/dart/prefer-first-or-null"},{"type":"link","label":"prefer-first","href":"/docs/rules/dart/prefer-first","docId":"rules/dart/prefer-first"},{"type":"link","label":"prefer-immediate-return","href":"/docs/rules/dart/prefer-immediate-return","docId":"rules/dart/prefer-immediate-return"},{"type":"link","label":"prefer-iterable-of","href":"/docs/rules/dart/prefer-iterable-of","docId":"rules/dart/prefer-iterable-of"},{"type":"link","label":"prefer-last","href":"/docs/rules/dart/prefer-last","docId":"rules/dart/prefer-last"},{"type":"link","label":"prefer-match-file-name","href":"/docs/rules/dart/prefer-match-file-name","docId":"rules/dart/prefer-match-file-name"},{"type":"link","label":"prefer-moving-to-variable","href":"/docs/rules/dart/prefer-moving-to-variable","docId":"rules/dart/prefer-moving-to-variable"},{"type":"link","label":"prefer-single-quotes","href":"/docs/rules/dart/prefer-single-quotes","docId":"rules/dart/prefer-single-quotes"},{"type":"link","label":"prefer-static-class","href":"/docs/rules/dart/prefer-static-class","docId":"rules/dart/prefer-static-class"},{"type":"link","label":"prefer-trailing-comma","href":"/docs/rules/dart/prefer-trailing-comma","docId":"rules/dart/prefer-trailing-comma"}],"href":"/docs/rules/dart/"},{"type":"category","label":"Flutter","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"always-remove-listener","href":"/docs/rules/flutter/always-remove-listener","docId":"rules/flutter/always-remove-listener"},{"type":"link","label":"avoid-border-all","href":"/docs/rules/flutter/avoid-border-all","docId":"rules/flutter/avoid-border-all"},{"type":"link","label":"avoid-expanded-as-spacer","href":"/docs/rules/flutter/avoid-expanded-as-spacer","docId":"rules/flutter/avoid-expanded-as-spacer"},{"type":"link","label":"avoid-returning-widgets","href":"/docs/rules/flutter/avoid-returning-widgets","docId":"rules/flutter/avoid-returning-widgets"},{"type":"link","label":"avoid-shrink-wrap-in-lists","href":"/docs/rules/flutter/avoid-shrink-wrap-in-lists","docId":"rules/flutter/avoid-shrink-wrap-in-lists"},{"type":"link","label":"avoid-unnecessary-setstate","href":"/docs/rules/flutter/avoid-unnecessary-setstate","docId":"rules/flutter/avoid-unnecessary-setstate"},{"type":"link","label":"avoid-wrapping-in-padding","href":"/docs/rules/flutter/avoid-wrapping-in-padding","docId":"rules/flutter/avoid-wrapping-in-padding"},{"type":"link","label":"check-for-equals-in-render-object-setters","href":"/docs/rules/flutter/check-for-equals-in-render-object-setters","docId":"rules/flutter/check-for-equals-in-render-object-setters"},{"type":"link","label":"consistent-update-render-object","href":"/docs/rules/flutter/consistent-update-render-object","docId":"rules/flutter/consistent-update-render-object"},{"type":"link","label":"prefer-const-border-radius","href":"/docs/rules/flutter/prefer-const-border-radius","docId":"rules/flutter/prefer-const-border-radius"},{"type":"link","label":"prefer-correct-edge-insets-constructor","href":"/docs/rules/flutter/prefer-correct-edge-insets-constructor","docId":"rules/flutter/prefer-correct-edge-insets-constructor"},{"type":"link","label":"prefer-extracting-callbacks","href":"/docs/rules/flutter/prefer-extracting-callbacks","docId":"rules/flutter/prefer-extracting-callbacks"},{"type":"link","label":"prefer-single-widget-per-file","href":"/docs/rules/flutter/prefer-single-widget-per-file","docId":"rules/flutter/prefer-single-widget-per-file"},{"type":"link","label":"prefer-using-list-view","href":"/docs/rules/flutter/prefer-using-list-view","docId":"rules/flutter/prefer-using-list-view"},{"type":"link","label":"use-setstate-synchronously","href":"/docs/rules/flutter/use-setstate-synchronously","docId":"rules/flutter/use-setstate-synchronously"}],"href":"/docs/rules/flutter/"},{"type":"category","label":"Flame","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"avoid-creating-vector-in-update","href":"/docs/rules/flame/avoid-creating-vector-in-update","docId":"rules/flame/avoid-creating-vector-in-update"},{"type":"link","label":"avoid-initializing-in-on-mount","href":"/docs/rules/flame/avoid-initializing-in-on-mount","docId":"rules/flame/avoid-initializing-in-on-mount"},{"type":"link","label":"avoid-redundant-async-on-load","href":"/docs/rules/flame/avoid-redundant-async-on-load","docId":"rules/flame/avoid-redundant-async-on-load"}],"href":"/docs/rules/flame/"},{"type":"category","label":"Intl","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"prefer-intl-name","href":"/docs/rules/intl/prefer-intl-name","docId":"rules/intl/prefer-intl-name"},{"type":"link","label":"prefer-providing-intl-description","href":"/docs/rules/intl/prefer-provide-intl-description","docId":"rules/intl/prefer-provide-intl-description"}],"href":"/docs/rules/intl/"}],"href":"/docs/rules/"},{"type":"category","label":"Metrics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Cyclomatic Complexity","href":"/docs/metrics/cyclomatic-complexity","docId":"metrics/cyclomatic-complexity"},{"type":"link","label":"Halstead Volume","href":"/docs/metrics/halstead-volume","docId":"metrics/halstead-volume"},{"type":"link","label":"Lines of Code","href":"/docs/metrics/lines-of-code","docId":"metrics/lines-of-code"},{"type":"link","label":"Maintainability Index","href":"/docs/metrics/maintainability-index","docId":"metrics/maintainability-index"},{"type":"link","label":"Maximum Nesting Level","href":"/docs/metrics/maximum-nesting-level","docId":"metrics/maximum-nesting-level"},{"type":"link","label":"Number of Methods","href":"/docs/metrics/number-of-methods","docId":"metrics/number-of-methods"},{"type":"link","label":"Number of Parameters","href":"/docs/metrics/number-of-parameters","docId":"metrics/number-of-parameters"},{"type":"link","label":"Source lines of Code","href":"/docs/metrics/source-lines-of-code","docId":"metrics/source-lines-of-code"},{"type":"link","label":"Technical Debt","href":"/docs/metrics/technical-debt","docId":"metrics/technical-debt"},{"type":"link","label":"Weight Of Class","href":"/docs/metrics/weight-of-class","docId":"metrics/weight-of-class"}],"href":"/docs/metrics/"},{"type":"category","label":"Anti Patterns","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Long Method","href":"/docs/anti-patterns/long-method","docId":"anti-patterns/long-method"},{"type":"link","label":"Long Parameter List","href":"/docs/anti-patterns/long-parameter-list","docId":"anti-patterns/long-parameter-list"}],"href":"/docs/anti-patterns/"}]},"docs":{"anti-patterns/anti-patterns":{"id":"anti-patterns/anti-patterns","title":"Anti Patterns","description":"Available anti-patterns:","sidebar":"tutorialSidebar"},"anti-patterns/long-method":{"id":"anti-patterns/long-method","title":"Long Method","description":"Long blocks of code are difficult to reuse and understand because they are usually responsible for more than one thing. Separating those to several short ones with proper names helps you reuse your code and understand it better without reading methods body.","sidebar":"tutorialSidebar"},"anti-patterns/long-parameter-list":{"id":"anti-patterns/long-parameter-list","title":"Long Parameter List","description":"Long parameter lists are difficult to understand and use. Wrapping them into an object allows grouping parameters and change transferred data only by the object modification. When you\'re working with objects, you should pass just enough so that the method can get the data it needs.","sidebar":"tutorialSidebar"},"cli/analyze":{"id":"cli/analyze","title":"Analyze","description":"Reports lint rules violations.","sidebar":"tutorialSidebar"},"cli/check-unnecessary-nullable":{"id":"cli/check-unnecessary-nullable","title":"Check Unnecessary Nullable Parameters","description":"Checks unnecessary nullable parameters in functions, methods, constructors. Removing unnecessary nullables can help reduce amount of checks in the code.","sidebar":"tutorialSidebar"},"cli/check-unused-code":{"id":"cli/check-unused-code","title":"Check Unused Code","description":"Checks unused classes, fields, properties, methods, functions, variables, extensions, enums, mixins and type aliases.","sidebar":"tutorialSidebar"},"cli/check-unused-files":{"id":"cli/check-unused-files","title":"Check Unused Files","description":"Checks unused *.dart files.","sidebar":"tutorialSidebar"},"cli/check-unused-l10n":{"id":"cli/check-unused-l10n","title":"Check Unused L10n","description":"Checks unused Dart class members, that encapsulates the app\'s localized values.","sidebar":"tutorialSidebar"},"cli/cli":{"id":"cli/cli","title":"CLI","description":"To use the package as a command-line tool, run:","sidebar":"tutorialSidebar"},"cli/fix":{"id":"cli/fix","title":"Fix","description":"added in: 1.2.0 style","sidebar":"tutorialSidebar"},"configuration/configuration":{"id":"configuration/configuration","title":"Configuration","description":"DCL is designed to be flexible and configurable for your use case. You can turn off every rule and run only with enabled metrics calculation or have both rules and metrics enabled.","sidebar":"tutorialSidebar"},"configuration/configuring-metrics":{"id":"configuration/configuring-metrics","title":"Configuring Metrics","description":"Metrics are one of the core building blocks of DCL. Metrics help you understand the complexity of your code and identify areas that may be difficult to maintain or test.","sidebar":"tutorialSidebar"},"configuration/configuring-rules":{"id":"configuration/configuring-rules","title":"Configuring Rules","description":"Rules are one of the core building blocks of DCL. A rule validates if your code meets a certain expectation, and what to do if it does not meet that expectation.","sidebar":"tutorialSidebar"},"configuration/excluding-code":{"id":"configuration/excluding-code","title":"Excluding Code from Analysis","description":"DCL also excludes files listed in the analyzer exclude: option. For example,","sidebar":"tutorialSidebar"},"configuration/presets":{"id":"configuration/presets","title":"Presets","description":"DCL includes 7 sets of predefined configurations:","sidebar":"tutorialSidebar"},"core-concepts":{"id":"core-concepts","title":"Core Concepts","description":"This page contains a high-level overview of some of the core concepts of DCL.","sidebar":"tutorialSidebar"},"getting-started":{"id":"getting-started","title":"Getting Started","description":"Dart code Linter - DCL is a tool that helps improve the quality and consistency of Dart code by identifying and reporting problems, such as bugs and code that doesn\'t follow best practices. It also collects analytical data on the code through calculating code metrics and can be configured to set thresholds for these metrics.","sidebar":"tutorialSidebar"},"metrics/cyclomatic-complexity":{"id":"metrics/cyclomatic-complexity","title":"Cyclomatic Complexity","description":"Number of linearly independent paths through a block of code. Conditional operators or loops increases the number of paths in a code. The more paths, the higher the number of test cases that need to be implemented. The metric complies with McCabe\'s original definition:","sidebar":"tutorialSidebar"},"metrics/halstead-volume":{"id":"metrics/halstead-volume","title":"Halstead Volume","description":"The Halstead metrics are based on the numbers of operators and operands.","sidebar":"tutorialSidebar"},"metrics/lines-of-code":{"id":"metrics/lines-of-code","title":"Lines of Code","description":"The lines of code are the total number of lines in a method (or function). The comment lines, and the blank lines are also counted. A longer method is often difficult to maintain, tend to do a lot of things and can make it hard following what\'s going on.","sidebar":"tutorialSidebar"},"metrics/maintainability-index":{"id":"metrics/maintainability-index","title":"Maintainability Index","description":"Maintainability Index is a software metric which measures how maintainable (easy to support and change) the source code is. The maintainability index is calculated as a factored formula consisting of Source Lines Of Code, Cyclomatic Complexity and Halstead Volume.","sidebar":"tutorialSidebar"},"metrics/maximum-nesting-level":{"id":"metrics/maximum-nesting-level","title":"Maximum Nesting Level","description":"Maximum Nesting Level this is the maximum level of nesting blocks / control structures that are present in a method (or function). Code with deep nesting level are often complex and tough to maintain.","sidebar":"tutorialSidebar"},"metrics/metrics":{"id":"metrics/metrics","title":"Metrics","description":"Metrics configuration is described here.","sidebar":"tutorialSidebar"},"metrics/number-of-methods":{"id":"metrics/number-of-methods","title":"Number of Methods","description":"The number of methods is the total number of methods in a class (or mixin, or extension). Too many methods indicate a high complexity.","sidebar":"tutorialSidebar"},"metrics/number-of-parameters":{"id":"metrics/number-of-parameters","title":"Number of Parameters","description":"The number of parameters is the number of parameters received by a method (or function). If a method receive too many parameters, it is difficult to call and also difficult to change if it\'s called from many places.","sidebar":"tutorialSidebar"},"metrics/source-lines-of-code":{"id":"metrics/source-lines-of-code","title":"Source lines of Code","description":"Source lines of Code is an approximate number of source code lines in a function or method. Blank or comment lines are not counted.","sidebar":"tutorialSidebar"},"metrics/technical-debt":{"id":"metrics/technical-debt","title":"Technical Debt","description":"The cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer. The metric count debt based on pattern:","sidebar":"tutorialSidebar"},"metrics/weight-of-class":{"id":"metrics/weight-of-class","title":"Weight Of Class","description":"Number of functional public methods divided by the total number of public methods.","sidebar":"tutorialSidebar"},"rules/dart/arguments-ordering":{"id":"rules/dart/arguments-ordering","title":"arguments-ordering","description":"Enforces named argument order in function and constructor invocations to be the same as corresponding named parameter declaration order.","sidebar":"tutorialSidebar"},"rules/dart/avoid-banned-imports":{"id":"rules/dart/avoid-banned-imports","title":"avoid-banned-imports","description":"Configure some imports that you want to ban.","sidebar":"tutorialSidebar"},"rules/dart/avoid-cascade-after-if-null":{"id":"rules/dart/avoid-cascade-after-if-null","title":"avoid-cascade-after-if-null","description":"Warns when a cascade expression is used after if null (??) binary expression without parentheses.","sidebar":"tutorialSidebar"},"rules/dart/avoid-collection-methods-with-unrelated-types":{"id":"rules/dart/avoid-collection-methods-with-unrelated-types","title":"avoid-collection-methods-with-unrelated-types","description":"added in: 1.0.0 warning.","sidebar":"tutorialSidebar"},"rules/dart/avoid-double-slash-imports":{"id":"rules/dart/avoid-double-slash-imports","title":"avoid-double-slash-imports","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-duplicate-exports":{"id":"rules/dart/avoid-duplicate-exports","title":"avoid-duplicate-exports","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-dynamic":{"id":"rules/dart/avoid-dynamic","title":"avoid-dynamic","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-global-state":{"id":"rules/dart/avoid-global-state","title":"avoid-global-state","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-ignoring-return-values":{"id":"rules/dart/avoid-ignoring-return-values","title":"avoid-ignoring-return-values","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-late-keyword":{"id":"rules/dart/avoid-late-keyword","title":"avoid-late-keyword","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-missing-enum-constant-in-map":{"id":"rules/dart/avoid-missing-enum-constant-in-map","title":"avoid-missing-enum-constant-in-map","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-nested-conditional-expressions":{"id":"rules/dart/avoid-nested-conditional-expressions","title":"avoid-nested-conditional-expressions","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/avoid-non-ascii-symbols":{"id":"rules/dart/avoid-non-ascii-symbols","title":"avoid-non-ascii-symbols","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-non-null-assertion":{"id":"rules/dart/avoid-non-null-assertion","title":"avoid-non-null-assertion","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-passing-async-when-sync-expected":{"id":"rules/dart/avoid-passing-async-when-sync-expected","title":"avoid-passing-async-when-sync-expected","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-redundant-async":{"id":"rules/dart/avoid-redundant-async","title":"avoid-redundant-async","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-throw-in-catch-block":{"id":"rules/dart/avoid-throw-in-catch-block","title":"avoid-throw-in-catch-block","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-top-level-members-in-tests":{"id":"rules/dart/avoid-top-level-members-in-tests","title":"avoid-top-level-members-in-tests","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-unnecessary-conditionals":{"id":"rules/dart/avoid-unnecessary-conditionals","title":"avoid-unnecessary-conditionals","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-unnecessary-type-assertions":{"id":"rules/dart/avoid-unnecessary-type-assertions","title":"avoid-unnecessary-type-assertions","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-unnecessary-type-casts":{"id":"rules/dart/avoid-unnecessary-type-casts","title":"avoid-unnecessary-type-casts","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-unrelated-type-assertions":{"id":"rules/dart/avoid-unrelated-type-assertions","title":"avoid-unrelated-type-assertions","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-unused-parameters":{"id":"rules/dart/avoid-unused-parameters","title":"avoid-unused-parameters","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/ban-name":{"id":"rules/dart/ban-name","title":"ban-name","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/binary-expression-operand-order":{"id":"rules/dart/binary-expression-operand-order","title":"binary-expression-operand-order","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/dart":{"id":"rules/dart/dart","title":"Dart","description":"","sidebar":"tutorialSidebar"},"rules/dart/double-literal-format":{"id":"rules/dart/double-literal-format","title":"double-literal-format","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/format-comment":{"id":"rules/dart/format-comment","title":"format-comment","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/list-all-equatable-fields":{"id":"rules/dart/list-all-equatable-fields","title":"list-all-equatable-fields","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/member-ordering":{"id":"rules/dart/member-ordering","title":"member-ordering","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/missing-test-assertion":{"id":"rules/dart/missing-test-assertion","title":"missing-test-assertion","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/newline-before-return":{"id":"rules/dart/newline-before-return","title":"newline-before-return","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/no-blank-line-before-single-return":{"id":"rules/dart/no-blank-line-before-single-return","title":"no-blank-line-before-single-return","description":"added in: 1.2.0 style","sidebar":"tutorialSidebar"},"rules/dart/no-boolean-literal-compare":{"id":"rules/dart/no-boolean-literal-compare","title":"no-boolean-literal-compare","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/no-empty-block":{"id":"rules/dart/no-empty-block","title":"no-empty-block","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/no-equal-arguments":{"id":"rules/dart/no-equal-arguments","title":"no-equal-arguments","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/no-equal-then-else":{"id":"rules/dart/no-equal-then-else","title":"no-equal-then-else","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/no-magic-number":{"id":"rules/dart/no-magic-number","title":"no-magic-number","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/no-object-declaration":{"id":"rules/dart/no-object-declaration","title":"no-object-declaration","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-async-await":{"id":"rules/dart/prefer-async-await","title":"prefer-async-await","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-commenting-analyzer-ignores":{"id":"rules/dart/prefer-commenting-analyzer-ignores","title":"prefer-commenting-analyzer-ignores","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/prefer-conditional-expressions":{"id":"rules/dart/prefer-conditional-expressions","title":"prefer-conditional-expressions","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-correct-identifier-length":{"id":"rules/dart/prefer-correct-identifier-length","title":"prefer-correct-identifier-length","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-correct-test-file-name":{"id":"rules/dart/prefer-correct-test-file-name","title":"prefer-correct-test-file-name","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/prefer-correct-type-name":{"id":"rules/dart/prefer-correct-type-name","title":"prefer-correct-type-name","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-enums-by-name":{"id":"rules/dart/prefer-enums-by-name","title":"prefer-enums-by-name","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-first":{"id":"rules/dart/prefer-first","title":"prefer-first","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-first-or-null":{"id":"rules/dart/prefer-first-or-null","title":"prefer-first-or-null","description":"added in: 1.2.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-immediate-return":{"id":"rules/dart/prefer-immediate-return","title":"prefer-immediate-return","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-iterable-of":{"id":"rules/dart/prefer-iterable-of","title":"prefer-iterable-of","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/prefer-last":{"id":"rules/dart/prefer-last","title":"prefer-last","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-match-file-name":{"id":"rules/dart/prefer-match-file-name","title":"prefer-match-file-name","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/prefer-moving-to-variable":{"id":"rules/dart/prefer-moving-to-variable","title":"prefer-moving-to-variable","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/dart/prefer-single-quotes":{"id":"rules/dart/prefer-single-quotes","title":"prefer-single-quotes","description":"added in: 1.2.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-static-class":{"id":"rules/dart/prefer-static-class","title":"prefer-static-class","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-trailing-comma":{"id":"rules/dart/prefer-trailing-comma","title":"prefer-trailing-comma","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/flame/avoid-creating-vector-in-update":{"id":"rules/flame/avoid-creating-vector-in-update","title":"avoid-creating-vector-in-update","description":"added in: 1.0.0 warning.","sidebar":"tutorialSidebar"},"rules/flame/avoid-initializing-in-on-mount":{"id":"rules/flame/avoid-initializing-in-on-mount","title":"avoid-initializing-in-on-mount","description":"added in: 1.0.0 warning.","sidebar":"tutorialSidebar"},"rules/flame/avoid-redundant-async-on-load":{"id":"rules/flame/avoid-redundant-async-on-load","title":"avoid-redundant-async-on-load","description":"added in: 1.0.0 warning.","sidebar":"tutorialSidebar"},"rules/flame/flame":{"id":"rules/flame/flame","title":"Flame","description":"","sidebar":"tutorialSidebar"},"rules/flutter/always-remove-listener":{"id":"rules/flutter/always-remove-listener","title":"always-remove-listener","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/avoid-border-all":{"id":"rules/flutter/avoid-border-all","title":"avoid-border-all","description":"added in: 1.0.0performance","sidebar":"tutorialSidebar"},"rules/flutter/avoid-expanded-as-spacer":{"id":"rules/flutter/avoid-expanded-as-spacer","title":"avoid-expanded-as-spacer","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/avoid-returning-widgets":{"id":"rules/flutter/avoid-returning-widgets","title":"avoid-returning-widgets","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/avoid-shrink-wrap-in-lists":{"id":"rules/flutter/avoid-shrink-wrap-in-lists","title":"avoid-shrink-wrap-in-lists","description":"added in: 1.0.0performance","sidebar":"tutorialSidebar"},"rules/flutter/avoid-unnecessary-setstate":{"id":"rules/flutter/avoid-unnecessary-setstate","title":"avoid-unnecessary-setstate","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/avoid-wrapping-in-padding":{"id":"rules/flutter/avoid-wrapping-in-padding","title":"avoid-wrapping-in-padding","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/check-for-equals-in-render-object-setters":{"id":"rules/flutter/check-for-equals-in-render-object-setters","title":"check-for-equals-in-render-object-setters","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/consistent-update-render-object":{"id":"rules/flutter/consistent-update-render-object","title":"consistent-update-render-object","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/flutter":{"id":"rules/flutter/flutter","title":"Flutter","description":"","sidebar":"tutorialSidebar"},"rules/flutter/prefer-const-border-radius":{"id":"rules/flutter/prefer-const-border-radius","title":"prefer-const-border-radius","description":"added in: 1.0.0performance","sidebar":"tutorialSidebar"},"rules/flutter/prefer-correct-edge-insets-constructor":{"id":"rules/flutter/prefer-correct-edge-insets-constructor","title":"prefer-correct-edge-insets-constructor","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/flutter/prefer-extracting-callbacks":{"id":"rules/flutter/prefer-extracting-callbacks","title":"prefer-extracting-callbacks","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/flutter/prefer-single-widget-per-file":{"id":"rules/flutter/prefer-single-widget-per-file","title":"prefer-single-widget-per-file","description":"added in: 1.0.0 style","sidebar":"tutorialSidebar"},"rules/flutter/prefer-using-list-view":{"id":"rules/flutter/prefer-using-list-view","title":"prefer-using-list-view","description":"added in: 1.0.0 performance","sidebar":"tutorialSidebar"},"rules/flutter/use-setstate-synchronously":{"id":"rules/flutter/use-setstate-synchronously","title":"use-setstate-synchronously","description":"added in: 1.0.0 warning","sidebar":"tutorialSidebar"},"rules/intl/intl":{"id":"rules/intl/intl","title":"Intl","description":"","sidebar":"tutorialSidebar"},"rules/intl/prefer-intl-name":{"id":"rules/intl/prefer-intl-name","title":"prefer-intl-name","description":"added in: 1.0.0 warning.","sidebar":"tutorialSidebar"},"rules/intl/prefer-provide-intl-description":{"id":"rules/intl/prefer-provide-intl-description","title":"prefer-providing-intl-description","description":"added in: 1.0.0 warning.","sidebar":"tutorialSidebar"},"rules/rules":{"id":"rules/rules","title":"Rules","description":"General rules configuration is described here.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.ca9f74b2.js b/assets/js/935f2afb.ca9f74b2.js deleted file mode 100644 index a32ee6e9c..000000000 --- a/assets/js/935f2afb.ca9f74b2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Getting Started","href":"/docs/getting-started","docId":"getting-started"},{"type":"link","label":"Core Concepts","href":"/docs/core-concepts","docId":"core-concepts"},{"type":"category","label":"Configuration","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Configuring Metrics","href":"/docs/configuration/configuring-metrics","docId":"configuration/configuring-metrics"},{"type":"link","label":"Configuring Rules","href":"/docs/configuration/configuring-rules","docId":"configuration/configuring-rules"},{"type":"link","label":"Excluding Code from Analysis","href":"/docs/configuration/excluding-code","docId":"configuration/excluding-code"},{"type":"link","label":"Presets","href":"/docs/configuration/presets","docId":"configuration/presets"}],"href":"/docs/configuration/"},{"type":"category","label":"CLI","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Analyze","href":"/docs/cli/analyze","docId":"cli/analyze"},{"type":"link","label":"Check Unnecessary Nullable Parameters","href":"/docs/cli/check-unnecessary-nullable","docId":"cli/check-unnecessary-nullable"},{"type":"link","label":"Check Unused Code","href":"/docs/cli/check-unused-code","docId":"cli/check-unused-code"},{"type":"link","label":"Check Unused Files","href":"/docs/cli/check-unused-files","docId":"cli/check-unused-files"},{"type":"link","label":"Check Unused L10n","href":"/docs/cli/check-unused-l10n","docId":"cli/check-unused-l10n"}],"href":"/docs/cli/"},{"type":"category","label":"Rules","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Dart","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"arguments-ordering","href":"/docs/rules/dart/arguments-ordering","docId":"rules/dart/arguments-ordering"},{"type":"link","label":"avoid-banned-imports","href":"/docs/rules/dart/avoid-banned-imports","docId":"rules/dart/avoid-banned-imports"},{"type":"link","label":"avoid-cascade-after-if-null","href":"/docs/rules/dart/avoid-cascade-after-if-null","docId":"rules/dart/avoid-cascade-after-if-null"},{"type":"link","label":"avoid-collection-methods-with-unrelated-types","href":"/docs/rules/dart/avoid-collection-methods-with-unrelated-types","docId":"rules/dart/avoid-collection-methods-with-unrelated-types"},{"type":"link","label":"avoid-double-slash-imports","href":"/docs/rules/dart/avoid-double-slash-imports","docId":"rules/dart/avoid-double-slash-imports"},{"type":"link","label":"avoid-duplicate-exports","href":"/docs/rules/dart/avoid-duplicate-exports","docId":"rules/dart/avoid-duplicate-exports"},{"type":"link","label":"avoid-dynamic","href":"/docs/rules/dart/avoid-dynamic","docId":"rules/dart/avoid-dynamic"},{"type":"link","label":"avoid-global-state","href":"/docs/rules/dart/avoid-global-state","docId":"rules/dart/avoid-global-state"},{"type":"link","label":"avoid-ignoring-return-values","href":"/docs/rules/dart/avoid-ignoring-return-values","docId":"rules/dart/avoid-ignoring-return-values"},{"type":"link","label":"avoid-late-keyword","href":"/docs/rules/dart/avoid-late-keyword","docId":"rules/dart/avoid-late-keyword"},{"type":"link","label":"avoid-missing-enum-constant-in-map","href":"/docs/rules/dart/avoid-missing-enum-constant-in-map","docId":"rules/dart/avoid-missing-enum-constant-in-map"},{"type":"link","label":"avoid-nested-conditional-expressions","href":"/docs/rules/dart/avoid-nested-conditional-expressions","docId":"rules/dart/avoid-nested-conditional-expressions"},{"type":"link","label":"avoid-non-ascii-symbols","href":"/docs/rules/dart/avoid-non-ascii-symbols","docId":"rules/dart/avoid-non-ascii-symbols"},{"type":"link","label":"avoid-non-null-assertion","href":"/docs/rules/dart/avoid-non-null-assertion","docId":"rules/dart/avoid-non-null-assertion"},{"type":"link","label":"avoid-passing-async-when-sync-expected","href":"/docs/rules/dart/avoid-passing-async-when-sync-expected","docId":"rules/dart/avoid-passing-async-when-sync-expected"},{"type":"link","label":"avoid-redundant-async","href":"/docs/rules/dart/avoid-redundant-async","docId":"rules/dart/avoid-redundant-async"},{"type":"link","label":"avoid-throw-in-catch-block","href":"/docs/rules/dart/avoid-throw-in-catch-block","docId":"rules/dart/avoid-throw-in-catch-block"},{"type":"link","label":"avoid-top-level-members-in-tests","href":"/docs/rules/dart/avoid-top-level-members-in-tests","docId":"rules/dart/avoid-top-level-members-in-tests"},{"type":"link","label":"avoid-unnecessary-conditionals","href":"/docs/rules/dart/avoid-unnecessary-conditionals","docId":"rules/dart/avoid-unnecessary-conditionals"},{"type":"link","label":"avoid-unnecessary-type-assertions","href":"/docs/rules/dart/avoid-unnecessary-type-assertions","docId":"rules/dart/avoid-unnecessary-type-assertions"},{"type":"link","label":"avoid-unnecessary-type-casts","href":"/docs/rules/dart/avoid-unnecessary-type-casts","docId":"rules/dart/avoid-unnecessary-type-casts"},{"type":"link","label":"avoid-unrelated-type-assertions","href":"/docs/rules/dart/avoid-unrelated-type-assertions","docId":"rules/dart/avoid-unrelated-type-assertions"},{"type":"link","label":"avoid-unused-parameters","href":"/docs/rules/dart/avoid-unused-parameters","docId":"rules/dart/avoid-unused-parameters"},{"type":"link","label":"ban-name","href":"/docs/rules/dart/ban-name","docId":"rules/dart/ban-name"},{"type":"link","label":"binary-expression-operand-order","href":"/docs/rules/dart/binary-expression-operand-order","docId":"rules/dart/binary-expression-operand-order"},{"type":"link","label":"double-literal-format","href":"/docs/rules/dart/double-literal-format","docId":"rules/dart/double-literal-format"},{"type":"link","label":"format-comment","href":"/docs/rules/dart/format-comment","docId":"rules/dart/format-comment"},{"type":"link","label":"list-all-equatable-fields","href":"/docs/rules/dart/list-all-equatable-fields","docId":"rules/dart/list-all-equatable-fields"},{"type":"link","label":"member-ordering","href":"/docs/rules/dart/member-ordering","docId":"rules/dart/member-ordering"},{"type":"link","label":"missing-test-assertion","href":"/docs/rules/dart/missing-test-assertion","docId":"rules/dart/missing-test-assertion"},{"type":"link","label":"newline-before-return","href":"/docs/rules/dart/newline-before-return","docId":"rules/dart/newline-before-return"},{"type":"link","label":"no-boolean-literal-compare","href":"/docs/rules/dart/no-boolean-literal-compare","docId":"rules/dart/no-boolean-literal-compare"},{"type":"link","label":"no-empty-block","href":"/docs/rules/dart/no-empty-block","docId":"rules/dart/no-empty-block"},{"type":"link","label":"no-equal-arguments","href":"/docs/rules/dart/no-equal-arguments","docId":"rules/dart/no-equal-arguments"},{"type":"link","label":"no-equal-then-else","href":"/docs/rules/dart/no-equal-then-else","docId":"rules/dart/no-equal-then-else"},{"type":"link","label":"no-magic-number","href":"/docs/rules/dart/no-magic-number","docId":"rules/dart/no-magic-number"},{"type":"link","label":"no-object-declaration","href":"/docs/rules/dart/no-object-declaration","docId":"rules/dart/no-object-declaration"},{"type":"link","label":"prefer-async-await","href":"/docs/rules/dart/prefer-async-await","docId":"rules/dart/prefer-async-await"},{"type":"link","label":"prefer-commenting-analyzer-ignores","href":"/docs/rules/dart/prefer-commenting-analyzer-ignores","docId":"rules/dart/prefer-commenting-analyzer-ignores"},{"type":"link","label":"prefer-conditional-expressions","href":"/docs/rules/dart/prefer-conditional-expressions","docId":"rules/dart/prefer-conditional-expressions"},{"type":"link","label":"prefer-correct-identifier-length","href":"/docs/rules/dart/prefer-correct-identifier-length","docId":"rules/dart/prefer-correct-identifier-length"},{"type":"link","label":"prefer-correct-test-file-name","href":"/docs/rules/dart/prefer-correct-test-file-name","docId":"rules/dart/prefer-correct-test-file-name"},{"type":"link","label":"prefer-correct-type-name","href":"/docs/rules/dart/prefer-correct-type-name","docId":"rules/dart/prefer-correct-type-name"},{"type":"link","label":"prefer-enums-by-name","href":"/docs/rules/dart/prefer-enums-by-name","docId":"rules/dart/prefer-enums-by-name"},{"type":"link","label":"prefer-first","href":"/docs/rules/dart/prefer-first","docId":"rules/dart/prefer-first"},{"type":"link","label":"prefer-immediate-return","href":"/docs/rules/dart/prefer-immediate-return","docId":"rules/dart/prefer-immediate-return"},{"type":"link","label":"prefer-iterable-of","href":"/docs/rules/dart/prefer-iterable-of","docId":"rules/dart/prefer-iterable-of"},{"type":"link","label":"prefer-last","href":"/docs/rules/dart/prefer-last","docId":"rules/dart/prefer-last"},{"type":"link","label":"prefer-match-file-name","href":"/docs/rules/dart/prefer-match-file-name","docId":"rules/dart/prefer-match-file-name"},{"type":"link","label":"prefer-moving-to-variable","href":"/docs/rules/dart/prefer-moving-to-variable","docId":"rules/dart/prefer-moving-to-variable"},{"type":"link","label":"prefer-static-class","href":"/docs/rules/dart/prefer-static-class","docId":"rules/dart/prefer-static-class"},{"type":"link","label":"prefer-trailing-comma","href":"/docs/rules/dart/prefer-trailing-comma","docId":"rules/dart/prefer-trailing-comma"}],"href":"/docs/rules/dart/"},{"type":"category","label":"Flutter","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"always-remove-listener","href":"/docs/rules/flutter/always-remove-listener","docId":"rules/flutter/always-remove-listener"},{"type":"link","label":"avoid-border-all","href":"/docs/rules/flutter/avoid-border-all","docId":"rules/flutter/avoid-border-all"},{"type":"link","label":"avoid-expanded-as-spacer","href":"/docs/rules/flutter/avoid-expanded-as-spacer","docId":"rules/flutter/avoid-expanded-as-spacer"},{"type":"link","label":"avoid-returning-widgets","href":"/docs/rules/flutter/avoid-returning-widgets","docId":"rules/flutter/avoid-returning-widgets"},{"type":"link","label":"avoid-shrink-wrap-in-lists","href":"/docs/rules/flutter/avoid-shrink-wrap-in-lists","docId":"rules/flutter/avoid-shrink-wrap-in-lists"},{"type":"link","label":"avoid-unnecessary-setstate","href":"/docs/rules/flutter/avoid-unnecessary-setstate","docId":"rules/flutter/avoid-unnecessary-setstate"},{"type":"link","label":"avoid-wrapping-in-padding","href":"/docs/rules/flutter/avoid-wrapping-in-padding","docId":"rules/flutter/avoid-wrapping-in-padding"},{"type":"link","label":"check-for-equals-in-render-object-setters","href":"/docs/rules/flutter/check-for-equals-in-render-object-setters","docId":"rules/flutter/check-for-equals-in-render-object-setters"},{"type":"link","label":"consistent-update-render-object","href":"/docs/rules/flutter/consistent-update-render-object","docId":"rules/flutter/consistent-update-render-object"},{"type":"link","label":"prefer-const-border-radius","href":"/docs/rules/flutter/prefer-const-border-radius","docId":"rules/flutter/prefer-const-border-radius"},{"type":"link","label":"prefer-correct-edge-insets-constructor","href":"/docs/rules/flutter/prefer-correct-edge-insets-constructor","docId":"rules/flutter/prefer-correct-edge-insets-constructor"},{"type":"link","label":"prefer-extracting-callbacks","href":"/docs/rules/flutter/prefer-extracting-callbacks","docId":"rules/flutter/prefer-extracting-callbacks"},{"type":"link","label":"prefer-single-widget-per-file","href":"/docs/rules/flutter/prefer-single-widget-per-file","docId":"rules/flutter/prefer-single-widget-per-file"},{"type":"link","label":"prefer-using-list-view","href":"/docs/rules/flutter/prefer-using-list-view","docId":"rules/flutter/prefer-using-list-view"},{"type":"link","label":"use-setstate-synchronously","href":"/docs/rules/flutter/use-setstate-synchronously","docId":"rules/flutter/use-setstate-synchronously"}],"href":"/docs/rules/flutter/"},{"type":"category","label":"Flame","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"avoid-creating-vector-in-update","href":"/docs/rules/flame/avoid-creating-vector-in-update","docId":"rules/flame/avoid-creating-vector-in-update"},{"type":"link","label":"avoid-initializing-in-on-mount","href":"/docs/rules/flame/avoid-initializing-in-on-mount","docId":"rules/flame/avoid-initializing-in-on-mount"},{"type":"link","label":"avoid-redundant-async-on-load","href":"/docs/rules/flame/avoid-redundant-async-on-load","docId":"rules/flame/avoid-redundant-async-on-load"}],"href":"/docs/rules/flame/"},{"type":"category","label":"Intl","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"prefer-intl-name","href":"/docs/rules/intl/prefer-intl-name","docId":"rules/intl/prefer-intl-name"},{"type":"link","label":"prefer-providing-intl-description","href":"/docs/rules/intl/prefer-provide-intl-description","docId":"rules/intl/prefer-provide-intl-description"}],"href":"/docs/rules/intl/"}],"href":"/docs/rules/"},{"type":"category","label":"Metrics","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Cyclomatic Complexity","href":"/docs/metrics/cyclomatic-complexity","docId":"metrics/cyclomatic-complexity"},{"type":"link","label":"Halstead Volume","href":"/docs/metrics/halstead-volume","docId":"metrics/halstead-volume"},{"type":"link","label":"Lines of Code","href":"/docs/metrics/lines-of-code","docId":"metrics/lines-of-code"},{"type":"link","label":"Maintainability Index","href":"/docs/metrics/maintainability-index","docId":"metrics/maintainability-index"},{"type":"link","label":"Maximum Nesting Level","href":"/docs/metrics/maximum-nesting-level","docId":"metrics/maximum-nesting-level"},{"type":"link","label":"Number of Methods","href":"/docs/metrics/number-of-methods","docId":"metrics/number-of-methods"},{"type":"link","label":"Number of Parameters","href":"/docs/metrics/number-of-parameters","docId":"metrics/number-of-parameters"},{"type":"link","label":"Source lines of Code","href":"/docs/metrics/source-lines-of-code","docId":"metrics/source-lines-of-code"},{"type":"link","label":"Technical Debt","href":"/docs/metrics/technical-debt","docId":"metrics/technical-debt"},{"type":"link","label":"Weight Of Class","href":"/docs/metrics/weight-of-class","docId":"metrics/weight-of-class"}],"href":"/docs/metrics/"},{"type":"category","label":"Anti Patterns","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Long Method","href":"/docs/anti-patterns/long-method","docId":"anti-patterns/long-method"},{"type":"link","label":"Long Parameter List","href":"/docs/anti-patterns/long-parameter-list","docId":"anti-patterns/long-parameter-list"}],"href":"/docs/anti-patterns/"}]},"docs":{"anti-patterns/anti-patterns":{"id":"anti-patterns/anti-patterns","title":"Anti Patterns","description":"Available anti-patterns:","sidebar":"tutorialSidebar"},"anti-patterns/long-method":{"id":"anti-patterns/long-method","title":"Long Method","description":"Long blocks of code are difficult to reuse and understand because they are usually responsible for more than one thing. Separating those to several short ones with proper names helps you reuse your code and understand it better without reading methods body.","sidebar":"tutorialSidebar"},"anti-patterns/long-parameter-list":{"id":"anti-patterns/long-parameter-list","title":"Long Parameter List","description":"Long parameter lists are difficult to understand and use. Wrapping them into an object allows grouping parameters and change transferred data only by the object modification. When you\'re working with objects, you should pass just enough so that the method can get the data it needs.","sidebar":"tutorialSidebar"},"cli/analyze":{"id":"cli/analyze","title":"Analyze","description":"Reports lint rules violations.","sidebar":"tutorialSidebar"},"cli/check-unnecessary-nullable":{"id":"cli/check-unnecessary-nullable","title":"Check Unnecessary Nullable Parameters","description":"Checks unnecessary nullable parameters in functions, methods, constructors. Removing unnecessary nullables can help reduce amount of checks in the code.","sidebar":"tutorialSidebar"},"cli/check-unused-code":{"id":"cli/check-unused-code","title":"Check Unused Code","description":"Checks unused classes, fields, properties, methods, functions, variables, extensions, enums, mixins and type aliases.","sidebar":"tutorialSidebar"},"cli/check-unused-files":{"id":"cli/check-unused-files","title":"Check Unused Files","description":"Checks unused *.dart files.","sidebar":"tutorialSidebar"},"cli/check-unused-l10n":{"id":"cli/check-unused-l10n","title":"Check Unused L10n","description":"Checks unused Dart class members, that encapsulates the app\'s localized values.","sidebar":"tutorialSidebar"},"cli/cli":{"id":"cli/cli","title":"CLI","description":"To use the package as a command-line tool, run:","sidebar":"tutorialSidebar"},"configuration/configuration":{"id":"configuration/configuration","title":"Configuration","description":"DCL is designed to be flexible and configurable for your use case. You can turn off every rule and run only with enabled metrics calculation or have both rules and metrics enabled.","sidebar":"tutorialSidebar"},"configuration/configuring-metrics":{"id":"configuration/configuring-metrics","title":"Configuring Metrics","description":"Metrics are one of the core building blocks of DCL. Metrics help you understand the complexity of your code and identify areas that may be difficult to maintain or test.","sidebar":"tutorialSidebar"},"configuration/configuring-rules":{"id":"configuration/configuring-rules","title":"Configuring Rules","description":"Rules are one of the core building blocks of DCL. A rule validates if your code meets a certain expectation, and what to do if it does not meet that expectation.","sidebar":"tutorialSidebar"},"configuration/excluding-code":{"id":"configuration/excluding-code","title":"Excluding Code from Analysis","description":"DCL also excludes files listed in the analyzer exclude: option. For example,","sidebar":"tutorialSidebar"},"configuration/presets":{"id":"configuration/presets","title":"Presets","description":"DCL includes 7 sets of predefined configurations:","sidebar":"tutorialSidebar"},"core-concepts":{"id":"core-concepts","title":"Core Concepts","description":"This page contains a high-level overview of some of the core concepts of DCL.","sidebar":"tutorialSidebar"},"getting-started":{"id":"getting-started","title":"Getting Started","description":"Dart code Linter - DCL is a tool that helps improve the quality and consistency of Dart code by identifying and reporting problems, such as bugs and code that doesn\'t follow best practices. It also collects analytical data on the code through calculating code metrics and can be configured to set thresholds for these metrics.","sidebar":"tutorialSidebar"},"metrics/cyclomatic-complexity":{"id":"metrics/cyclomatic-complexity","title":"Cyclomatic Complexity","description":"Number of linearly independent paths through a block of code. Conditional operators or loops increases the number of paths in a code. The more paths, the higher the number of test cases that need to be implemented. The metric complies with McCabe\'s original definition:","sidebar":"tutorialSidebar"},"metrics/halstead-volume":{"id":"metrics/halstead-volume","title":"Halstead Volume","description":"The Halstead metrics are based on the numbers of operators and operands.","sidebar":"tutorialSidebar"},"metrics/lines-of-code":{"id":"metrics/lines-of-code","title":"Lines of Code","description":"The lines of code are the total number of lines in a method (or function). The comment lines, and the blank lines are also counted. A longer method is often difficult to maintain, tend to do a lot of things and can make it hard following what\'s going on.","sidebar":"tutorialSidebar"},"metrics/maintainability-index":{"id":"metrics/maintainability-index","title":"Maintainability Index","description":"Maintainability Index is a software metric which measures how maintainable (easy to support and change) the source code is. The maintainability index is calculated as a factored formula consisting of Source Lines Of Code, Cyclomatic Complexity and Halstead Volume.","sidebar":"tutorialSidebar"},"metrics/maximum-nesting-level":{"id":"metrics/maximum-nesting-level","title":"Maximum Nesting Level","description":"Maximum Nesting Level this is the maximum level of nesting blocks / control structures that are present in a method (or function). Code with deep nesting level are often complex and tough to maintain.","sidebar":"tutorialSidebar"},"metrics/metrics":{"id":"metrics/metrics","title":"Metrics","description":"Metrics configuration is described here.","sidebar":"tutorialSidebar"},"metrics/number-of-methods":{"id":"metrics/number-of-methods","title":"Number of Methods","description":"The number of methods is the total number of methods in a class (or mixin, or extension). Too many methods indicate a high complexity.","sidebar":"tutorialSidebar"},"metrics/number-of-parameters":{"id":"metrics/number-of-parameters","title":"Number of Parameters","description":"The number of parameters is the number of parameters received by a method (or function). If a method receive too many parameters, it is difficult to call and also difficult to change if it\'s called from many places.","sidebar":"tutorialSidebar"},"metrics/source-lines-of-code":{"id":"metrics/source-lines-of-code","title":"Source lines of Code","description":"Source lines of Code is an approximate number of source code lines in a function or method. Blank or comment lines are not counted.","sidebar":"tutorialSidebar"},"metrics/technical-debt":{"id":"metrics/technical-debt","title":"Technical Debt","description":"The cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer. The metric count debt based on pattern:","sidebar":"tutorialSidebar"},"metrics/weight-of-class":{"id":"metrics/weight-of-class","title":"Weight Of Class","description":"Number of functional public methods divided by the total number of public methods.","sidebar":"tutorialSidebar"},"rules/dart/arguments-ordering":{"id":"rules/dart/arguments-ordering","title":"arguments-ordering","description":"Enforces named argument order in function and constructor invocations to be the same as corresponding named parameter declaration order.","sidebar":"tutorialSidebar"},"rules/dart/avoid-banned-imports":{"id":"rules/dart/avoid-banned-imports","title":"avoid-banned-imports","description":"Configure some imports that you want to ban.","sidebar":"tutorialSidebar"},"rules/dart/avoid-cascade-after-if-null":{"id":"rules/dart/avoid-cascade-after-if-null","title":"avoid-cascade-after-if-null","description":"Warns when a cascade expression is used after if null (??) binary expression without parentheses.","sidebar":"tutorialSidebar"},"rules/dart/avoid-collection-methods-with-unrelated-types":{"id":"rules/dart/avoid-collection-methods-with-unrelated-types","title":"avoid-collection-methods-with-unrelated-types","description":"added in: 1.6.0 warning.","sidebar":"tutorialSidebar"},"rules/dart/avoid-double-slash-imports":{"id":"rules/dart/avoid-double-slash-imports","title":"avoid-double-slash-imports","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-duplicate-exports":{"id":"rules/dart/avoid-duplicate-exports","title":"avoid-duplicate-exports","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-dynamic":{"id":"rules/dart/avoid-dynamic","title":"avoid-dynamic","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-global-state":{"id":"rules/dart/avoid-global-state","title":"avoid-global-state","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-ignoring-return-values":{"id":"rules/dart/avoid-ignoring-return-values","title":"avoid-ignoring-return-values","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-late-keyword":{"id":"rules/dart/avoid-late-keyword","title":"avoid-late-keyword","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-missing-enum-constant-in-map":{"id":"rules/dart/avoid-missing-enum-constant-in-map","title":"avoid-missing-enum-constant-in-map","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-nested-conditional-expressions":{"id":"rules/dart/avoid-nested-conditional-expressions","title":"avoid-nested-conditional-expressions","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/avoid-non-ascii-symbols":{"id":"rules/dart/avoid-non-ascii-symbols","title":"avoid-non-ascii-symbols","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-non-null-assertion":{"id":"rules/dart/avoid-non-null-assertion","title":"avoid-non-null-assertion","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-passing-async-when-sync-expected":{"id":"rules/dart/avoid-passing-async-when-sync-expected","title":"avoid-passing-async-when-sync-expected","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-redundant-async":{"id":"rules/dart/avoid-redundant-async","title":"avoid-redundant-async","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-throw-in-catch-block":{"id":"rules/dart/avoid-throw-in-catch-block","title":"avoid-throw-in-catch-block","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-top-level-members-in-tests":{"id":"rules/dart/avoid-top-level-members-in-tests","title":"avoid-top-level-members-in-tests","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-unnecessary-conditionals":{"id":"rules/dart/avoid-unnecessary-conditionals","title":"avoid-unnecessary-conditionals","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-unnecessary-type-assertions":{"id":"rules/dart/avoid-unnecessary-type-assertions","title":"avoid-unnecessary-type-assertions","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-unnecessary-type-casts":{"id":"rules/dart/avoid-unnecessary-type-casts","title":"avoid-unnecessary-type-casts","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-unrelated-type-assertions":{"id":"rules/dart/avoid-unrelated-type-assertions","title":"avoid-unrelated-type-assertions","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/avoid-unused-parameters":{"id":"rules/dart/avoid-unused-parameters","title":"avoid-unused-parameters","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/ban-name":{"id":"rules/dart/ban-name","title":"ban-name","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/binary-expression-operand-order":{"id":"rules/dart/binary-expression-operand-order","title":"binary-expression-operand-order","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/dart":{"id":"rules/dart/dart","title":"Dart","description":"","sidebar":"tutorialSidebar"},"rules/dart/double-literal-format":{"id":"rules/dart/double-literal-format","title":"double-literal-format","description":"added in: 1.5.0 style","sidebar":"tutorialSidebar"},"rules/dart/format-comment":{"id":"rules/dart/format-comment","title":"format-comment","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/list-all-equatable-fields":{"id":"rules/dart/list-all-equatable-fields","title":"list-all-equatable-fields","description":"added in: 1.2.0 warning","sidebar":"tutorialSidebar"},"rules/dart/member-ordering":{"id":"rules/dart/member-ordering","title":"member-ordering","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/missing-test-assertion":{"id":"rules/dart/missing-test-assertion","title":"missing-test-assertion","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/newline-before-return":{"id":"rules/dart/newline-before-return","title":"newline-before-return","description":"added in: 1.5.0 style","sidebar":"tutorialSidebar"},"rules/dart/no-boolean-literal-compare":{"id":"rules/dart/no-boolean-literal-compare","title":"no-boolean-literal-compare","description":"added in: 1.5.0 style","sidebar":"tutorialSidebar"},"rules/dart/no-empty-block":{"id":"rules/dart/no-empty-block","title":"no-empty-block","description":"added in: 1.5.0 style","sidebar":"tutorialSidebar"},"rules/dart/no-equal-arguments":{"id":"rules/dart/no-equal-arguments","title":"no-equal-arguments","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/no-equal-then-else":{"id":"rules/dart/no-equal-then-else","title":"no-equal-then-else","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/no-magic-number":{"id":"rules/dart/no-magic-number","title":"no-magic-number","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/no-object-declaration":{"id":"rules/dart/no-object-declaration","title":"no-object-declaration","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-async-await":{"id":"rules/dart/prefer-async-await","title":"prefer-async-await","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-commenting-analyzer-ignores":{"id":"rules/dart/prefer-commenting-analyzer-ignores","title":"prefer-commenting-analyzer-ignores","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/prefer-conditional-expressions":{"id":"rules/dart/prefer-conditional-expressions","title":"prefer-conditional-expressions","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-correct-identifier-length":{"id":"rules/dart/prefer-correct-identifier-length","title":"prefer-correct-identifier-length","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-correct-test-file-name":{"id":"rules/dart/prefer-correct-test-file-name","title":"prefer-correct-test-file-name","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/prefer-correct-type-name":{"id":"rules/dart/prefer-correct-type-name","title":"prefer-correct-type-name","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-enums-by-name":{"id":"rules/dart/prefer-enums-by-name","title":"prefer-enums-by-name","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-first":{"id":"rules/dart/prefer-first","title":"prefer-first","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-immediate-return":{"id":"rules/dart/prefer-immediate-return","title":"prefer-immediate-return","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-iterable-of":{"id":"rules/dart/prefer-iterable-of","title":"prefer-iterable-of","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/prefer-last":{"id":"rules/dart/prefer-last","title":"prefer-last","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-match-file-name":{"id":"rules/dart/prefer-match-file-name","title":"prefer-match-file-name","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/prefer-moving-to-variable":{"id":"rules/dart/prefer-moving-to-variable","title":"prefer-moving-to-variable","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/dart/prefer-static-class":{"id":"rules/dart/prefer-static-class","title":"prefer-static-class","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/dart/prefer-trailing-comma":{"id":"rules/dart/prefer-trailing-comma","title":"prefer-trailing-comma","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/flame/avoid-creating-vector-in-update":{"id":"rules/flame/avoid-creating-vector-in-update","title":"avoid-creating-vector-in-update","description":"added in: 1.6.0 warning.","sidebar":"tutorialSidebar"},"rules/flame/avoid-initializing-in-on-mount":{"id":"rules/flame/avoid-initializing-in-on-mount","title":"avoid-initializing-in-on-mount","description":"added in: 1.6.0 warning.","sidebar":"tutorialSidebar"},"rules/flame/avoid-redundant-async-on-load":{"id":"rules/flame/avoid-redundant-async-on-load","title":"avoid-redundant-async-on-load","description":"added in: 1.6.0 warning.","sidebar":"tutorialSidebar"},"rules/flame/flame":{"id":"rules/flame/flame","title":"Flame","description":"","sidebar":"tutorialSidebar"},"rules/flutter/always-remove-listener":{"id":"rules/flutter/always-remove-listener","title":"always-remove-listener","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/avoid-border-all":{"id":"rules/flutter/avoid-border-all","title":"avoid-border-all","description":"added in: 1.6.0performance","sidebar":"tutorialSidebar"},"rules/flutter/avoid-expanded-as-spacer":{"id":"rules/flutter/avoid-expanded-as-spacer","title":"avoid-expanded-as-spacer","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/avoid-returning-widgets":{"id":"rules/flutter/avoid-returning-widgets","title":"avoid-returning-widgets","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/avoid-shrink-wrap-in-lists":{"id":"rules/flutter/avoid-shrink-wrap-in-lists","title":"avoid-shrink-wrap-in-lists","description":"added in: 1.6.0performance","sidebar":"tutorialSidebar"},"rules/flutter/avoid-unnecessary-setstate":{"id":"rules/flutter/avoid-unnecessary-setstate","title":"avoid-unnecessary-setstate","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/avoid-wrapping-in-padding":{"id":"rules/flutter/avoid-wrapping-in-padding","title":"avoid-wrapping-in-padding","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/check-for-equals-in-render-object-setters":{"id":"rules/flutter/check-for-equals-in-render-object-setters","title":"check-for-equals-in-render-object-setters","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/consistent-update-render-object":{"id":"rules/flutter/consistent-update-render-object","title":"consistent-update-render-object","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/flutter/flutter":{"id":"rules/flutter/flutter","title":"Flutter","description":"","sidebar":"tutorialSidebar"},"rules/flutter/prefer-const-border-radius":{"id":"rules/flutter/prefer-const-border-radius","title":"prefer-const-border-radius","description":"added in: 1.6.0performance","sidebar":"tutorialSidebar"},"rules/flutter/prefer-correct-edge-insets-constructor":{"id":"rules/flutter/prefer-correct-edge-insets-constructor","title":"prefer-correct-edge-insets-constructor","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/flutter/prefer-extracting-callbacks":{"id":"rules/flutter/prefer-extracting-callbacks","title":"prefer-extracting-callbacks","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/flutter/prefer-single-widget-per-file":{"id":"rules/flutter/prefer-single-widget-per-file","title":"prefer-single-widget-per-file","description":"added in: 1.6.0 style","sidebar":"tutorialSidebar"},"rules/flutter/prefer-using-list-view":{"id":"rules/flutter/prefer-using-list-view","title":"prefer-using-list-view","description":"added in: 1.6.0 performance","sidebar":"tutorialSidebar"},"rules/flutter/use-setstate-synchronously":{"id":"rules/flutter/use-setstate-synchronously","title":"use-setstate-synchronously","description":"added in: 1.6.0 warning","sidebar":"tutorialSidebar"},"rules/intl/intl":{"id":"rules/intl/intl","title":"Intl","description":"","sidebar":"tutorialSidebar"},"rules/intl/prefer-intl-name":{"id":"rules/intl/prefer-intl-name","title":"prefer-intl-name","description":"added in: 1.6.0 warning.","sidebar":"tutorialSidebar"},"rules/intl/prefer-provide-intl-description":{"id":"rules/intl/prefer-provide-intl-description","title":"prefer-providing-intl-description","description":"added in: 1.6.0 warning.","sidebar":"tutorialSidebar"},"rules/rules":{"id":"rules/rules","title":"Rules","description":"General rules configuration is described here.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/945ab8b8.07d07d56.js b/assets/js/945ab8b8.ee5a9a16.js similarity index 97% rename from assets/js/945ab8b8.07d07d56.js rename to assets/js/945ab8b8.ee5a9a16.js index 9b7594775..ef1a26369 100644 --- a/assets/js/945ab8b8.07d07d56.js +++ b/assets/js/945ab8b8.ee5a9a16.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[8237],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>b});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),d=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=d(e.components);return r.createElement(s.Provider,{value:n},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=d(t),m=a,b=u["".concat(s,".").concat(m)]||u[m]||p[m]||l;return t?r.createElement(b,o(o({ref:n},c),{},{components:t})):r.createElement(b,o({ref:n},c))}));function b(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,o=new Array(l);o[0]=m;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var d=2;d{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>d});var r=t(7462),a=(t(7294),t(3905));const l={},o="list-all-equatable-fields",i={unversionedId:"rules/dart/list-all-equatable-fields",id:"rules/dart/list-all-equatable-fields",title:"list-all-equatable-fields",description:"added in: 1.2.0 warning",source:"@site/docs/rules/dart/list-all-equatable-fields.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/list-all-equatable-fields",permalink:"/docs/rules/dart/list-all-equatable-fields",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/list-all-equatable-fields.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"format-comment",permalink:"/docs/rules/dart/format-comment"},next:{title:"member-ordering",permalink:"/docs/rules/dart/member-ordering"}},s={},d=[{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:d},u="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(u,(0,r.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"list-all-equatable-fields"},"list-all-equatable-fields"),(0,a.kt)("p",null,"added in: 1.2.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when a field is not added to ",(0,a.kt)("inlineCode",{parentName:"p"},"props")," getter of a class that extends ",(0,a.kt)("inlineCode",{parentName:"p"},"Equatable")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"EquatableMixin"),".\nExample"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class AnotherPerson extends Equatable {\n const AnotherPerson(this.name, this.age);\n\n final String name;\n\n final int age;\n\n @override\n List get props => [name]; // LINT\n}\n\nclass AndAnotherPerson extends Equatable {\n static final someProp = 'hello';\n\n const AndAnotherPerson(this.name);\n\n final String name;\n\n @override\n List get props => [name];\n}\n\nclass SubPerson extends AndAnotherPerson {\n const SubPerson(this.value, String name) : super();\n\n final int value;\n\n @override\n List get props {\n return super.props..addAll([]); // LINT\n }\n}\n\nclass EquatableDateTimeSubclass extends EquatableDateTime {\n final int century;\n\n EquatableDateTimeSubclass(\n this.century,\n int year, [\n int month = 1,\n int day = 1,\n int hour = 0,\n int minute = 0,\n int second = 0,\n int millisecond = 0,\n int microsecond = 0,\n ]) : super(year, month, day, hour, minute, second, millisecond, microsecond);\n\n @override\n List get props => super.props..addAll([]); // LINT\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class AnotherPerson extends Equatable {\n const AnotherPerson(this.name, this.age);\n\n final String name;\n\n final int age;\n\n @override\n List get props => [name, age];\n}\n\nclass AndAnotherPerson extends Equatable {\n static final someProp = 'hello';\n\n const AndAnotherPerson(this.name);\n\n final String name;\n\n @override\n List get props => [name];\n}\n\nclass SubPerson extends AndAnotherPerson {\n const SubPerson(this.value, String name) : super();\n\n final int value;\n\n @override\n List get props {\n return super.props..addAll([value]);\n }\n}\n\nclass EquatableDateTimeSubclass extends EquatableDateTime {\n final int century;\n\n EquatableDateTimeSubclass(\n this.century,\n int year, [\n int month = 1,\n int day = 1,\n int hour = 0,\n int minute = 0,\n int second = 0,\n int millisecond = 0,\n int microsecond = 0,\n ]) : super(year, month, day, hour, minute, second, millisecond, microsecond);\n\n @override\n List get props => super.props..addAll([century]);\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[8237],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>b});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),d=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=d(e.components);return r.createElement(s.Provider,{value:n},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=d(t),m=a,b=u["".concat(s,".").concat(m)]||u[m]||p[m]||l;return t?r.createElement(b,o(o({ref:n},c),{},{components:t})):r.createElement(b,o({ref:n},c))}));function b(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,o=new Array(l);o[0]=m;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var d=2;d{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>d});var r=t(7462),a=(t(7294),t(3905));const l={},o="list-all-equatable-fields",i={unversionedId:"rules/dart/list-all-equatable-fields",id:"rules/dart/list-all-equatable-fields",title:"list-all-equatable-fields",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/list-all-equatable-fields.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/list-all-equatable-fields",permalink:"/docs/rules/dart/list-all-equatable-fields",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/list-all-equatable-fields.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"format-comment",permalink:"/docs/rules/dart/format-comment"},next:{title:"member-ordering",permalink:"/docs/rules/dart/member-ordering"}},s={},d=[{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:d},u="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(u,(0,r.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"list-all-equatable-fields"},"list-all-equatable-fields"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when a field is not added to ",(0,a.kt)("inlineCode",{parentName:"p"},"props")," getter of a class that extends ",(0,a.kt)("inlineCode",{parentName:"p"},"Equatable")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"EquatableMixin"),".\nExample"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class AnotherPerson extends Equatable {\n const AnotherPerson(this.name, this.age);\n\n final String name;\n\n final int age;\n\n @override\n List get props => [name]; // LINT\n}\n\nclass AndAnotherPerson extends Equatable {\n static final someProp = 'hello';\n\n const AndAnotherPerson(this.name);\n\n final String name;\n\n @override\n List get props => [name];\n}\n\nclass SubPerson extends AndAnotherPerson {\n const SubPerson(this.value, String name) : super();\n\n final int value;\n\n @override\n List get props {\n return super.props..addAll([]); // LINT\n }\n}\n\nclass EquatableDateTimeSubclass extends EquatableDateTime {\n final int century;\n\n EquatableDateTimeSubclass(\n this.century,\n int year, [\n int month = 1,\n int day = 1,\n int hour = 0,\n int minute = 0,\n int second = 0,\n int millisecond = 0,\n int microsecond = 0,\n ]) : super(year, month, day, hour, minute, second, millisecond, microsecond);\n\n @override\n List get props => super.props..addAll([]); // LINT\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class AnotherPerson extends Equatable {\n const AnotherPerson(this.name, this.age);\n\n final String name;\n\n final int age;\n\n @override\n List get props => [name, age];\n}\n\nclass AndAnotherPerson extends Equatable {\n static final someProp = 'hello';\n\n const AndAnotherPerson(this.name);\n\n final String name;\n\n @override\n List get props => [name];\n}\n\nclass SubPerson extends AndAnotherPerson {\n const SubPerson(this.value, String name) : super();\n\n final int value;\n\n @override\n List get props {\n return super.props..addAll([value]);\n }\n}\n\nclass EquatableDateTimeSubclass extends EquatableDateTime {\n final int century;\n\n EquatableDateTimeSubclass(\n this.century,\n int year, [\n int month = 1,\n int day = 1,\n int hour = 0,\n int minute = 0,\n int second = 0,\n int millisecond = 0,\n int microsecond = 0,\n ]) : super(year, month, day, hour, minute, second, millisecond, microsecond);\n\n @override\n List get props => super.props..addAll([century]);\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/97f0a7f6.dca7487d.js b/assets/js/97f0a7f6.0bb3029c.js similarity index 97% rename from assets/js/97f0a7f6.dca7487d.js rename to assets/js/97f0a7f6.0bb3029c.js index 73e289349..18a2052c0 100644 --- a/assets/js/97f0a7f6.dca7487d.js +++ b/assets/js/97f0a7f6.0bb3029c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[7825],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var d=r.createContext({}),s=function(e){var n=r.useContext(d),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=s(e.components);return r.createElement(d.Provider,{value:n},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,d=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=s(t),m=a,f=c["".concat(d,".").concat(m)]||c[m]||p[m]||i;return t?r.createElement(f,l(l({ref:n},u),{},{components:t})):r.createElement(f,l({ref:n},u))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,l=new Array(i);l[0]=m;var o={};for(var d in n)hasOwnProperty.call(n,d)&&(o[d]=n[d]);o.originalType=e,o[c]="string"==typeof e?e:a,l[1]=o;for(var s=2;s{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var r=t(7462),a=(t(7294),t(3905));const i={},l="avoid-late-keyword",o={unversionedId:"rules/dart/avoid-late-keyword",id:"rules/dart/avoid-late-keyword",title:"avoid-late-keyword",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-late-keyword.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-late-keyword",permalink:"/docs/rules/dart/avoid-late-keyword",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-late-keyword.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-ignoring-return-values",permalink:"/docs/rules/dart/avoid-ignoring-return-values"},next:{title:"avoid-missing-enum-constant-in-map",permalink:"/docs/rules/dart/avoid-missing-enum-constant-in-map"}},d={},s=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:s},c="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(c,(0,r.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-late-keyword"},"avoid-late-keyword"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when a field or variable is declared with a ",(0,a.kt)("inlineCode",{parentName:"p"},"late")," keyword."),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"late")," keyword enforces a variable's constraints at runtime instead of at compile time and since the variable is not definitely initialized, every time it is read, a runtime check is inserted to make sure it has been assigned a value. If it hasn\u2019t, an exception will be thrown."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"Use this rule if you want to avoid unexpected runtime exceptions.")),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"allow-initialized")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to allow initialized late variable declarations."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignored-types")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"[AnimationController]"),") to allow some variables of the given type to be declared with late."),(0,a.kt)("p",null,"dart_code_linter:\n...\nrules:\n..."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"- avoid-late-keyword:\n allow-initialized: true\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Test {\n late final field = 'string'; // LINT\n\n final String anotherField = '';\n\n String? nullableField;\n\n late String uninitializedField; // LINT\n\n void method() {\n late final variable = 'string'; // LINT\n\n final anotherVariable = '';\n\n String? nullableVariable;\n\n late String uninitializedVariable; // LINT\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Test {\n final field = 'string';\n\n final String anotherField = '';\n\n String? nullableField;\n\n String uninitializedField;\n\n void method() {\n final variable = 'string';\n\n final anotherVariable = '';\n\n String? nullableVariable;\n\n String uninitializedVariable;\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[7825],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var d=r.createContext({}),s=function(e){var n=r.useContext(d),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=s(e.components);return r.createElement(d.Provider,{value:n},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,d=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),c=s(t),m=a,f=c["".concat(d,".").concat(m)]||c[m]||p[m]||i;return t?r.createElement(f,l(l({ref:n},u),{},{components:t})):r.createElement(f,l({ref:n},u))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,l=new Array(i);l[0]=m;var o={};for(var d in n)hasOwnProperty.call(n,d)&&(o[d]=n[d]);o.originalType=e,o[c]="string"==typeof e?e:a,l[1]=o;for(var s=2;s{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var r=t(7462),a=(t(7294),t(3905));const i={},l="avoid-late-keyword",o={unversionedId:"rules/dart/avoid-late-keyword",id:"rules/dart/avoid-late-keyword",title:"avoid-late-keyword",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-late-keyword.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-late-keyword",permalink:"/docs/rules/dart/avoid-late-keyword",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-late-keyword.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-ignoring-return-values",permalink:"/docs/rules/dart/avoid-ignoring-return-values"},next:{title:"avoid-missing-enum-constant-in-map",permalink:"/docs/rules/dart/avoid-missing-enum-constant-in-map"}},d={},s=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:s},c="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(c,(0,r.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-late-keyword"},"avoid-late-keyword"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when a field or variable is declared with a ",(0,a.kt)("inlineCode",{parentName:"p"},"late")," keyword."),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"late")," keyword enforces a variable's constraints at runtime instead of at compile time and since the variable is not definitely initialized, every time it is read, a runtime check is inserted to make sure it has been assigned a value. If it hasn\u2019t, an exception will be thrown."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"Use this rule if you want to avoid unexpected runtime exceptions.")),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"allow-initialized")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to allow initialized late variable declarations."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignored-types")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"[AnimationController]"),") to allow some variables of the given type to be declared with late."),(0,a.kt)("p",null,"dart_code_linter:\n...\nrules:\n..."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"- avoid-late-keyword:\n allow-initialized: true\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Test {\n late final field = 'string'; // LINT\n\n final String anotherField = '';\n\n String? nullableField;\n\n late String uninitializedField; // LINT\n\n void method() {\n late final variable = 'string'; // LINT\n\n final anotherVariable = '';\n\n String? nullableVariable;\n\n late String uninitializedVariable; // LINT\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Test {\n final field = 'string';\n\n final String anotherField = '';\n\n String? nullableField;\n\n String uninitializedField;\n\n void method() {\n final variable = 'string';\n\n final anotherVariable = '';\n\n String? nullableVariable;\n\n String uninitializedVariable;\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/abefdb81.c2a19589.js b/assets/js/abefdb81.b34d16b2.js similarity index 97% rename from assets/js/abefdb81.c2a19589.js rename to assets/js/abefdb81.b34d16b2.js index 315a56dc4..0659ad230 100644 --- a/assets/js/abefdb81.c2a19589.js +++ b/assets/js/abefdb81.b34d16b2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[498],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=s(n),u=i,m=p["".concat(c,".").concat(u)]||p[u]||f[u]||a;return n?r.createElement(m,l(l({ref:t},d),{},{components:n})):r.createElement(m,l({ref:t},d))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,l=new Array(a);l[0]=u;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[p]="string"==typeof e?e:i,l[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>f,frontMatter:()=>a,metadata:()=>o,toc:()=>s});var r=n(7462),i=(n(7294),n(3905));const a={},l="prefer-correct-identifier-length",o={unversionedId:"rules/dart/prefer-correct-identifier-length",id:"rules/dart/prefer-correct-identifier-length",title:"prefer-correct-identifier-length",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/prefer-correct-identifier-length.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-correct-identifier-length",permalink:"/docs/rules/dart/prefer-correct-identifier-length",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-correct-identifier-length.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-conditional-expressions",permalink:"/docs/rules/dart/prefer-conditional-expressions"},next:{title:"prefer-correct-test-file-name",permalink:"/docs/rules/dart/prefer-correct-test-file-name"}},c={},s=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:s},p="wrapper";function f(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"prefer-correct-identifier-length"},"prefer-correct-identifier-length"),(0,i.kt)("p",null,"added in: 1.6.0 ",(0,i.kt)("span",{style:{color:"green"}},"style")),(0,i.kt)("p",null,"The rule checks the length of variable names in classes, functions, extensions, mixins, and also checks the value of enum."),(0,i.kt)("h2",{id:"config"},"Config"),(0,i.kt)("p",null,"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"min-identifier-length")," (default is ",(0,i.kt)("inlineCode",{parentName:"p"},"3"),") to configure the minimum allowed identifier length."),(0,i.kt)("p",null,"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"max-identifier-length")," (default is ",(0,i.kt)("inlineCode",{parentName:"p"},"300"),") to configure the maximum allowed identifier length."),(0,i.kt)("p",null,"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"exceptions")," (default is ",(0,i.kt)("inlineCode",{parentName:"p"},"none"),") to ignore specific identifier names."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-correct-identifier-length:\n exceptions: [ 'a' ]\n max-identifier-length: 30\n min-identifier-length: 4\n")),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("h3",{id:"bad"},"Bad:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"var x = 0; // length equals 1\nvar multiplatformConfigurationPoint = 0; // length equals 31\n\nfinal declarations = <({int f, String s})>{}; // LINT\n\nfinal value = switch (declarations) {\n Set s => s.single, // LINT\n _ => 0,\n};\n\nif (declarations case Set(length: final l)) { // LINT\n print(l);\n}\n")),(0,i.kt)("h3",{id:"good"},"Good:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"var property = 0; // length equals 8\nvar multiplatformConfiguration = 0; // length equals 26\n\nfinal declarations = <({int first, String second})>{};\n\nfinal value = switch (declarations) {\n Set someSet => someSet.single,\n _ => 0,\n};\n\nif (declarations case Set(: final length)) {\n print(l);\n}\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[498],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,c=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=s(n),u=i,m=p["".concat(c,".").concat(u)]||p[u]||f[u]||a;return n?r.createElement(m,l(l({ref:t},d),{},{components:n})):r.createElement(m,l({ref:t},d))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,l=new Array(a);l[0]=u;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[p]="string"==typeof e?e:i,l[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>f,frontMatter:()=>a,metadata:()=>o,toc:()=>s});var r=n(7462),i=(n(7294),n(3905));const a={},l="prefer-correct-identifier-length",o={unversionedId:"rules/dart/prefer-correct-identifier-length",id:"rules/dart/prefer-correct-identifier-length",title:"prefer-correct-identifier-length",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/prefer-correct-identifier-length.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-correct-identifier-length",permalink:"/docs/rules/dart/prefer-correct-identifier-length",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-correct-identifier-length.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-conditional-expressions",permalink:"/docs/rules/dart/prefer-conditional-expressions"},next:{title:"prefer-correct-test-file-name",permalink:"/docs/rules/dart/prefer-correct-test-file-name"}},c={},s=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:s},p="wrapper";function f(e){let{components:t,...n}=e;return(0,i.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"prefer-correct-identifier-length"},"prefer-correct-identifier-length"),(0,i.kt)("p",null,"added in: 1.0.0 ",(0,i.kt)("span",{style:{color:"green"}},"style")),(0,i.kt)("p",null,"The rule checks the length of variable names in classes, functions, extensions, mixins, and also checks the value of enum."),(0,i.kt)("h2",{id:"config"},"Config"),(0,i.kt)("p",null,"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"min-identifier-length")," (default is ",(0,i.kt)("inlineCode",{parentName:"p"},"3"),") to configure the minimum allowed identifier length."),(0,i.kt)("p",null,"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"max-identifier-length")," (default is ",(0,i.kt)("inlineCode",{parentName:"p"},"300"),") to configure the maximum allowed identifier length."),(0,i.kt)("p",null,"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"exceptions")," (default is ",(0,i.kt)("inlineCode",{parentName:"p"},"none"),") to ignore specific identifier names."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-correct-identifier-length:\n exceptions: [ 'a' ]\n max-identifier-length: 30\n min-identifier-length: 4\n")),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("h3",{id:"bad"},"Bad:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"var x = 0; // length equals 1\nvar multiplatformConfigurationPoint = 0; // length equals 31\n\nfinal declarations = <({int f, String s})>{}; // LINT\n\nfinal value = switch (declarations) {\n Set s => s.single, // LINT\n _ => 0,\n};\n\nif (declarations case Set(length: final l)) { // LINT\n print(l);\n}\n")),(0,i.kt)("h3",{id:"good"},"Good:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"var property = 0; // length equals 8\nvar multiplatformConfiguration = 0; // length equals 26\n\nfinal declarations = <({int first, String second})>{};\n\nfinal value = switch (declarations) {\n Set someSet => someSet.single,\n _ => 0,\n};\n\nif (declarations case Set(: final length)) {\n print(l);\n}\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b316a99f.3ef2dff2.js b/assets/js/b316a99f.8f22a47c.js similarity index 97% rename from assets/js/b316a99f.3ef2dff2.js rename to assets/js/b316a99f.8f22a47c.js index ed98bbb57..bfcd2fc98 100644 --- a/assets/js/b316a99f.3ef2dff2.js +++ b/assets/js/b316a99f.8f22a47c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[3825],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),p=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=p(e.components);return r.createElement(s.Provider,{value:n},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=p(t),u=a,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||l;return t?r.createElement(f,i(i({ref:n},c),{},{components:t})):r.createElement(f,i({ref:n},c))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,i=new Array(l);i[0]=u;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o[d]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=t(7462),a=(t(7294),t(3905));const l={},i="prefer-providing-intl-description",o={unversionedId:"rules/intl/prefer-provide-intl-description",id:"rules/intl/prefer-provide-intl-description",title:"prefer-providing-intl-description",description:"added in: 1.6.0 warning.",source:"@site/docs/rules/intl/prefer-provide-intl-description.mdx",sourceDirName:"rules/intl",slug:"/rules/intl/prefer-provide-intl-description",permalink:"/docs/rules/intl/prefer-provide-intl-description",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/intl/prefer-provide-intl-description.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-intl-name",permalink:"/docs/rules/intl/prefer-intl-name"},next:{title:"Metrics",permalink:"/docs/metrics/"}},s={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:p},d="wrapper";function m(e){let{components:n,...t}=e;return(0,a.kt)(d,(0,r.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-providing-intl-description"},"prefer-providing-intl-description"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning"),"."),(0,a.kt)("p",null,"Warns when the ",(0,a.kt)("inlineCode",{parentName:"p"},"Intl.message()"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"Intl.plural()"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"Intl.gender()")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"Intl.select()")," methods are invoked without a description."),(0,a.kt)("p",null,"To make the translator's job easier, provide a description of the message usage."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"import 'package:intl/intl.dart';\n\nclass SomeClassI18n {\n static final String message = Intl.message(\n 'message',\n name: 'SomeClassI18n_message',\n desc: '',\n );\n\n static String plural = Intl.plural(\n 1,\n one: 'one',\n other: 'other',\n name: 'SomeClassI18n_plural',\n );\n\n static String gender = Intl.gender(\n 'other',\n female: 'female',\n male: 'male',\n other: 'other',\n name: 'SomeClassI18n_gender',\n desc: '',\n );\n\n static String select = Intl.select(\n true,\n {true: 'true', false: 'false'},\n name: 'SomeClassI18n_select',\n );\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"import 'package:intl/intl.dart';\n\nclass SomeClassI18n {\n static final String message = Intl.message(\n 'message',\n name: 'SomeClassI18n_message',\n desc: 'Message description',\n );\n\n static String plural = Intl.plural(\n 1,\n one: 'one',\n other: 'other',\n name: 'SomeClassI18n_plural',\n desc: 'Plural description',\n );\n\n static String gender = Intl.gender(\n 'other',\n female: 'female',\n male: 'male',\n other: 'other',\n name: 'SomeClassI18n_gender',\n desc: 'Gender description',\n );\n\n static String select = Intl.select(\n true,\n {true: 'true', false: 'false'},\n name: 'SomeClassI18n_select',\n desc: 'Select description',\n );\n}\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[3825],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),p=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=p(e.components);return r.createElement(s.Provider,{value:n},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},u=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=p(t),u=a,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||l;return t?r.createElement(f,i(i({ref:n},c),{},{components:t})):r.createElement(f,i({ref:n},c))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,i=new Array(l);i[0]=u;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o[d]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=t(7462),a=(t(7294),t(3905));const l={},i="prefer-providing-intl-description",o={unversionedId:"rules/intl/prefer-provide-intl-description",id:"rules/intl/prefer-provide-intl-description",title:"prefer-providing-intl-description",description:"added in: 1.0.0 warning.",source:"@site/docs/rules/intl/prefer-provide-intl-description.mdx",sourceDirName:"rules/intl",slug:"/rules/intl/prefer-provide-intl-description",permalink:"/docs/rules/intl/prefer-provide-intl-description",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/intl/prefer-provide-intl-description.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-intl-name",permalink:"/docs/rules/intl/prefer-intl-name"},next:{title:"Metrics",permalink:"/docs/metrics/"}},s={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:p},d="wrapper";function m(e){let{components:n,...t}=e;return(0,a.kt)(d,(0,r.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-providing-intl-description"},"prefer-providing-intl-description"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning"),"."),(0,a.kt)("p",null,"Warns when the ",(0,a.kt)("inlineCode",{parentName:"p"},"Intl.message()"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"Intl.plural()"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"Intl.gender()")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"Intl.select()")," methods are invoked without a description."),(0,a.kt)("p",null,"To make the translator's job easier, provide a description of the message usage."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"import 'package:intl/intl.dart';\n\nclass SomeClassI18n {\n static final String message = Intl.message(\n 'message',\n name: 'SomeClassI18n_message',\n desc: '',\n );\n\n static String plural = Intl.plural(\n 1,\n one: 'one',\n other: 'other',\n name: 'SomeClassI18n_plural',\n );\n\n static String gender = Intl.gender(\n 'other',\n female: 'female',\n male: 'male',\n other: 'other',\n name: 'SomeClassI18n_gender',\n desc: '',\n );\n\n static String select = Intl.select(\n true,\n {true: 'true', false: 'false'},\n name: 'SomeClassI18n_select',\n );\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"import 'package:intl/intl.dart';\n\nclass SomeClassI18n {\n static final String message = Intl.message(\n 'message',\n name: 'SomeClassI18n_message',\n desc: 'Message description',\n );\n\n static String plural = Intl.plural(\n 1,\n one: 'one',\n other: 'other',\n name: 'SomeClassI18n_plural',\n desc: 'Plural description',\n );\n\n static String gender = Intl.gender(\n 'other',\n female: 'female',\n male: 'male',\n other: 'other',\n name: 'SomeClassI18n_gender',\n desc: 'Gender description',\n );\n\n static String select = Intl.select(\n true,\n {true: 'true', false: 'false'},\n name: 'SomeClassI18n_select',\n desc: 'Select description',\n );\n}\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b7c4f7eb.45df1d3e.js b/assets/js/b7c4f7eb.45df1d3e.js deleted file mode 100644 index d0249aa4b..000000000 --- a/assets/js/b7c4f7eb.45df1d3e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4510],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=c(n),m=r,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||l;return n?a.createElement(f,o(o({ref:t},u),{},{components:n})):a.createElement(f,o({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:r,o[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var a=n(7462),r=(n(7294),n(3905));const l={},o="Check Unused L10n",i={unversionedId:"cli/check-unused-l10n",id:"cli/check-unused-l10n",title:"Check Unused L10n",description:"Checks unused Dart class members, that encapsulates the app's localized values.",source:"@site/docs/cli/check-unused-l10n.md",sourceDirName:"cli",slug:"/cli/check-unused-l10n",permalink:"/docs/cli/check-unused-l10n",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/cli/check-unused-l10n.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Check Unused Files",permalink:"/docs/cli/check-unused-files"},next:{title:"Rules",permalink:"/docs/rules/"}},s={},c=[{value:"Output example",id:"output-example",level:2},{value:"Console",id:"console",level:3},{value:"JSON",id:"json",level:3},{value:"The root object fields are",id:"the-root-object-fields-are",level:4},{value:"The unusedLocalizations object fields are",id:"the-unusedlocalizations-object-fields-are",level:4},{value:"The issue object fields are",id:"the-issue-object-fields-are",level:4},{value:"GitLab",id:"gitlab",level:2}],u={toc:c},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"check-unused-l10n"},"Check Unused L10n"),(0,r.kt)("p",null,"Checks unused Dart class members, that encapsulates the app's localized values."),(0,r.kt)("p",null,"An example of such class:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},"class ClassWithLocalization {\n String get title {\n return Intl.message(\n 'Hello World',\n name: 'title',\n desc: 'Title for the Demo application',\n locale: localeName,\n );\n }\n}\n")),(0,r.kt)("p",null,"Read more about this localization approach ",(0,r.kt)("a",{parentName:"p",href:"https://flutter.dev/docs/development/accessibility-and-localization/internationalization#defining-a-class-for-the-apps-localized-resources"},"in the Flutter docs"),"."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"By default the command searches for classes that end with ",(0,r.kt)("inlineCode",{parentName:"p"},"I18n"),", but you can override this behavior with ",(0,r.kt)("inlineCode",{parentName:"p"},"--class-pattern")," argument.")),(0,r.kt)("p",null,"To execute the command, run:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-sh"},"$ linter check-unused-l10n lib # or linter ul lib\n")),(0,r.kt)("p",null,"Full command description:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-sh"},'Usage: dcl check-unused-l10n [arguments] \n-h, --help Print this usage information.\n\n\n-p, --class-pattern= The pattern to detect classes providing localization\n (defaults to "I18n$")\n\n\n-r, --reporter= The format of the output of the analysis.\n [console (default), codeclimate, json, gitlab]\n\n\n-c, --print-config Print resolved config.\n\n\n --root-folder=<./> Root folder.\n (defaults to current directory)\n --sdk-path= Dart SDK directory path.\n If the project has a `.fvm/flutter_sdk` symlink, it will be used if the SDK is not found.\n --exclude=<{**/*.g.dart,**/*.freezed.dart}> File paths in Glob syntax to be exclude.\n (defaults to "{**/*.g.dart,**/*.freezed.dart}")\n\n\n --no-congratulate Don\'t show output even when there are no issues.\n\n\n --[no-]verbose Show verbose logs.\n\n\n --no-analytics Disable sending anonymous usage statistics.\n\n\n --[no-]fatal-unused Treat find unused l10n as fatal.\n (defaults to on)\n')),(0,r.kt)("h2",{id:"output-example"},"Output example"),(0,r.kt)("h3",{id:"console"},"Console"),(0,r.kt)("p",null,"Use ",(0,r.kt)("inlineCode",{parentName:"p"},"--reporter=console")," to enable this format."),(0,r.kt)("h3",{id:"json"},"JSON"),(0,r.kt)("p",null,"The reporter prints a single JSON object containing meta information and the unused file paths. Use ",(0,r.kt)("inlineCode",{parentName:"p"},"--reporter=json")," to enable this format."),(0,r.kt)("h4",{id:"the-root-object-fields-are"},"The root object fields are"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"formatVersion")," - an integer representing the format version (will be incremented each time the serialization format changes)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"timestamp")," - a creation time of the report in YYYY-MM-DD HH:MM:SS format"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"unusedLocalizations")," - an array of ",(0,r.kt)("a",{parentName:"li",href:"#the-unusedlocalizations-object-fields-are"},"unused files"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},'{\n "formatVersion": 2,\n "timestamp": "2021-04-11 14:44:42",\n "unusedLocalizations": [\n {\n ...\n },\n {\n ...\n },\n {\n ...\n }\n ]\n}\n')),(0,r.kt)("h4",{id:"the-unusedlocalizations-object-fields-are"},"The unusedLocalizations object fields are"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"path")," - a relative path of the unused file"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"className")," - a name of the class that has unused members"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"issues")," - an array of ",(0,r.kt)("a",{parentName:"li",href:"#the-issue-object-fields-are"},"issues")," detected in the target class")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},'{\n "path": "lib/src/some/class.dart",\n "className": "class",\n "issues": [\n ...\n ],\n}\n')),(0,r.kt)("h4",{id:"the-issue-object-fields-are"},"The issue object fields are"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"memberName")," - unused class member name"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"offset")," - a zero-based offset of the class member location in the source"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"line")," - a zero-based line of the class member location in the source"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"column")," - a zero-based column of class member the location in the source")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},'{\n "memberName": "someGetter",\n "offset": 156,\n "line": 7,\n "column": 1\n}\n')),(0,r.kt)("h2",{id:"gitlab"},"GitLab"),(0,r.kt)("p",null,"Reports unused l10n issues in merge requests based on Code Quality custom tool. Use ",(0,r.kt)("inlineCode",{parentName:"p"},"--reporter=gitlab")," to enable this format."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b7c4f7eb.e3adb658.js b/assets/js/b7c4f7eb.e3adb658.js new file mode 100644 index 000000000..e19c4296b --- /dev/null +++ b/assets/js/b7c4f7eb.e3adb658.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4510],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=c(n),m=r,f=d["".concat(s,".").concat(m)]||d[m]||p[m]||l;return n?a.createElement(f,o(o({ref:t},u),{},{components:n})):a.createElement(f,o({ref:t},u))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[d]="string"==typeof e?e:r,o[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var a=n(7462),r=(n(7294),n(3905));const l={},o="Check Unused L10n",i={unversionedId:"cli/check-unused-l10n",id:"cli/check-unused-l10n",title:"Check Unused L10n",description:"Checks unused Dart class members, that encapsulates the app's localized values.",source:"@site/docs/cli/check-unused-l10n.md",sourceDirName:"cli",slug:"/cli/check-unused-l10n",permalink:"/docs/cli/check-unused-l10n",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/cli/check-unused-l10n.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Check Unused Files",permalink:"/docs/cli/check-unused-files"},next:{title:"Fix",permalink:"/docs/cli/fix"}},s={},c=[{value:"Output example",id:"output-example",level:2},{value:"Console",id:"console",level:3},{value:"JSON",id:"json",level:3},{value:"The root object fields are",id:"the-root-object-fields-are",level:4},{value:"The unusedLocalizations object fields are",id:"the-unusedlocalizations-object-fields-are",level:4},{value:"The issue object fields are",id:"the-issue-object-fields-are",level:4},{value:"GitLab",id:"gitlab",level:2}],u={toc:c},d="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(d,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"check-unused-l10n"},"Check Unused L10n"),(0,r.kt)("p",null,"Checks unused Dart class members, that encapsulates the app's localized values."),(0,r.kt)("p",null,"An example of such class:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},"class ClassWithLocalization {\n String get title {\n return Intl.message(\n 'Hello World',\n name: 'title',\n desc: 'Title for the Demo application',\n locale: localeName,\n );\n }\n}\n")),(0,r.kt)("p",null,"Read more about this localization approach ",(0,r.kt)("a",{parentName:"p",href:"https://flutter.dev/docs/development/accessibility-and-localization/internationalization#defining-a-class-for-the-apps-localized-resources"},"in the Flutter docs"),"."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"By default the command searches for classes that end with ",(0,r.kt)("inlineCode",{parentName:"p"},"I18n"),", but you can override this behavior with ",(0,r.kt)("inlineCode",{parentName:"p"},"--class-pattern")," argument.")),(0,r.kt)("p",null,"To execute the command, run:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-sh"},"$ linter check-unused-l10n lib # or linter ul lib\n")),(0,r.kt)("p",null,"Full command description:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-sh"},'Usage: dcl check-unused-l10n [arguments] \n-h, --help Print this usage information.\n\n\n-p, --class-pattern= The pattern to detect classes providing localization\n (defaults to "I18n$")\n\n\n-r, --reporter= The format of the output of the analysis.\n [console (default), codeclimate, json, gitlab]\n\n\n-c, --print-config Print resolved config.\n\n\n --root-folder=<./> Root folder.\n (defaults to current directory)\n --sdk-path= Dart SDK directory path.\n If the project has a `.fvm/flutter_sdk` symlink, it will be used if the SDK is not found.\n --exclude=<{**/*.g.dart,**/*.freezed.dart}> File paths in Glob syntax to be exclude.\n (defaults to "{**/*.g.dart,**/*.freezed.dart}")\n\n\n --no-congratulate Don\'t show output even when there are no issues.\n\n\n --[no-]verbose Show verbose logs.\n\n\n --no-analytics Disable sending anonymous usage statistics.\n\n\n --[no-]fatal-unused Treat find unused l10n as fatal.\n (defaults to on)\n')),(0,r.kt)("h2",{id:"output-example"},"Output example"),(0,r.kt)("h3",{id:"console"},"Console"),(0,r.kt)("p",null,"Use ",(0,r.kt)("inlineCode",{parentName:"p"},"--reporter=console")," to enable this format."),(0,r.kt)("h3",{id:"json"},"JSON"),(0,r.kt)("p",null,"The reporter prints a single JSON object containing meta information and the unused file paths. Use ",(0,r.kt)("inlineCode",{parentName:"p"},"--reporter=json")," to enable this format."),(0,r.kt)("h4",{id:"the-root-object-fields-are"},"The root object fields are"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"formatVersion")," - an integer representing the format version (will be incremented each time the serialization format changes)"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"timestamp")," - a creation time of the report in YYYY-MM-DD HH:MM:SS format"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"unusedLocalizations")," - an array of ",(0,r.kt)("a",{parentName:"li",href:"#the-unusedlocalizations-object-fields-are"},"unused files"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},'{\n "formatVersion": 2,\n "timestamp": "2021-04-11 14:44:42",\n "unusedLocalizations": [\n {\n ...\n },\n {\n ...\n },\n {\n ...\n }\n ]\n}\n')),(0,r.kt)("h4",{id:"the-unusedlocalizations-object-fields-are"},"The unusedLocalizations object fields are"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"path")," - a relative path of the unused file"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"className")," - a name of the class that has unused members"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"issues")," - an array of ",(0,r.kt)("a",{parentName:"li",href:"#the-issue-object-fields-are"},"issues")," detected in the target class")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},'{\n "path": "lib/src/some/class.dart",\n "className": "class",\n "issues": [\n ...\n ],\n}\n')),(0,r.kt)("h4",{id:"the-issue-object-fields-are"},"The issue object fields are"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"memberName")," - unused class member name"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"offset")," - a zero-based offset of the class member location in the source"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"line")," - a zero-based line of the class member location in the source"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"column")," - a zero-based column of class member the location in the source")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},'{\n "memberName": "someGetter",\n "offset": 156,\n "line": 7,\n "column": 1\n}\n')),(0,r.kt)("h2",{id:"gitlab"},"GitLab"),(0,r.kt)("p",null,"Reports unused l10n issues in merge requests based on Code Quality custom tool. Use ",(0,r.kt)("inlineCode",{parentName:"p"},"--reporter=gitlab")," to enable this format."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bb226fd8.13e27d78.js b/assets/js/bb226fd8.9d988302.js similarity index 97% rename from assets/js/bb226fd8.13e27d78.js rename to assets/js/bb226fd8.9d988302.js index 7425f8f95..68fa96d8f 100644 --- a/assets/js/bb226fd8.13e27d78.js +++ b/assets/js/bb226fd8.9d988302.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[5728],{3905:(e,n,t)=>{t.d(n,{Zo:()=>l,kt:()=>m});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),d=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},l=function(e){var n=d(e.components);return r.createElement(s.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=d(t),y=a,m=p["".concat(s,".").concat(y)]||p[y]||u[y]||o;return t?r.createElement(m,i(i({ref:n},l),{},{components:t})):r.createElement(m,i({ref:n},l))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=y;var c={};for(var s in n)hasOwnProperty.call(n,s)&&(c[s]=n[s]);c.originalType=e,c[p]="string"==typeof e?e:a,i[1]=c;for(var d=2;d{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var r=t(7462),a=(t(7294),t(3905));const o={},i="avoid-passing-async-when-sync-expected",c={unversionedId:"rules/dart/avoid-passing-async-when-sync-expected",id:"rules/dart/avoid-passing-async-when-sync-expected",title:"avoid-passing-async-when-sync-expected",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-passing-async-when-sync-expected.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-passing-async-when-sync-expected",permalink:"/docs/rules/dart/avoid-passing-async-when-sync-expected",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-passing-async-when-sync-expected.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-non-null-assertion",permalink:"/docs/rules/dart/avoid-non-null-assertion"},next:{title:"avoid-redundant-async",permalink:"/docs/rules/dart/avoid-redundant-async"}},s={},d=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],l={toc:d},p="wrapper";function u(e){let{components:n,...t}=e;return(0,a.kt)(p,(0,r.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-passing-async-when-sync-expected"},"avoid-passing-async-when-sync-expected"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Avoid passing asynchronous function as an argument where a synchronous function is expected."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"For this rule it's recommended to exclude the ",(0,a.kt)("inlineCode",{parentName:"p"},"test")," folder.")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void doSomethingWithCallback(VoidCallback function) {\n ...\n function();\n ...\n}\n\nvoid main() {\n doSomethingWithCallback(() async {\n await Future.delayed(Duration(seconds: 1));\n print('Hello World');\n });\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void doSomethingWithCallback(VoidCallback function) {\n ...\n function();\n ...\n}\n\nvoid main() {\n doSomethingWithCallback(() {\n print('Hello World');\n });\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[5728],{3905:(e,n,t)=>{t.d(n,{Zo:()=>l,kt:()=>m});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),d=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},l=function(e){var n=d(e.components);return r.createElement(s.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=d(t),y=a,m=p["".concat(s,".").concat(y)]||p[y]||u[y]||o;return t?r.createElement(m,i(i({ref:n},l),{},{components:t})):r.createElement(m,i({ref:n},l))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=y;var c={};for(var s in n)hasOwnProperty.call(n,s)&&(c[s]=n[s]);c.originalType=e,c[p]="string"==typeof e?e:a,i[1]=c;for(var d=2;d{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var r=t(7462),a=(t(7294),t(3905));const o={},i="avoid-passing-async-when-sync-expected",c={unversionedId:"rules/dart/avoid-passing-async-when-sync-expected",id:"rules/dart/avoid-passing-async-when-sync-expected",title:"avoid-passing-async-when-sync-expected",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-passing-async-when-sync-expected.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-passing-async-when-sync-expected",permalink:"/docs/rules/dart/avoid-passing-async-when-sync-expected",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-passing-async-when-sync-expected.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-non-null-assertion",permalink:"/docs/rules/dart/avoid-non-null-assertion"},next:{title:"avoid-redundant-async",permalink:"/docs/rules/dart/avoid-redundant-async"}},s={},d=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],l={toc:d},p="wrapper";function u(e){let{components:n,...t}=e;return(0,a.kt)(p,(0,r.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-passing-async-when-sync-expected"},"avoid-passing-async-when-sync-expected"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Avoid passing asynchronous function as an argument where a synchronous function is expected."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"For this rule it's recommended to exclude the ",(0,a.kt)("inlineCode",{parentName:"p"},"test")," folder.")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void doSomethingWithCallback(VoidCallback function) {\n ...\n function();\n ...\n}\n\nvoid main() {\n doSomethingWithCallback(() async {\n await Future.delayed(Duration(seconds: 1));\n print('Hello World');\n });\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void doSomethingWithCallback(VoidCallback function) {\n ...\n function();\n ...\n}\n\nvoid main() {\n doSomethingWithCallback(() {\n print('Hello World');\n });\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bb2b276a.bdbaac18.js b/assets/js/bb2b276a.77f7047a.js similarity index 97% rename from assets/js/bb2b276a.bdbaac18.js rename to assets/js/bb2b276a.77f7047a.js index 1268ddf41..2799a0208 100644 --- a/assets/js/bb2b276a.bdbaac18.js +++ b/assets/js/bb2b276a.77f7047a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[6675],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),d=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=d(e.components);return r.createElement(s.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=d(t),m=a,f=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return t?r.createElement(f,i(i({ref:n},c),{},{components:t})):r.createElement(f,i({ref:n},c))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=m;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var d=2;d{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var r=t(7462),a=(t(7294),t(3905));const o={},i="avoid-non-null-assertion",l={unversionedId:"rules/dart/avoid-non-null-assertion",id:"rules/dart/avoid-non-null-assertion",title:"avoid-non-null-assertion",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-non-null-assertion.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-non-null-assertion",permalink:"/docs/rules/dart/avoid-non-null-assertion",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-non-null-assertion.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-non-ascii-symbols",permalink:"/docs/rules/dart/avoid-non-ascii-symbols"},next:{title:"avoid-passing-async-when-sync-expected",permalink:"/docs/rules/dart/avoid-passing-async-when-sync-expected"}},s={},d=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:d},p="wrapper";function u(e){let{components:n,...t}=e;return(0,a.kt)(p,(0,r.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-non-null-assertion"},"avoid-non-null-assertion"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when non null assertion operator (! or \u201cbang\u201d operator) is used for a property access or method invocation. The operator check works at runtime and it may fail and throw a runtime exception."),(0,a.kt)("p",null,"The rule ignores the index ",(0,a.kt)("inlineCode",{parentName:"p"},"[]")," operator on the Map class because it's considered the idiomatic way to access a known-present element in a map with ",(0,a.kt)("inlineCode",{parentName:"p"},"[]!")," according to ",(0,a.kt)("a",{parentName:"p",href:"https://dart.dev/null-safety/understanding-null-safety#the-map-index-operator-is-nullable"},"the docs"),"."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"Use this rule if you want to avoid possible unexpected runtime exceptions.")),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"skip-checked-fields")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to allow non-null assertions on fields that are checked to be non-null within an if statement."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - avoid-non-null-assertion:\n skip-checked-fields: true\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Test {\n String? field;\n\n Test? object;\n\n void method() {\n field!.contains('other'); // LINT\n\n object!.field!.contains('other'); // LINT\n\n final map = {'key': 'value'};\n map['key']!.contains('other');\n\n object!.method(); // LINT\n\n if (object case int!) { // LINT\n // ...\n }\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Test {\n String? field;\n\n Test? object;\n\n void method() {\n field?.contains('other');\n\n object?.field?.contains('other');\n\n final map = {'key': 'value'};\n map['key']!.contains('other');\n\n object?.method();\n }\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[6675],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),d=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=d(e.components);return r.createElement(s.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=d(t),m=a,f=p["".concat(s,".").concat(m)]||p[m]||u[m]||o;return t?r.createElement(f,i(i({ref:n},c),{},{components:t})):r.createElement(f,i({ref:n},c))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=m;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var d=2;d{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var r=t(7462),a=(t(7294),t(3905));const o={},i="avoid-non-null-assertion",l={unversionedId:"rules/dart/avoid-non-null-assertion",id:"rules/dart/avoid-non-null-assertion",title:"avoid-non-null-assertion",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-non-null-assertion.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-non-null-assertion",permalink:"/docs/rules/dart/avoid-non-null-assertion",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-non-null-assertion.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-non-ascii-symbols",permalink:"/docs/rules/dart/avoid-non-ascii-symbols"},next:{title:"avoid-passing-async-when-sync-expected",permalink:"/docs/rules/dart/avoid-passing-async-when-sync-expected"}},s={},d=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:d},p="wrapper";function u(e){let{components:n,...t}=e;return(0,a.kt)(p,(0,r.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-non-null-assertion"},"avoid-non-null-assertion"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when non null assertion operator (! or \u201cbang\u201d operator) is used for a property access or method invocation. The operator check works at runtime and it may fail and throw a runtime exception."),(0,a.kt)("p",null,"The rule ignores the index ",(0,a.kt)("inlineCode",{parentName:"p"},"[]")," operator on the Map class because it's considered the idiomatic way to access a known-present element in a map with ",(0,a.kt)("inlineCode",{parentName:"p"},"[]!")," according to ",(0,a.kt)("a",{parentName:"p",href:"https://dart.dev/null-safety/understanding-null-safety#the-map-index-operator-is-nullable"},"the docs"),"."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"Use this rule if you want to avoid possible unexpected runtime exceptions.")),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"skip-checked-fields")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to allow non-null assertions on fields that are checked to be non-null within an if statement."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - avoid-non-null-assertion:\n skip-checked-fields: true\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Test {\n String? field;\n\n Test? object;\n\n void method() {\n field!.contains('other'); // LINT\n\n object!.field!.contains('other'); // LINT\n\n final map = {'key': 'value'};\n map['key']!.contains('other');\n\n object!.method(); // LINT\n\n if (object case int!) { // LINT\n // ...\n }\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Test {\n String? field;\n\n Test? object;\n\n void method() {\n field?.contains('other');\n\n object?.field?.contains('other');\n\n final map = {'key': 'value'};\n map['key']!.contains('other');\n\n object?.method();\n }\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bc2663a9.410d2382.js b/assets/js/bc2663a9.410d2382.js deleted file mode 100644 index d61e498f2..000000000 --- a/assets/js/bc2663a9.410d2382.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[5168],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=s(r),m=a,f=u["".concat(p,".").concat(m)]||u[m]||d[m]||o;return r?n.createElement(f,i(i({ref:t},c),{},{components:r})):n.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={},i="prefer-enums-by-name",l={unversionedId:"rules/dart/prefer-enums-by-name",id:"rules/dart/prefer-enums-by-name",title:"prefer-enums-by-name",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/prefer-enums-by-name.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-enums-by-name",permalink:"/docs/rules/dart/prefer-enums-by-name",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-enums-by-name.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-correct-type-name",permalink:"/docs/rules/dart/prefer-correct-type-name"},next:{title:"prefer-first",permalink:"/docs/rules/dart/prefer-first"}},p={},s=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-enums-by-name"},"prefer-enums-by-name"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Since Dart 2.15 it's possible to use ",(0,a.kt)("inlineCode",{parentName:"p"},"byName")," method on enum values prop instead of searching the value with ",(0,a.kt)("inlineCode",{parentName:"p"},"firstWhere"),"."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},(0,a.kt)("inlineCode",{parentName:"p"},"byName")," will throw an exception if the enum does not contain a value for the given name.")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// LINT\nfinal styleDefinition = StyleDefinition.values.firstWhere(\n (def) => def.name == json['styleDefinition'],\n);\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final styleDefinition = StyleDefinition.values.byName(json['styleDefinition']);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bc2663a9.4c338e7f.js b/assets/js/bc2663a9.4c338e7f.js new file mode 100644 index 000000000..bc7c41fd9 --- /dev/null +++ b/assets/js/bc2663a9.4c338e7f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[5168],{3905:(e,r,t)=>{t.d(r,{Zo:()=>u,kt:()=>f});var n=t(7294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=n.createContext({}),s=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},u=function(e){var r=s(e.components);return n.createElement(p.Provider,{value:r},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=s(t),m=a,f=c["".concat(p,".").concat(m)]||c[m]||d[m]||o;return t?n.createElement(f,i(i({ref:r},u),{},{components:t})):n.createElement(f,i({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=m;var l={};for(var p in r)hasOwnProperty.call(r,p)&&(l[p]=r[p]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=t(7462),a=(t(7294),t(3905));const o={},i="prefer-enums-by-name",l={unversionedId:"rules/dart/prefer-enums-by-name",id:"rules/dart/prefer-enums-by-name",title:"prefer-enums-by-name",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/prefer-enums-by-name.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-enums-by-name",permalink:"/docs/rules/dart/prefer-enums-by-name",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-enums-by-name.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-correct-type-name",permalink:"/docs/rules/dart/prefer-correct-type-name"},next:{title:"prefer-first-or-null",permalink:"/docs/rules/dart/prefer-first-or-null"}},p={},s=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:s},c="wrapper";function d(e){let{components:r,...t}=e;return(0,a.kt)(c,(0,n.Z)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-enums-by-name"},"prefer-enums-by-name"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Since Dart 2.15 it's possible to use ",(0,a.kt)("inlineCode",{parentName:"p"},"byName")," method on enum values prop instead of searching the value with ",(0,a.kt)("inlineCode",{parentName:"p"},"firstWhere"),"."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},(0,a.kt)("inlineCode",{parentName:"p"},"byName")," will throw an exception if the enum does not contain a value for the given name.")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// LINT\nfinal styleDefinition = StyleDefinition.values.firstWhere(\n (def) => def.name == json['styleDefinition'],\n);\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"final styleDefinition = StyleDefinition.values.byName(json['styleDefinition']);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/be70f3b9.4bc5c992.js b/assets/js/be70f3b9.696af34a.js similarity index 97% rename from assets/js/be70f3b9.4bc5c992.js rename to assets/js/be70f3b9.696af34a.js index 56b3336cd..07c10bcf3 100644 --- a/assets/js/be70f3b9.4bc5c992.js +++ b/assets/js/be70f3b9.696af34a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[8329],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=s(r),f=a,m=u["".concat(c,".").concat(f)]||u[f]||p[f]||o;return r?n.createElement(m,l(l({ref:t},d),{},{components:r})):n.createElement(m,l({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=f;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={},l="check-for-equals-in-render-object-setters",i={unversionedId:"rules/flutter/check-for-equals-in-render-object-setters",id:"rules/flutter/check-for-equals-in-render-object-setters",title:"check-for-equals-in-render-object-setters",description:"added in: 1.6.0 warning",source:"@site/docs/rules/flutter/check-for-equals-in-render-object-setters.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/check-for-equals-in-render-object-setters",permalink:"/docs/rules/flutter/check-for-equals-in-render-object-setters",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/check-for-equals-in-render-object-setters.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-wrapping-in-padding",permalink:"/docs/rules/flutter/avoid-wrapping-in-padding"},next:{title:"consistent-update-render-object",permalink:"/docs/rules/flutter/consistent-update-render-object"}},c={},s=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:s},u="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"check-for-equals-in-render-object-setters"},"check-for-equals-in-render-object-setters"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when a ",(0,a.kt)("inlineCode",{parentName:"p"},"RenderObject")," setter doesn't have an equality check for the new value."),(0,a.kt)("p",null,"The early return with the equality check is very helpful, because set a is always called within ",(0,a.kt)("inlineCode",{parentName:"p"},"updateRenderObject"),". If it does not early return, then the ",(0,a.kt)("inlineCode",{parentName:"p"},"markNeedsPaint")," (or for other fields, maybe ",(0,a.kt)("inlineCode",{parentName:"p"},"markNeedsLayout"),", some heavy work, etc), will be ",(0,a.kt)("strong",{parentName:"p"},"unconditionally")," executed every time the render object is updated, even if that is totally unnecessary."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class SomeRenderBox extends RenderBox {\n double _dividerWidth;\n double get dividerWidth => _dividerWidth;\n // LINT\n set dividerWidth(double value) {\n _dividerWidth = value;\n markNeedsLayout();\n }\n\n double get spacing => _spacing;\n double _spacing;\n // LINT\n set spacing(double value) {\n _spacing = value;\n\n if (_spacing == value) {\n return;\n }\n markNeedsLayout();\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class SomeRenderBox extends RenderBox {\n double get overflowSpacing => _overflowSpacing;\n double _overflowSpacing;\n set overflowSpacing(double value) {\n assert(value != null);\n if (_overflowSpacing == value) return;\n\n _overflowSpacing = value;\n markNeedsLayout();\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[8329],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},d=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=s(r),f=a,m=u["".concat(c,".").concat(f)]||u[f]||p[f]||o;return r?n.createElement(m,l(l({ref:t},d),{},{components:r})):n.createElement(m,l({ref:t},d))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=f;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={},l="check-for-equals-in-render-object-setters",i={unversionedId:"rules/flutter/check-for-equals-in-render-object-setters",id:"rules/flutter/check-for-equals-in-render-object-setters",title:"check-for-equals-in-render-object-setters",description:"added in: 1.0.0 warning",source:"@site/docs/rules/flutter/check-for-equals-in-render-object-setters.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/check-for-equals-in-render-object-setters",permalink:"/docs/rules/flutter/check-for-equals-in-render-object-setters",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/check-for-equals-in-render-object-setters.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-wrapping-in-padding",permalink:"/docs/rules/flutter/avoid-wrapping-in-padding"},next:{title:"consistent-update-render-object",permalink:"/docs/rules/flutter/consistent-update-render-object"}},c={},s=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:s},u="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"check-for-equals-in-render-object-setters"},"check-for-equals-in-render-object-setters"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when a ",(0,a.kt)("inlineCode",{parentName:"p"},"RenderObject")," setter doesn't have an equality check for the new value."),(0,a.kt)("p",null,"The early return with the equality check is very helpful, because set a is always called within ",(0,a.kt)("inlineCode",{parentName:"p"},"updateRenderObject"),". If it does not early return, then the ",(0,a.kt)("inlineCode",{parentName:"p"},"markNeedsPaint")," (or for other fields, maybe ",(0,a.kt)("inlineCode",{parentName:"p"},"markNeedsLayout"),", some heavy work, etc), will be ",(0,a.kt)("strong",{parentName:"p"},"unconditionally")," executed every time the render object is updated, even if that is totally unnecessary."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class SomeRenderBox extends RenderBox {\n double _dividerWidth;\n double get dividerWidth => _dividerWidth;\n // LINT\n set dividerWidth(double value) {\n _dividerWidth = value;\n markNeedsLayout();\n }\n\n double get spacing => _spacing;\n double _spacing;\n // LINT\n set spacing(double value) {\n _spacing = value;\n\n if (_spacing == value) {\n return;\n }\n markNeedsLayout();\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class SomeRenderBox extends RenderBox {\n double get overflowSpacing => _overflowSpacing;\n double _overflowSpacing;\n set overflowSpacing(double value) {\n assert(value != null);\n if (_overflowSpacing == value) return;\n\n _overflowSpacing = value;\n markNeedsLayout();\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bf74b1a6.d353fb92.js b/assets/js/bf74b1a6.80cc167a.js similarity index 97% rename from assets/js/bf74b1a6.d353fb92.js rename to assets/js/bf74b1a6.80cc167a.js index caf9f8124..868c49736 100644 --- a/assets/js/bf74b1a6.d353fb92.js +++ b/assets/js/bf74b1a6.80cc167a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[3429],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(r),f=a,m=u["".concat(s,".").concat(f)]||u[f]||d[f]||i;return r?n.createElement(m,o(o({ref:t},c),{},{components:r})):n.createElement(m,o({ref:t},c))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=f;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(7462),a=(r(7294),r(3905));const i={},o="prefer-iterable-of",l={unversionedId:"rules/dart/prefer-iterable-of",id:"rules/dart/prefer-iterable-of",title:"prefer-iterable-of",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/prefer-iterable-of.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-iterable-of",permalink:"/docs/rules/dart/prefer-iterable-of",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-iterable-of.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-immediate-return",permalink:"/docs/rules/dart/prefer-immediate-return"},next:{title:"prefer-last",permalink:"/docs/rules/dart/prefer-last"}},s={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-iterable-of"},"prefer-iterable-of"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when ",(0,a.kt)("inlineCode",{parentName:"p"},"List.from()")," factory is used instead of ",(0,a.kt)("inlineCode",{parentName:"p"},"List.of()"),"."),(0,a.kt)("p",null,"The difference between ",(0,a.kt)("inlineCode",{parentName:"p"},"List.of()")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"List.from()")," is that ",(0,a.kt)("inlineCode",{parentName:"p"},".of()")," takes an argument of the same type as what it returns and enforces it at compilation time, and that ",(0,a.kt)("inlineCode",{parentName:"p"},".from()")," allows potentially unsafe downcasting and enforces convertibility at runtime."),(0,a.kt)("p",null,"Additional resources:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/dart-lang/linter/issues/2555"},"https://github.com/dart-lang/linter/issues/2555")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/dart-lang/linter/issues/2066"},"https://github.com/dart-lang/linter/issues/2066"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"...\nvar intList = [1, 2, 3];\n\nvar copy = List.from(intList); // LINT\nvar numList = List.from(intList); // LINT\n\nvar unspecifiedList = List.from(intList); // LINT\n\nfinal recordsSet = <(num,)>{(1,), (2,), (3,)};\nfinal recordSet = Set<(num,)>.from(recordsSet); // LINT\nfinal extra = Set<(int, String)>.from(recordsSet); // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"var intList = [1, 2, 3];\n\nvar copy = List.of(intList);\nvar numList = List.of(intList);\n...\n\nvar numList = [1, 2, 3];\n\nvar intList = List.from(numList);\n\nfinal recordsSet = <(num,)>{(1,), (2,), (3,)};\nfinal record = Set<(int,)>.from(recordsSet);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[3429],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(r),f=a,m=u["".concat(s,".").concat(f)]||u[f]||d[f]||i;return r?n.createElement(m,o(o({ref:t},c),{},{components:r})):n.createElement(m,o({ref:t},c))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=f;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(7462),a=(r(7294),r(3905));const i={},o="prefer-iterable-of",l={unversionedId:"rules/dart/prefer-iterable-of",id:"rules/dart/prefer-iterable-of",title:"prefer-iterable-of",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/prefer-iterable-of.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-iterable-of",permalink:"/docs/rules/dart/prefer-iterable-of",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-iterable-of.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-immediate-return",permalink:"/docs/rules/dart/prefer-immediate-return"},next:{title:"prefer-last",permalink:"/docs/rules/dart/prefer-last"}},s={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-iterable-of"},"prefer-iterable-of"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when ",(0,a.kt)("inlineCode",{parentName:"p"},"List.from()")," factory is used instead of ",(0,a.kt)("inlineCode",{parentName:"p"},"List.of()"),"."),(0,a.kt)("p",null,"The difference between ",(0,a.kt)("inlineCode",{parentName:"p"},"List.of()")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"List.from()")," is that ",(0,a.kt)("inlineCode",{parentName:"p"},".of()")," takes an argument of the same type as what it returns and enforces it at compilation time, and that ",(0,a.kt)("inlineCode",{parentName:"p"},".from()")," allows potentially unsafe downcasting and enforces convertibility at runtime."),(0,a.kt)("p",null,"Additional resources:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/dart-lang/linter/issues/2555"},"https://github.com/dart-lang/linter/issues/2555")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/dart-lang/linter/issues/2066"},"https://github.com/dart-lang/linter/issues/2066"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"...\nvar intList = [1, 2, 3];\n\nvar copy = List.from(intList); // LINT\nvar numList = List.from(intList); // LINT\n\nvar unspecifiedList = List.from(intList); // LINT\n\nfinal recordsSet = <(num,)>{(1,), (2,), (3,)};\nfinal recordSet = Set<(num,)>.from(recordsSet); // LINT\nfinal extra = Set<(int, String)>.from(recordsSet); // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"var intList = [1, 2, 3];\n\nvar copy = List.of(intList);\nvar numList = List.of(intList);\n...\n\nvar numList = [1, 2, 3];\n\nvar intList = List.from(numList);\n\nfinal recordsSet = <(num,)>{(1,), (2,), (3,)};\nfinal record = Set<(int,)>.from(recordsSet);\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c1017a8f.03cfcc9c.js b/assets/js/c1017a8f.ca0b9e15.js similarity index 97% rename from assets/js/c1017a8f.03cfcc9c.js rename to assets/js/c1017a8f.ca0b9e15.js index 892e2ab59..4bef358b7 100644 --- a/assets/js/c1017a8f.03cfcc9c.js +++ b/assets/js/c1017a8f.ca0b9e15.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[1341],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>g});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function s(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var l=a.createContext({}),c=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},d=function(e){var n=c(e.components);return a.createElement(l.Provider,{value:n},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},u=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),m=c(t),u=r,g=m["".concat(l,".").concat(u)]||m[u]||p[u]||o;return t?a.createElement(g,s(s({ref:n},d),{},{components:t})):a.createElement(g,s({ref:n},d))}));function g(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,s=new Array(o);s[0]=u;var i={};for(var l in n)hasOwnProperty.call(n,l)&&(i[l]=n[l]);i.originalType=e,i[m]="string"==typeof e?e:r,s[1]=i;for(var c=2;c{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=t(7462),r=(t(7294),t(3905));const o={},s="ban-name",i={unversionedId:"rules/dart/ban-name",id:"rules/dart/ban-name",title:"ban-name",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/ban-name.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/ban-name",permalink:"/docs/rules/dart/ban-name",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/ban-name.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-unused-parameters",permalink:"/docs/rules/dart/avoid-unused-parameters"},next:{title:"binary-expression-operand-order",permalink:"/docs/rules/dart/binary-expression-operand-order"}},l={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Config example",id:"config-example",level:2}],d={toc:c},m="wrapper";function p(e){let{components:n,...t}=e;return(0,r.kt)(m,(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"ban-name"},"ban-name"),(0,r.kt)("p",null,"added in: 1.6.0 ",(0,r.kt)("span",{style:{color:"orange"}},"warning")),(0,r.kt)("p",null,"Configure some names that you want to ban."),(0,r.kt)("admonition",{type:"danger"},(0,r.kt)("p",{parentName:"admonition"},"This rule is deprecated. Use ",(0,r.kt)("a",{parentName:"p",href:"https://dcm.dev/docs/rules/common/banned-usage/"},"https://dcm.dev/docs/rules/common/banned-usage/")," instead.")),(0,r.kt)("h2",{id:"example"},"Example"),(0,r.kt)("h3",{id:"bad"},"Bad:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},"// suppose the configuration is the one shown below\n\nshowDialog('some_arguments', 'another_argument'); // LINT\nmaterial.showDialog('some_arguments', 'another_argument'); // LINT\n\nvar strangeName = 42; // LINT\n\nvoid strangeName() {} // LINT\n\n// LINT\nclass AnotherStrangeName {\n late var strangeName; // LINT\n}\n\nStrangeClass.someMethod(); // LINT\nNonStrangeClass.someMethod();\n\nDateTime.now(); // LINT\nDateTime.now().day; // LINT\nclass DateTimeTest {\n final currentTimestamp = DateTime.now(); // LINT\n}\nDateTime currentTimestamp = DateTime('01.01.1959');\n")),(0,r.kt)("p",null,"\u2705 Good:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},"myShowDialog();\nNonStrangeClass.someMethod();\nclock.now();\nclock.now().day;\nclass DateTimeTest {\n final currentTimestamp = clock.now();\n}\n")),(0,r.kt)("h2",{id:"config-example"},"Config example"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - ban-name:\n entries:\n - ident: showDialog\n description: Please use myShowDialog in this package\n - ident: strangeName\n description: The name is too strange\n - ident: AnotherStrangeName\n description: Oops\n - ident: StrangeClass.someMethod\n description: Please use a NonStrangeClass.someMethod instead\n - ident: DateTime.now\n description: Please use a clock.now instead\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[1341],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>g});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function s(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var l=a.createContext({}),c=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},d=function(e){var n=c(e.components);return a.createElement(l.Provider,{value:n},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},u=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),m=c(t),u=r,g=m["".concat(l,".").concat(u)]||m[u]||p[u]||o;return t?a.createElement(g,s(s({ref:n},d),{},{components:t})):a.createElement(g,s({ref:n},d))}));function g(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,s=new Array(o);s[0]=u;var i={};for(var l in n)hasOwnProperty.call(n,l)&&(i[l]=n[l]);i.originalType=e,i[m]="string"==typeof e?e:r,s[1]=i;for(var c=2;c{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var a=t(7462),r=(t(7294),t(3905));const o={},s="ban-name",i={unversionedId:"rules/dart/ban-name",id:"rules/dart/ban-name",title:"ban-name",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/ban-name.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/ban-name",permalink:"/docs/rules/dart/ban-name",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/ban-name.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-unused-parameters",permalink:"/docs/rules/dart/avoid-unused-parameters"},next:{title:"binary-expression-operand-order",permalink:"/docs/rules/dart/binary-expression-operand-order"}},l={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Config example",id:"config-example",level:2}],d={toc:c},m="wrapper";function p(e){let{components:n,...t}=e;return(0,r.kt)(m,(0,a.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"ban-name"},"ban-name"),(0,r.kt)("p",null,"added in: 1.0.0 ",(0,r.kt)("span",{style:{color:"orange"}},"warning")),(0,r.kt)("p",null,"Configure some names that you want to ban."),(0,r.kt)("admonition",{type:"danger"},(0,r.kt)("p",{parentName:"admonition"},"This rule is deprecated. Use ",(0,r.kt)("a",{parentName:"p",href:"https://dcm.dev/docs/rules/common/banned-usage/"},"https://dcm.dev/docs/rules/common/banned-usage/")," instead.")),(0,r.kt)("h2",{id:"example"},"Example"),(0,r.kt)("h3",{id:"bad"},"Bad:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},"// suppose the configuration is the one shown below\n\nshowDialog('some_arguments', 'another_argument'); // LINT\nmaterial.showDialog('some_arguments', 'another_argument'); // LINT\n\nvar strangeName = 42; // LINT\n\nvoid strangeName() {} // LINT\n\n// LINT\nclass AnotherStrangeName {\n late var strangeName; // LINT\n}\n\nStrangeClass.someMethod(); // LINT\nNonStrangeClass.someMethod();\n\nDateTime.now(); // LINT\nDateTime.now().day; // LINT\nclass DateTimeTest {\n final currentTimestamp = DateTime.now(); // LINT\n}\nDateTime currentTimestamp = DateTime('01.01.1959');\n")),(0,r.kt)("p",null,"\u2705 Good:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},"myShowDialog();\nNonStrangeClass.someMethod();\nclock.now();\nclock.now().day;\nclass DateTimeTest {\n final currentTimestamp = clock.now();\n}\n")),(0,r.kt)("h2",{id:"config-example"},"Config example"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - ban-name:\n entries:\n - ident: showDialog\n description: Please use myShowDialog in this package\n - ident: strangeName\n description: The name is too strange\n - ident: AnotherStrangeName\n description: Oops\n - ident: StrangeClass.someMethod\n description: Please use a NonStrangeClass.someMethod instead\n - ident: DateTime.now\n description: Please use a clock.now instead\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c19cc756.13e052c4.js b/assets/js/c19cc756.56471069.js similarity index 97% rename from assets/js/c19cc756.13e052c4.js rename to assets/js/c19cc756.56471069.js index 184404160..47c37eba6 100644 --- a/assets/js/c19cc756.13e052c4.js +++ b/assets/js/c19cc756.56471069.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[287],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var d=r.createContext({}),l=function(e){var n=r.useContext(d),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},u=function(e){var n=l(e.components);return r.createElement(d.Provider,{value:n},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=l(t),m=a,f=c["".concat(d,".").concat(m)]||c[m]||p[m]||o;return t?r.createElement(f,i(i({ref:n},u),{},{components:t})):r.createElement(f,i({ref:n},u))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=m;var s={};for(var d in n)hasOwnProperty.call(n,d)&&(s[d]=n[d]);s.originalType=e,s[c]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=t(7462),a=(t(7294),t(3905));const o={},i="avoid-unused-parameters",s={unversionedId:"rules/dart/avoid-unused-parameters",id:"rules/dart/avoid-unused-parameters",title:"avoid-unused-parameters",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-unused-parameters.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-unused-parameters",permalink:"/docs/rules/dart/avoid-unused-parameters",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-unused-parameters.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-unrelated-type-assertions",permalink:"/docs/rules/dart/avoid-unrelated-type-assertions"},next:{title:"ban-name",permalink:"/docs/rules/dart/ban-name"}},d={},l=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:l},c="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(c,(0,r.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-unused-parameters"},"avoid-unused-parameters"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Checks for unused parameters inside a function or method body. For overridden methods suggests renaming unused parameters to _, __, etc."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"Abstract classes are completely ignored by the rule to avoid redundant checks for potentially overridden methods.")),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignore-inline-functions")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"true"),") to ignore inline functions. Default value is set to ",(0,a.kt)("inlineCode",{parentName:"p"},"true")," for backward compatibility and can be changed in the future."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - avoid-unused-parameters:\n ignore-inline-functions: false\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void someFunction(String s) { // LINT\n return;\n}\n\nclass SomeClass {\n void method(String s) { // LINT\n return;\n }\n}\n\nclass SomeClass extends AnotherClass {\n @override\n void method(String s) {} // LINT\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void someOtherFunction() {\n return;\n}\n\nclass SomeOtherClass {\n void method() {\n return;\n }\n}\n\nvoid someOtherFunction(String s) {\n print(s);\n return;\n}\n\nclass SomeOtherClass {\n void method(String s) {\n print(s);\n return;\n }\n}\n\nclass SomeOtherClass extends AnotherClass {\n @override\n void method(String _) {}\n}\n\nabstract class SomeOtherClass {\n void method(String s);\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[287],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var d=r.createContext({}),l=function(e){var n=r.useContext(d),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},u=function(e){var n=l(e.components);return r.createElement(d.Provider,{value:n},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=l(t),m=a,f=c["".concat(d,".").concat(m)]||c[m]||p[m]||o;return t?r.createElement(f,i(i({ref:n},u),{},{components:t})):r.createElement(f,i({ref:n},u))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=m;var s={};for(var d in n)hasOwnProperty.call(n,d)&&(s[d]=n[d]);s.originalType=e,s[c]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=t(7462),a=(t(7294),t(3905));const o={},i="avoid-unused-parameters",s={unversionedId:"rules/dart/avoid-unused-parameters",id:"rules/dart/avoid-unused-parameters",title:"avoid-unused-parameters",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-unused-parameters.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-unused-parameters",permalink:"/docs/rules/dart/avoid-unused-parameters",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-unused-parameters.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-unrelated-type-assertions",permalink:"/docs/rules/dart/avoid-unrelated-type-assertions"},next:{title:"ban-name",permalink:"/docs/rules/dart/ban-name"}},d={},l=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:l},c="wrapper";function p(e){let{components:n,...t}=e;return(0,a.kt)(c,(0,r.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-unused-parameters"},"avoid-unused-parameters"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Checks for unused parameters inside a function or method body. For overridden methods suggests renaming unused parameters to _, __, etc."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"Abstract classes are completely ignored by the rule to avoid redundant checks for potentially overridden methods.")),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignore-inline-functions")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"true"),") to ignore inline functions. Default value is set to ",(0,a.kt)("inlineCode",{parentName:"p"},"true")," for backward compatibility and can be changed in the future."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - avoid-unused-parameters:\n ignore-inline-functions: false\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void someFunction(String s) { // LINT\n return;\n}\n\nclass SomeClass {\n void method(String s) { // LINT\n return;\n }\n}\n\nclass SomeClass extends AnotherClass {\n @override\n void method(String s) {} // LINT\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void someOtherFunction() {\n return;\n}\n\nclass SomeOtherClass {\n void method() {\n return;\n }\n}\n\nvoid someOtherFunction(String s) {\n print(s);\n return;\n}\n\nclass SomeOtherClass {\n void method(String s) {\n print(s);\n return;\n }\n}\n\nclass SomeOtherClass extends AnotherClass {\n @override\n void method(String _) {}\n}\n\nabstract class SomeOtherClass {\n void method(String s);\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c1cca2c2.a206106a.js b/assets/js/c1cca2c2.a206106a.js new file mode 100644 index 000000000..6723ada76 --- /dev/null +++ b/assets/js/c1cca2c2.a206106a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[23],{3905:(e,r,t)=>{t.d(r,{Zo:()=>u,kt:()=>m});var n=t(7294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),c=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},u=function(e){var r=c(e.components);return n.createElement(i.Provider,{value:r},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=c(t),f=a,m=p["".concat(i,".").concat(f)]||p[f]||d[f]||o;return t?n.createElement(m,l(l({ref:r},u),{},{components:t})):n.createElement(m,l({ref:r},u))}));function m(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=f;var s={};for(var i in r)hasOwnProperty.call(r,i)&&(s[i]=r[i]);s.originalType=e,s[p]="string"==typeof e?e:a,l[1]=s;for(var c=2;c{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var n=t(7462),a=(t(7294),t(3905));const o={},l="prefer-single-quotes",s={unversionedId:"rules/dart/prefer-single-quotes",id:"rules/dart/prefer-single-quotes",title:"prefer-single-quotes",description:"added in: 1.2.0 style",source:"@site/docs/rules/dart/prefer-single-quotes.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-single-quotes",permalink:"/docs/rules/dart/prefer-single-quotes",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-single-quotes.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-moving-to-variable",permalink:"/docs/rules/dart/prefer-moving-to-variable"},next:{title:"prefer-static-class",permalink:"/docs/rules/dart/prefer-static-class"}},i={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:c},p="wrapper";function d(e){let{components:r,...t}=e;return(0,a.kt)(p,(0,n.Z)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-single-quotes"},"prefer-single-quotes"),(0,a.kt)("p",null,"added in: 1.2.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns when strings are declared using double quotes instead of single quotes"),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},'...\nconst string = "Value"; // LINT\n')),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"const string = 'Value';\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c4f8173c.dc17d01d.js b/assets/js/c4f8173c.a22f1d4c.js similarity index 98% rename from assets/js/c4f8173c.dc17d01d.js rename to assets/js/c4f8173c.a22f1d4c.js index 0dbf74715..1cb487f90 100644 --- a/assets/js/c4f8173c.dc17d01d.js +++ b/assets/js/c4f8173c.a22f1d4c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[8982],{3905:(e,n,r)=>{r.d(n,{Zo:()=>d,kt:()=>p});var t=r(7294);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function o(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function i(e){for(var n=1;n=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=t.createContext({}),c=function(e){var n=t.useContext(s),r=n;return e&&(r="function"==typeof e?e(n):i(i({},n),e)),r},d=function(e){var n=c(e.components);return t.createElement(s.Provider,{value:n},e.children)},g="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},u=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),g=c(r),u=a,p=g["".concat(s,".").concat(u)]||g[u]||m[u]||o;return r?t.createElement(p,i(i({ref:n},d),{},{components:r})):t.createElement(p,i({ref:n},d))}));function p(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[g]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{r.r(n),r.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var t=r(7462),a=(r(7294),r(3905));const o={},i="prefer-trailing-comma",l={unversionedId:"rules/dart/prefer-trailing-comma",id:"rules/dart/prefer-trailing-comma",title:"prefer-trailing-comma",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/prefer-trailing-comma.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-trailing-comma",permalink:"/docs/rules/dart/prefer-trailing-comma",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-trailing-comma.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-static-class",permalink:"/docs/rules/dart/prefer-static-class"},next:{title:"Flutter",permalink:"/docs/rules/flutter/"}},s={},c=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3},{value:"Bad:",id:"bad-1",level:3},{value:"Good:",id:"good-1",level:3}],d={toc:c},g="wrapper";function m(e){let{components:n,...r}=e;return(0,a.kt)(g,(0,t.Z)({},d,r,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-trailing-comma"},"prefer-trailing-comma"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Checks for a trailing comma for arguments, parameters, enum values and collections. By default warns in cases when items aren't on a single line."),(0,a.kt)("p",null,"Can be configured with ",(0,a.kt)("inlineCode",{parentName:"p"},"break-on")," option, which additionally enables checks for given amount of items. For example, if ",(0,a.kt)("inlineCode",{parentName:"p"},"break-on")," is equal 2, then the rule also warns for all functions with 2 or more parameters (if they have no trailing comma)."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"If the last item starts on the same line as opening bracket and ends on the same line as closing, the rule will not warn about this case."),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"function('some string', () {\n return;\n});\n"))),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"break-on")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"none"),") to override the default behavior."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-trailing-comma:\n break-on: 2\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// LINT\nvoid firstFunction(\n String firstParameter, String secondParameter, String thirdParameter) {\n return;\n}\n\nvoid secondFunction() {\n firstFunction('some string', 'some other string',\n 'and another string for length exceed'); // LINT\n}\n\nvoid thirdFunction(String someLongVarName, void Function() someLongCallbackName,\n String arg3) {} // LINT\n\nclass TestClass {\n void firstMethod(\n String firstParameter, String secondParameter, String thirdParameter) { // LINT\n return;\n }\n\n void secondMethod() {\n firstMethod('some string', 'some other string',\n 'and another string for length exceed'); // LINT\n\n thirdFunction('some string', () {\n return;\n }, 'some other string'); // LINT\n }\n}\n\nfinal secondArray = [\n 'some string',\n 'some other string',\n 'and another string for length exceed' // LINT\n];\n\nfinal secondSet = {\n 'some string',\n 'some other string',\n 'and another string for length exceed' // LINT\n};\n\nfinal secondMap = {\n 'some string': 'and another string for length exceed',\n 'and another string for length exceed': 'and another string for length exceed' // LINT\n};\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void firstFunction(\n String firstParameter,\n String secondParameter,\n String thirdParameter,\n) {\n return;\n}\n\nvoid secondFunction(String arg1) {\n firstFunction(\n 'some string',\n 'some other string',\n 'and another string for length exceed'\n );\n}\n\nvoid thirdFunction(String arg1, void Function() callback) {}\n\nvoid forthFunction(void Function() callback) {}\n\nclass TestClass {\n void firstMethod(\n String firstParameter,\n String secondParameter,\n String thirdParameter,\n ) {\n return;\n }\n\n void secondMethod() {\n firstMethod(\n 'some string',\n 'some other string',\n 'and another string for length exceed',\n );\n\n thirdFunction('', () {\n return;\n });\n\n forthFunction(() {\n return;\n });\n }\n}\n")),(0,a.kt)("p",null,"With given config:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"- break-on: 2\n")),(0,a.kt)("h3",{id:"bad-1"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void firstFunction(String arg1, String arg2,\n String arg3) {\n return;\n}\n\nvoid secondFunction(String arg1, String arg2, String arg3) {\n return;\n}\n")),(0,a.kt)("h3",{id:"good-1"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void firstFunction(\n String arg1,\n String arg2,\n String arg3,\n) {\n return;\n}\n\nvoid secondFunction(\n String arg1,\n String arg2,\n String arg3,\n) {\n return;\n}\n\nenum FirstEnum { firstItem }\n\nconst instance = FirstClass(\n 0,\n 0,\n 0,\n);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[8982],{3905:(e,n,r)=>{r.d(n,{Zo:()=>d,kt:()=>p});var t=r(7294);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function o(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function i(e){for(var n=1;n=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=t.createContext({}),c=function(e){var n=t.useContext(s),r=n;return e&&(r="function"==typeof e?e(n):i(i({},n),e)),r},d=function(e){var n=c(e.components);return t.createElement(s.Provider,{value:n},e.children)},g="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},u=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),g=c(r),u=a,p=g["".concat(s,".").concat(u)]||g[u]||m[u]||o;return r?t.createElement(p,i(i({ref:n},d),{},{components:r})):t.createElement(p,i({ref:n},d))}));function p(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=u;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[g]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{r.r(n),r.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var t=r(7462),a=(r(7294),r(3905));const o={},i="prefer-trailing-comma",l={unversionedId:"rules/dart/prefer-trailing-comma",id:"rules/dart/prefer-trailing-comma",title:"prefer-trailing-comma",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/prefer-trailing-comma.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-trailing-comma",permalink:"/docs/rules/dart/prefer-trailing-comma",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-trailing-comma.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-static-class",permalink:"/docs/rules/dart/prefer-static-class"},next:{title:"Flutter",permalink:"/docs/rules/flutter/"}},s={},c=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3},{value:"Bad:",id:"bad-1",level:3},{value:"Good:",id:"good-1",level:3}],d={toc:c},g="wrapper";function m(e){let{components:n,...r}=e;return(0,a.kt)(g,(0,t.Z)({},d,r,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-trailing-comma"},"prefer-trailing-comma"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Checks for a trailing comma for arguments, parameters, enum values and collections. By default warns in cases when items aren't on a single line."),(0,a.kt)("p",null,"Can be configured with ",(0,a.kt)("inlineCode",{parentName:"p"},"break-on")," option, which additionally enables checks for given amount of items. For example, if ",(0,a.kt)("inlineCode",{parentName:"p"},"break-on")," is equal 2, then the rule also warns for all functions with 2 or more parameters (if they have no trailing comma)."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"If the last item starts on the same line as opening bracket and ends on the same line as closing, the rule will not warn about this case."),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"function('some string', () {\n return;\n});\n"))),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"break-on")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"none"),") to override the default behavior."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-trailing-comma:\n break-on: 2\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// LINT\nvoid firstFunction(\n String firstParameter, String secondParameter, String thirdParameter) {\n return;\n}\n\nvoid secondFunction() {\n firstFunction('some string', 'some other string',\n 'and another string for length exceed'); // LINT\n}\n\nvoid thirdFunction(String someLongVarName, void Function() someLongCallbackName,\n String arg3) {} // LINT\n\nclass TestClass {\n void firstMethod(\n String firstParameter, String secondParameter, String thirdParameter) { // LINT\n return;\n }\n\n void secondMethod() {\n firstMethod('some string', 'some other string',\n 'and another string for length exceed'); // LINT\n\n thirdFunction('some string', () {\n return;\n }, 'some other string'); // LINT\n }\n}\n\nfinal secondArray = [\n 'some string',\n 'some other string',\n 'and another string for length exceed' // LINT\n];\n\nfinal secondSet = {\n 'some string',\n 'some other string',\n 'and another string for length exceed' // LINT\n};\n\nfinal secondMap = {\n 'some string': 'and another string for length exceed',\n 'and another string for length exceed': 'and another string for length exceed' // LINT\n};\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void firstFunction(\n String firstParameter,\n String secondParameter,\n String thirdParameter,\n) {\n return;\n}\n\nvoid secondFunction(String arg1) {\n firstFunction(\n 'some string',\n 'some other string',\n 'and another string for length exceed'\n );\n}\n\nvoid thirdFunction(String arg1, void Function() callback) {}\n\nvoid forthFunction(void Function() callback) {}\n\nclass TestClass {\n void firstMethod(\n String firstParameter,\n String secondParameter,\n String thirdParameter,\n ) {\n return;\n }\n\n void secondMethod() {\n firstMethod(\n 'some string',\n 'some other string',\n 'and another string for length exceed',\n );\n\n thirdFunction('', () {\n return;\n });\n\n forthFunction(() {\n return;\n });\n }\n}\n")),(0,a.kt)("p",null,"With given config:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"- break-on: 2\n")),(0,a.kt)("h3",{id:"bad-1"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void firstFunction(String arg1, String arg2,\n String arg3) {\n return;\n}\n\nvoid secondFunction(String arg1, String arg2, String arg3) {\n return;\n}\n")),(0,a.kt)("h3",{id:"good-1"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"void firstFunction(\n String arg1,\n String arg2,\n String arg3,\n) {\n return;\n}\n\nvoid secondFunction(\n String arg1,\n String arg2,\n String arg3,\n) {\n return;\n}\n\nenum FirstEnum { firstItem }\n\nconst instance = FirstClass(\n 0,\n 0,\n 0,\n);\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c57f7d8c.25c85cc1.js b/assets/js/c57f7d8c.28947811.js similarity index 97% rename from assets/js/c57f7d8c.25c85cc1.js rename to assets/js/c57f7d8c.28947811.js index f62391559..59b6bf64b 100644 --- a/assets/js/c57f7d8c.25c85cc1.js +++ b/assets/js/c57f7d8c.28947811.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4159],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>b});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=a.createContext({}),u=function(e){var t=a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=u(e.components);return a.createElement(i.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,i=e.parentName,c=d(e,["components","mdxType","originalType","parentName"]),p=u(r),m=n,b=p["".concat(i,".").concat(m)]||p[m]||s[m]||l;return r?a.createElement(b,o(o({ref:t},c),{},{components:r})):a.createElement(b,o({ref:t},c))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=m;var d={};for(var i in t)hasOwnProperty.call(t,i)&&(d[i]=t[i]);d.originalType=e,d[p]="string"==typeof e?e:n,o[1]=d;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>d,toc:()=>u});var a=r(7462),n=(r(7294),r(3905));const l={},o="double-literal-format",d={unversionedId:"rules/dart/double-literal-format",id:"rules/dart/double-literal-format",title:"double-literal-format",description:"added in: 1.5.0 style",source:"@site/docs/rules/dart/double-literal-format.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/double-literal-format",permalink:"/docs/rules/dart/double-literal-format",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/double-literal-format.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"binary-expression-operand-order",permalink:"/docs/rules/dart/binary-expression-operand-order"},next:{title:"format-comment",permalink:"/docs/rules/dart/format-comment"}},i={},u=[{value:"Redundant leading '0'",id:"redundant-leading-0",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3},{value:"Literal begin with '.'",id:"literal-begin-with-",level:2},{value:"Bad:",id:"bad-1",level:3},{value:"Good:",id:"good-1",level:3},{value:"Redundant trailing '0'",id:"redundant-trailing-0",level:2},{value:"Bad:",id:"bad-2",level:3},{value:"Good:",id:"good-2",level:3}],c={toc:u},p="wrapper";function s(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"double-literal-format"},"double-literal-format"),(0,n.kt)("p",null,"added in: 1.5.0 ",(0,n.kt)("span",{style:{color:"green"}},"style")),(0,n.kt)("p",null,"Checks that double literals should begin with ",(0,n.kt)("inlineCode",{parentName:"p"},"0.")," instead of just ",(0,n.kt)("inlineCode",{parentName:"p"},"."),", and should not end with a trailing ",(0,n.kt)("inlineCode",{parentName:"p"},"0.")," Helps keep a consistent style of numeric literals and decrease potential typos."),(0,n.kt)("h2",{id:"redundant-leading-0"},"Redundant leading '0'"),(0,n.kt)("h3",{id:"bad"},"Bad:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"}," var a = 05.23, b = 03.6e+15, c = -012.2, d = -001.1e-15;\n")),(0,n.kt)("h3",{id:"good"},"Good:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"}," var a = 5.23, b = 3.6e+15, c = -12.2, d = -1.1e-15;\n")),(0,n.kt)("h2",{id:"literal-begin-with-"},"Literal begin with '.'"),(0,n.kt)("h3",{id:"bad-1"},"Bad:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"}," var a = .257, b = .16e+5, c = -.259, d = -.14e-5;\n")),(0,n.kt)("h3",{id:"good-1"},"Good:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"}," var a = 0.257, b = 0.16e+5, c = -0.259, d = -0.14e-5;\n")),(0,n.kt)("h2",{id:"redundant-trailing-0"},"Redundant trailing '0'"),(0,n.kt)("h3",{id:"bad-2"},"Bad:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"}," var a = 0.210, b = 0.100e+5, c = -0.250, d = -0.400e-5;\n")),(0,n.kt)("h3",{id:"good-2"},"Good:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"}," var a = 0.21, b = 0.1e+5, c = -0.25, d = -0.4e-5;\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4159],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>b});var a=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function o(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=a.createContext({}),u=function(e){var t=a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=u(e.components);return a.createElement(i.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,i=e.parentName,c=d(e,["components","mdxType","originalType","parentName"]),p=u(r),m=n,b=p["".concat(i,".").concat(m)]||p[m]||s[m]||l;return r?a.createElement(b,o(o({ref:t},c),{},{components:r})):a.createElement(b,o({ref:t},c))}));function b(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,o=new Array(l);o[0]=m;var d={};for(var i in t)hasOwnProperty.call(t,i)&&(d[i]=t[i]);d.originalType=e,d[p]="string"==typeof e?e:n,o[1]=d;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>d,toc:()=>u});var a=r(7462),n=(r(7294),r(3905));const l={},o="double-literal-format",d={unversionedId:"rules/dart/double-literal-format",id:"rules/dart/double-literal-format",title:"double-literal-format",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/double-literal-format.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/double-literal-format",permalink:"/docs/rules/dart/double-literal-format",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/double-literal-format.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"binary-expression-operand-order",permalink:"/docs/rules/dart/binary-expression-operand-order"},next:{title:"format-comment",permalink:"/docs/rules/dart/format-comment"}},i={},u=[{value:"Redundant leading '0'",id:"redundant-leading-0",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3},{value:"Literal begin with '.'",id:"literal-begin-with-",level:2},{value:"Bad:",id:"bad-1",level:3},{value:"Good:",id:"good-1",level:3},{value:"Redundant trailing '0'",id:"redundant-trailing-0",level:2},{value:"Bad:",id:"bad-2",level:3},{value:"Good:",id:"good-2",level:3}],c={toc:u},p="wrapper";function s(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"double-literal-format"},"double-literal-format"),(0,n.kt)("p",null,"added in: 1.0.0 ",(0,n.kt)("span",{style:{color:"green"}},"style")),(0,n.kt)("p",null,"Checks that double literals should begin with ",(0,n.kt)("inlineCode",{parentName:"p"},"0.")," instead of just ",(0,n.kt)("inlineCode",{parentName:"p"},"."),", and should not end with a trailing ",(0,n.kt)("inlineCode",{parentName:"p"},"0.")," Helps keep a consistent style of numeric literals and decrease potential typos."),(0,n.kt)("h2",{id:"redundant-leading-0"},"Redundant leading '0'"),(0,n.kt)("h3",{id:"bad"},"Bad:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"}," var a = 05.23, b = 03.6e+15, c = -012.2, d = -001.1e-15;\n")),(0,n.kt)("h3",{id:"good"},"Good:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"}," var a = 5.23, b = 3.6e+15, c = -12.2, d = -1.1e-15;\n")),(0,n.kt)("h2",{id:"literal-begin-with-"},"Literal begin with '.'"),(0,n.kt)("h3",{id:"bad-1"},"Bad:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"}," var a = .257, b = .16e+5, c = -.259, d = -.14e-5;\n")),(0,n.kt)("h3",{id:"good-1"},"Good:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"}," var a = 0.257, b = 0.16e+5, c = -0.259, d = -0.14e-5;\n")),(0,n.kt)("h2",{id:"redundant-trailing-0"},"Redundant trailing '0'"),(0,n.kt)("h3",{id:"bad-2"},"Bad:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"}," var a = 0.210, b = 0.100e+5, c = -0.250, d = -0.400e-5;\n")),(0,n.kt)("h3",{id:"good-2"},"Good:"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-dart"}," var a = 0.21, b = 0.1e+5, c = -0.25, d = -0.4e-5;\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c8addf59.351e24a6.js b/assets/js/c8addf59.d87c4df0.js similarity index 97% rename from assets/js/c8addf59.351e24a6.js rename to assets/js/c8addf59.d87c4df0.js index 00f1ecba7..3f804e598 100644 --- a/assets/js/c8addf59.351e24a6.js +++ b/assets/js/c8addf59.d87c4df0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4633],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var d=r.createContext({}),u=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(d.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=u(n),y=a,f=s["".concat(d,".").concat(y)]||s[y]||p[y]||o;return n?r.createElement(f,i(i({ref:t},c),{},{components:n})):r.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=y;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=n(7462),a=(n(7294),n(3905));const o={},i="avoid-redundant-async",l={unversionedId:"rules/dart/avoid-redundant-async",id:"rules/dart/avoid-redundant-async",title:"avoid-redundant-async",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-redundant-async.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-redundant-async",permalink:"/docs/rules/dart/avoid-redundant-async",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-redundant-async.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-passing-async-when-sync-expected",permalink:"/docs/rules/dart/avoid-passing-async-when-sync-expected"},next:{title:"avoid-throw-in-catch-block",permalink:"/docs/rules/dart/avoid-throw-in-catch-block"}},d={},u=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:u},s="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-redundant-async"},"avoid-redundant-async"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Checks for redundant ",(0,a.kt)("inlineCode",{parentName:"p"},"async")," in a method or function body."),(0,a.kt)("p",null,"Cases where ",(0,a.kt)("inlineCode",{parentName:"p"},"async")," is useful include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The function body has ",(0,a.kt)("inlineCode",{parentName:"li"},"await"),"."),(0,a.kt)("li",{parentName:"ul"},"An error is returned asynchronously. ",(0,a.kt)("inlineCode",{parentName:"li"},"async")," and then ",(0,a.kt)("inlineCode",{parentName:"li"},"throw")," is shorter than return ",(0,a.kt)("inlineCode",{parentName:"li"},"Future.error(...)"),"."),(0,a.kt)("li",{parentName:"ul"},"A value is returned and it will be implicitly wrapped in a future. ",(0,a.kt)("inlineCode",{parentName:"li"},"async")," is shorter than ",(0,a.kt)("inlineCode",{parentName:"li"},"Future.value(...)"),".")),(0,a.kt)("p",null,"Additional resources:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://dart.dev/guides/language/effective-dart/usage#dont-use-async-when-it-has-no-useful-effect"},"https://dart.dev/guides/language/effective-dart/usage#dont-use-async-when-it-has-no-useful-effect"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"Future afterTwoThings(Future first, Future second) async {\n return Future.wait([first, second]);\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"Future usesAwait(Future later) async {\n print(await later);\n}\n\nFuture asyncError() async {\n throw 'Error!';\n}\n\nFuture asyncValue() async => 'value';\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[4633],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var d=r.createContext({}),u=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(d.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,d=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=u(n),y=a,f=s["".concat(d,".").concat(y)]||s[y]||p[y]||o;return n?r.createElement(f,i(i({ref:t},c),{},{components:n})):r.createElement(f,i({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=y;var l={};for(var d in t)hasOwnProperty.call(t,d)&&(l[d]=t[d]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=n(7462),a=(n(7294),n(3905));const o={},i="avoid-redundant-async",l={unversionedId:"rules/dart/avoid-redundant-async",id:"rules/dart/avoid-redundant-async",title:"avoid-redundant-async",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-redundant-async.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-redundant-async",permalink:"/docs/rules/dart/avoid-redundant-async",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-redundant-async.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-passing-async-when-sync-expected",permalink:"/docs/rules/dart/avoid-passing-async-when-sync-expected"},next:{title:"avoid-throw-in-catch-block",permalink:"/docs/rules/dart/avoid-throw-in-catch-block"}},d={},u=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:u},s="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-redundant-async"},"avoid-redundant-async"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Checks for redundant ",(0,a.kt)("inlineCode",{parentName:"p"},"async")," in a method or function body."),(0,a.kt)("p",null,"Cases where ",(0,a.kt)("inlineCode",{parentName:"p"},"async")," is useful include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The function body has ",(0,a.kt)("inlineCode",{parentName:"li"},"await"),"."),(0,a.kt)("li",{parentName:"ul"},"An error is returned asynchronously. ",(0,a.kt)("inlineCode",{parentName:"li"},"async")," and then ",(0,a.kt)("inlineCode",{parentName:"li"},"throw")," is shorter than return ",(0,a.kt)("inlineCode",{parentName:"li"},"Future.error(...)"),"."),(0,a.kt)("li",{parentName:"ul"},"A value is returned and it will be implicitly wrapped in a future. ",(0,a.kt)("inlineCode",{parentName:"li"},"async")," is shorter than ",(0,a.kt)("inlineCode",{parentName:"li"},"Future.value(...)"),".")),(0,a.kt)("p",null,"Additional resources:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://dart.dev/guides/language/effective-dart/usage#dont-use-async-when-it-has-no-useful-effect"},"https://dart.dev/guides/language/effective-dart/usage#dont-use-async-when-it-has-no-useful-effect"))),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"Future afterTwoThings(Future first, Future second) async {\n return Future.wait([first, second]);\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"Future usesAwait(Future later) async {\n print(await later);\n}\n\nFuture asyncError() async {\n throw 'Error!';\n}\n\nFuture asyncValue() async => 'value';\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d2b8e1c1.f1d7b34d.js b/assets/js/d2b8e1c1.7fb6591e.js similarity index 97% rename from assets/js/d2b8e1c1.f1d7b34d.js rename to assets/js/d2b8e1c1.7fb6591e.js index d0f10c4f3..4836cfa4f 100644 --- a/assets/js/d2b8e1c1.f1d7b34d.js +++ b/assets/js/d2b8e1c1.7fb6591e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[599],{3905:(e,n,r)=>{r.d(n,{Zo:()=>d,kt:()=>g});var t=r(7294);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function o(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function i(e){for(var n=1;n=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=t.createContext({}),s=function(e){var n=t.useContext(u),r=n;return e&&(r="function"==typeof e?e(n):i(i({},n),e)),r},d=function(e){var n=s(e.components);return t.createElement(u.Provider,{value:n},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},v=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=s(r),v=a,g=c["".concat(u,".").concat(v)]||c[v]||p[v]||o;return r?t.createElement(g,i(i({ref:n},d),{},{components:r})):t.createElement(g,i({ref:n},d))}));function g(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=v;var l={};for(var u in n)hasOwnProperty.call(n,u)&&(l[u]=n[u]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(n),r.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var t=r(7462),a=(r(7294),r(3905));const o={},i="avoid-ignoring-return-values",l={unversionedId:"rules/dart/avoid-ignoring-return-values",id:"rules/dart/avoid-ignoring-return-values",title:"avoid-ignoring-return-values",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-ignoring-return-values.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-ignoring-return-values",permalink:"/docs/rules/dart/avoid-ignoring-return-values",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-ignoring-return-values.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-global-state",permalink:"/docs/rules/dart/avoid-global-state"},next:{title:"avoid-late-keyword",permalink:"/docs/rules/dart/avoid-late-keyword"}},u={},s=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:s},c="wrapper";function p(e){let{components:n,...r}=e;return(0,a.kt)(c,(0,t.Z)({},d,r,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-ignoring-return-values"},"avoid-ignoring-return-values"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when a return value of a method or function invocation or a class instance property access is not used."),(0,a.kt)("p",null,"Silently ignoring such values might lead to a potential error especially when the invocation target is an immutable instance which has all its methods returning a new instance (for example, String or DateTime classes)."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"int foo() {\n return 5;\n}\n\nvoid bar() {\n print('whatever');\n}\n\nvoid main() {\n bar();\n foo(); // LINT: return value is silently ignored\n\n final str = \"Hello there\";\n str.substr(5); // LINT: Strings are immutable and the return value should be handled\n\n final date = new DateTime(2018, 1, 13);\n date.add(Duration(days: 1, hours: 23))); // LINT: Return value ignored, DateTime is immutable\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"int foo() {\n return 5;\n}\n\nvoid bar() {\n print('whatever');\n}\n\nvoid main() {\n bar();\n final f = foo();\n\n final str = \"Hello there\";\n final newString = str.substr(5);\n\n final date = new DateTime(2018, 1, 13);\n final newDate = date.add(Duration(days: 1, hours: 23)));\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[599],{3905:(e,n,r)=>{r.d(n,{Zo:()=>d,kt:()=>g});var t=r(7294);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function o(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function i(e){for(var n=1;n=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=t.createContext({}),s=function(e){var n=t.useContext(u),r=n;return e&&(r="function"==typeof e?e(n):i(i({},n),e)),r},d=function(e){var n=s(e.components);return t.createElement(u.Provider,{value:n},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},v=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=s(r),v=a,g=c["".concat(u,".").concat(v)]||c[v]||p[v]||o;return r?t.createElement(g,i(i({ref:n},d),{},{components:r})):t.createElement(g,i({ref:n},d))}));function g(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=v;var l={};for(var u in n)hasOwnProperty.call(n,u)&&(l[u]=n[u]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(n),r.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var t=r(7462),a=(r(7294),r(3905));const o={},i="avoid-ignoring-return-values",l={unversionedId:"rules/dart/avoid-ignoring-return-values",id:"rules/dart/avoid-ignoring-return-values",title:"avoid-ignoring-return-values",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-ignoring-return-values.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-ignoring-return-values",permalink:"/docs/rules/dart/avoid-ignoring-return-values",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-ignoring-return-values.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-global-state",permalink:"/docs/rules/dart/avoid-global-state"},next:{title:"avoid-late-keyword",permalink:"/docs/rules/dart/avoid-late-keyword"}},u={},s=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:s},c="wrapper";function p(e){let{components:n,...r}=e;return(0,a.kt)(c,(0,t.Z)({},d,r,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-ignoring-return-values"},"avoid-ignoring-return-values"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when a return value of a method or function invocation or a class instance property access is not used."),(0,a.kt)("p",null,"Silently ignoring such values might lead to a potential error especially when the invocation target is an immutable instance which has all its methods returning a new instance (for example, String or DateTime classes)."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"int foo() {\n return 5;\n}\n\nvoid bar() {\n print('whatever');\n}\n\nvoid main() {\n bar();\n foo(); // LINT: return value is silently ignored\n\n final str = \"Hello there\";\n str.substr(5); // LINT: Strings are immutable and the return value should be handled\n\n final date = new DateTime(2018, 1, 13);\n date.add(Duration(days: 1, hours: 23))); // LINT: Return value ignored, DateTime is immutable\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"int foo() {\n return 5;\n}\n\nvoid bar() {\n print('whatever');\n}\n\nvoid main() {\n bar();\n final f = foo();\n\n final str = \"Hello there\";\n final newString = str.substr(5);\n\n final date = new DateTime(2018, 1, 13);\n final newDate = date.add(Duration(days: 1, hours: 23)));\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d384f18d.688147c7.js b/assets/js/d384f18d.948c587e.js similarity index 97% rename from assets/js/d384f18d.688147c7.js rename to assets/js/d384f18d.948c587e.js index 9ada5db96..854febf77 100644 --- a/assets/js/d384f18d.688147c7.js +++ b/assets/js/d384f18d.948c587e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[9490],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},d=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=c(t),m=o,f=u["".concat(s,".").concat(m)]||u[m]||p[m]||a;return t?r.createElement(f,i(i({ref:n},d),{},{components:t})):r.createElement(f,i({ref:n},d))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=m;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var r=t(7462),o=(t(7294),t(3905));const a={},i="avoid-non-ascii-symbols",l={unversionedId:"rules/dart/avoid-non-ascii-symbols",id:"rules/dart/avoid-non-ascii-symbols",title:"avoid-non-ascii-symbols",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-non-ascii-symbols.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-non-ascii-symbols",permalink:"/docs/rules/dart/avoid-non-ascii-symbols",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-non-ascii-symbols.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-nested-conditional-expressions",permalink:"/docs/rules/dart/avoid-nested-conditional-expressions"},next:{title:"avoid-non-null-assertion",permalink:"/docs/rules/dart/avoid-non-null-assertion"}},s={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:c},u="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(u,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-non-ascii-symbols"},"avoid-non-ascii-symbols"),(0,o.kt)("p",null,"added in: 1.6.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Warns when a string literal contains non ascii characters. This might indicate that the string was not localized."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final chinese = 'hello \u6c49\u5b57'; // LINT\nfinal russian = 'hello \u043f\u0440\u0438\u0432\u0435\u0442'; // LINT\nfinal withSomeNonAsciiSymbols = '#!$_&- \xe9\xe8 ;\u221e\xa5\u20a4\u20ac'; // LINT\nfinal misspelling = 'inform@tiv\u20ac'; // LINT\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final english = 'hello';\nfinal someGenericSymbols ='!@#$%^';\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[9490],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=r.createContext({}),c=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},d=function(e){var n=c(e.components);return r.createElement(s.Provider,{value:n},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=c(t),m=o,f=u["".concat(s,".").concat(m)]||u[m]||p[m]||a;return t?r.createElement(f,i(i({ref:n},d),{},{components:t})):r.createElement(f,i({ref:n},d))}));function f(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=m;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var c=2;c{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var r=t(7462),o=(t(7294),t(3905));const a={},i="avoid-non-ascii-symbols",l={unversionedId:"rules/dart/avoid-non-ascii-symbols",id:"rules/dart/avoid-non-ascii-symbols",title:"avoid-non-ascii-symbols",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-non-ascii-symbols.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-non-ascii-symbols",permalink:"/docs/rules/dart/avoid-non-ascii-symbols",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-non-ascii-symbols.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-nested-conditional-expressions",permalink:"/docs/rules/dart/avoid-nested-conditional-expressions"},next:{title:"avoid-non-null-assertion",permalink:"/docs/rules/dart/avoid-non-null-assertion"}},s={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:c},u="wrapper";function p(e){let{components:n,...t}=e;return(0,o.kt)(u,(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-non-ascii-symbols"},"avoid-non-ascii-symbols"),(0,o.kt)("p",null,"added in: 1.0.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Warns when a string literal contains non ascii characters. This might indicate that the string was not localized."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final chinese = 'hello \u6c49\u5b57'; // LINT\nfinal russian = 'hello \u043f\u0440\u0438\u0432\u0435\u0442'; // LINT\nfinal withSomeNonAsciiSymbols = '#!$_&- \xe9\xe8 ;\u221e\xa5\u20a4\u20ac'; // LINT\nfinal misspelling = 'inform@tiv\u20ac'; // LINT\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"final english = 'hello';\nfinal someGenericSymbols ='!@#$%^';\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d509a802.f3389b09.js b/assets/js/d509a802.9fc846e9.js similarity index 97% rename from assets/js/d509a802.f3389b09.js rename to assets/js/d509a802.9fc846e9.js index 694d50c72..6b121efaa 100644 --- a/assets/js/d509a802.f3389b09.js +++ b/assets/js/d509a802.9fc846e9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2827],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),d=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=d(n),m=a,f=p["".concat(l,".").concat(m)]||p[m]||u[m]||i;return n?r.createElement(f,s(s({ref:t},c),{},{components:n})):r.createElement(f,s({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,s=new Array(i);s[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[p]="string"==typeof e?e:a,s[1]=o;for(var d=2;d{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const i={},s="missing-test-assertion",o={unversionedId:"rules/dart/missing-test-assertion",id:"rules/dart/missing-test-assertion",title:"missing-test-assertion",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/missing-test-assertion.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/missing-test-assertion",permalink:"/docs/rules/dart/missing-test-assertion",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/missing-test-assertion.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"member-ordering",permalink:"/docs/rules/dart/member-ordering"},next:{title:"newline-before-return",permalink:"/docs/rules/dart/newline-before-return"}},l={},d=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:d},p="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"missing-test-assertion"},"missing-test-assertion"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns that there is no assertion in the test."),(0,a.kt)("p",null,"By default the rule checks for ",(0,a.kt)("inlineCode",{parentName:"p"},"expect"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"expectLater"),", all ",(0,a.kt)("inlineCode",{parentName:"p"},"expectAsync...")," variants and ",(0,a.kt)("inlineCode",{parentName:"p"},"fail")," in ",(0,a.kt)("inlineCode",{parentName:"p"},"test")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"testWidgets")," methods."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"include-assertions")," (default is none) to include additional assertions."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"include-methods")," (default is none) to check additional test methods for missing assertions."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - missing-test-assertion:\n include-assertions:\n - verify\n include-methods:\n - customTest\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"test('bad unit test', () {\n // Given\n final a = 1;\n final b = 2;\n\n // When\n final c = a + 1;\n});\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"test('good unit test', () {\n // Given\n final a = 1;\n final b = 2;\n\n // When\n final c = a + 1;\n\n // Then : actual assertion\n expect(b, c);\n});\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2827],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),d=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(l.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=d(n),m=a,f=p["".concat(l,".").concat(m)]||p[m]||u[m]||i;return n?r.createElement(f,s(s({ref:t},c),{},{components:n})):r.createElement(f,s({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,s=new Array(i);s[0]=m;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[p]="string"==typeof e?e:a,s[1]=o;for(var d=2;d{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const i={},s="missing-test-assertion",o={unversionedId:"rules/dart/missing-test-assertion",id:"rules/dart/missing-test-assertion",title:"missing-test-assertion",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/missing-test-assertion.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/missing-test-assertion",permalink:"/docs/rules/dart/missing-test-assertion",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/missing-test-assertion.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"member-ordering",permalink:"/docs/rules/dart/member-ordering"},next:{title:"newline-before-return",permalink:"/docs/rules/dart/newline-before-return"}},l={},d=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:d},p="wrapper";function u(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"missing-test-assertion"},"missing-test-assertion"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns that there is no assertion in the test."),(0,a.kt)("p",null,"By default the rule checks for ",(0,a.kt)("inlineCode",{parentName:"p"},"expect"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"expectLater"),", all ",(0,a.kt)("inlineCode",{parentName:"p"},"expectAsync...")," variants and ",(0,a.kt)("inlineCode",{parentName:"p"},"fail")," in ",(0,a.kt)("inlineCode",{parentName:"p"},"test")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"testWidgets")," methods."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"include-assertions")," (default is none) to include additional assertions."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"include-methods")," (default is none) to check additional test methods for missing assertions."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - missing-test-assertion:\n include-assertions:\n - verify\n include-methods:\n - customTest\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"test('bad unit test', () {\n // Given\n final a = 1;\n final b = 2;\n\n // When\n final c = a + 1;\n});\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"test('good unit test', () {\n // Given\n final a = 1;\n final b = 2;\n\n // When\n final c = a + 1;\n\n // Then : actual assertion\n expect(b, c);\n});\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d9f9c28c.f005556c.js b/assets/js/d9f9c28c.5a7929c3.js similarity index 96% rename from assets/js/d9f9c28c.f005556c.js rename to assets/js/d9f9c28c.5a7929c3.js index 34186f81d..74824f551 100644 --- a/assets/js/d9f9c28c.f005556c.js +++ b/assets/js/d9f9c28c.5a7929c3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[6585],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>b});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),d=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=d(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=d(r),m=a,b=p["".concat(i,".").concat(m)]||p[m]||u[m]||o;return r?n.createElement(b,c(c({ref:t},s),{},{components:r})):n.createElement(b,c({ref:t},s))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[p]="string"==typeof e?e:a,c[1]=l;for(var d=2;d{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var n=r(7462),a=(r(7294),r(3905));const o={},c="no-object-declaration",l={unversionedId:"rules/dart/no-object-declaration",id:"rules/dart/no-object-declaration",title:"no-object-declaration",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/no-object-declaration.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/no-object-declaration",permalink:"/docs/rules/dart/no-object-declaration",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/no-object-declaration.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"no-magic-number",permalink:"/docs/rules/dart/no-magic-number"},next:{title:"prefer-async-await",permalink:"/docs/rules/dart/prefer-async-await"}},i={},d=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],s={toc:d},p="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"no-object-declaration"},"no-object-declaration"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns when a class member is declared with ",(0,a.kt)("inlineCode",{parentName:"p"},"Object")," type."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Test {\n Object data = 1; // LINT\n\n Object get getter => 1; // LINT\n\n // LINT\n Object doWork() {\n return;\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Test {\n int data = 1;\n\n int get getter => 1;\n\n void doWork() {\n return;\n }\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[6585],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>b});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),d=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=d(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=d(r),m=a,b=p["".concat(i,".").concat(m)]||p[m]||u[m]||o;return r?n.createElement(b,c(c({ref:t},s),{},{components:r})):n.createElement(b,c({ref:t},s))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[p]="string"==typeof e?e:a,c[1]=l;for(var d=2;d{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var n=r(7462),a=(r(7294),r(3905));const o={},c="no-object-declaration",l={unversionedId:"rules/dart/no-object-declaration",id:"rules/dart/no-object-declaration",title:"no-object-declaration",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/no-object-declaration.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/no-object-declaration",permalink:"/docs/rules/dart/no-object-declaration",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/no-object-declaration.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"no-magic-number",permalink:"/docs/rules/dart/no-magic-number"},next:{title:"prefer-async-await",permalink:"/docs/rules/dart/prefer-async-await"}},i={},d=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],s={toc:d},p="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(p,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"no-object-declaration"},"no-object-declaration"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns when a class member is declared with ",(0,a.kt)("inlineCode",{parentName:"p"},"Object")," type."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Test {\n Object data = 1; // LINT\n\n Object get getter => 1; // LINT\n\n // LINT\n Object doWork() {\n return;\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Test {\n int data = 1;\n\n int get getter => 1;\n\n void doWork() {\n return;\n }\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/da81259c.78b0f6e2.js b/assets/js/da81259c.e9abe844.js similarity index 97% rename from assets/js/da81259c.78b0f6e2.js rename to assets/js/da81259c.e9abe844.js index 55060eee6..92721ea5e 100644 --- a/assets/js/da81259c.78b0f6e2.js +++ b/assets/js/da81259c.e9abe844.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[202],{3905:(e,r,t)=>{t.d(r,{Zo:()=>s,kt:()=>m});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function l(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var i=n.createContext({}),c=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(i.Provider,{value:r},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,l=e.originalType,i=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),u=c(t),f=o,m=u["".concat(i,".").concat(f)]||u[f]||p[f]||l;return t?n.createElement(m,a(a({ref:r},s),{},{components:t})):n.createElement(m,a({ref:r},s))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var l=t.length,a=new Array(l);a[0]=f;var d={};for(var i in r)hasOwnProperty.call(r,i)&&(d[i]=r[i]);d.originalType=e,d[u]="string"==typeof e?e:o,a[1]=d;for(var c=2;c{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>a,default:()=>p,frontMatter:()=>l,metadata:()=>d,toc:()=>c});var n=t(7462),o=(t(7294),t(3905));const l={},a="avoid-border-all",d={unversionedId:"rules/flutter/avoid-border-all",id:"rules/flutter/avoid-border-all",title:"avoid-border-all",description:"added in: 1.6.0performance",source:"@site/docs/rules/flutter/avoid-border-all.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/avoid-border-all",permalink:"/docs/rules/flutter/avoid-border-all",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/avoid-border-all.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"always-remove-listener",permalink:"/docs/rules/flutter/always-remove-listener"},next:{title:"avoid-expanded-as-spacer",permalink:"/docs/rules/flutter/avoid-expanded-as-spacer"}},i={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],s={toc:c},u="wrapper";function p(e){let{components:r,...t}=e;return(0,o.kt)(u,(0,n.Z)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-border-all"},"avoid-border-all"),(0,o.kt)("p",null,"added in: 1.6.0",(0,o.kt)("span",{style:{color:"blue"}},"performance")),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"Border.all")," constructor calls const ",(0,o.kt)("inlineCode",{parentName:"p"},"Border.fromBorderSide")," constructor under the hood. This rule allows to replace ",(0,o.kt)("inlineCode",{parentName:"p"},"Border.all")," with const ",(0,o.kt)("inlineCode",{parentName:"p"},"Border.fromBorderSide"),"."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class BorderWidget extends StatelessWidget {\n final Widget child;\n\n const RoundedWidget({\n Key? key,\n required this.child,\n }) : super(key: key);\n\n @override\n Widget build(BuildContext context) {\n return Container(\n //LINT\n border: Border.all(\n color: const Color(0xFF000000),\n width: 1.0,\n style: BorderStyle.solid,\n ),\n child: child,\n );\n }\n}\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class BorderWidget extends StatelessWidget {\n final Widget child;\n\n const RoundedWidget({\n Key? key,\n required this.child,\n }) : super(key: key);\n\n @override\n Widget build(BuildContext context) {\n return Container(\n border: const Border.fromBorderSide(BorderSide(\n color: const Color(0xFF000000),\n width: 1.0,\n style: BorderStyle.solid,\n )),\n child: child,\n );\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[202],{3905:(e,r,t)=>{t.d(r,{Zo:()=>s,kt:()=>m});var n=t(7294);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function l(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var i=n.createContext({}),c=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(i.Provider,{value:r},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,l=e.originalType,i=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),u=c(t),f=o,m=u["".concat(i,".").concat(f)]||u[f]||p[f]||l;return t?n.createElement(m,a(a({ref:r},s),{},{components:t})):n.createElement(m,a({ref:r},s))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var l=t.length,a=new Array(l);a[0]=f;var d={};for(var i in r)hasOwnProperty.call(r,i)&&(d[i]=r[i]);d.originalType=e,d[u]="string"==typeof e?e:o,a[1]=d;for(var c=2;c{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>a,default:()=>p,frontMatter:()=>l,metadata:()=>d,toc:()=>c});var n=t(7462),o=(t(7294),t(3905));const l={},a="avoid-border-all",d={unversionedId:"rules/flutter/avoid-border-all",id:"rules/flutter/avoid-border-all",title:"avoid-border-all",description:"added in: 1.0.0performance",source:"@site/docs/rules/flutter/avoid-border-all.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/avoid-border-all",permalink:"/docs/rules/flutter/avoid-border-all",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/avoid-border-all.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"always-remove-listener",permalink:"/docs/rules/flutter/always-remove-listener"},next:{title:"avoid-expanded-as-spacer",permalink:"/docs/rules/flutter/avoid-expanded-as-spacer"}},i={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],s={toc:c},u="wrapper";function p(e){let{components:r,...t}=e;return(0,o.kt)(u,(0,n.Z)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-border-all"},"avoid-border-all"),(0,o.kt)("p",null,"added in: 1.0.0",(0,o.kt)("span",{style:{color:"blue"}},"performance")),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"Border.all")," constructor calls const ",(0,o.kt)("inlineCode",{parentName:"p"},"Border.fromBorderSide")," constructor under the hood. This rule allows to replace ",(0,o.kt)("inlineCode",{parentName:"p"},"Border.all")," with const ",(0,o.kt)("inlineCode",{parentName:"p"},"Border.fromBorderSide"),"."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class BorderWidget extends StatelessWidget {\n final Widget child;\n\n const RoundedWidget({\n Key? key,\n required this.child,\n }) : super(key: key);\n\n @override\n Widget build(BuildContext context) {\n return Container(\n //LINT\n border: Border.all(\n color: const Color(0xFF000000),\n width: 1.0,\n style: BorderStyle.solid,\n ),\n child: child,\n );\n }\n}\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"class BorderWidget extends StatelessWidget {\n final Widget child;\n\n const RoundedWidget({\n Key? key,\n required this.child,\n }) : super(key: key);\n\n @override\n Widget build(BuildContext context) {\n return Container(\n border: const Border.fromBorderSide(BorderSide(\n color: const Color(0xFF000000),\n width: 1.0,\n style: BorderStyle.solid,\n )),\n child: child,\n );\n }\n}\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/dbde3cfd.1d157d05.js b/assets/js/dbde3cfd.a65b9c21.js similarity index 97% rename from assets/js/dbde3cfd.1d157d05.js rename to assets/js/dbde3cfd.a65b9c21.js index 3c9ce750d..ca975ea15 100644 --- a/assets/js/dbde3cfd.1d157d05.js +++ b/assets/js/dbde3cfd.a65b9c21.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[3618],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),p=s(n),u=a,f=p["".concat(c,".").concat(u)]||p[u]||d[u]||o;return n?r.createElement(f,l(l({ref:t},m),{},{components:n})):r.createElement(f,l({ref:t},m))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));const o={},l="format-comment",i={unversionedId:"rules/dart/format-comment",id:"rules/dart/format-comment",title:"format-comment",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/format-comment.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/format-comment",permalink:"/docs/rules/dart/format-comment",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/format-comment.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"double-literal-format",permalink:"/docs/rules/dart/double-literal-format"},next:{title:"list-all-equatable-fields",permalink:"/docs/rules/dart/list-all-equatable-fields"}},c={},s=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],m={toc:s},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"format-comment"},"format-comment"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Prefer format comments like sentences."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignored-patterns")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"none"),") to ignore comments that match the given regular expressions."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"only-doc-comments")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to check only documentation comments (",(0,a.kt)("inlineCode",{parentName:"p"},"///"),")."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - format-comment:\n only-doc-comments: true\n ignored-patterns:\n - ^ cSpell.* # Ignores all the comments that start with 'cSpell' (for example: '// cSpell:disable-next-line').\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// prefer format comments like sentences // LINT\nclass Test {\n /// with start space with dot. // LINT\n Test() {\n // with start space with dot. // LINT\n }\n\n /// With start space without dot // LINT\n function() {\n //Without start space without dot // LINT\n }\n}\n/* prefer format comments\nlike sentences */ // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// Prefer format comments like sentences.\nclass Test {\n /// With start space with dot.\n Test() {\n // With start space with dot.\n }\n\n /// With start space without dot.\n function() {\n // Without start space without dot.\n }\n}\n/* Prefer format comments\nlike sentences. */\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[3618],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),s=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},m=function(e){var t=s(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),p=s(n),u=a,f=p["".concat(c,".").concat(u)]||p[u]||d[u]||o;return n?r.createElement(f,l(l({ref:t},m),{},{components:n})):r.createElement(f,l({ref:t},m))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));const o={},l="format-comment",i={unversionedId:"rules/dart/format-comment",id:"rules/dart/format-comment",title:"format-comment",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/format-comment.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/format-comment",permalink:"/docs/rules/dart/format-comment",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/format-comment.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"double-literal-format",permalink:"/docs/rules/dart/double-literal-format"},next:{title:"list-all-equatable-fields",permalink:"/docs/rules/dart/list-all-equatable-fields"}},c={},s=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],m={toc:s},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"format-comment"},"format-comment"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Prefer format comments like sentences."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignored-patterns")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"none"),") to ignore comments that match the given regular expressions."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"only-doc-comments")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to check only documentation comments (",(0,a.kt)("inlineCode",{parentName:"p"},"///"),")."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - format-comment:\n only-doc-comments: true\n ignored-patterns:\n - ^ cSpell.* # Ignores all the comments that start with 'cSpell' (for example: '// cSpell:disable-next-line').\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// prefer format comments like sentences // LINT\nclass Test {\n /// with start space with dot. // LINT\n Test() {\n // with start space with dot. // LINT\n }\n\n /// With start space without dot // LINT\n function() {\n //Without start space without dot // LINT\n }\n}\n/* prefer format comments\nlike sentences */ // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// Prefer format comments like sentences.\nclass Test {\n /// With start space with dot.\n Test() {\n // With start space with dot.\n }\n\n /// With start space without dot.\n function() {\n // Without start space without dot.\n }\n}\n/* Prefer format comments\nlike sentences. */\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/df575e78.99960f0d.js b/assets/js/df575e78.2ed8bf4c.js similarity index 98% rename from assets/js/df575e78.99960f0d.js rename to assets/js/df575e78.2ed8bf4c.js index f4ec7e833..fe4240b06 100644 --- a/assets/js/df575e78.99960f0d.js +++ b/assets/js/df575e78.2ed8bf4c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[5869],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,f=c["".concat(i,".").concat(m)]||c[m]||p[m]||o;return n?r.createElement(f,s(s({ref:t},d),{},{components:n})):r.createElement(f,s({ref:t},d))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[c]="string"==typeof e?e:a,s[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=n(7462),a=(n(7294),n(3905));const o={},s="use-setstate-synchronously",l={unversionedId:"rules/flutter/use-setstate-synchronously",id:"rules/flutter/use-setstate-synchronously",title:"use-setstate-synchronously",description:"added in: 1.6.0 warning",source:"@site/docs/rules/flutter/use-setstate-synchronously.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/use-setstate-synchronously",permalink:"/docs/rules/flutter/use-setstate-synchronously",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/use-setstate-synchronously.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-using-list-view",permalink:"/docs/rules/flutter/prefer-using-list-view"},next:{title:"Flame",permalink:"/docs/rules/flame/"}},i={},u=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3},{value:"Good:",id:"good-1",level:3}],d={toc:u},c="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"use-setstate-synchronously"},"use-setstate-synchronously"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/State/setState.html"},"setState"))," is called past an ",(0,a.kt)("i",null,"await point")," (also known as asynchronous gap) within a subclass of State."),(0,a.kt)("p",null,"In async functions, the state of a widget may have been disposed between await points, e.g. because the user moved to another screen, leading to errors calling ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/State/setState.html"},"setState")),". After each await point, i.e. when a Future is awaited, the possibility that the widget has been unmounted needs to be checked before calling ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/State/setState.html"},"setState")),"."),(0,a.kt)("p",null,"Consider storing Futures directly in your state and use ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/FutureBuilder-class.html"},"FutureBuilder"))," to unwrap them."),(0,a.kt)("p",null,"If this is not possible, you can also check for ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/State/mounted.html"},"mounted"))," to only update state when the widget is still mounted. However, an effective fix usually does not make use of ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/State/mounted.html"},"mounted")),", but rather revolves around refactoring your states."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"The following patterns are recognized when statically determining mountedness:"),(0,a.kt)("ul",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"if (mounted)")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"if (mounted && ..)")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"if (!mounted || ..)")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"try")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"switch")," mountedness per branch"),(0,a.kt)("li",{parentName:"ul"},"Divergence in ",(0,a.kt)("inlineCode",{parentName:"li"},"for"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"while")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"switch")," statements using ",(0,a.kt)("inlineCode",{parentName:"li"},"break")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"continue"),"\nIf a ",(0,a.kt)("inlineCode",{parentName:"li"},"!mounted")," check diverges, i.e. ends in a ",(0,a.kt)("inlineCode",{parentName:"li"},"return")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"throw"),", the outer scope is considered mounted and vice versa:")),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"if (!mounted) return;\n// Should be mounted right now\nsetState(() { ... });\n\n// After this statement, need to check 'mounted' again\nawait fetch(...);\n\n// In control flow statements, 'break' and 'continue' diverges\nwhile (...) {\n if (!mounted) break;\n // Should be mounted right now\n setState(() { ... });\n}\n"))),(0,a.kt)("p",null,"Additional resources:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://stackoverflow.com/questions/49340116/setstate-called-after-dispose"},"https://stackoverflow.com/questions/49340116/setstate-called-after-dispose")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("code",null,"[use_build_context_synchronously](https://dart-lang.github.io/linter/lints/use_build_context_synchronously.html)"),", a lint that checks for async usages of `BuildContext`")),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"methods")," (default is ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/State/setState.html"},"setState")),") to configure the list of methods to check for unchecked async calls."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - use-setstate-synchronously:\n methods:\n - setState\n - yourMethod\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class _MyWidgetState extends State {\n String message;\n\n @override\n Widget build(BuildContext context) {\n return Button(\n onPressed: () async {\n String fromServer = await fetch(...);\n // LINT\n setState(() {\n message = fromServer;\n });\n },\n child: Text(message),\n );\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class _MyWidgetState extends State {\n String message;\n\n @override\n Widget build(BuildContext context) {\n return Button(\n onPressed: () async {\n String fromServer = await fetch(...);\n if (mounted) {\n setState(() {\n message = fromServer;\n });\n }\n },\n child: Text(message),\n );\n }\n}\n")),(0,a.kt)("h3",{id:"good-1"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},'class _MyWidgetState extends State {\n Future message;\n\n @override\n Widget build(BuildContext context) {\n return Button(\n onPressed: () {\n setState(() {\n message = fetch(...);\n });\n },\n child: FutureBuilder(\n future: message,\n builder: (context, snapshot) {\n return Text(snapshot.data ?? "...");\n },\n ),\n );\n }\n}\n')))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[5869],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},d=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=u(n),m=a,f=c["".concat(i,".").concat(m)]||c[m]||p[m]||o;return n?r.createElement(f,s(s({ref:t},d),{},{components:n})):r.createElement(f,s({ref:t},d))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[c]="string"==typeof e?e:a,s[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var r=n(7462),a=(n(7294),n(3905));const o={},s="use-setstate-synchronously",l={unversionedId:"rules/flutter/use-setstate-synchronously",id:"rules/flutter/use-setstate-synchronously",title:"use-setstate-synchronously",description:"added in: 1.0.0 warning",source:"@site/docs/rules/flutter/use-setstate-synchronously.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/use-setstate-synchronously",permalink:"/docs/rules/flutter/use-setstate-synchronously",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/use-setstate-synchronously.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-using-list-view",permalink:"/docs/rules/flutter/prefer-using-list-view"},next:{title:"Flame",permalink:"/docs/rules/flame/"}},i={},u=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3},{value:"Good:",id:"good-1",level:3}],d={toc:u},c="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"use-setstate-synchronously"},"use-setstate-synchronously"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/State/setState.html"},"setState"))," is called past an ",(0,a.kt)("i",null,"await point")," (also known as asynchronous gap) within a subclass of State."),(0,a.kt)("p",null,"In async functions, the state of a widget may have been disposed between await points, e.g. because the user moved to another screen, leading to errors calling ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/State/setState.html"},"setState")),". After each await point, i.e. when a Future is awaited, the possibility that the widget has been unmounted needs to be checked before calling ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/State/setState.html"},"setState")),"."),(0,a.kt)("p",null,"Consider storing Futures directly in your state and use ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/FutureBuilder-class.html"},"FutureBuilder"))," to unwrap them."),(0,a.kt)("p",null,"If this is not possible, you can also check for ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/State/mounted.html"},"mounted"))," to only update state when the widget is still mounted. However, an effective fix usually does not make use of ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/State/mounted.html"},"mounted")),", but rather revolves around refactoring your states."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"The following patterns are recognized when statically determining mountedness:"),(0,a.kt)("ul",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"if (mounted)")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"if (mounted && ..)")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"if (!mounted || ..)")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"try")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"switch")," mountedness per branch"),(0,a.kt)("li",{parentName:"ul"},"Divergence in ",(0,a.kt)("inlineCode",{parentName:"li"},"for"),", ",(0,a.kt)("inlineCode",{parentName:"li"},"while")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"switch")," statements using ",(0,a.kt)("inlineCode",{parentName:"li"},"break")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"continue"),"\nIf a ",(0,a.kt)("inlineCode",{parentName:"li"},"!mounted")," check diverges, i.e. ends in a ",(0,a.kt)("inlineCode",{parentName:"li"},"return")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"throw"),", the outer scope is considered mounted and vice versa:")),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"if (!mounted) return;\n// Should be mounted right now\nsetState(() { ... });\n\n// After this statement, need to check 'mounted' again\nawait fetch(...);\n\n// In control flow statements, 'break' and 'continue' diverges\nwhile (...) {\n if (!mounted) break;\n // Should be mounted right now\n setState(() { ... });\n}\n"))),(0,a.kt)("p",null,"Additional resources:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://stackoverflow.com/questions/49340116/setstate-called-after-dispose"},"https://stackoverflow.com/questions/49340116/setstate-called-after-dispose")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("code",null,"[use_build_context_synchronously](https://dart-lang.github.io/linter/lints/use_build_context_synchronously.html)"),", a lint that checks for async usages of `BuildContext`")),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"methods")," (default is ",(0,a.kt)("code",null,(0,a.kt)("a",{parentName:"p",href:"https://api.flutter.dev/flutter/widgets/State/setState.html"},"setState")),") to configure the list of methods to check for unchecked async calls."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - use-setstate-synchronously:\n methods:\n - setState\n - yourMethod\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class _MyWidgetState extends State {\n String message;\n\n @override\n Widget build(BuildContext context) {\n return Button(\n onPressed: () async {\n String fromServer = await fetch(...);\n // LINT\n setState(() {\n message = fromServer;\n });\n },\n child: Text(message),\n );\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class _MyWidgetState extends State {\n String message;\n\n @override\n Widget build(BuildContext context) {\n return Button(\n onPressed: () async {\n String fromServer = await fetch(...);\n if (mounted) {\n setState(() {\n message = fromServer;\n });\n }\n },\n child: Text(message),\n );\n }\n}\n")),(0,a.kt)("h3",{id:"good-1"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},'class _MyWidgetState extends State {\n Future message;\n\n @override\n Widget build(BuildContext context) {\n return Button(\n onPressed: () {\n setState(() {\n message = fetch(...);\n });\n },\n child: FutureBuilder(\n future: message,\n builder: (context, snapshot) {\n return Text(snapshot.data ?? "...");\n },\n ),\n );\n }\n}\n')))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e056807d.2ef2c32a.js b/assets/js/e056807d.981c6146.js similarity index 97% rename from assets/js/e056807d.2ef2c32a.js rename to assets/js/e056807d.981c6146.js index cd3ce75a1..39d558234 100644 --- a/assets/js/e056807d.2ef2c32a.js +++ b/assets/js/e056807d.981c6146.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[637],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>f});var r=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var d=r.createContext({}),c=function(e){var n=r.useContext(d),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},u=function(e){var n=c(e.components);return r.createElement(d.Provider,{value:n},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,i=e.mdxType,a=e.originalType,d=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(t),m=i,f=p["".concat(d,".").concat(m)]||p[m]||s[m]||a;return t?r.createElement(f,o(o({ref:n},u),{},{components:t})):r.createElement(f,o({ref:n},u))}));function f(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var a=t.length,o=new Array(a);o[0]=m;var l={};for(var d in n)hasOwnProperty.call(n,d)&&(l[d]=n[d]);l.originalType=e,l[p]="string"==typeof e?e:i,o[1]=l;for(var c=2;c{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var r=t(7462),i=(t(7294),t(3905));const a={},o="avoid-initializing-in-on-mount",l={unversionedId:"rules/flame/avoid-initializing-in-on-mount",id:"rules/flame/avoid-initializing-in-on-mount",title:"avoid-initializing-in-on-mount",description:"added in: 1.6.0 warning.",source:"@site/docs/rules/flame/avoid-initializing-in-on-mount.mdx",sourceDirName:"rules/flame",slug:"/rules/flame/avoid-initializing-in-on-mount",permalink:"/docs/rules/flame/avoid-initializing-in-on-mount",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flame/avoid-initializing-in-on-mount.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-creating-vector-in-update",permalink:"/docs/rules/flame/avoid-creating-vector-in-update"},next:{title:"avoid-redundant-async-on-load",permalink:"/docs/rules/flame/avoid-redundant-async-on-load"}},d={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:c},p="wrapper";function s(e){let{components:n,...t}=e;return(0,i.kt)(p,(0,r.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"avoid-initializing-in-on-mount"},"avoid-initializing-in-on-mount"),(0,i.kt)("p",null,"added in: 1.6.0 ",(0,i.kt)("span",{style:{color:"orange"}},"warning"),"."),(0,i.kt)("p",null,"Warns when a ",(0,i.kt)("inlineCode",{parentName:"p"},"late final")," variable is being initialized in the Component's ",(0,i.kt)("inlineCode",{parentName:"p"},"onMount")," method."),(0,i.kt)("p",null,"Since a Component might be removed and added again, attempt to reinitialize a late final variable will result in runtime exception."),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("h3",{id:"bad"},"Bad:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class MyComponent extends Component {\n late final int x;\n\n @override\n void onMount() {\n x = 1; // LINT\n }\n}\n")),(0,i.kt)("h3",{id:"good"},"Good:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class MyComponent extends Component {\n int x;\n\n @override\n void onMount() {\n x = 1;\n }\n}\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[637],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>f});var r=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var d=r.createContext({}),c=function(e){var n=r.useContext(d),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},u=function(e){var n=c(e.components);return r.createElement(d.Provider,{value:n},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,i=e.mdxType,a=e.originalType,d=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(t),m=i,f=p["".concat(d,".").concat(m)]||p[m]||s[m]||a;return t?r.createElement(f,o(o({ref:n},u),{},{components:t})):r.createElement(f,o({ref:n},u))}));function f(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var a=t.length,o=new Array(a);o[0]=m;var l={};for(var d in n)hasOwnProperty.call(n,d)&&(l[d]=n[d]);l.originalType=e,l[p]="string"==typeof e?e:i,o[1]=l;for(var c=2;c{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var r=t(7462),i=(t(7294),t(3905));const a={},o="avoid-initializing-in-on-mount",l={unversionedId:"rules/flame/avoid-initializing-in-on-mount",id:"rules/flame/avoid-initializing-in-on-mount",title:"avoid-initializing-in-on-mount",description:"added in: 1.0.0 warning.",source:"@site/docs/rules/flame/avoid-initializing-in-on-mount.mdx",sourceDirName:"rules/flame",slug:"/rules/flame/avoid-initializing-in-on-mount",permalink:"/docs/rules/flame/avoid-initializing-in-on-mount",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flame/avoid-initializing-in-on-mount.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-creating-vector-in-update",permalink:"/docs/rules/flame/avoid-creating-vector-in-update"},next:{title:"avoid-redundant-async-on-load",permalink:"/docs/rules/flame/avoid-redundant-async-on-load"}},d={},c=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:c},p="wrapper";function s(e){let{components:n,...t}=e;return(0,i.kt)(p,(0,r.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"avoid-initializing-in-on-mount"},"avoid-initializing-in-on-mount"),(0,i.kt)("p",null,"added in: 1.0.0 ",(0,i.kt)("span",{style:{color:"orange"}},"warning"),"."),(0,i.kt)("p",null,"Warns when a ",(0,i.kt)("inlineCode",{parentName:"p"},"late final")," variable is being initialized in the Component's ",(0,i.kt)("inlineCode",{parentName:"p"},"onMount")," method."),(0,i.kt)("p",null,"Since a Component might be removed and added again, attempt to reinitialize a late final variable will result in runtime exception."),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("h3",{id:"bad"},"Bad:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class MyComponent extends Component {\n late final int x;\n\n @override\n void onMount() {\n x = 1; // LINT\n }\n}\n")),(0,i.kt)("h3",{id:"good"},"Good:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class MyComponent extends Component {\n int x;\n\n @override\n void onMount() {\n x = 1;\n }\n}\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e1411296.1b50c2ff.js b/assets/js/e1411296.9e1ea09d.js similarity index 97% rename from assets/js/e1411296.1b50c2ff.js rename to assets/js/e1411296.9e1ea09d.js index f05173cad..c46647d92 100644 --- a/assets/js/e1411296.1b50c2ff.js +++ b/assets/js/e1411296.9e1ea09d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[1053],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,l=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=d(r),g=i,f=u["".concat(s,".").concat(g)]||u[g]||c[g]||l;return r?n.createElement(f,a(a({ref:t},p),{},{components:r})):n.createElement(f,a({ref:t},p))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=r.length,a=new Array(l);a[0]=g;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:i,a[1]=o;for(var d=2;d{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>d});var n=r(7462),i=(r(7294),r(3905));const l={},a="prefer-single-widget-per-file",o={unversionedId:"rules/flutter/prefer-single-widget-per-file",id:"rules/flutter/prefer-single-widget-per-file",title:"prefer-single-widget-per-file",description:"added in: 1.6.0 style",source:"@site/docs/rules/flutter/prefer-single-widget-per-file.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/prefer-single-widget-per-file",permalink:"/docs/rules/flutter/prefer-single-widget-per-file",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/prefer-single-widget-per-file.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-extracting-callbacks",permalink:"/docs/rules/flutter/prefer-extracting-callbacks"},next:{title:"prefer-using-list-view",permalink:"/docs/rules/flutter/prefer-using-list-view"}},s={},d=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:d},u="wrapper";function c(e){let{components:t,...r}=e;return(0,i.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"prefer-single-widget-per-file"},"prefer-single-widget-per-file"),(0,i.kt)("p",null,"added in: 1.6.0 ",(0,i.kt)("span",{style:{color:"green"}},"style")),(0,i.kt)("p",null,"Warns when a file contains more than a single widget."),(0,i.kt)("p",null,"Ensures that files have a single responsibility so that each widget exists in its own file."),(0,i.kt)("h2",{id:"config"},"Config"),(0,i.kt)("p",null,"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"ignore-private-widgets")," (default is ",(0,i.kt)("inlineCode",{parentName:"p"},"false"),") to ignore private widgets."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-single-widget-per-file:\n ignore-private-widgets: true\n")),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("h3",{id:"bad"},"Bad:"),(0,i.kt)("p",null,"some_widgets.dart"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class SomeWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n ...\n }\n}\n\n// LINT\nclass SomeOtherWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n ...\n }\n}\n\n// LINT\nclass _SomeOtherWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n ...\n }\n}\n\n// LINT\nclass SomeStatefulWidget extends StatefulWidget {\n @override\n _SomeStatefulWidgetState createState() => _someStatefulWidgetState();\n}\n\nclass _SomeStatefulWidgetState extends State {\n @override\n Widget build(BuildContext context) {\n ...\n }\n}\n")),(0,i.kt)("h3",{id:"good"},"Good:"),(0,i.kt)("p",null,"some_widget.dart"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class SomeWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n ...\n }\n}\n")),(0,i.kt)("p",null,"some_other_widget.dart"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class SomeOtherWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n ...\n }\n}\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[1053],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,l=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=d(r),g=i,f=u["".concat(s,".").concat(g)]||u[g]||c[g]||l;return r?n.createElement(f,a(a({ref:t},p),{},{components:r})):n.createElement(f,a({ref:t},p))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=r.length,a=new Array(l);a[0]=g;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:i,a[1]=o;for(var d=2;d{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>d});var n=r(7462),i=(r(7294),r(3905));const l={},a="prefer-single-widget-per-file",o={unversionedId:"rules/flutter/prefer-single-widget-per-file",id:"rules/flutter/prefer-single-widget-per-file",title:"prefer-single-widget-per-file",description:"added in: 1.0.0 style",source:"@site/docs/rules/flutter/prefer-single-widget-per-file.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/prefer-single-widget-per-file",permalink:"/docs/rules/flutter/prefer-single-widget-per-file",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/prefer-single-widget-per-file.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-extracting-callbacks",permalink:"/docs/rules/flutter/prefer-extracting-callbacks"},next:{title:"prefer-using-list-view",permalink:"/docs/rules/flutter/prefer-using-list-view"}},s={},d=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:d},u="wrapper";function c(e){let{components:t,...r}=e;return(0,i.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"prefer-single-widget-per-file"},"prefer-single-widget-per-file"),(0,i.kt)("p",null,"added in: 1.0.0 ",(0,i.kt)("span",{style:{color:"green"}},"style")),(0,i.kt)("p",null,"Warns when a file contains more than a single widget."),(0,i.kt)("p",null,"Ensures that files have a single responsibility so that each widget exists in its own file."),(0,i.kt)("h2",{id:"config"},"Config"),(0,i.kt)("p",null,"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"ignore-private-widgets")," (default is ",(0,i.kt)("inlineCode",{parentName:"p"},"false"),") to ignore private widgets."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-single-widget-per-file:\n ignore-private-widgets: true\n")),(0,i.kt)("h2",{id:"example"},"Example"),(0,i.kt)("h3",{id:"bad"},"Bad:"),(0,i.kt)("p",null,"some_widgets.dart"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class SomeWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n ...\n }\n}\n\n// LINT\nclass SomeOtherWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n ...\n }\n}\n\n// LINT\nclass _SomeOtherWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n ...\n }\n}\n\n// LINT\nclass SomeStatefulWidget extends StatefulWidget {\n @override\n _SomeStatefulWidgetState createState() => _someStatefulWidgetState();\n}\n\nclass _SomeStatefulWidgetState extends State {\n @override\n Widget build(BuildContext context) {\n ...\n }\n}\n")),(0,i.kt)("h3",{id:"good"},"Good:"),(0,i.kt)("p",null,"some_widget.dart"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class SomeWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n ...\n }\n}\n")),(0,i.kt)("p",null,"some_other_widget.dart"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-dart"},"class SomeOtherWidget extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n ...\n }\n}\n")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e3c5b79a.b4d899c4.js b/assets/js/e3c5b79a.b9183706.js similarity index 97% rename from assets/js/e3c5b79a.b4d899c4.js rename to assets/js/e3c5b79a.b9183706.js index 98daeabc0..ac00b3a4d 100644 --- a/assets/js/e3c5b79a.b4d899c4.js +++ b/assets/js/e3c5b79a.b9183706.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[7260],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=r.createContext({}),p=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=p(e.components);return r.createElement(l.Provider,{value:n},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},g=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,c=d(e,["components","mdxType","originalType","parentName"]),u=p(t),g=a,f=u["".concat(l,".").concat(g)]||u[g]||s[g]||i;return t?r.createElement(f,o(o({ref:n},c),{},{components:t})):r.createElement(f,o({ref:n},c))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=g;var d={};for(var l in n)hasOwnProperty.call(n,l)&&(d[l]=n[l]);d.originalType=e,d[u]="string"==typeof e?e:a,o[1]=d;for(var p=2;p{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>s,frontMatter:()=>i,metadata:()=>d,toc:()=>p});var r=t(7462),a=(t(7294),t(3905));const i={},o="avoid-wrapping-in-padding",d={unversionedId:"rules/flutter/avoid-wrapping-in-padding",id:"rules/flutter/avoid-wrapping-in-padding",title:"avoid-wrapping-in-padding",description:"added in: 1.6.0 warning",source:"@site/docs/rules/flutter/avoid-wrapping-in-padding.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/avoid-wrapping-in-padding",permalink:"/docs/rules/flutter/avoid-wrapping-in-padding",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/avoid-wrapping-in-padding.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-unnecessary-setstate",permalink:"/docs/rules/flutter/avoid-unnecessary-setstate"},next:{title:"check-for-equals-in-render-object-setters",permalink:"/docs/rules/flutter/check-for-equals-in-render-object-setters"}},l={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:p},u="wrapper";function s(e){let{components:n,...t}=e;return(0,a.kt)(u,(0,r.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-wrapping-in-padding"},"avoid-wrapping-in-padding"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when a widget is wrapped in a ",(0,a.kt)("inlineCode",{parentName:"p"},"Padding")," widget but has a padding settings by itself."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class CoolWidget {\n ...\n\n Widget build(...) {\n // LINT\n return Padding(\n child: Container(),\n );\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class CoolWidget {\n Widget build() {\n return Container();\n }\n}\n\nclass AnotherWidget {\n Widget build() {\n return Padding(\n child: Icon();\n );\n }\n}\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[7260],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=r.createContext({}),p=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=p(e.components);return r.createElement(l.Provider,{value:n},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},g=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,c=d(e,["components","mdxType","originalType","parentName"]),u=p(t),g=a,f=u["".concat(l,".").concat(g)]||u[g]||s[g]||i;return t?r.createElement(f,o(o({ref:n},c),{},{components:t})):r.createElement(f,o({ref:n},c))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=g;var d={};for(var l in n)hasOwnProperty.call(n,l)&&(d[l]=n[l]);d.originalType=e,d[u]="string"==typeof e?e:a,o[1]=d;for(var p=2;p{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>s,frontMatter:()=>i,metadata:()=>d,toc:()=>p});var r=t(7462),a=(t(7294),t(3905));const i={},o="avoid-wrapping-in-padding",d={unversionedId:"rules/flutter/avoid-wrapping-in-padding",id:"rules/flutter/avoid-wrapping-in-padding",title:"avoid-wrapping-in-padding",description:"added in: 1.0.0 warning",source:"@site/docs/rules/flutter/avoid-wrapping-in-padding.mdx",sourceDirName:"rules/flutter",slug:"/rules/flutter/avoid-wrapping-in-padding",permalink:"/docs/rules/flutter/avoid-wrapping-in-padding",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/flutter/avoid-wrapping-in-padding.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-unnecessary-setstate",permalink:"/docs/rules/flutter/avoid-unnecessary-setstate"},next:{title:"check-for-equals-in-render-object-setters",permalink:"/docs/rules/flutter/check-for-equals-in-render-object-setters"}},l={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:p},u="wrapper";function s(e){let{components:n,...t}=e;return(0,a.kt)(u,(0,r.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-wrapping-in-padding"},"avoid-wrapping-in-padding"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns when a widget is wrapped in a ",(0,a.kt)("inlineCode",{parentName:"p"},"Padding")," widget but has a padding settings by itself."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class CoolWidget {\n ...\n\n Widget build(...) {\n // LINT\n return Padding(\n child: Container(),\n );\n }\n}\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class CoolWidget {\n Widget build() {\n return Container();\n }\n}\n\nclass AnotherWidget {\n Widget build() {\n return Padding(\n child: Icon();\n );\n }\n}\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e4919cfc.441acfa9.js b/assets/js/e4919cfc.755ecca3.js similarity index 97% rename from assets/js/e4919cfc.441acfa9.js rename to assets/js/e4919cfc.755ecca3.js index cc5333947..27d2100f4 100644 --- a/assets/js/e4919cfc.441acfa9.js +++ b/assets/js/e4919cfc.755ecca3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[7009],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),p=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=p(n),m=o,f=s["".concat(i,".").concat(m)]||s[m]||u[m]||a;return n?r.createElement(f,l(l({ref:t},d),{},{components:n})):r.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,l=new Array(a);l[0]=m;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var p=2;p{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const a={},l="no-empty-block",c={unversionedId:"rules/dart/no-empty-block",id:"rules/dart/no-empty-block",title:"no-empty-block",description:"added in: 1.5.0 style",source:"@site/docs/rules/dart/no-empty-block.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/no-empty-block",permalink:"/docs/rules/dart/no-empty-block",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/no-empty-block.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"no-boolean-literal-compare",permalink:"/docs/rules/dart/no-boolean-literal-compare"},next:{title:"no-equal-arguments",permalink:"/docs/rules/dart/no-equal-arguments"}},i={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:p},s="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(s,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"no-empty-block"},"no-empty-block"),(0,o.kt)("p",null,"added in: 1.5.0 ",(0,o.kt)("span",{style:{color:"green"}},"style")),(0,o.kt)("p",null,"Disallows empty blocks except catch clause block. Blocks with a todo comment inside are not considered empty."),(0,o.kt)("p",null,"Empty blocks are often indicators of missing code."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"}," // LINT\n if ( ... ) {\n\n }\n\n [1, 2, 3, 4].forEach((val) {}); // LINT\n\n\n void function() {} // LINT\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"}," if ( ... ) {\n // TODO(developername): need to implement.\n }\n\n [1, 2, 3, 4].forEach((val) {\n // TODO(developername): need to implement.\n });\n\n\n void function() {\n // TODO(developername): need to implement.\n }\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[7009],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),p=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=p(n),m=o,f=s["".concat(i,".").concat(m)]||s[m]||u[m]||a;return n?r.createElement(f,l(l({ref:t},d),{},{components:n})):r.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,l=new Array(a);l[0]=m;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var p=2;p{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const a={},l="no-empty-block",c={unversionedId:"rules/dart/no-empty-block",id:"rules/dart/no-empty-block",title:"no-empty-block",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/no-empty-block.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/no-empty-block",permalink:"/docs/rules/dart/no-empty-block",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/no-empty-block.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"no-boolean-literal-compare",permalink:"/docs/rules/dart/no-boolean-literal-compare"},next:{title:"no-equal-arguments",permalink:"/docs/rules/dart/no-equal-arguments"}},i={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],d={toc:p},s="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(s,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"no-empty-block"},"no-empty-block"),(0,o.kt)("p",null,"added in: 1.0.0 ",(0,o.kt)("span",{style:{color:"green"}},"style")),(0,o.kt)("p",null,"Disallows empty blocks except catch clause block. Blocks with a todo comment inside are not considered empty."),(0,o.kt)("p",null,"Empty blocks are often indicators of missing code."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"}," // LINT\n if ( ... ) {\n\n }\n\n [1, 2, 3, 4].forEach((val) {}); // LINT\n\n\n void function() {} // LINT\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"}," if ( ... ) {\n // TODO(developername): need to implement.\n }\n\n [1, 2, 3, 4].forEach((val) {\n // TODO(developername): need to implement.\n });\n\n\n void function() {\n // TODO(developername): need to implement.\n }\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ec1af512.660fffa9.js b/assets/js/ec1af512.1928f3e9.js similarity index 96% rename from assets/js/ec1af512.660fffa9.js rename to assets/js/ec1af512.1928f3e9.js index ebb2b1ef2..1b7693165 100644 --- a/assets/js/ec1af512.660fffa9.js +++ b/assets/js/ec1af512.1928f3e9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[6052],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(n),y=a,m=p["".concat(c,".").concat(y)]||p[y]||d[y]||s;return n?r.createElement(m,o(o({ref:t},u),{},{components:n})):r.createElement(m,o({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:a,o[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const s={},o="avoid-unnecessary-type-casts",i={unversionedId:"rules/dart/avoid-unnecessary-type-casts",id:"rules/dart/avoid-unnecessary-type-casts",title:"avoid-unnecessary-type-casts",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-unnecessary-type-casts.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-unnecessary-type-casts",permalink:"/docs/rules/dart/avoid-unnecessary-type-casts",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-unnecessary-type-casts.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-unnecessary-type-assertions",permalink:"/docs/rules/dart/avoid-unnecessary-type-assertions"},next:{title:"avoid-unrelated-type-assertions",permalink:"/docs/rules/dart/avoid-unrelated-type-assertions"}},c={},l=[{value:"Example",id:"example",level:2}],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-unnecessary-type-casts"},"avoid-unnecessary-type-casts"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns about of unnecessary use of casting operators."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Example {\n final myList = [1, 2, 3];\n\n void main() {\n final result = myList as List; // LINT\n }\n}\n\nclass Animal {}\n\nclass HomeAnimal extends Animal {}\n\nvoid patterns() {\n final animal = Animal();\n\n if (animal case Animal() as HomeAnimal) {}\n if (animal case Animal() as Animal) {} // LINT\n}\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[6052],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,s=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(n),y=a,m=p["".concat(c,".").concat(y)]||p[y]||d[y]||s;return n?r.createElement(m,o(o({ref:t},u),{},{components:n})):r.createElement(m,o({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var s=n.length,o=new Array(s);o[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:a,o[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const s={},o="avoid-unnecessary-type-casts",i={unversionedId:"rules/dart/avoid-unnecessary-type-casts",id:"rules/dart/avoid-unnecessary-type-casts",title:"avoid-unnecessary-type-casts",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-unnecessary-type-casts.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-unnecessary-type-casts",permalink:"/docs/rules/dart/avoid-unnecessary-type-casts",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-unnecessary-type-casts.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-unnecessary-type-assertions",permalink:"/docs/rules/dart/avoid-unnecessary-type-assertions"},next:{title:"avoid-unrelated-type-assertions",permalink:"/docs/rules/dart/avoid-unrelated-type-assertions"}},c={},l=[{value:"Example",id:"example",level:2}],u={toc:l},p="wrapper";function d(e){let{components:t,...n}=e;return(0,a.kt)(p,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"avoid-unnecessary-type-casts"},"avoid-unnecessary-type-casts"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"orange"}},"warning")),(0,a.kt)("p",null,"Warns about of unnecessary use of casting operators."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"class Example {\n final myList = [1, 2, 3];\n\n void main() {\n final result = myList as List; // LINT\n }\n}\n\nclass Animal {}\n\nclass HomeAnimal extends Animal {}\n\nvoid patterns() {\n final animal = Animal();\n\n if (animal case Animal() as HomeAnimal) {}\n if (animal case Animal() as Animal) {} // LINT\n}\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ed018433.59f089a5.js b/assets/js/ed018433.59f089a5.js new file mode 100644 index 000000000..0ca8d7f52 --- /dev/null +++ b/assets/js/ed018433.59f089a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[6028],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(n),u=a,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||i;return n?r.createElement(f,l(l({ref:t},p),{},{components:n})):r.createElement(f,l({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[d]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const i={},l="prefer-static-class",o={unversionedId:"rules/dart/prefer-static-class",id:"rules/dart/prefer-static-class",title:"prefer-static-class",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/prefer-static-class.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-static-class",permalink:"/docs/rules/dart/prefer-static-class",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-static-class.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-single-quotes",permalink:"/docs/rules/dart/prefer-single-quotes"},next:{title:"prefer-trailing-comma",permalink:"/docs/rules/dart/prefer-trailing-comma"}},s={},c=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:c},d="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(d,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-static-class"},"prefer-static-class"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Suggests to use static class member instead of global constants, variables and functions."),(0,a.kt)("p",null,"Pros:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Easy to search:")," great help from IDE autocomplete. Type class/file name to find domain, and type dot to list all members."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Easy to import:")," name conflicts will happen less often since all names are scoped to file name/class name. No need to use ",(0,a.kt)("inlineCode",{parentName:"li"},"import 'file.dart' as 'file'")," to resolve name conflicts."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Easy to read:")," declarations in code will be always shown paired with domain they belong to. Compare ",(0,a.kt)("inlineCode",{parentName:"li"},"Circle.getArea")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"getArea")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"getCircleArea"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"member-ordering"},"member-ordering")," rule will be applied to class members.")),(0,a.kt)("p",null,"Cons:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The code amount slightly increases.")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"When fixing rule issues and moving global members into a class, consider also renaming to avoid duplicating context. For example, ",(0,a.kt)("inlineCode",{parentName:"p"},"getCircleArea")," global function should become ",(0,a.kt)("inlineCode",{parentName:"p"},"Circle.getArea"),", not ",(0,a.kt)("inlineCode",{parentName:"p"},"Circle.getCircleArea"),".")),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"For this rule it's recommended to exclude the test folder.")),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignore-private")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to ignore private global declarations."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignore-names")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"none"),") to ignore names matching regular expressions (for example, Riverpod providers, flutter hooks, etc)."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignore-annotations")," (default is ","[",(0,a.kt)("inlineCode",{parentName:"p"},"FunctionalWidget"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"swidget"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"hwidget"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"hcwidget"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"riverpod"),"]",") to override default ignored annotation list."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-static-class\n ignore-annotations:\n - allowedAnnotation\n ignore-private: true\n ignore-names:\n - (.*)Provider\n - use(.*)\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// circle.dart\nint getCircleArea() {} // LINT\nint getPerimeter() // LINT\n\nconst _PI = 3.14; // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// circle.dart\nclass Circle {\n static int getArea() {}\n static int getPerimeter() {}\n\n static const _PI = 3.14;\n}\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ed018433.d3eb40d6.js b/assets/js/ed018433.d3eb40d6.js deleted file mode 100644 index 63c16e6fe..000000000 --- a/assets/js/ed018433.d3eb40d6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[6028],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(r),u=a,f=d["".concat(s,".").concat(u)]||d[u]||m[u]||i;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,l=new Array(i);l[0]=u;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[d]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=r(7462),a=(r(7294),r(3905));const i={},l="prefer-static-class",o={unversionedId:"rules/dart/prefer-static-class",id:"rules/dart/prefer-static-class",title:"prefer-static-class",description:"added in: 1.6.0 style",source:"@site/docs/rules/dart/prefer-static-class.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-static-class",permalink:"/docs/rules/dart/prefer-static-class",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-static-class.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-moving-to-variable",permalink:"/docs/rules/dart/prefer-moving-to-variable"},next:{title:"prefer-trailing-comma",permalink:"/docs/rules/dart/prefer-trailing-comma"}},s={},c=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:c},d="wrapper";function m(e){let{components:t,...r}=e;return(0,a.kt)(d,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-static-class"},"prefer-static-class"),(0,a.kt)("p",null,"added in: 1.6.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Suggests to use static class member instead of global constants, variables and functions."),(0,a.kt)("p",null,"Pros:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Easy to search:")," great help from IDE autocomplete. Type class/file name to find domain, and type dot to list all members."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Easy to import:")," name conflicts will happen less often since all names are scoped to file name/class name. No need to use ",(0,a.kt)("inlineCode",{parentName:"li"},"import 'file.dart' as 'file'")," to resolve name conflicts."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Easy to read:")," declarations in code will be always shown paired with domain they belong to. Compare ",(0,a.kt)("inlineCode",{parentName:"li"},"Circle.getArea")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"getArea")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"getCircleArea"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"member-ordering"},"member-ordering")," rule will be applied to class members.")),(0,a.kt)("p",null,"Cons:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The code amount slightly increases.")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"When fixing rule issues and moving global members into a class, consider also renaming to avoid duplicating context. For example, ",(0,a.kt)("inlineCode",{parentName:"p"},"getCircleArea")," global function should become ",(0,a.kt)("inlineCode",{parentName:"p"},"Circle.getArea"),", not ",(0,a.kt)("inlineCode",{parentName:"p"},"Circle.getCircleArea"),".")),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"For this rule it's recommended to exclude the test folder.")),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignore-private")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"false"),") to ignore private global declarations."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignore-names")," (default is ",(0,a.kt)("inlineCode",{parentName:"p"},"none"),") to ignore names matching regular expressions (for example, Riverpod providers, flutter hooks, etc)."),(0,a.kt)("p",null,"Set ",(0,a.kt)("inlineCode",{parentName:"p"},"ignore-annotations")," (default is ","[",(0,a.kt)("inlineCode",{parentName:"p"},"FunctionalWidget"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"swidget"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"hwidget"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"hcwidget"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"riverpod"),"]",") to override default ignored annotation list."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - prefer-static-class\n ignore-annotations:\n - allowedAnnotation\n ignore-private: true\n ignore-names:\n - (.*)Provider\n - use(.*)\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// circle.dart\nint getCircleArea() {} // LINT\nint getPerimeter() // LINT\n\nconst _PI = 3.14; // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"// circle.dart\nclass Circle {\n static int getArea() {}\n static int getPerimeter() {}\n\n static const _PI = 3.14;\n}\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f716294d.4a3a8050.js b/assets/js/f716294d.c0c1d789.js similarity index 97% rename from assets/js/f716294d.4a3a8050.js rename to assets/js/f716294d.c0c1d789.js index 5556e2c5c..5aa2f7a51 100644 --- a/assets/js/f716294d.4a3a8050.js +++ b/assets/js/f716294d.c0c1d789.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[149],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var a=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=a.createContext({}),d=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=d(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=d(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||s[m]||n;return r?a.createElement(f,l(l({ref:t},c),{},{components:r})):a.createElement(f,l({ref:t},c))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,l=new Array(n);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var d=2;d{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>n,metadata:()=>i,toc:()=>d});var a=r(7462),o=(r(7294),r(3905));const n={},l="avoid-duplicate-exports",i={unversionedId:"rules/dart/avoid-duplicate-exports",id:"rules/dart/avoid-duplicate-exports",title:"avoid-duplicate-exports",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-duplicate-exports.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-duplicate-exports",permalink:"/docs/rules/dart/avoid-duplicate-exports",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-duplicate-exports.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-double-slash-imports",permalink:"/docs/rules/dart/avoid-double-slash-imports"},next:{title:"avoid-dynamic",permalink:"/docs/rules/dart/avoid-dynamic"}},p={},d=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:d},u="wrapper";function s(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-duplicate-exports"},"avoid-duplicate-exports"),(0,o.kt)("p",null,"added in: 1.6.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Warns when a file has multiple exports declarations with the same URI."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"import \"package:flutter/material.dart\";\nimport \"package:flutter_bloc/flutter_bloc.dart\";\n\nexport 'package:my_app/good_folder/something.dart';\nexport 'package:my_app/good_folder/something.dart'; // LINT\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},'import "package:flutter/material.dart";\nimport "package:flutter_bloc/flutter_bloc.dart";\n\nexport \'package:my_app/good_folder/something.dart\';\n')))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[149],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var a=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=a.createContext({}),d=function(e){var t=a.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=d(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=d(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||s[m]||n;return r?a.createElement(f,l(l({ref:t},c),{},{components:r})):a.createElement(f,l({ref:t},c))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,l=new Array(n);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var d=2;d{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>n,metadata:()=>i,toc:()=>d});var a=r(7462),o=(r(7294),r(3905));const n={},l="avoid-duplicate-exports",i={unversionedId:"rules/dart/avoid-duplicate-exports",id:"rules/dart/avoid-duplicate-exports",title:"avoid-duplicate-exports",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-duplicate-exports.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-duplicate-exports",permalink:"/docs/rules/dart/avoid-duplicate-exports",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-duplicate-exports.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-double-slash-imports",permalink:"/docs/rules/dart/avoid-double-slash-imports"},next:{title:"avoid-dynamic",permalink:"/docs/rules/dart/avoid-dynamic"}},p={},d=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:d},u="wrapper";function s(e){let{components:t,...r}=e;return(0,o.kt)(u,(0,a.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"avoid-duplicate-exports"},"avoid-duplicate-exports"),(0,o.kt)("p",null,"added in: 1.0.0 ",(0,o.kt)("span",{style:{color:"orange"}},"warning")),(0,o.kt)("p",null,"Warns when a file has multiple exports declarations with the same URI."),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("h3",{id:"bad"},"Bad:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},"import \"package:flutter/material.dart\";\nimport \"package:flutter_bloc/flutter_bloc.dart\";\n\nexport 'package:my_app/good_folder/something.dart';\nexport 'package:my_app/good_folder/something.dart'; // LINT\n")),(0,o.kt)("h3",{id:"good"},"Good:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-dart"},'import "package:flutter/material.dart";\nimport "package:flutter_bloc/flutter_bloc.dart";\n\nexport \'package:my_app/good_folder/something.dart\';\n')))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f79b33e8.77db4be2.js b/assets/js/f79b33e8.77db4be2.js new file mode 100644 index 000000000..150732793 --- /dev/null +++ b/assets/js/f79b33e8.77db4be2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[662],{3905:(e,r,n)=>{n.d(r,{Zo:()=>p,kt:()=>f});var t=n(7294);function a(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function o(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function l(e){for(var r=1;r=0||(a[n]=e[n]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=t.createContext({}),s=function(e){var r=t.useContext(c),n=r;return e&&(n="function"==typeof e?e(r):l(l({},r),e)),n},p=function(e){var r=s(e.components);return t.createElement(c.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},m=t.forwardRef((function(e,r){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(n),m=a,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||o;return n?t.createElement(f,l(l({ref:r},p),{},{components:n})):t.createElement(f,l({ref:r},p))}));function f(e,r){var n=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var t=n(7462),a=(n(7294),n(3905));const o={},l="no-boolean-literal-compare",i={unversionedId:"rules/dart/no-boolean-literal-compare",id:"rules/dart/no-boolean-literal-compare",title:"no-boolean-literal-compare",description:"added in: 1.0.0 style",source:"@site/docs/rules/dart/no-boolean-literal-compare.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/no-boolean-literal-compare",permalink:"/docs/rules/dart/no-boolean-literal-compare",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/no-boolean-literal-compare.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"no-blank-line-before-single-return",permalink:"/docs/rules/dart/no-blank-line-before-single-return"},next:{title:"no-empty-block",permalink:"/docs/rules/dart/no-empty-block"}},c={},s=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:s},u="wrapper";function d(e){let{components:r,...n}=e;return(0,a.kt)(u,(0,t.Z)({},p,n,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"no-boolean-literal-compare"},"no-boolean-literal-compare"),(0,a.kt)("p",null,"added in: 1.0.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns on comparison to a boolean literal, as in ",(0,a.kt)("inlineCode",{parentName:"p"},"x == true"),". Comparing boolean values to boolean literals is unnecessary, as those expressions will result in booleans too. Just use the boolean values directly or negate them."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set allow-false (default is false) to allow value == false or false == value checks."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - no-boolean-literal-compare:\n allow-false: true\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"}," var b = x == true; // LINT\n var c = x != true; // LINT\n\n // LINT\n if (x == true) {\n ...\n }\n\n // LINT\n if (x != false) {\n ...\n }\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"}," var b = x;\n var c = !x;\n\n if (x) {\n ...\n }\n\n if (!x) {\n ...\n }\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f79b33e8.e878b2a6.js b/assets/js/f79b33e8.e878b2a6.js deleted file mode 100644 index 60c48215c..000000000 --- a/assets/js/f79b33e8.e878b2a6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[662],{3905:(e,r,t)=>{t.d(r,{Zo:()=>p,kt:()=>f});var n=t(7294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),s=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},p=function(e){var r=s(e.components);return n.createElement(c.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(t),m=a,f=u["".concat(c,".").concat(m)]||u[m]||d[m]||o;return t?n.createElement(f,l(l({ref:r},p),{},{components:t})):n.createElement(f,l({ref:r},p))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=m;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=t(7462),a=(t(7294),t(3905));const o={},l="no-boolean-literal-compare",i={unversionedId:"rules/dart/no-boolean-literal-compare",id:"rules/dart/no-boolean-literal-compare",title:"no-boolean-literal-compare",description:"added in: 1.5.0 style",source:"@site/docs/rules/dart/no-boolean-literal-compare.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/no-boolean-literal-compare",permalink:"/docs/rules/dart/no-boolean-literal-compare",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/no-boolean-literal-compare.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"newline-before-return",permalink:"/docs/rules/dart/newline-before-return"},next:{title:"no-empty-block",permalink:"/docs/rules/dart/no-empty-block"}},c={},s=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],p={toc:s},u="wrapper";function d(e){let{components:r,...t}=e;return(0,a.kt)(u,(0,n.Z)({},p,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"no-boolean-literal-compare"},"no-boolean-literal-compare"),(0,a.kt)("p",null,"added in: 1.5.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns on comparison to a boolean literal, as in ",(0,a.kt)("inlineCode",{parentName:"p"},"x == true"),". Comparing boolean values to boolean literals is unnecessary, as those expressions will result in booleans too. Just use the boolean values directly or negate them."),(0,a.kt)("h2",{id:"config"},"Config"),(0,a.kt)("p",null,"Set allow-false (default is false) to allow value == false or false == value checks."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n ...\n - no-boolean-literal-compare:\n allow-false: true\n")),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"}," var b = x == true; // LINT\n var c = x != true; // LINT\n\n // LINT\n if (x == true) {\n ...\n }\n\n // LINT\n if (x != false) {\n ...\n }\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"}," var b = x;\n var c = !x;\n\n if (x) {\n ...\n }\n\n if (!x) {\n ...\n }\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f98a13ed.031c27e2.js b/assets/js/f98a13ed.031c27e2.js new file mode 100644 index 000000000..cb980cb0f --- /dev/null +++ b/assets/js/f98a13ed.031c27e2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[3777],{3905:(e,r,t)=>{t.d(r,{Zo:()=>c,kt:()=>m});var n=t(7294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function l(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=n.createContext({}),p=function(e){var r=n.useContext(s),t=r;return e&&(t="function"==typeof e?e(r):o(o({},r),e)),t},c=function(e){var r=p(e.components);return n.createElement(s.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=p(t),f=a,m=u["".concat(s,".").concat(f)]||u[f]||d[f]||l;return t?n.createElement(m,o(o({ref:r},c),{},{components:t})):n.createElement(m,o({ref:r},c))}));function m(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var l=t.length,o=new Array(l);o[0]=f;var i={};for(var s in r)hasOwnProperty.call(r,s)&&(i[s]=r[s]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{t.r(r),t.d(r,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=t(7462),a=(t(7294),t(3905));const l={},o="prefer-first-or-null",i={unversionedId:"rules/dart/prefer-first-or-null",id:"rules/dart/prefer-first-or-null",title:"prefer-first-or-null",description:"added in: 1.2.0 style",source:"@site/docs/rules/dart/prefer-first-or-null.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/prefer-first-or-null",permalink:"/docs/rules/dart/prefer-first-or-null",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/prefer-first-or-null.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"prefer-enums-by-name",permalink:"/docs/rules/dart/prefer-enums-by-name"},next:{title:"prefer-first",permalink:"/docs/rules/dart/prefer-first"}},s={},p=[{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],c={toc:p},u="wrapper";function d(e){let{components:r,...t}=e;return(0,a.kt)(u,(0,n.Z)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"prefer-first-or-null"},"prefer-first-or-null"),(0,a.kt)("p",null,"added in: 1.2.0 ",(0,a.kt)("span",{style:{color:"green"}},"style")),(0,a.kt)("p",null,"Warns when the first element of an Iterable or a List is accessed by ",(0,a.kt)("inlineCode",{parentName:"p"},"first"),", ",(0,a.kt)("inlineCode",{parentName:"p"},"list[0]")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable.elementAt(0)")," instead of calling ",(0,a.kt)("inlineCode",{parentName:"p"},"iterable.firstOrNull"),"."),(0,a.kt)("h2",{id:"example"},"Example"),(0,a.kt)("h3",{id:"bad"},"Bad:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"...\nconst array = [1, 2, 3, 4, 5, 6, 7, 8, 9];\n\narray.elementAt(0); // LINT\narray[0]; // LINT\n")),(0,a.kt)("h3",{id:"good"},"Good:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-dart"},"const array = [1, 2, 3, 4, 5, 6, 7, 8, 9];\n\narray.firstOrNull;\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ff693c74.d12713ae.js b/assets/js/ff693c74.f0d572cd.js similarity index 97% rename from assets/js/ff693c74.d12713ae.js rename to assets/js/ff693c74.f0d572cd.js index e0e7f5abe..c26c6f0c1 100644 --- a/assets/js/ff693c74.d12713ae.js +++ b/assets/js/ff693c74.f0d572cd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2751],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var o=a.createContext({}),d=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=d(e.components);return a.createElement(o.Provider,{value:n},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(t),p=r,f=c["".concat(o,".").concat(p)]||c[p]||m[p]||i;return t?a.createElement(f,l(l({ref:n},u),{},{components:t})):a.createElement(f,l({ref:n},u))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,l=new Array(i);l[0]=p;var s={};for(var o in n)hasOwnProperty.call(n,o)&&(s[o]=n[o]);s.originalType=e,s[c]="string"==typeof e?e:r,l[1]=s;for(var d=2;d{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var a=t(7462),r=(t(7294),t(3905));const i={},l="avoid-unrelated-type-assertions",s={unversionedId:"rules/dart/avoid-unrelated-type-assertions",id:"rules/dart/avoid-unrelated-type-assertions",title:"avoid-unrelated-type-assertions",description:"added in: 1.6.0 warning",source:"@site/docs/rules/dart/avoid-unrelated-type-assertions.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-unrelated-type-assertions",permalink:"/docs/rules/dart/avoid-unrelated-type-assertions",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-unrelated-type-assertions.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-unnecessary-type-casts",permalink:"/docs/rules/dart/avoid-unnecessary-type-casts"},next:{title:"avoid-unused-parameters",permalink:"/docs/rules/dart/avoid-unused-parameters"}},o={},d=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:d},c="wrapper";function m(e){let{components:n,...t}=e;return(0,r.kt)(c,(0,a.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"avoid-unrelated-type-assertions"},"avoid-unrelated-type-assertions"),(0,r.kt)("p",null,"added in: 1.6.0 ",(0,r.kt)("span",{style:{color:"orange"}},"warning")),(0,r.kt)("p",null,"Warns about unrelated usages of ",(0,r.kt)("inlineCode",{parentName:"p"},"is")," operator."),(0,r.kt)("h2",{id:"config"},"Config"),(0,r.kt)("p",null,"Set ",(0,r.kt)("inlineCode",{parentName:"p"},"ignore-mixins")," (default is ",(0,r.kt)("inlineCode",{parentName:"p"},"false"),") to exclude mixins from the rule checks."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n - avoid-unrelated-type-assertions:\n ignore-mixins: false\n")),(0,r.kt)("h2",{id:"example"},"Example"),(0,r.kt)("h3",{id:"bad"},"Bad:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},"class Animal {}\n\nclass NotAnimal {}\n\nclass HomeAnimal extends Animal {}\n\nclass Example {\n final regularString = '';\n final myList = [1, 2, 3];\n\n final Animal animal = Animal();\n\n void main() {\n final result = regularString is int; // LINT\n final result2 = myList is List; // LINT\n\n final result3 = animal is NotAnimal; // LINT\n }\n\n void patterns() {\n final animal = Animal();\n\n if (animal case HomeAnimal result) {}\n if (animal case HomeAnimal()) {}\n if (animal case NotAnimal result) {} // LINT\n if (animal case NotAnimal()) {} // LINT\n }\n}\n")),(0,r.kt)("h3",{id:"good"},"Good:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},"class Animal {}\n\nclass HomeAnimal extends Animal {}\n\nclass Example {\n final regularString = '';\n final myList = [1, 2, 3];\n\n final Animal animal = Animal();\n\n void main() {\n final result = regularString is String;\n final result2 = myList is List;\n\n final result3 = animal is Object;\n }\n\n void patterns() {\n final animal = Animal();\n\n if (animal case HomeAnimal result) {}\n if (animal case HomeAnimal()) {}\n }\n}\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[2751],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var o=a.createContext({}),d=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=d(e.components);return a.createElement(o.Provider,{value:n},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},p=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=d(t),p=r,f=c["".concat(o,".").concat(p)]||c[p]||m[p]||i;return t?a.createElement(f,l(l({ref:n},u),{},{components:t})):a.createElement(f,l({ref:n},u))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=t.length,l=new Array(i);l[0]=p;var s={};for(var o in n)hasOwnProperty.call(n,o)&&(s[o]=n[o]);s.originalType=e,s[c]="string"==typeof e?e:r,l[1]=s;for(var d=2;d{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>d});var a=t(7462),r=(t(7294),t(3905));const i={},l="avoid-unrelated-type-assertions",s={unversionedId:"rules/dart/avoid-unrelated-type-assertions",id:"rules/dart/avoid-unrelated-type-assertions",title:"avoid-unrelated-type-assertions",description:"added in: 1.0.0 warning",source:"@site/docs/rules/dart/avoid-unrelated-type-assertions.mdx",sourceDirName:"rules/dart",slug:"/rules/dart/avoid-unrelated-type-assertions",permalink:"/docs/rules/dart/avoid-unrelated-type-assertions",draft:!1,editUrl:"https://github.com/bancolombia/dart-code-linter/tree/gh-pages-source/docs/rules/dart/avoid-unrelated-type-assertions.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"avoid-unnecessary-type-casts",permalink:"/docs/rules/dart/avoid-unnecessary-type-casts"},next:{title:"avoid-unused-parameters",permalink:"/docs/rules/dart/avoid-unused-parameters"}},o={},d=[{value:"Config",id:"config",level:2},{value:"Example",id:"example",level:2},{value:"Bad:",id:"bad",level:3},{value:"Good:",id:"good",level:3}],u={toc:d},c="wrapper";function m(e){let{components:n,...t}=e;return(0,r.kt)(c,(0,a.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"avoid-unrelated-type-assertions"},"avoid-unrelated-type-assertions"),(0,r.kt)("p",null,"added in: 1.0.0 ",(0,r.kt)("span",{style:{color:"orange"}},"warning")),(0,r.kt)("p",null,"Warns about unrelated usages of ",(0,r.kt)("inlineCode",{parentName:"p"},"is")," operator."),(0,r.kt)("h2",{id:"config"},"Config"),(0,r.kt)("p",null,"Set ",(0,r.kt)("inlineCode",{parentName:"p"},"ignore-mixins")," (default is ",(0,r.kt)("inlineCode",{parentName:"p"},"false"),") to exclude mixins from the rule checks."),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"dart_code_linter:\n ...\n rules:\n - avoid-unrelated-type-assertions:\n ignore-mixins: false\n")),(0,r.kt)("h2",{id:"example"},"Example"),(0,r.kt)("h3",{id:"bad"},"Bad:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},"class Animal {}\n\nclass NotAnimal {}\n\nclass HomeAnimal extends Animal {}\n\nclass Example {\n final regularString = '';\n final myList = [1, 2, 3];\n\n final Animal animal = Animal();\n\n void main() {\n final result = regularString is int; // LINT\n final result2 = myList is List; // LINT\n\n final result3 = animal is NotAnimal; // LINT\n }\n\n void patterns() {\n final animal = Animal();\n\n if (animal case HomeAnimal result) {}\n if (animal case HomeAnimal()) {}\n if (animal case NotAnimal result) {} // LINT\n if (animal case NotAnimal()) {} // LINT\n }\n}\n")),(0,r.kt)("h3",{id:"good"},"Good:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-dart"},"class Animal {}\n\nclass HomeAnimal extends Animal {}\n\nclass Example {\n final regularString = '';\n final myList = [1, 2, 3];\n\n final Animal animal = Animal();\n\n void main() {\n final result = regularString is String;\n final result2 = myList is List;\n\n final result3 = animal is Object;\n }\n\n void patterns() {\n final animal = Animal();\n\n if (animal case HomeAnimal result) {}\n if (animal case HomeAnimal()) {}\n }\n}\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.127929d7.js b/assets/js/main.127929d7.js deleted file mode 100644 index da617490f..000000000 --- a/assets/js/main.127929d7.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.127929d7.js.LICENSE.txt */ -(self.webpackChunkdart_code_linter=self.webpackChunkdart_code_linter||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={"0120595c":[()=>n.e(598).then(n.bind(n,6812)),"@site/docs/rules/flutter/avoid-returning-widgets.mdx",6812],"0170d353":[()=>n.e(2375).then(n.bind(n,9079)),"@site/docs/cli/check-unused-files.md",9079],"0bb840a8":[()=>n.e(4049).then(n.bind(n,8065)),"@site/docs/rules/flutter/avoid-expanded-as-spacer.mdx",8065],"1064df68":[()=>n.e(1578).then(n.bind(n,5642)),"@site/docs/rules/dart/newline-before-return.mdx",5642],"153f4cd2":[()=>n.e(4029).then(n.bind(n,2164)),"@site/docs/rules/flutter/consistent-update-render-object.mdx",2164],17896441:[()=>Promise.all([n.e(532),n.e(4690),n.e(7918)]).then(n.bind(n,903)),"@theme/DocItem",903],"1a27f214":[()=>n.e(5193).then(n.bind(n,4447)),"@site/docs/rules/flutter/prefer-correct-edge-insets-constructor.mdx",4447],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,6675)),"@theme/SearchPage",6675],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1f391b9e":[()=>Promise.all([n.e(532),n.e(4690),n.e(3085)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"1fbe28c6":[()=>n.e(5958).then(n.bind(n,1557)),"@site/docs/cli/analyze.md",1557],"27dbeb01":[()=>n.e(4359).then(n.bind(n,9617)),"@site/docs/rules/dart/prefer-commenting-analyzer-ignores.mdx",9617],"2820b22c":[()=>n.e(3404).then(n.bind(n,5886)),"@site/docs/rules/dart/no-magic-number.mdx",5886],"2ae497f9":[()=>n.e(377).then(n.bind(n,2689)),"@site/docs/rules/dart/no-equal-arguments.mdx",2689],"2b008320":[()=>n.e(8449).then(n.bind(n,4146)),"@site/docs/metrics/lines-of-code.md",4146],"3021cf83":[()=>Promise.all([n.e(532),n.e(2538)]).then(n.bind(n,276)),"@site/docs/getting-started.mdx",276],"339362dc":[()=>n.e(6803).then(n.bind(n,5901)),"@site/docs/rules/dart/prefer-moving-to-variable.mdx",5901],"340969f1":[()=>n.e(2681).then(n.bind(n,8784)),"@site/docs/rules/flutter/avoid-shrink-wrap-in-lists.mdx",8784],"342c214f":[()=>n.e(4683).then(n.bind(n,1704)),"@site/docs/rules/dart/prefer-immediate-return.mdx",1704],"342d2309":[()=>n.e(490).then(n.bind(n,6804)),"@site/docs/rules/dart/prefer-match-file-name.mdx",6804],36543528:[()=>n.e(5091).then(n.bind(n,719)),"@site/docs/rules/flutter/flutter.md",719],"36ce87cb":[()=>Promise.all([n.e(532),n.e(9806)]).then(n.bind(n,4533)),"@site/docs/anti-patterns/anti-patterns.mdx",4533],"37012b73":[()=>n.e(2601).then(n.bind(n,2952)),"@site/docs/rules/dart/prefer-first.mdx",2952],"38a6c3dd":[()=>n.e(7753).then(n.bind(n,3181)),"@site/docs/rules/flutter/always-remove-listener.mdx",3181],"393be207":[()=>n.e(7414).then(n.bind(n,3123)),"@site/src/pages/markdown-page.md",3123],"39e8fd7d":[()=>n.e(4317).then(n.bind(n,6466)),"@site/docs/rules/dart/prefer-async-await.mdx",6466],"3aefc694":[()=>n.e(4923).then(n.bind(n,2187)),"@site/docs/rules/flame/flame.md",2187],"3d01ea10":[()=>Promise.all([n.e(532),n.e(4100)]).then(n.bind(n,6878)),"@site/docs/rules/dart/avoid-banned-imports.md",6878],"3db17ce4":[()=>n.e(2586).then(n.bind(n,3363)),"@site/docs/rules/dart/avoid-collection-methods-with-unrelated-types.mdx",3363],"3f187aba":[()=>n.e(7555).then(n.bind(n,1812)),"@site/docs/metrics/technical-debt.md",1812],"41fc9b9e":[()=>Promise.all([n.e(532),n.e(6e3)]).then(n.bind(n,4354)),"@site/docs/metrics/metrics.mdx",4354],"43cd4838":[()=>n.e(3658).then(n.bind(n,7035)),"@site/docs/core-concepts.md",7035],"4b266bc1":[()=>n.e(3275).then(n.bind(n,2808)),"@site/docs/rules/dart/member-ordering.mdx",2808],"4bce62ec":[()=>n.e(144).then(n.bind(n,6399)),"@site/docs/rules/dart/avoid-nested-conditional-expressions.mdx",6399],"4cfc1d8a":[()=>n.e(5963).then(n.t.bind(n,3769,19)),"/Users/sagarci/Documents/development/open-source/dart-code-linter/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"4d3c1263":[()=>n.e(5049).then(n.bind(n,2010)),"@site/docs/rules/flame/avoid-creating-vector-in-update.mdx",2010],"4dccdc48":[()=>n.e(2275).then(n.bind(n,1637)),"@site/docs/rules/flutter/prefer-const-border-radius.mdx",1637],"4e01f9ce":[()=>n.e(2883).then(n.bind(n,7720)),"@site/docs/configuration/configuring-rules.md",7720],"4f7eb955":[()=>n.e(8613).then(n.bind(n,688)),"@site/docs/rules/dart/prefer-correct-test-file-name.mdx",688],"545c8698":[()=>n.e(1248).then(n.bind(n,5660)),"@site/docs/rules/dart/binary-expression-operand-order.mdx",5660],"54b1411e":[()=>n.e(5685).then(n.bind(n,8464)),"@site/docs/metrics/source-lines-of-code.md",8464],"59b78236":[()=>n.e(2377).then(n.bind(n,1251)),"@site/docs/rules/dart/avoid-double-slash-imports.mdx",1251],"59e71fd1":[()=>n.e(7624).then(n.bind(n,4515)),"@site/docs/rules/intl/prefer-intl-name.mdx",4515],"5afd84da":[()=>Promise.all([n.e(532),n.e(294)]).then(n.bind(n,4778)),"@site/docs/rules/rules.mdx",4778],"5dd620ec":[()=>n.e(8981).then(n.bind(n,4208)),"@site/docs/rules/flutter/prefer-using-list-view.mdx",4208],"5e6ba485":[()=>n.e(7224).then(n.bind(n,7087)),"@site/docs/rules/dart/avoid-unnecessary-conditionals.mdx",7087],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"633d8a16":[()=>n.e(9711).then(n.bind(n,3302)),"@site/docs/rules/flame/avoid-redundant-async-on-load.mdx",3302],"641619fa":[()=>n.e(191).then(n.bind(n,1268)),"@site/docs/metrics/maximum-nesting-level.md",1268],"6723db8b":[()=>n.e(9318).then(n.bind(n,5888)),"@site/docs/rules/dart/avoid-throw-in-catch-block.mdx",5888],"6744268e":[()=>n.e(1583).then(n.bind(n,4616)),"@site/docs/rules/dart/no-equal-then-else.mdx",4616],"68812fd8":[()=>n.e(4658).then(n.bind(n,7525)),"@site/docs/rules/dart/avoid-missing-enum-constant-in-map.mdx",7525],"6e5734d8":[()=>n.e(8380).then(n.bind(n,8222)),"@site/docs/rules/dart/avoid-top-level-members-in-tests.mdx",8222],"6f9e94f5":[()=>n.e(7416).then(n.bind(n,6903)),"@site/docs/metrics/number-of-methods.md",6903],"74e9b832":[()=>n.e(3101).then(n.bind(n,9503)),"@site/docs/rules/flutter/avoid-unnecessary-setstate.mdx",9503],"77402a57":[()=>n.e(5613).then(n.bind(n,2654)),"@site/docs/rules/dart/prefer-conditional-expressions.mdx",2654],"7778b635":[()=>n.e(8053).then(n.bind(n,4542)),"@site/docs/anti-patterns/long-parameter-list.md",4542],"79ad219e":[()=>n.e(406).then(n.bind(n,6854)),"@site/docs/rules/dart/avoid-global-state.mdx",6854],"7ac81413":[()=>n.e(767).then(n.bind(n,7480)),"@site/docs/rules/dart/prefer-last.mdx",7480],"7d7b4b3e":[()=>n.e(2700).then(n.bind(n,5327)),"@site/docs/rules/dart/dart.md",5327],"813bcd07":[()=>n.e(8154).then(n.bind(n,2768)),"@site/docs/cli/check-unused-code.md",2768],"852fee05":[()=>n.e(2845).then(n.bind(n,6705)),"@site/docs/rules/dart/avoid-dynamic.mdx",6705],"873f7e93":[()=>n.e(773).then(n.bind(n,1855)),"@site/docs/configuration/presets.md",1855],"8abe7791":[()=>n.e(5525).then(n.bind(n,5266)),"@site/docs/configuration/configuration.md",5266],"8c4a2621":[()=>n.e(1070).then(n.bind(n,9434)),"@site/docs/rules/dart/avoid-unnecessary-type-assertions.mdx",9434],"8f4032ab":[()=>n.e(4224).then(n.bind(n,7909)),"@site/docs/anti-patterns/long-method.md",7909],"90b032b6":[()=>n.e(4368).then(n.bind(n,5226)),"@site/docs/rules/flutter/prefer-extracting-callbacks.mdx",5226],"918b6acf":[()=>n.e(2599).then(n.bind(n,1371)),"@site/docs/rules/dart/prefer-correct-type-name.mdx",1371],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"945ab8b8":[()=>n.e(8237).then(n.bind(n,5405)),"@site/docs/rules/dart/list-all-equatable-fields.mdx",5405],"97f0a7f6":[()=>n.e(7825).then(n.bind(n,5095)),"@site/docs/rules/dart/avoid-late-keyword.mdx",5095],"9e39b1cd":[()=>Promise.all([n.e(532),n.e(7813)]).then(n.bind(n,3279)),"@site/docs/cli/cli.md",3279],abefdb81:[()=>n.e(498).then(n.bind(n,427)),"@site/docs/rules/dart/prefer-correct-identifier-length.mdx",427],b2637078:[()=>n.e(3554).then(n.bind(n,7903)),"@site/docs/metrics/halstead-volume.md",7903],b316a99f:[()=>n.e(3825).then(n.bind(n,440)),"@site/docs/rules/intl/prefer-provide-intl-description.mdx",440],b59a4fe4:[()=>n.e(444).then(n.bind(n,8069)),"@site/docs/metrics/maintainability-index.md",8069],b7c4f7eb:[()=>n.e(4510).then(n.bind(n,3277)),"@site/docs/cli/check-unused-l10n.md",3277],bb226fd8:[()=>n.e(5728).then(n.bind(n,445)),"@site/docs/rules/dart/avoid-passing-async-when-sync-expected.mdx",445],bb2b276a:[()=>n.e(6675).then(n.bind(n,1363)),"@site/docs/rules/dart/avoid-non-null-assertion.mdx",1363],bc2663a9:[()=>n.e(5168).then(n.bind(n,3311)),"@site/docs/rules/dart/prefer-enums-by-name.mdx",3311],be70f3b9:[()=>n.e(8329).then(n.bind(n,9918)),"@site/docs/rules/flutter/check-for-equals-in-render-object-setters.mdx",9918],bf74b1a6:[()=>n.e(3429).then(n.bind(n,5718)),"@site/docs/rules/dart/prefer-iterable-of.mdx",5718],c100b5b1:[()=>n.e(8695).then(n.bind(n,7586)),"@site/docs/metrics/weight-of-class.md",7586],c1017a8f:[()=>n.e(1341).then(n.bind(n,2527)),"@site/docs/rules/dart/ban-name.mdx",2527],c19cc756:[()=>n.e(287).then(n.bind(n,2745)),"@site/docs/rules/dart/avoid-unused-parameters.mdx",2745],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,3261)),"@site/src/pages/index.js",3261],c4f8173c:[()=>n.e(8982).then(n.bind(n,3388)),"@site/docs/rules/dart/prefer-trailing-comma.mdx",3388],c57f7d8c:[()=>n.e(4159).then(n.bind(n,7058)),"@site/docs/rules/dart/double-literal-format.mdx",7058],c8addf59:[()=>n.e(4633).then(n.bind(n,4987)),"@site/docs/rules/dart/avoid-redundant-async.mdx",4987],ce266690:[()=>n.e(8218).then(n.t.bind(n,5745,19)),"/Users/sagarci/Documents/development/open-source/dart-code-linter/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],d2b8e1c1:[()=>n.e(599).then(n.bind(n,7645)),"@site/docs/rules/dart/avoid-ignoring-return-values.mdx",7645],d384f18d:[()=>n.e(9490).then(n.bind(n,6066)),"@site/docs/rules/dart/avoid-non-ascii-symbols.mdx",6066],d509a802:[()=>n.e(2827).then(n.bind(n,1726)),"@site/docs/rules/dart/missing-test-assertion.mdx",1726],d9f9c28c:[()=>n.e(6585).then(n.bind(n,390)),"@site/docs/rules/dart/no-object-declaration.mdx",390],da81259c:[()=>n.e(202).then(n.bind(n,7440)),"@site/docs/rules/flutter/avoid-border-all.mdx",7440],dbde3cfd:[()=>n.e(3618).then(n.bind(n,6687)),"@site/docs/rules/dart/format-comment.mdx",6687],dd80d4b9:[()=>n.e(7636).then(n.bind(n,955)),"@site/docs/configuration/configuring-metrics.md",955],df575e78:[()=>n.e(5869).then(n.bind(n,2865)),"@site/docs/rules/flutter/use-setstate-synchronously.mdx",2865],e056807d:[()=>n.e(637).then(n.bind(n,9034)),"@site/docs/rules/flame/avoid-initializing-in-on-mount.mdx",9034],e1411296:[()=>n.e(1053).then(n.bind(n,4139)),"@site/docs/rules/flutter/prefer-single-widget-per-file.mdx",4139],e3663eb1:[()=>n.e(9992).then(n.bind(n,8073)),"@site/docs/rules/dart/arguments-ordering.md",8073],e3c5b79a:[()=>n.e(7260).then(n.bind(n,5003)),"@site/docs/rules/flutter/avoid-wrapping-in-padding.mdx",5003],e4919cfc:[()=>n.e(7009).then(n.bind(n,9666)),"@site/docs/rules/dart/no-empty-block.mdx",9666],e4d0a7f6:[()=>n.e(4709).then(n.bind(n,5041)),"@site/docs/rules/intl/intl.md",5041],ec1af512:[()=>n.e(6052).then(n.bind(n,6255)),"@site/docs/rules/dart/avoid-unnecessary-type-casts.mdx",6255],ed018433:[()=>n.e(6028).then(n.bind(n,6095)),"@site/docs/rules/dart/prefer-static-class.mdx",6095],f2039577:[()=>n.e(3957).then(n.t.bind(n,7085,19)),"/Users/sagarci/Documents/development/open-source/dart-code-linter/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],f2805b1b:[()=>n.e(3117).then(n.bind(n,6719)),"@site/docs/rules/dart/avoid-cascade-after-if-null.md",6719],f3a2c3f4:[()=>n.e(6017).then(n.bind(n,6015)),"@site/docs/metrics/cyclomatic-complexity.md",6015],f59c386a:[()=>n.e(3221).then(n.bind(n,9535)),"@site/docs/cli/check-unnecessary-nullable.md",9535],f716294d:[()=>n.e(149).then(n.bind(n,4236)),"@site/docs/rules/dart/avoid-duplicate-exports.mdx",4236],f79b33e8:[()=>n.e(662).then(n.bind(n,8671)),"@site/docs/rules/dart/no-boolean-literal-compare.mdx",8671],fcb769cb:[()=>n.e(2588).then(n.bind(n,396)),"@site/docs/configuration/excluding-code.md",396],ff5d1f26:[()=>n.e(3098).then(n.bind(n,7377)),"@site/docs/metrics/number-of-parameters.md",7377],ff693c74:[()=>n.e(2751).then(n.bind(n,2528)),"@site/docs/rules/dart/avoid-unrelated-type-assertions.mdx",2528]};function c(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(9670),d=n(226);function f(e,t){if("*"===e)return i()({loading:c,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],f={},p=[],m=[],h=(0,u.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:c,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/markdown-page",component:f("/markdown-page","9d4"),exact:!0},{path:"/search",component:f("/search","02c"),exact:!0},{path:"/docs",component:f("/docs","3ca"),routes:[{path:"/docs/anti-patterns/",component:f("/docs/anti-patterns/","122"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/anti-patterns/long-method",component:f("/docs/anti-patterns/long-method","b54"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/anti-patterns/long-parameter-list",component:f("/docs/anti-patterns/long-parameter-list","633"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cli/",component:f("/docs/cli/","a5e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cli/analyze",component:f("/docs/cli/analyze","a55"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cli/check-unnecessary-nullable",component:f("/docs/cli/check-unnecessary-nullable","d46"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cli/check-unused-code",component:f("/docs/cli/check-unused-code","c3f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cli/check-unused-files",component:f("/docs/cli/check-unused-files","c0f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/cli/check-unused-l10n",component:f("/docs/cli/check-unused-l10n","c8b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/configuration/",component:f("/docs/configuration/","6da"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/configuration/configuring-metrics",component:f("/docs/configuration/configuring-metrics","5d0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/configuration/configuring-rules",component:f("/docs/configuration/configuring-rules","a00"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/configuration/excluding-code",component:f("/docs/configuration/excluding-code","4ff"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/configuration/presets",component:f("/docs/configuration/presets","921"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/core-concepts",component:f("/docs/core-concepts","ab9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/getting-started",component:f("/docs/getting-started","fad"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/metrics/",component:f("/docs/metrics/","f54"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/metrics/cyclomatic-complexity",component:f("/docs/metrics/cyclomatic-complexity","a22"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/metrics/halstead-volume",component:f("/docs/metrics/halstead-volume","ae7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/metrics/lines-of-code",component:f("/docs/metrics/lines-of-code","ed0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/metrics/maintainability-index",component:f("/docs/metrics/maintainability-index","f8b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/metrics/maximum-nesting-level",component:f("/docs/metrics/maximum-nesting-level","3e2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/metrics/number-of-methods",component:f("/docs/metrics/number-of-methods","f8f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/metrics/number-of-parameters",component:f("/docs/metrics/number-of-parameters","43e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/metrics/source-lines-of-code",component:f("/docs/metrics/source-lines-of-code","0a9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/metrics/technical-debt",component:f("/docs/metrics/technical-debt","2d9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/metrics/weight-of-class",component:f("/docs/metrics/weight-of-class","36f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/",component:f("/docs/rules/","187"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/",component:f("/docs/rules/dart/","a02"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/arguments-ordering",component:f("/docs/rules/dart/arguments-ordering","b97"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-banned-imports",component:f("/docs/rules/dart/avoid-banned-imports","bb7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-cascade-after-if-null",component:f("/docs/rules/dart/avoid-cascade-after-if-null","60c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-collection-methods-with-unrelated-types",component:f("/docs/rules/dart/avoid-collection-methods-with-unrelated-types","563"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-double-slash-imports",component:f("/docs/rules/dart/avoid-double-slash-imports","486"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-duplicate-exports",component:f("/docs/rules/dart/avoid-duplicate-exports","27a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-dynamic",component:f("/docs/rules/dart/avoid-dynamic","959"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-global-state",component:f("/docs/rules/dart/avoid-global-state","55c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-ignoring-return-values",component:f("/docs/rules/dart/avoid-ignoring-return-values","a6e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-late-keyword",component:f("/docs/rules/dart/avoid-late-keyword","4e0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-missing-enum-constant-in-map",component:f("/docs/rules/dart/avoid-missing-enum-constant-in-map","179"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-nested-conditional-expressions",component:f("/docs/rules/dart/avoid-nested-conditional-expressions","3ac"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-non-ascii-symbols",component:f("/docs/rules/dart/avoid-non-ascii-symbols","d3d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-non-null-assertion",component:f("/docs/rules/dart/avoid-non-null-assertion","3ad"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-passing-async-when-sync-expected",component:f("/docs/rules/dart/avoid-passing-async-when-sync-expected","c08"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-redundant-async",component:f("/docs/rules/dart/avoid-redundant-async","c30"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-throw-in-catch-block",component:f("/docs/rules/dart/avoid-throw-in-catch-block","4c9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-top-level-members-in-tests",component:f("/docs/rules/dart/avoid-top-level-members-in-tests","6f0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-unnecessary-conditionals",component:f("/docs/rules/dart/avoid-unnecessary-conditionals","3e9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-unnecessary-type-assertions",component:f("/docs/rules/dart/avoid-unnecessary-type-assertions","a87"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-unnecessary-type-casts",component:f("/docs/rules/dart/avoid-unnecessary-type-casts","9d5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-unrelated-type-assertions",component:f("/docs/rules/dart/avoid-unrelated-type-assertions","3b7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/avoid-unused-parameters",component:f("/docs/rules/dart/avoid-unused-parameters","f70"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/ban-name",component:f("/docs/rules/dart/ban-name","1db"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/binary-expression-operand-order",component:f("/docs/rules/dart/binary-expression-operand-order","4e5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/double-literal-format",component:f("/docs/rules/dart/double-literal-format","ee4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/format-comment",component:f("/docs/rules/dart/format-comment","d41"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/list-all-equatable-fields",component:f("/docs/rules/dart/list-all-equatable-fields","91a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/member-ordering",component:f("/docs/rules/dart/member-ordering","401"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/missing-test-assertion",component:f("/docs/rules/dart/missing-test-assertion","cec"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/newline-before-return",component:f("/docs/rules/dart/newline-before-return","4c5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/no-boolean-literal-compare",component:f("/docs/rules/dart/no-boolean-literal-compare","a3d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/no-empty-block",component:f("/docs/rules/dart/no-empty-block","12c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/no-equal-arguments",component:f("/docs/rules/dart/no-equal-arguments","3d9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/no-equal-then-else",component:f("/docs/rules/dart/no-equal-then-else","22f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/no-magic-number",component:f("/docs/rules/dart/no-magic-number","552"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/no-object-declaration",component:f("/docs/rules/dart/no-object-declaration","297"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-async-await",component:f("/docs/rules/dart/prefer-async-await","052"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-commenting-analyzer-ignores",component:f("/docs/rules/dart/prefer-commenting-analyzer-ignores","d6e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-conditional-expressions",component:f("/docs/rules/dart/prefer-conditional-expressions","3ec"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-correct-identifier-length",component:f("/docs/rules/dart/prefer-correct-identifier-length","03b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-correct-test-file-name",component:f("/docs/rules/dart/prefer-correct-test-file-name","458"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-correct-type-name",component:f("/docs/rules/dart/prefer-correct-type-name","f27"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-enums-by-name",component:f("/docs/rules/dart/prefer-enums-by-name","cf6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-first",component:f("/docs/rules/dart/prefer-first","f1b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-immediate-return",component:f("/docs/rules/dart/prefer-immediate-return","25a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-iterable-of",component:f("/docs/rules/dart/prefer-iterable-of","6b6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-last",component:f("/docs/rules/dart/prefer-last","f56"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-match-file-name",component:f("/docs/rules/dart/prefer-match-file-name","918"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-moving-to-variable",component:f("/docs/rules/dart/prefer-moving-to-variable","a86"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-static-class",component:f("/docs/rules/dart/prefer-static-class","c27"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/dart/prefer-trailing-comma",component:f("/docs/rules/dart/prefer-trailing-comma","140"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flame/",component:f("/docs/rules/flame/","b2f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flame/avoid-creating-vector-in-update",component:f("/docs/rules/flame/avoid-creating-vector-in-update","e6e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flame/avoid-initializing-in-on-mount",component:f("/docs/rules/flame/avoid-initializing-in-on-mount","da9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flame/avoid-redundant-async-on-load",component:f("/docs/rules/flame/avoid-redundant-async-on-load","55d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/",component:f("/docs/rules/flutter/","e60"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/always-remove-listener",component:f("/docs/rules/flutter/always-remove-listener","dc3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/avoid-border-all",component:f("/docs/rules/flutter/avoid-border-all","b55"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/avoid-expanded-as-spacer",component:f("/docs/rules/flutter/avoid-expanded-as-spacer","c1b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/avoid-returning-widgets",component:f("/docs/rules/flutter/avoid-returning-widgets","eb3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/avoid-shrink-wrap-in-lists",component:f("/docs/rules/flutter/avoid-shrink-wrap-in-lists","1dd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/avoid-unnecessary-setstate",component:f("/docs/rules/flutter/avoid-unnecessary-setstate","201"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/avoid-wrapping-in-padding",component:f("/docs/rules/flutter/avoid-wrapping-in-padding","405"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/check-for-equals-in-render-object-setters",component:f("/docs/rules/flutter/check-for-equals-in-render-object-setters","2c7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/consistent-update-render-object",component:f("/docs/rules/flutter/consistent-update-render-object","7b8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/prefer-const-border-radius",component:f("/docs/rules/flutter/prefer-const-border-radius","271"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/prefer-correct-edge-insets-constructor",component:f("/docs/rules/flutter/prefer-correct-edge-insets-constructor","49e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/prefer-extracting-callbacks",component:f("/docs/rules/flutter/prefer-extracting-callbacks","248"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/prefer-single-widget-per-file",component:f("/docs/rules/flutter/prefer-single-widget-per-file","d3b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/prefer-using-list-view",component:f("/docs/rules/flutter/prefer-using-list-view","f7b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/flutter/use-setstate-synchronously",component:f("/docs/rules/flutter/use-setstate-synchronously","9af"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/intl/",component:f("/docs/rules/intl/","dca"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/intl/prefer-intl-name",component:f("/docs/rules/intl/prefer-intl-name","a2c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/rules/intl/prefer-provide-intl-description",component:f("/docs/rules/intl/prefer-provide-intl-description","b7f"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/",component:f("/","5f6"),exact:!0},{path:"*",component:f("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},7221:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(412);const s=[n(2497),n(3310),n(8320),n(2295)];var c=n(723),u=n(6550),d=n(8790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(5742),h=n(2263),g=n(4996),b=n(6668),v=n(833),y=n(4711),w=n(9727),k=n(3320),S=n(8780),E=n(197);function x(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.Z)(),{pathname:r}=(0,u.TH)();return e+(0,S.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function C(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(_,null),r.createElement(x,null),r.createElement(E.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const T=new Map;function A(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var L=n(8934),R=n(8940);function P(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),P("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class I extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?P("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(N,{previousLocation:this.previousLocation,location:t},r.createElement(u.AW,{location:t,render:()=>e}))}}const D=I,M="__docusaurus-base-url-issue-banner-container",B="__docusaurus-base-url-issue-banner",F="__docusaurus-base-url-issue-banner-suggestion-container",j="__DOCUSAURUS_INSERT_BASEURL_BANNER";function z(e){return`\nwindow['${j}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${j}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${M}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[j]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,z(e))),r.createElement("div",{id:M}))}function $(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,u.TH)();return t&&n===e?r.createElement(U,null):null}function q(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var H=n(4763),G=n(2389);function Z(){const e=(0,G.Z)();return r.createElement(m.Z,null,r.createElement("html",{"data-has-hydrated":e}))}function V(){const e=(0,d.H)(c.Z),t=(0,u.TH)();return r.createElement(H.Z,null,r.createElement(R.M,null,r.createElement(L.t,null,r.createElement(f,null,r.createElement(q,null),r.createElement(C,null),r.createElement($,null),r.createElement(D,{location:A(t)},e)),r.createElement(Z,null))))}var W=n(6887);const K=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(9670);const Q=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(W).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?K(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),O(e))},te=Object.freeze(ee);if(l.Z.canUseDOM){window.docusaurus=te;const e=a.hydrate;O(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(V,null))),document.getElementById("__docusaurus"))}))}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>u,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"getting-started","docs":[{"id":"anti-patterns/anti-patterns","path":"/docs/anti-patterns/","sidebar":"tutorialSidebar"},{"id":"anti-patterns/long-method","path":"/docs/anti-patterns/long-method","sidebar":"tutorialSidebar"},{"id":"anti-patterns/long-parameter-list","path":"/docs/anti-patterns/long-parameter-list","sidebar":"tutorialSidebar"},{"id":"cli/analyze","path":"/docs/cli/analyze","sidebar":"tutorialSidebar"},{"id":"cli/check-unnecessary-nullable","path":"/docs/cli/check-unnecessary-nullable","sidebar":"tutorialSidebar"},{"id":"cli/check-unused-code","path":"/docs/cli/check-unused-code","sidebar":"tutorialSidebar"},{"id":"cli/check-unused-files","path":"/docs/cli/check-unused-files","sidebar":"tutorialSidebar"},{"id":"cli/check-unused-l10n","path":"/docs/cli/check-unused-l10n","sidebar":"tutorialSidebar"},{"id":"cli/cli","path":"/docs/cli/","sidebar":"tutorialSidebar"},{"id":"configuration/configuration","path":"/docs/configuration/","sidebar":"tutorialSidebar"},{"id":"configuration/configuring-metrics","path":"/docs/configuration/configuring-metrics","sidebar":"tutorialSidebar"},{"id":"configuration/configuring-rules","path":"/docs/configuration/configuring-rules","sidebar":"tutorialSidebar"},{"id":"configuration/excluding-code","path":"/docs/configuration/excluding-code","sidebar":"tutorialSidebar"},{"id":"configuration/presets","path":"/docs/configuration/presets","sidebar":"tutorialSidebar"},{"id":"core-concepts","path":"/docs/core-concepts","sidebar":"tutorialSidebar"},{"id":"getting-started","path":"/docs/getting-started","sidebar":"tutorialSidebar"},{"id":"metrics/cyclomatic-complexity","path":"/docs/metrics/cyclomatic-complexity","sidebar":"tutorialSidebar"},{"id":"metrics/halstead-volume","path":"/docs/metrics/halstead-volume","sidebar":"tutorialSidebar"},{"id":"metrics/lines-of-code","path":"/docs/metrics/lines-of-code","sidebar":"tutorialSidebar"},{"id":"metrics/maintainability-index","path":"/docs/metrics/maintainability-index","sidebar":"tutorialSidebar"},{"id":"metrics/maximum-nesting-level","path":"/docs/metrics/maximum-nesting-level","sidebar":"tutorialSidebar"},{"id":"metrics/metrics","path":"/docs/metrics/","sidebar":"tutorialSidebar"},{"id":"metrics/number-of-methods","path":"/docs/metrics/number-of-methods","sidebar":"tutorialSidebar"},{"id":"metrics/number-of-parameters","path":"/docs/metrics/number-of-parameters","sidebar":"tutorialSidebar"},{"id":"metrics/source-lines-of-code","path":"/docs/metrics/source-lines-of-code","sidebar":"tutorialSidebar"},{"id":"metrics/technical-debt","path":"/docs/metrics/technical-debt","sidebar":"tutorialSidebar"},{"id":"metrics/weight-of-class","path":"/docs/metrics/weight-of-class","sidebar":"tutorialSidebar"},{"id":"rules/dart/arguments-ordering","path":"/docs/rules/dart/arguments-ordering","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-banned-imports","path":"/docs/rules/dart/avoid-banned-imports","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-cascade-after-if-null","path":"/docs/rules/dart/avoid-cascade-after-if-null","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-collection-methods-with-unrelated-types","path":"/docs/rules/dart/avoid-collection-methods-with-unrelated-types","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-double-slash-imports","path":"/docs/rules/dart/avoid-double-slash-imports","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-duplicate-exports","path":"/docs/rules/dart/avoid-duplicate-exports","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-dynamic","path":"/docs/rules/dart/avoid-dynamic","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-global-state","path":"/docs/rules/dart/avoid-global-state","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-ignoring-return-values","path":"/docs/rules/dart/avoid-ignoring-return-values","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-late-keyword","path":"/docs/rules/dart/avoid-late-keyword","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-missing-enum-constant-in-map","path":"/docs/rules/dart/avoid-missing-enum-constant-in-map","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-nested-conditional-expressions","path":"/docs/rules/dart/avoid-nested-conditional-expressions","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-non-ascii-symbols","path":"/docs/rules/dart/avoid-non-ascii-symbols","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-non-null-assertion","path":"/docs/rules/dart/avoid-non-null-assertion","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-passing-async-when-sync-expected","path":"/docs/rules/dart/avoid-passing-async-when-sync-expected","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-redundant-async","path":"/docs/rules/dart/avoid-redundant-async","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-throw-in-catch-block","path":"/docs/rules/dart/avoid-throw-in-catch-block","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-top-level-members-in-tests","path":"/docs/rules/dart/avoid-top-level-members-in-tests","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-unnecessary-conditionals","path":"/docs/rules/dart/avoid-unnecessary-conditionals","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-unnecessary-type-assertions","path":"/docs/rules/dart/avoid-unnecessary-type-assertions","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-unnecessary-type-casts","path":"/docs/rules/dart/avoid-unnecessary-type-casts","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-unrelated-type-assertions","path":"/docs/rules/dart/avoid-unrelated-type-assertions","sidebar":"tutorialSidebar"},{"id":"rules/dart/avoid-unused-parameters","path":"/docs/rules/dart/avoid-unused-parameters","sidebar":"tutorialSidebar"},{"id":"rules/dart/ban-name","path":"/docs/rules/dart/ban-name","sidebar":"tutorialSidebar"},{"id":"rules/dart/binary-expression-operand-order","path":"/docs/rules/dart/binary-expression-operand-order","sidebar":"tutorialSidebar"},{"id":"rules/dart/dart","path":"/docs/rules/dart/","sidebar":"tutorialSidebar"},{"id":"rules/dart/double-literal-format","path":"/docs/rules/dart/double-literal-format","sidebar":"tutorialSidebar"},{"id":"rules/dart/format-comment","path":"/docs/rules/dart/format-comment","sidebar":"tutorialSidebar"},{"id":"rules/dart/list-all-equatable-fields","path":"/docs/rules/dart/list-all-equatable-fields","sidebar":"tutorialSidebar"},{"id":"rules/dart/member-ordering","path":"/docs/rules/dart/member-ordering","sidebar":"tutorialSidebar"},{"id":"rules/dart/missing-test-assertion","path":"/docs/rules/dart/missing-test-assertion","sidebar":"tutorialSidebar"},{"id":"rules/dart/newline-before-return","path":"/docs/rules/dart/newline-before-return","sidebar":"tutorialSidebar"},{"id":"rules/dart/no-boolean-literal-compare","path":"/docs/rules/dart/no-boolean-literal-compare","sidebar":"tutorialSidebar"},{"id":"rules/dart/no-empty-block","path":"/docs/rules/dart/no-empty-block","sidebar":"tutorialSidebar"},{"id":"rules/dart/no-equal-arguments","path":"/docs/rules/dart/no-equal-arguments","sidebar":"tutorialSidebar"},{"id":"rules/dart/no-equal-then-else","path":"/docs/rules/dart/no-equal-then-else","sidebar":"tutorialSidebar"},{"id":"rules/dart/no-magic-number","path":"/docs/rules/dart/no-magic-number","sidebar":"tutorialSidebar"},{"id":"rules/dart/no-object-declaration","path":"/docs/rules/dart/no-object-declaration","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-async-await","path":"/docs/rules/dart/prefer-async-await","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-commenting-analyzer-ignores","path":"/docs/rules/dart/prefer-commenting-analyzer-ignores","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-conditional-expressions","path":"/docs/rules/dart/prefer-conditional-expressions","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-correct-identifier-length","path":"/docs/rules/dart/prefer-correct-identifier-length","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-correct-test-file-name","path":"/docs/rules/dart/prefer-correct-test-file-name","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-correct-type-name","path":"/docs/rules/dart/prefer-correct-type-name","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-enums-by-name","path":"/docs/rules/dart/prefer-enums-by-name","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-first","path":"/docs/rules/dart/prefer-first","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-immediate-return","path":"/docs/rules/dart/prefer-immediate-return","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-iterable-of","path":"/docs/rules/dart/prefer-iterable-of","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-last","path":"/docs/rules/dart/prefer-last","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-match-file-name","path":"/docs/rules/dart/prefer-match-file-name","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-moving-to-variable","path":"/docs/rules/dart/prefer-moving-to-variable","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-static-class","path":"/docs/rules/dart/prefer-static-class","sidebar":"tutorialSidebar"},{"id":"rules/dart/prefer-trailing-comma","path":"/docs/rules/dart/prefer-trailing-comma","sidebar":"tutorialSidebar"},{"id":"rules/flame/avoid-creating-vector-in-update","path":"/docs/rules/flame/avoid-creating-vector-in-update","sidebar":"tutorialSidebar"},{"id":"rules/flame/avoid-initializing-in-on-mount","path":"/docs/rules/flame/avoid-initializing-in-on-mount","sidebar":"tutorialSidebar"},{"id":"rules/flame/avoid-redundant-async-on-load","path":"/docs/rules/flame/avoid-redundant-async-on-load","sidebar":"tutorialSidebar"},{"id":"rules/flame/flame","path":"/docs/rules/flame/","sidebar":"tutorialSidebar"},{"id":"rules/flutter/always-remove-listener","path":"/docs/rules/flutter/always-remove-listener","sidebar":"tutorialSidebar"},{"id":"rules/flutter/avoid-border-all","path":"/docs/rules/flutter/avoid-border-all","sidebar":"tutorialSidebar"},{"id":"rules/flutter/avoid-expanded-as-spacer","path":"/docs/rules/flutter/avoid-expanded-as-spacer","sidebar":"tutorialSidebar"},{"id":"rules/flutter/avoid-returning-widgets","path":"/docs/rules/flutter/avoid-returning-widgets","sidebar":"tutorialSidebar"},{"id":"rules/flutter/avoid-shrink-wrap-in-lists","path":"/docs/rules/flutter/avoid-shrink-wrap-in-lists","sidebar":"tutorialSidebar"},{"id":"rules/flutter/avoid-unnecessary-setstate","path":"/docs/rules/flutter/avoid-unnecessary-setstate","sidebar":"tutorialSidebar"},{"id":"rules/flutter/avoid-wrapping-in-padding","path":"/docs/rules/flutter/avoid-wrapping-in-padding","sidebar":"tutorialSidebar"},{"id":"rules/flutter/check-for-equals-in-render-object-setters","path":"/docs/rules/flutter/check-for-equals-in-render-object-setters","sidebar":"tutorialSidebar"},{"id":"rules/flutter/consistent-update-render-object","path":"/docs/rules/flutter/consistent-update-render-object","sidebar":"tutorialSidebar"},{"id":"rules/flutter/flutter","path":"/docs/rules/flutter/","sidebar":"tutorialSidebar"},{"id":"rules/flutter/prefer-const-border-radius","path":"/docs/rules/flutter/prefer-const-border-radius","sidebar":"tutorialSidebar"},{"id":"rules/flutter/prefer-correct-edge-insets-constructor","path":"/docs/rules/flutter/prefer-correct-edge-insets-constructor","sidebar":"tutorialSidebar"},{"id":"rules/flutter/prefer-extracting-callbacks","path":"/docs/rules/flutter/prefer-extracting-callbacks","sidebar":"tutorialSidebar"},{"id":"rules/flutter/prefer-single-widget-per-file","path":"/docs/rules/flutter/prefer-single-widget-per-file","sidebar":"tutorialSidebar"},{"id":"rules/flutter/prefer-using-list-view","path":"/docs/rules/flutter/prefer-using-list-view","sidebar":"tutorialSidebar"},{"id":"rules/flutter/use-setstate-synchronously","path":"/docs/rules/flutter/use-setstate-synchronously","sidebar":"tutorialSidebar"},{"id":"rules/intl/intl","path":"/docs/rules/intl/","sidebar":"tutorialSidebar"},{"id":"rules/intl/prefer-intl-name","path":"/docs/rules/intl/prefer-intl-name","sidebar":"tutorialSidebar"},{"id":"rules/intl/prefer-provide-intl-description","path":"/docs/rules/intl/prefer-provide-intl-description","sidebar":"tutorialSidebar"},{"id":"rules/rules","path":"/docs/rules/","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/getting-started","label":"getting-started"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en","es"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"},"es":{"label":"Espa\xf1ol","direction":"ltr","htmlLang":"es","calendar":"gregory","path":"es"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.3","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.3"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.3"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.3"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.3"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.3"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.3"}}}'),c={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},u=r.createContext(c);function d(e){let{children:t}=e;return r.createElement(u.Provider,{value:c},t)}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(412),o=n(5742),i=n(8780),l=n(7452);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(c,{error:t}))}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function u(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(u,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7462),a=n(7294),o=n(3727),i=n(8780),l=n(2263),s=n(3919),c=n(412);const u=a.createContext({collectLink:()=>{}});var d=n(4996);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),S=(0,a.useContext)(u),E=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>E.current));const x=f||p;const _=(0,s.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const L=(0,a.useRef)(!1),R=n?o.OL:o.rU,P=c.Z.canUseIntersectionObserver,N=(0,a.useRef)(),O=()=>{L.current||null==T||(window.docusaurus.preload(T),L.current=!0)};(0,a.useEffect)((()=>(!P&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{P&&N.current&&N.current.disconnect()})),[N,T,P,_]);const I=T?.startsWith("#")??!1,D=!T||!_||I;return D||g||S.collectLink(T),D?a.createElement("a",(0,r.Z)({ref:E,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):a.createElement(R,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{E.current=e,P&&e&&_&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),N.current.observe(e))},to:T},n&&{isActive:h,activeClassName:m}))}const p=a.forwardRef(f)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>p,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>f,yW:()=>g,gB:()=>h});var r=n(6550),a=n(2263),o=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function c(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},d=()=>i("docusaurus-plugin-content-docs")??u,f=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function h(e){return f(e).versions}function g(e){const t=f(e);return l(t)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return c(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},7452:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Rt});var r=n(7294),a=n(6010),o=n(4763),i=n(833),l=n(7462),s=n(6550),c=n(5999),u=n(5936);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,c.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=p();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(5281),b=n(9727);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:v.skipToContent})}var w=n(6668),k=n(9689);function S(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const E={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,c.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",E.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var L=n(3163),R=n(2466);var P=n(902),N=n(3102);const O=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,N.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(O.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(O);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,N.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function B(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var F=n(2949),j=n(2389);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,j.Z)(),s=(0,c.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,c.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,c.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,F.I)();return a?null:r.createElement(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(1327);function W(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,c.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function Y(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(W,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(K,null))}var Q=n(9960),X=n(4996),J=n(3919),ee=n(8022),te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:c,prependBaseUrlToHref:u,...d}=e;const f=(0,X.Z)(a),p=(0,X.Z)(t),m=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,c&&{width:12,height:12}))};return o?r.createElement(Q.Z,(0,l.Z)({href:u?m:o},d,g)):r.createElement(Q.Z,(0,l.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(6043),le=n(8596),se=n(2263);function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const c=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{c.current&&!c.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[c]),r.createElement("div",{ref:c,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":u,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...c}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},c,{onClick:e=>{e.preventDefault(),p()}}),c.children??c.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(qe,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function fe(e){let{mobile:t=!1,...n}=e;const a=t?de:ue;return r.createElement(a,n)}var pe=n(4711);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he="iconLanguage_nlXk";function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ee="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Se(e,ve),i=a.buttonText,l=void 0===i?"Search":i,s=a.buttonAriaLabel,c=void 0===s?"Search":s,u=we((0,r.useState)(null),2),d=u[0],f=u[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(Ee))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Ee?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),_e=n(5742),Ce=n(6177),Te=n(239),Ae=n(3320);var Le=n(3935);const Re={button:{buttonText:(0,c.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,c.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,c.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,c.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,c.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,c.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,c.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,c.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,c.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,c.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,c.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,c.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,c.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,c.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,c.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,c.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,c.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,c.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,c.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,c.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,c.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,c.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,c.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,c.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,c.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,c.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,c.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Pe=null;function Ne(e){let{hit:t,children:n}=e;return r.createElement(Q.Z,{to:t.url},n)}function Oe(e){let{state:t,onClose:n}=e;const a=(0,Ce.M)();return r.createElement(Q.Z,{to:a(t.query),onClick:n},r.createElement(c.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,se.Z)(),c=(0,Te.l)(),u=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],f=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(u,d):d,p={...o.searchParameters,facetFilters:f},m=(0,s.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Pe?Promise.resolve():Promise.all([n.e(1426).then(n.bind(n,1426)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(8894)]).then(n.bind(n,8894))]).then((e=>{let[{DocSearchModal:t}]=e;Pe=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),E=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),x=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:c(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>r.createElement(Oe,(0,l.Z)({},e,{onClose:E}))),[E]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:S,onClose:E,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(_e.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:Re.button}),b&&Pe&&h.current&&(0,Le.createPortal)(r.createElement(Pe,(0,l.Z)({onClose:E,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:C,hitComponent:Ne,transformSearchClient:A},o.searchPagePath&&{resultsFooterComponent:T},o,{searchParameters:p,placeholder:Re.placeholder,translations:Re.modal})),h.current))}function De(){const{siteConfig:e}=(0,se.Z)();return r.createElement(Ie,e.themeConfig.algolia)}const Me={searchBox:"searchBox_ZlJk"};function Be(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Me.searchBox)},t)}var Fe=n(143),je=n(3438);var ze=n(373);const Ue=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,se.Z)(),f=(0,pe.l)(),{search:p,hash:m}=(0,s.TH)(),h=[...n,...u.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,c.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(fe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Be,{className:n},r.createElement(De,null))},dropdown:fe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Fe.Iw)(a),s=(0,je.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Fe.Iw)(a),s=(0,je.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,je.lO)(a)[0],s=t??i.label,c=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...u}=e;const{search:d,hash:f}=(0,s.TH)(),p=(0,Fe.Iw)(n),m=(0,Fe.gB)(n),{savePreferredVersionName:h}=(0,ze.J)(n),g=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??Ue(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],b=(0,je.lO)(n)[0],v=t&&g.length>1?(0,c.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:Ue(b).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},u,{mobile:t,label:v,to:y,isActive:a?()=>!1:void 0})):r.createElement(fe,(0,l.Z)({},u,{mobile:t,label:v,to:y,items:g,isActive:a?()=>!1:void 0}))}};function qe(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=$e[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function He(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(qe,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ge(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(c.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ze(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(Ge,{onClick:()=>t.hide()}),t.content)}function Ve(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(B,{header:r.createElement(Y,null),primaryMenu:r.createElement(He,null),secondaryMenu:r.createElement(Ze,null)}):null}const We={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ke(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Ye(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+c{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,c.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[We.navbarHideable,!s&&We.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(Ke,{onClick:i.toggle}),r.createElement(Ve,null))}var Qe=n(8780);const Xe={errorBoundaryError:"errorBoundaryError_a6uf"};function Je(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(c.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function et(e){let{error:t}=e;const n=(0,Qe.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Xe.errorBoundaryError},n)}class tt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const nt="right";function rt(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function at(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,c.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(rt,null))}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(tt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(qe,e)))))}function lt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function st(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(lt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(at,null),r.createElement(W,null),r.createElement(it,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(it,{items:a}),r.createElement(Z,{className:ot.colorModeToggle}),!o&&r.createElement(Be,null,r.createElement(De,null)))})}function ct(){return r.createElement(Ye,null,r.createElement(st,null))}function ut(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,c=(0,X.Z)(n),u=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Q.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?u:a}:{to:c},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function dt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(ut,{item:t}))}function ft(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(dt,{key:t,item:e})))))}function pt(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(ft,{key:t,column:e}))))}function mt(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function ht(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(ut,{item:t})}function gt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(ht,{item:e}),t.length!==n+1&&r.createElement(mt,null))))))}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(pt,{columns:t}):r.createElement(gt,{links:t})}var vt=n(941);const yt={footerLogoLink:"footerLogoLink_BH7S"};function wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(vt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function kt(e){let{logo:t}=e;return t.href?r.createElement(Q.Z,{href:t.href,className:yt.footerLogoLink,target:t.target},r.createElement(wt,{logo:t})):r.createElement(wt,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Et(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function xt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(Et,{style:o,links:n&&n.length>0&&r.createElement(bt,{links:n}),logo:a&&r.createElement(kt,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const _t=r.memo(xt),Ct=(0,P.Qc)([F.S,k.pl,R.OC,ze.L5,i.VC,function(e){let{children:t}=e;return r.createElement(N.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function Tt(e){let{children:t}=e;return r.createElement(Ct,null,t)}function At(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(c.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Je,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(et,{error:t})))))}const Lt={mainWrapper:"mainWrapper_z2l0"};function Rt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:c}=e;return(0,b.t)(),r.createElement(Tt,null,r.createElement(i.d,{title:s,description:c}),r.createElement(y,null),r.createElement(A,null),r.createElement(ct,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Lt.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(At,e)},t)),!n&&r.createElement(_t,null))}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(9960),i=n(4996),l=n(2263),s=n(6668),c=n(941);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(c.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:c}}=(0,s.L)(),{imageClassName:d,titleClassName:f,...p}=e,m=(0,i.Z)(c?.href||"/"),h=n?"":t,g=c?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},p,c?.target&&{target:c.target}),c&&a.createElement(u,{logo:c,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:f},n))}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(5742);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7462),a=n(7294),o=n(6010),i=n(2389),l=n(2949);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function c(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:c,className:u,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:c[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],u)},f)))))}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>s,z:()=>g});var r=n(7462),a=n(7294),o=n(412),i=n(1442);const l="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const c={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?c:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??l}`,height:`${t}px`}}function s(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return d(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!o.Z.canUseDOM)return e?c:u}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const c=(0,a.useRef)(null);return f({collapsibleRef:c,collapsed:n,animation:o}),a.createElement(t,{ref:c,style:s?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(c.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(7294),a=n(2389),o=n(12),i=n(902),l=n(6668);const s=(0,o.WA)("docusaurus.announcement.dismiss"),c=(0,o.WA)("docusaurus.announcement.id"),u=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&u()));(0,r.useEffect)((()=>{o(u())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&d(!1),!r&&u()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(412),o=n(902),i=n(12),l=n(6668);const s=r.createContext(void 0),c="theme",u=(0,i.WA)(c),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{u.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&u.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),u.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=u.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>g,Oh:()=>y});var r=n(7294),a=n(143),o=n(9935),i=n(6668),l=n(3438),s=n(902),c=n(12);const u=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,c.WA)(u(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(u(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(u(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a._r)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(902);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},3163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(7294),a=n(3102),o=n(7524),i=n(1980),l=n(6668),s=n(902);const c=r.createContext(void 0);function u(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,c]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:s})),[e,n,u,s])}function d(e){let{children:t}=e;const n=u();return r.createElement(c.Provider,{value:n},t)}function f(){const e=r.useContext(c);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(902);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},6177:(e,t,n)=>{"use strict";n.d(t,{K:()=>l,M:()=>s});var r=n(7294),a=n(2263),o=n(1980);const i="q";function l(){return(0,o.Nc)(i)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>c});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function c(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3438:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>f,_F:()=>h,cE:()=>d,hI:()=>k,lO:()=>v,oz:()=>y,s1:()=>b,vY:()=>w});var r=n(7294),a=n(6550),o=n(8790),i=n(143),l=n(373),s=n(1116),c=n(7392),u=n(8596);const d=!!i._r;function f(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=f(t);if(e)return e}}}const p=(e,t)=>void 0!==e&&(0,u.Mg)(e,t),m=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?p(e.href,t):"category"===e.type&&(p(e.href,t)||m(e.items,t))}function g(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,u.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,u.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function b(){const e=(0,s.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?g({sidebarItems:e.items,pathname:t}):null}function v(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>(0,c.j)([t,n,a].filter(Boolean))),[t,n,a])}function y(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function w(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,c.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function k(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,c=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:c}}},2128:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(2263);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},1980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>c,Rb:()=>l,_X:()=>s});var r=n(7294),a=n(6550),o=n(1688),i=n(902);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function c(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},7392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function a(e){return Array.from(new Set(e))}n.d(t,{j:()=>a,l:()=>r})},833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>u,VC:()=>p});var r=n(7294),a=n(6010),o=n(5742),i=n(226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(4996),c=n(2128);function u(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const u=(0,c.p)(t),{withBaseUrl:d}=(0,s.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>c,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},8022:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>s,RF:()=>d,o5:()=>f});var r=n(7294),a=n(412),o=n(2389),i=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function c(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const u=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),a=(0,r.useRef)(u()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=c(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),a=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:a}}function p(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(143),a=n(2263),o=n(373);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,o.Oh)();const c=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:c}}},12:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>u});var r=n(7294),a=n(1688);const o="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function l(e){if(void 0===e&&(e=o),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const c={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=l(t?.persistence);return null===n?c:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?c:u(e,t))).current(),o=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,a.useSyncExternalStore)(o,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2263),a=n(6550),o=n(8780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.Z)(),{pathname:s}=(0,a.TH)(),c=(0,o.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),u=l===i?e:e.replace(`/${l}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},6278:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},239:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(7294),a=n(8022),o=n(4996),i=n(6278);function l(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>p,PP:()=>A,Ep:()=>f});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,h(),w.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,o,i,l],u=0;(s=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),c=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function c(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=f(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,E="?"===y||"*"===y,x=n[2]||u,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:E,repeat:S,partial:k,asterisk:!!w,pattern:_?c(_):w?".*":"[^"+s(x)+"]+?"})}}return i{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);E+=S.value.length,S=S.next){var x=S.value;if(t.length>e.length)return;if(!(x instanceof a)){var _,C=1;if(v){if(!(_=o(k,E,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,L=E;for(L+=S.value.length;T>=L;)L+=(S=S.next).value.length;if(E=L-=S.value.length,S.value instanceof a)continue;for(var R=S;R!==t.tail&&(Ld.reach&&(d.reach=I);var D=S.prev;if(N&&(D=s(t,D,N),E+=N.length),c(t,D,C),S=s(t,D,new a(f,g?r.tokenize(P,g):P,y,P)),O&&s(t,S,O),C>1){var M={cause:f+","+m,reach:I};i(e,t,n,S.prev,E,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function c(e,t,n){for(var r=t.next,a=0;a"+o.content+""},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s=0&&p(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function c(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function u(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,u={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return u[n]=a,n})).join(""),n,r),f=Object.keys(u);return i=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=c(u[a]),p=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=o.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[a],d=n.tokenStack[u],f="string"==typeof c?c:c.content,p=t(r,u),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=f.substring(m+p.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof c?l.splice.apply(l,[s,1].concat(v)):c.content=v}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var l={},s=e[r];if(s){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,c),t(s.optional,c),t(s.modify,c)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(c),l=(l||[]).map(c);var u=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var f,p=r(s),m=u;a(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in p(b))if(v in u){f[b]=!0;break}for(var y in m=f)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function c(e){if(e in l)return l[e];s[e]=!0;var a,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)a=r(e);else{var f=i(u.map((function(e){var t=c(e);return delete s[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var u in n)c(u);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,u,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n