2011-09-29 2 views
9

Je viens de réarranger un très gros fichier JavaScript. Je reçois maintenant "Fin d'entrée inattendue". Quelque part dans ces centaines de fonctions, on a perdu (ou gagné) une parenthèse. Quel est le moyen le plus rapide de le trouver?Parenthèses incompatibles: un moyen rapide de les trouver?

+0

"Fin inattendue de l'entrée" est presque certainement une parenthèse manquante, pas une supplémentaire. – cdeszaq

+2

Avez-vous un éditeur qui réduira les accolades, ou affichera visuellement leur portée dans la marge de gauche, ou aura une commande "aller à l'autre extrémité de la portée", ou aura une fenêtre séparée "plan"? –

+0

Merci. Je vais chercher un éditeur qui écrase les accolades. Je cherchais un surligneur et je n'avais pas pensé à m'effondrer. Merci. –

Répondre

12

Vous pouvez essayer d'analyser votre fichier avec les peluches: http://www.javascriptlint.com/online_lint.php

Si vous avez des problèmes avec la taille du fichier essayer de le diviser en plus petits ...

+1

pourquoi pas juste goto [jslint.com/](http://www.jslint.com/) – rlemon

+0

@RLEMON ils ont quelques différences mineures (jslint est en fait plus strict) mais pour repérer un support manquant, ils sont tous les deux bons. – mamoo

+0

Merci! C'est exactement ce que je cherchais! –

1

Reformatez le fichier à l'aide de quelque chose qui indent bien. Cherchez quelque chose qui est trop loin à gauche.

+0

Normalement je le ferais, mais j'utilise le "navigateur de code" de Marc Kerbiquet. C'est incroyablement utile pour organiser le code. Mais le seul inconvénient est que l'ajout de plus de retraits le rendrait beaucoup moins utile. Mais je vais certainement le faire dans des fichiers plus petits. –

+0

C'est toujours juste un fichier; le mettre dans un éditeur qui indenting. (Je veux dire, oui, jslint va bien aussi, juste sayin '.) –

0

Réduire l'imbrication des fonctions. Cela réduit la qualité du code (en termes de maintenance).

+0

Je suis tout à fait un newb - je ne savais pas que vous pourriez imbriquer des fonctions en JavaScript (dans ma dernière langue qui n'était pas possible.) Vous m'avez donné de mauvaises idées, merci! –

+2

Les fonctions imbriquées correctement améliorent la qualité du code, elles ne le réduisent pas. – nnnnnn

+0

Le mot-clé est "convenablement" trop souvent c'est paresseux, rapide et sale, la programmation. –

3

Une bonne astuce en cas d'absence d'accolade dans Eclipse consiste à accéder à l'accolade finale dans le module source et à double-cliquer dessus. Cela mettra en évidence tout le chemin vers ce qu'il pense est l'accolade ouverte correspondant. Là où il se remonte à, c'est invariablement le début du problème, alors passez l'accolade ouverte et passez à la suivante et commencez à double-cliquer sur les accolades ouvertes et vous trouverez généralement l'emplacement de l'accolade rapidement. J'ai appris cela à la dure avec un fichier de code source de plus de 20 000 lignes de code et d'obtenir des centaines d'erreurs sans la moindre indication que le vrai problème était que les erreurs ont commencé à apparaître des milliers de lignes plus tôt dans le code.

Questions connexes