web-dev-qa-db-fra.com

Déplacement et disparition de lignes de code; problème avec l'éditeur XML d'Eclipse

Parfois, mon code se déplace seul ou disparaît simplement dans l'éditeur XML Eclipse.

Yikes!

Lorsque je sélectionne le code affecté, les lignes en surbrillance tentent de se corriger. Mais lorsque je fais défiler ou faites glisser la souris dans la direction opposée, le code change à nouveau. Essentiellement, je vais répéter, manquant, et des lignes de code brisées affichées à partir d'un fichier sans erreur. Les fichiers affectés do compilent et si je les ferme/rouvre, ce problème disparaît, pour le moment. Des idées sur ce qui se passe?


Ajout: Jeff Axelrod a fourni un lien vers un nouveau rapport de bogue avec Google.

94
Sam

Ce bug est (enfin) corrigé dans ADT 21. Le correctif est maintenant disponible dans ADT 21 Preview 9, publié il y a quelques minutes, ici: https://Android-review.googlesource.com/#/c/ 44936/1

La raison pour laquelle vous obtenez des artefacts visuels étranges est que si un fichier contient des fins de ligne DOS cassées (plusieurs retours chariot sans retour à la ligne pour chaque retour chariot), Eclipse devient très confus. C'est le problème d'Eclipse https://bugs.Eclipse.org/bugs/show_bug.cgi?id=375421 .

Le correctif comporte deux parties: (1) Tout d'abord, ADT a été corrigé de sorte qu'il n'introduit plus ces séquences\r\r dans le document. Cela garantit que vous n'obtenez pas de nouveaux documents qui déclenchent le comportement d'édition étrange, mais cela ne corrige pas rétroactivement les documents plus anciens avec ces fins de ligne, donc si vous les ouvrez, vous obtenez toujours un comportement d'édition étrange.

(2) Deuxièmement, il y a une nouvelle vérification des peluches qui recherche les fins de ligne brisée dans les documents. Cela s'exécute de manière incrémentielle, donc si vous modifiez un fichier XML qui a ce problème, ADT ajoutera un marqueur d'erreur pour ce problème - avec un quickfix pour effectuer une intervention chirurgicale sur le document pour le résoudre.

En bref: Obtenez ADT 21 Preview 9; exécutez Lint sur vos projets et recherchez les plaintes concernant les fichiers contenant des fins de ligne brisée, et s'il en trouve, appliquez le quickfix. Désormais, les modifications ultérieures avec l'éditeur de mise en page devraient conserver les fichiers mis en forme de manière cohérente.

Pour info, le correctif pertinent est ici: https://Android-review.googlesource.com/#/c/44936/

Les instructions pour mettre à jour facilement les outils SDK et le plugin Eclipse ADT sont ici: http://tools.Android.com/preview-channel

- Tor (de la Android)

32
Tor Norbye

Après quelques tests, j'ai constaté que l'option "Formater automatiquement le XML édité par l'éditeur de présentation visuelle" (dans Préférences | Android | Éditeurs) pourrait être le coupable ici.

Avec mes tests, j'ai constaté que la modification d'une propriété (telle que la disposition_gravité) en mode de conception de mise en page graphique bousille toujours l'affichage visuel du fichier lorsque je reviens au mode XML (texte) lorsque cette option est activée mais que je n'ai aucun problème quand c'est éteint.

Si vous souhaitez formater le XML à votre retour du mode de conception de présentation graphique, utilisez simplement le raccourci Ctrl+Shift+F. De plus, je n'ai vu aucun problème avec l'option "Formater lors de l'enregistrement"; même lorsque je l'utilise en mode Disposition graphique; afin que vous puissiez utiliser Ctrl+S à la place, alors que vous êtes toujours en mode de présentation graphique pour enregistrer et formater votre XML.

J'ai essayé d'autres options d'édition comme "Afficher l'indicateur de plage" ou "Utiliser les caractères pour afficher les changements dans la règle verticale" mais je n'ai vu aucune différence de comportement avec l'activation ou la désactivation de ces options.

