CodeKitHub
Εργαλεία κειμένου

Έλεγχος Παρενθέσεων & Αγκυλών

Τελευταία ενημέρωση:

Επικολλήστε κώδικα ή κείμενο και το εργαλείο σαρώνει κάθε ζεύγος ( ) [ ] { }, αναφέροντας ακριβώς ποιες παρενθέσεις είναι ανοιχτές χωρίς κλείσιμο, χωρίς άνοιγμα, ή αταίριαστες — με τη γραμμή και τη στήλη κάθε προβλήματος.

Τι είναι αυτό το εργαλείο;

Ο έλεγχος παρενθέσεων σαρώνει το κείμενο χαρακτήρα προς χαρακτήρα, παρακολουθώντας κάθε παρένθεση ανοίγματος ( [ { σε μια στοίβα και αντιστοιχίζοντάς την με την επόμενη παρένθεση κλεισίματος ) ] } που συναντά. Αν μια παρένθεση κλεισίματος δεν ταιριάζει με την πιο πρόσφατη ανοιχτή παρένθεση, ή μια παρένθεση ανοίγματος δεν κλείνει ποτέ, ή εμφανιστεί μια παρένθεση κλεισίματος χωρίς τίποτα να κλείσει, αυτό επισημαίνεται ως πρόβλημα με την ακριβή του θέση.

Πρόκειται για έναν απλό έλεγχο σάρωσης, όχι έναν πλήρη αναλυτή γλώσσας (parser) — λειτουργεί το ίδιο ανεξάρτητα από το αν το επικολλημένο περιεχόμενο είναι JavaScript, Python, JSON ή απλό κείμενο, γεγονός που τον καθιστά χρήσιμο για οποιαδήποτε γλώσσα ή μορφή που χρησιμοποιεί παρενθέσεις.

Γιατί να το χρησιμοποιήσετε;

  • Αναφέρει την ακριβή γραμμή και στήλη κάθε ασύζευκτης ή αταίριαστης παρένθεσης.
  • Λειτουργεί σε οποιαδήποτε γλώσσα ή κείμενο — δεν είναι δεμένο σε συγκεκριμένη σύνταξη.
  • Διακρίνει τρία είδη προβλημάτων: μη κλεισμένη παρένθεση ανοίγματος, ασύζευκτη παρένθεση κλεισίματος και λάθος τύπο παρένθεσης.
  • Άμεση, τοπική επεξεργασία — τίποτα δεν αποστέλλεται σε server.
  • Δωρεάν, χωρίς εγγραφή, χωρίς όριο μεγέθους.

Πώς χρησιμοποιείται

  1. Επικολλήστε τον κώδικα ή το κείμενό σας στο πεδίο εισαγωγής.
  2. Κάντε κλικ στο Έλεγχος Παρενθέσεων.
  3. Δείτε τη λίστα προβλημάτων, καθένα με τη γραμμή και τη στήλη του, ή δείτε επιβεβαίωση ότι όλα ταιριάζουν.

Παράδειγμα

Είσοδος

function foo() {
  return [1, 2, (3];
}

Έξοδος

Λάθος τύπος παρένθεσης: ] στη γραμμή 2, στήλη 18· Λάθος τύπος παρένθεσης: } στη γραμμή 3, στήλη 1· Μη κλεισμένη παρένθεση ανοίγματος: { στη γραμμή 1, στήλη 17

Το ] στη γραμμή 2 έπρεπε να κλείσει το ( που άνοιξε στη στήλη 15, όχι το προηγούμενο [ — ακριβώς αυτό το είδος σφάλματος (μια παρένθεση κλεισίματος λάθος τύπου) είναι εύκολο να ξεφύγει από το μάτι σε ένα μεγάλο αρχείο.

Συνήθεις χρήσεις

  • Εντοπισμός σφάλματος "Unexpected token" ή "Unexpected end of input" σε JavaScript, JSON ή Python χωρίς να χρειάζεται προσεκτική επανάγνωση ολόκληρου του αρχείου.
  • Έλεγχος ενός χειρόγραφου αποσπάσματος JSON για ένα περιττό ή απόν άγκιστρο πριν το επικολλήσετε σε ένα αρχείο ρυθμίσεων.
  • Επαλήθευση εμφωλευμένων παρενθέσεων σε μια μεγάλη μαθηματική έκφραση ή τύπο.
  • Εντοπισμός μιας τυχαίας παρένθεσης που έμεινε από μια επεξεργασία αντιγραφής-επικόλλησης κατά τη διάρκεια code review.

Συχνές ερωτήσεις

Ελέγχει και εισαγωγικά ή ετικέτες, ή μόνο παρενθέσεις;

Μόνο τα τρία ζεύγη παρενθέσεων: στρογγυλές παρενθέσεις ( ), αγκύλες [ ] και άγκιστρα { }. Τα εισαγωγικά και οι ετικέτες HTML/XML δεν παρακολουθούνται.

Ποια είναι η διαφορά μεταξύ των τριών ειδών προβλημάτων;

"Μη κλεισμένη παρένθεση ανοίγματος" σημαίνει ότι μια παρένθεση ανοίγματος δεν έκλεισε ποτέ μέχρι το τέλος του κειμένου. "Ασύζευκτη παρένθεση κλεισίματος" σημαίνει ότι εμφανίστηκε μια παρένθεση κλεισίματος χωρίς αντίστοιχη παρένθεση ανοίγματος πριν από αυτήν. "Λάθος τύπος παρένθεσης" σημαίνει ότι εμφανίστηκε μια παρένθεση κλεισίματος, αλλά είναι λάθος τύπου για την πιο πρόσφατα ανοιγμένη παρένθεση — π.χ. κλείσιμο ενός [ με ένα ).

Καταλαβαίνει ότι οι παρενθέσεις μέσα σε ένα string ή σχόλιο δεν πρέπει να μετρούν;

Όχι — πρόκειται για απλή σάρωση χαρακτήρων, όχι για αναλυτή που κατανοεί τη γλώσσα, οπότε δεν γνωρίζει για string literals ή σχόλια. Ένας χαρακτήρας παρένθεσης μέσα σε string με εισαγωγικά ή σε σχόλιο εξακολουθεί να μετράει. Για πλήρως ακριβή αποτελέσματα σε πραγματικά αρχεία πηγαίου κώδικα, αφαιρέστε πρώτα τα strings/σχόλια ή χρησιμοποιήστε την ενσωματωμένη, γλωσσικά ενήμερη αντιστοίχιση παρενθέσεων του editor σας.

Ανεβαίνει ο κώδικάς μου κάπου;

Όχι. Ο έλεγχος εκτελείται ως τοπικός JavaScript κώδικας στον browser σας· τίποτα δεν αποστέλλεται σε server.

Σχετικά εργαλεία