first commit
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
---
|
||||
name: dart-best-practices
|
||||
description: |-
|
||||
General best practices for Dart development.
|
||||
Covers code style, effective Dart, and language features.
|
||||
license: Apache-2.0
|
||||
---
|
||||
|
||||
# Dart Best Practices
|
||||
|
||||
## 1. When to use this skill
|
||||
Use this skill when:
|
||||
- Writing or reviewing Dart code.
|
||||
- Looking for guidance on idiomatic Dart usage.
|
||||
|
||||
## 2. Best Practices
|
||||
|
||||
### Multi-line Strings
|
||||
Prefer using multi-line strings (`'''`) over concatenating strings with `+` and
|
||||
`\n`, especially for large blocks of text like SQL queries, HTML, or
|
||||
PEM-encoded keys. This improves readability and avoids
|
||||
`lines_longer_than_80_chars` lint errors by allowing natural line breaks.
|
||||
|
||||
**Avoid:**
|
||||
```dart
|
||||
final pem = '-----BEGIN RSA PRIVATE KEY-----\n' +
|
||||
base64Encode(fullBytes) +
|
||||
'\n-----END RSA PRIVATE KEY-----';
|
||||
```
|
||||
|
||||
**Prefer:**
|
||||
```dart
|
||||
final pem = '''
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
${base64Encode(fullBytes)}
|
||||
-----END RSA PRIVATE KEY-----''';
|
||||
```
|
||||
|
||||
### Line Length
|
||||
Avoid lines longer than 80 characters, even in Markdown files and comments.
|
||||
This ensures code is readable in split-screen views and on smaller screens
|
||||
without horizontal scrolling.
|
||||
|
||||
**Prefer:**
|
||||
Target 80 characters for wrapping text. Exceptions are allowed for long URLs
|
||||
or identifiers that cannot be broken.
|
||||
|
||||
## Discovery
|
||||
|
||||
### Multi-line Strings
|
||||
To find candidates for multi-line strings, search for string concatenation
|
||||
with `+` involving newlines:
|
||||
- **Regex**: `['"]\s*\+\s*['"]`
|
||||
- **Regex**: `\+\s*['"].*\\n`
|
||||
|
||||
### Line Length
|
||||
- Rely on the `lines_longer_than_80_chars` lint from the analyzer.
|
||||
|
||||
## Related Skills
|
||||
|
||||
- **[dart-modern-features]**: For idiomatic
|
||||
usage of modern Dart features like Pattern Matching (useful for deep JSON
|
||||
extraction), Records, and Switch Expressions.
|
||||
|
||||
[dart-modern-features]: https://github.com/kevmoo/dash_skills/blob/main/.agent/skills/dart-modern-features/SKILL.md
|
||||
Reference in New Issue
Block a user