Annotations de commentaires
Vize fournit des annotations basées sur des commentaires pour contrôler le linting, les diagnostics et le comportement du codegen. Il existe deux systèmes d’annotation selon leur lieu d’utilisation :
<!-- @vize:xxx -->— Commentaires HTML en<template>(directives Patina linter)// @vize forget: reason— Commentaires JS dans<script>(suppression d’analyse croisée de fichiers)
Toutes @vize: directives modèles sont retirées de la sortie de compilation — elles n’apparaissent jamais dans le code de production.
Directives modèles (@vize:)
Utilisé à l’intérieur <template> comme commentaires HTML. Celles-ci contrôlent le comportement de la patine (le linter intégré).
@vize:expected
Attendez-vous à un diagnostic sur la ligne suivante. Si aucun diagnostic n’est produit, c’est une opération interdite. Similaire à @ts-expect-error.
<template>
<ul>
<!-- @vize:expected -->
<li v-for="item in items">{{ item }}</li>
</ul>
</template>
@vize:ignore-start / @vize:ignore-end
Supprime tous les diagnostics dans une région.
<template>
<!-- @vize:ignore-start -->
<ul>
<li v-for="item in items">{{ item }}</li>
</ul>
<!-- @vize:ignore-end -->
</template>
@vize:level(warn|error|off)
Passer outre la gravité des diagnostics sur la ligne suivante.
<template>
<!-- @vize:level(warn) -->
<img src="/photo.png" />
<!-- @vize:level(off) -->
<li v-for="item in items">{{ item }}</li>
</template>
| Valeur | Effet |
|---|---|
warn |
Rétrogradation en avertissement |
error |
Passer à l’erreur |
off |
Supprimer complètement |
@vize:todo
Émettez un avertissement TO.
<template>
<!-- @vize:todo add loading state -->
<div>{{ data }}</div>
</template>
@vize:fixme
Affichez une erreur FIXME.
<template>
<!-- @vize:fixme broken on mobile -->
<div class="layout">...</div>
</template>
@vize:deprecated
Émettez un avertissement de dépréciation.
<template>
<!-- @vize:deprecated use NewComponent instead -->
<OldComponent />
</template>
@vize:docs
Commentaire sur la documentation. Aucun effet de charpie.
<template>
<!-- @vize:docs Primary action button for form submission -->
<button type="submit">Submit</button>
</template>
@vize:dev-only
Marquez un nœud à dépouiller dans les versions de production, gardé en développement.
<template>
<!-- @vize:dev-only -->
<div class="debug-panel">{{ internalState }}</div>
</template>
Résumé
| Directive | Effet | Gravité |
|---|---|---|
@vize:expected |
Attendez-vous à un diagnostic sur la ligne suivante | — |
@vize:ignore-start/end |
Supprimer tous les diagnostics dans la région | — |
@vize:level(...) |
Annuler la sévérité de la ligne suivante | — |
@vize:todo <msg> |
Émettre TODO | Avertissement |
@vize:fixme <msg> |
Émet FIXME | Erreur |
@vize:deprecated <msg> |
Émettre un avis de dépréciation | Avertissement |
@vize:docs <text> |
Documentation (sans effet de peluche) | — |
@vize:dev-only |
Bande dessinée en production | — |
Suppression de script (@vize forget)
Utilisé à l’intérieur <script> comme commentaire JS. Supprime les avertissements d’analyse croisée (Croquis) sur la ligne suivante.
Syntaxe
<script setup>
// @vize forget: <reason>
<suppressed line>
</script>
Une raison est nécessaire — vous devez expliquer pourquoi la suppression est nécessaire.
Exemple
<script setup>
import { inject } from "vue";
// @vize forget: intentionally destructuring for one-time read
const { count } = inject("state");
</script>
Sans cette annotation, Vize avertirait que déstructurer une valeur de retour de inject() réactive casse le suivi de la réactivité.
Règles
| Règne | Description |
|---|---|
| Raison requise | // @vize forget sans raison est une erreur |
| Côlon requis | Doit utiliser // @vize forget: <reason> (deux-points avant la raison) |
| Ligne suivante seulement | S’applique à la ligne suivante non commentée, non vide |
| Pas d’orphelins | Une suppression à la fin d’un fichier sans code après est une erreur |
Suppressions multiples
Chaque @vize forget s’applique indépendamment à la ligne de code suivante :
<script setup>
import { inject } from "vue";
// @vize forget: one-time read for display name
const { name } = inject("user");
// @vize forget: static config value
const { theme } = inject("config");
</script>
Passer les commentaires
La suppression vise la ligne de code suivante, en sautant les commentaires et les lignes blanches :
<script setup>
// @vize forget: read-only access
// This comment is skipped
const { count } = inject("state");
</script>
Raisons courantes
| Raison | Quand utiliser |
|---|---|
intentionally non-reactive |
La valeur n’a pas besoin d’être réactive |
read-only access |
Seulement la lecture, pas le suivi des changements |
legacy code |
Problème connu, je vais refactoriser plus tard |
third-party integration |
Exigé par une bibliothèque externe |
Exemples invalides
// @vize forget
const { count } = inject("state");
// ^ Error: requires a reason
// @vize forget because I said so
const { count } = inject("state");
// ^ Error: requires a colon before the reason
// @vize forget:
const { count } = inject("state");
// ^ Error: reason cannot be empty