harmony-arkts — правило для Cursor: что делает и как установить
Правило задаёт практики для HarmonyOS ArkTS: компоненты, состояние, ресурсы, разметка, жизненный цикл и доступность. Подходит для проектов с файлами .ets.
.cursor/rules/harmony-arkts.mdcЧто делает harmony-arkts
Правило помогает держать ArkUI-код в предсказуемой структуре. Оно задаёт размещение состояния и хуков жизненного цикла, рекомендует выносить сложный интерфейс в компоненты и оставлять build() для композиции UI. Для обмена данными используются @Prop, @Link и @State по назначению.
Отдельные рекомендации посвящены Column, Row, Stack и List, группировке свойств разметки, ресурсам через $r() и обработчикам событий. Также правило напоминает об обработке ошибок, доступных подписях, фокусе, контрасте и проверке разных размеров экранов.
В Cursor файл подключается через .cursor/rules/harmony-arkts.mdc. Правило не применяется всегда: его область задают шаблоны для **/*.ets, **/*.ts, **/*.json5, AppScope/**/* и entry/src/main/**/*, поэтому код за их пределами оно не охватывает.
Какие задачи решает
- структурировать ArkUI-компоненты
- развести состояние и входные данные
- вынести повторяющиеся значения в ресурсы
- проверить доступность интерактивных элементов
- убрать бизнес-логику из
build()
Примеры запросов агенту
- Проверь компонент в
entry/src/mainпо правилам HarmonyOS ArkTS. - Раздели состояние и входные данные в этом
.ets-файле, используя подходящие декораторы. - Перепиши разметку так, чтобы повторяющиеся цвета и размеры брались через
$r().
Как установить harmony-arkts
Вручную: положить файлы
.cursor/rules/harmony-arkts.mdcВо frontmatter: description, globs, alwaysApply
Вручную: положить файлы
.claude/rules/harmony-arkts.mdПоле paths во frontmatter ограничивает файлы: globs из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.github/instructions/harmony-arkts.instructions.mdПоле applyTo задаёт, к каким файлам применять: globs из источника → applyTo
Вручную: положить файлы
.devin/rules/harmony-arkts.mdВручную: положить файлы
.clinerules/harmony-arkts.mdПо шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules
Вопросы о harmony-arkts
Как установить harmony-arkts в Cursor?
Скопируйте правило в файл .cursor/rules/harmony-arkts.mdc в проекте, убрав пробел внутри обратных кавычек.
Что делает harmony-arkts?
Правило задаёт рекомендации для структуры компонентов, состояния, разметки, событий, ресурсов, жизненного цикла и доступности в HarmonyOS ArkTS.
Какие файлы проверяет harmony-arkts?
Оно рассчитано на **/*.ets, **/*.ts, **/*.json5, AppScope/**/* и entry/src/main/**/*. Правило настроено без постоянного применения.
Исходный текст
harmony-arkts.mdc · CC0-1.0
--- description: HarmonyOS ArkTS rules for components, state, resources, layout, lifecycle, and accessibility globs: ["**/*.ets", "**/*.ts", "**/*.json5", "AppScope/**/*", "entry/src/main/**/*"] alwaysApply: false --- # HarmonyOS ArkTS Rules ## Component Structure - Use `@Component` for component definitions and PascalCase for component structs. - Keep state declarations near the top of the component. - Group lifecycle hooks before `build()`. - Place `build()` last and keep it focused on UI composition. - Extract complex UI into smaller components. ## State and Data Flow - Use `@State` for component-owned state. - Use `@Prop` for parent-to-child data. - Use `@Link` only for intentional two-way binding. - Keep derived values in methods or computed helpers rather than duplicating state. - Avoid broad global state unless the project has an established app-state pattern. ## Layout and Styling - Use `Column`, `Row`, `Stack`, `List`, and other ArkUI primitives intentionally. - Keep layout properties such as width, height, alignment, and layout weight grouped before visual properties. - Use object notation for margin and padding when sides differ. - Use logical pixels consistently. - Use percentage strings for relative sizes. - Keep reusable spacing, colors, and typography in resources when the project supports it. ## Events and Lifecycle - Use arrow functions for event handlers. - Keep event handlers short and delegate complex logic to methods. - Handle async failures explicitly and surface user-facing errors where appropriate. - Use lifecycle hooks for setup and teardown that genuinely depends on component lifecycle. ## Resources and Accessibility - Use `$r()` for app resources. - Group resource references consistently. - Add descriptive labels and focus handling for interactive elements. - Maintain color contrast and touch target size. - Test on representative device sizes and orientations. ## Common Mistakes - Do not bury business logic in `build()`. - Do not use two-way binding when one-way props are enough. - Do not hardcode repeated strings, colors, and dimensions that belong in resources. - Do not leave debug `console.log` calls in production code.
© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules