CodeKitHub
Metin Araçları

Parantez ve Ayraç Kontrolü

Son güncelleme:

Kod veya metin yapıştırın; bu araç her ( ) [ ] { } çiftini tarayarak hangi parantezlerin kapatılmadığını, hiç açılmadığını veya yanlış eşleştiğini — her sorunun satır ve sütun numarasıyla birlikte — bildirir.

Bu Araç Nedir?

Parantez kontrol aracı metni karakter karakter tarar, her açılış parantezini ( [ { bir yığında tutar ve karşılaştığı bir sonraki kapanış parantezi ) ] } ile eşleştirir. Bir kapanış parantezi en son açık kalan açılış parantezine uymuyorsa, bir açılış parantezi hiç kapatılmamışsa ya da kapatacak hiçbir şey yokken bir kapanış parantezi ortaya çıkıyorsa, bu durum tam konumuyla birlikte bir sorun olarak işaretlenir.

Bu, tam bir dil ayrıştırıcısı değil, basit bir tarama kontrolüdür — yapıştırılan içeriğin JavaScript, Python, JSON ya da düz metin olmasından bağımsız olarak aynı şekilde çalışır; bu da onu parantez kullanan her dil veya biçimde kullanışlı kılar.

Neden Kullanmalısınız?

  • Linter satır numarası vermeden "Unexpected end of input" hatası veriyor ve 400 satırlık bir dosyada tek bir eksik süslü parantezi aramak on dakikanızı çalıyor — dosyayı buraya yapıştırın, tam satır ve sütun anında görünür.
  • Gece 23:00'te elle bir JSON yapılandırma dosyası yazıyorsunuz ve uygulama net bir sebep göstermeden dosyayı yüklemeyi reddediyor — dosyadaki her değerden şüphelenmeye başlamadan önce kontrolden geçirin.
  • Bir regex ya da matematik ifadesinde altı seviye iç içe parantez var ve hangisinin kapatılmadığını kaybettiniz — araç yığını sizin yerinize takip eder, gözle saymanıza gerek kalmaz.
  • Bir sohbetten veya forum gönderisinden kod bloğu yapıştırdınız ve derlenmiyor — hızlı bir kontrol, daha fazla araştırmadan önce kopyala-yapıştır sırasında bir parantezin düşüp düşmediğini söyler.
  • Bir ekip arkadaşınızın diff'ini inceliyorsunuz ve girintilerde bir şeyler tuhaf görünüyor — değişen bloğu kontrolden geçirmek, bunun gerçek bir parantez uyuşmazlığı mı yoksa sadece bir biçimlendirme tuhaflığı mı olduğunu doğrular.
  • JavaScript, Python veya JSON olmayan bir kod parçasını kontrol etmeniz gerekiyor — bu basit bir karakter taraması olduğundan CSS, LaTeX veya parantez kullanan herhangi bir metinde de aynı şekilde çalışır, dile özgü bir linter kurmanıza gerek kalmaz.

Nasıl Kullanılır

  1. Kod veya metninizi giriş kutusuna yapıştırın.
  2. Parantezleri Kontrol Et'e tıklayın.
  3. Her birinin satır ve sütun numarasıyla birlikte sorun listesini inceleyin, ya da her şeyin eşleştiğine dair bir onay görün.

Örnek

Giriş

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

Çıkış