Enfin, pour corriger l'affichage visuel du fichier lorsqu'il est corrompu; J'ai trouvé qu'en utilisant le raccourci: Ctrl+ACtrl+CCtrl+V est un peu plus facile que de fermer/rouvrir le fichier. Cela équivaut à faire un Tout sélectionner, Copier, Coller; copier efficacement l'intégralité du fichier XML sur lui-même.

32
SylvainL

EDIT: contient une méthode plus rapide, elle a donc été mise au premier plan:

Ctrl+F -> remplissez comme ça:

  1. "Rechercher" "\ r\r\n"
  2. "Remplacer" "\ r\n"
  3. Basculez "Expression régulière" sur SUR
  4. appuyez sur le bouton "Remplacer tout"
  5. Ctrl+A
  6. désélectionnez le texte.
  7. être heureux =)

L'original était ici: Ne cachez pas ce problème, si vous le corrigez. Parfois, même la fermeture du fichier XML n'a pas aidé.

Pour le réparer, regardons la raison. Tout d'abord, activez "Afficher les caractères d'espacement" ( Fenêtre> Préférences> Général> Éditeurs> Éditeurs de texte> Afficher les caractères d'espacement )

Revenez ensuite à votre fichier XML.

enter image description here

Dans l'image mise à l'échelle, vous pouvez voir la différence des couleurs du symbole "\ n";

puis placez simplement le curseur sur ce symbole, qui est plus sombre.
enter image description here

regardez, deux lignes ont été sélectionnées 0o ... c'est peut-être la raison!

il suffit donc de le supprimer et d'appuyer sur le bouton "Entrée" ou "Retour" pour ajouter le symbole "\ n". enter image description here
J'espère que cela vous aidera.


vous pouvez également trouver l'autre symbole de fin:
enter image description here


Supprimez-le aussi, et votre XML aura une belle apparence!

P.S. désolé pour les hyperliens, je suis novice et sur SO je ne peux pas télécharger d'image ou plus de 2 liens. alors j'espère que vous obtiendrez le point sans images supplémentaires;)

P.P.S. Merci au gars qui vote, maintenant je peux lui fournir des images.

12
Dvide Leprechaun

Je rencontre toujours ce bogue sur Juno (Eclipse 4.2.0, ADT r20).

Ma solution: allez dans Fenêtre -> Préférences -> Android -> Editeurs. J'ai les deux "Format XML en utilisant le standard Android XML. .. " et " Utiliser les paramètres Eclipse pour l'indentation .... " vérifié. Cela a résolu le problème pour moi.

12
Vaiden

J'ai eu la même difficulté et j'ai finalement trouvé la solution: faites un clic droit dans l'éditeur, sélectionnez Source/Cleanup Document.

4
pcs

Lorsque ce bogue apparaît avec nouvelles versions d'ADT (qui sont obligatoires pour la correction et où le bogue ne devrait pas apparaître souvent), utilisez simplement l'outil Lint pour le corriger.

Trouvez-le dans les avertissements Lint et cliquez sur l'icône ampoule jaune dans le coin supérieur droit de la liste des avertissements Lint.

J'espère que cela aidera quelqu'un

0
Ewoks

J'ai eu le même problème. Les étapes suivantes ont été la solution. Link suggère que cela fonctionne pour les autres.

  1. Allez dans Préférences -> clés
  2. Dissociez les copier, coller et couper (cliquez sur "Appliquer", puis sur "OK")
  3. répéter l'étape 1
  4. Restaurer les commandes indépendantes de l'étape 2 (je n'ai pas restauré la coupe, mais je suis sûr que vous iriez bien)

Notez qu'il y a 2 liaisons pour chacune des 3 commandes

  1. Délier la fonction secondaire pour copier et coller (laisser ctl + c/ctl + v [copier/coller] lié)

À ce stade, vous ne devriez avoir que 2 liaisons définies pour effectuer le copier/coller (c'est-à-dire, ctl + c/ctl + v)

  1. Appuyez sur Appliquer -> OK

Cette solution a été trouvée ici .

0
Stephen