| <!-- | |
| Copyright 2025 The Flutter Authors | |
| Use of this source code is governed by a BSD-style license that can be | |
| found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd. | |
| --> | |
| # DevTools style guide | |
| We fully follow [Effective Dart](https://dart.dev/effective-dart) | |
| and certain guidelines from the | |
| [Flutter repository style guide](https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md): | |
| ## Order of getters and setters | |
| When an object owns and exposes a (listenable) value | |
| that is more complex than a simple public field, | |
| we always declare the related class members in the same order, | |
| without new lines separating the members, | |
| in compliance with | |
| [Flutter repo style guide](https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md#order-other-class-members-in-a-way-that-makes-sense): | |
| 1. Public getter | |
| 2. Private field | |
| 3. Public setter (when needed) | |
| ## Naming for typedefs and function variables | |
| Follow [Flutter repo naming rules for typedefs and function variables](https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md#naming-rules-for-typedefs-and-function-variables). | |
| ## Overriding equality | |
| Use [boilerplate](https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md#common-boilerplates-for-operator--and-hashcode). | |
| ## URIs and File Paths | |
| Care should be taken when using file paths to ensure compatibility with both | |
| Windows and POSIX style paths. File URIs should generally be preferred and only | |
| converted to paths when required to interact with the file system. | |
| `String` variables that hold paths or URIs should be named explicitly with a | |
| `Path` or `Uri` suffix, such as `appRootPath` or `appRootUri`. | |
| Additionally: | |
| - `Uri.parse()` should not be used for converting file paths to URIs; instead, | |
| `Uri.file()` should be used. | |
| - `Uri.path` should not be used for extracting a file path from a URI; instead, | |
| `uri.toFilePath()` should be used. | |
| - In code compiled to run in the browser, `Uri.file()` and `uri.toFilePath()` | |
| will assume POSIX-style paths even on Windows, so care should be taken to | |
| handle these correctly (if possible, avoid converting between URIs and file | |
| paths in code running in a browser) | |
| ## Text styles | |
| The default text style for DevTools is `Theme.of(context).regularTextStyle`. The default | |
| value for `Theme.of(context).bodyMedium` is equivalent to `Theme.of(context).regularTextStyle`. | |
| When creating a `Text` widget, this is the default style that will be applied. |