Yanlış parantez türü: ] — satır 2, sütun 18; Yanlış parantez türü: } — satır 3, sütun 1; Kapatılmamış açılış parantezi: { — satır 1, sütun 17

2. satırdaki ] işareti, önceki [ yerine 15. sütunda açılan ( işaretini kapatması gereken bir işaretti — bu, uzun bir dosyada gözle fark edilmesi kolayca atlanabilecek türden bir hatadır (yanlış türde bir kapanış parantezi).

Parantez türleri ve her birinin tetiklediği hata

Kontrol yalnızca üç çifti izler. Hangi hata etiketinin hangi tür hataya karşılık geldiğini bilmek, rapora göre hareket etmeyi hızlandırır.

Parantez çiftiYaygın kullanımOrtaya çıkardığı tipik hata
( )Fonksiyon çağrıları, ifade gruplama, matematik formülleriUzun bir argüman listesinden sonra kapanış ) eksikse kapatılmamış açılış parantezi
[ ]Diziler, liste indeksleme, regex karakter sınıflarıBir ] yanlışlıkla { veya ( kapatırsa yanlış parantez türü
{ }Nesneler, kod blokları, fonksiyon gövdeleriİç içe bir bloktan sonra kapanış } unutulursa dosya sonunda kapatılmamış açılış parantezi

Yaygın kullanım alanları

  • JavaScript, JSON veya Python'da "Unexpected token" ya da "Unexpected end of input" hatasını, tüm dosyayı dikkatle yeniden okumadan ayıklamak.
  • Elle yazılmış bir JSON parçasını bir yapılandırma dosyasına yapıştırmadan önce fazladan veya eksik bir süslü parantez için kontrol etmek.
  • Uzun bir matematiksel ifadede veya formülde iç içe geçmiş parantezleri doğrulamak.
  • Kod incelemesi sırasında kopyala-yapıştır düzenlemesinden kalan yanlışlıkla bırakılmış bir parantezi tespit etmek.

Sıkça Sorulan Sorular

Bu araç tırnak işaretlerini veya etiketleri de mi kontrol ediyor, yoksa sadece parantezleri mi?

Yalnızca üç parantez çiftini: normal parantez ( ), köşeli ayraç [ ] ve süslü parantez { }. Tırnak işaretleri ve HTML/XML etiketleri takip edilmez.

Üç sorun türü arasındaki fark nedir?

"Kapatılmamış açılış parantezi", bir açılış parantezinin metnin sonuna kadar kapatılmadığı anlamına gelir. "Eşleşmeyen kapanış parantezi", öncesinde karşılık gelen bir açılış parantezi olmadan bir kapanış parantezinin ortaya çıktığı anlamına gelir. "Yanlış parantez türü" ise, bir kapanış parantezinin ortaya çıktığı ama en son açılan parantez için yanlış türde olduğu anlamına gelir — örneğin bir [ işaretini ) ile kapatmak gibi.

Bir dize veya yorum içindeki parantezlerin sayılmaması gerektiğini anlıyor mu?

Hayır — bu, dile duyarlı bir ayrıştırıcı değil, basit bir karakter taramasıdır, bu yüzden dize sabitlerini veya yorumları tanımaz. Tırnak içindeki bir dizede veya bir yorumda yer alan parantez karakteri yine de sayılır. Gerçek kaynak dosyalarda tam doğru sonuçlar için önce dizeleri/yorumları çıkarın ya da editörünüzün dile duyarlı yerleşik parantez eşleştirmesini kullanın.

Kodum herhangi bir yere yükleniyor mu?

Hayır. Kontrol, tarayıcınızda yerel JavaScript olarak çalışır; hiçbir şey bir sunucuya gönderilmez.

((([{...}]))) gibi derinlemesine iç içe geçmiş parantezleri doğru işler mi?

Evet — araç, parantezleri açılış sırasına göre izleyen bir yığın kullanır, bu yüzden keyfi derinlikte iç içe geçmeleri doğru şekilde eşleştirir. Yapay bir derinlik sınırı yoktur; tek pratik sınır tarayıcınızın belleğidir.

Hiç parantez içermeyen bir metin yapıştırırsam ne olur?

Araç, sorun olarak işaretlenecek açılış veya kapanış parantezi olmadığından her şeyin eşleştiğini bildirir — boş bir sonuç, kontrolün başarısız olduğu değil, sorun bulunmadığı anlamına gelir.

Açılıştan fazla kapanış parantezim olup olmadığını söyleyebilir mi?

Evet, dolaylı olarak: kapatacak hiçbir şey yokken fazladan gelen kapanış parantezleri "eşleşmeyen kapanış parantezi" olarak, metnin sonuna kadar hiç kapatılmayan açılış parantezleri ise "kapatılmamış açılış parantezi" olarak bildirilir — böylece dengesizliğin hangi tarafta olduğunu anlarsınız.

Her şeyin tek satırda olduğu minified kodda çalışır mı?

Evet — tarama, satır sonlarından bağımsız olarak karakter karakter yapılır, ancak bu durumda bildirilen sütun numarası satır numarasından daha kullanışlı hale gelir, çünkü minified kod genelde tek, çok uzun bir satırdır.

Bu, kod editörümdeki parantez eşleştirmenin yerini tutar mı?

Tam olarak değil — editördeki eşleştirme genelde dile duyarlıdır ve siz yazarken çiftleri vurgular; bu araçsa yapıştırılan metin üzerinde tek seferlik bir tarama yapar, dosyayı bir editörde açık tutmadığınızda ya da tüm sorunların düz metin halinde tek raporunu istediğinizde işe yarar.

İlgili Araçlar