2000calories / flutter_easy_rich_text

The EasyRichText widget provides an easy way to use RichText.
https://pub.dev/packages/easy_rich_text
MIT License
80 stars 33 forks source link

Widget Crash (Value not in range) #19

Closed nawaf11 closed 3 years ago

nawaf11 commented 3 years ago

Welcome, Thanks for this great lib

I am using these RegExp spans:

          var bodyText = EasyRichText(item.ayahText,
            textDirection: textDirection,
            defaultStyle: TextStyle(color: MyColor.normalText(), fontFamily: font),
            selectable: true,
            patternList: [
              EasyRichTextPattern(targetString: '\\((.+?)\\)', style: TextStyle(color: MyColor.primary())),
              EasyRichTextPattern(targetString: '\\[(.+?)\\]', style: TextStyle(color: MyColor.transWordHover())),
              EasyRichTextPattern(targetString: '\\{(.+?)\\}', style: TextStyle(color: MyColor.darkYellow())),
              EasyRichTextPattern(targetString: '"(.+?)"', style: TextStyle(color: MyColor.darkRed())),
              EasyRichTextPattern(targetString: '﴿(.+?)﴾', style: TextStyle(color: MyColor.primary())),
            ],
          );

And it mostly it works fine, But in some texts it's crashing

Here example of a text cause crash when I apply these TextPatternSpan: Note: '\((.+?)\)'. AND '"(.+?)"' together cause the crash in following text

The Example:

Allah Swt. memberitahukan kepada mereka bahwa orang yang memakan harta anak-anak yatim secara aniaya, sesungguhnya ia memakan api sepenuh perutnya. Karena itulah maka Allah Swt. berfirman: Sesungguhnya orang-orang yang memakan harta anak yatim secara aniaya, sebenarnya mereka itu menelan api sepenuh perutnya dan mereka akan masuk ke dalam api yang menyala-nyala (neraka). Bila mereka makan harta anak yatim tanpa alasan yang dibenarkan. sesungguhnya yang mereka makan itu adalah api yang menyala-nyala di dalam perut mereka di hari kiamat kelak. Di dalam kitab Sahihain melalui hadis Sulaiman ibnu Bilal.dari Saur ibnu Zaid, dari Salim Abul Gais, dari Abu Hurairah, disebutkan bahwa Rasulullah Saw. pernah bersabda: "Jauhilah oleh kalian tujuh macam dosa yang membinasakan." Ditanyakan, "Apa sajakah dosa-dosa itu, wahai Rasulullah?" Beliau Saw. menjawab, "Mempersekutukan Allah. Sihir, membunuh jiwa yang diharamkan oleh Allah kecuali dengan alasan yang hak, memakan riba, memakan harta anak yatim, lari dari medan perang, menuduh berzina wanita-wanita mukmin yang memelihara kehormatannya yang sedang lalai." Ibnu Abu Hatim mengatakan, telah menceritakan kepada kami ayahku, telah menceritakan kepada kami Ubaidah, telah menceritakan kepada kami Abdul Aziz ibnu Abdus Samad Al-Ama, telah menceritakan kepada kami Abu Harun Al-Abdi, dari Abu Said Al-Khudri yang mengatakan bahwa kami pernah bertanya.”Wahai Rasulullah, apa sajakah yang telah engkau lihat sewaktu engkau melakukan isra?" Nabi Saw. menjawab, "Aku dibawa ke arah sekumpulan makhluk Allah yang jumlahnya banyak, semuanya terdiri atas kaum laki-laki. Masing-masing dari mereka memegang sebuah pisau besar seperti yang digunakan untuk menyembelih unta. Mereka ditugaskan untuk menyiksa sejumlah orang yang terdiri atas kaum laki-laki. Mulut seseorang dari mereka dibedah, lalu didatangkan sebuah batu besar dari neraka, kemudian dimasukkan ke dalam mulut seseorang di antara mereka hingga batu besar itu keluar dari bagian bawahnya, sedangkan mereka menjerit dan menggeram (karena sakit yang sangat). Lalu aku bertanya. 'Hai Jibril. siapakah mereka? Jibril menjawab: 'Mereka adalah orang-orang yang memakan harta anak-anak yatim secara aniaya, sebenarnya mereka itu menelan api sepenuh perutnya, dan mereka akan masuk ke dalam api yang menyala-nyala (neraka)'." As-Saddi mengatakan bahwa di hari kiamat kelak pemakan harta anak yatim dibangkitkan, sedangkan dari mulut dan telinganya, kedua lubang hidung dan kedua matanya keluar api, setiap orang yang melihatnya mengetahui bahwa dia adalah pemakan harta anak yatim. Ibnu Murdawaih mengatakan, telah menceritakan kepada kami Ishaq ibnu Ibrahim ibnu Zaid, telah menceritakan kepada kami Ahmad ibnu Amr, telah menceritakan kepada kami Uqbah ibnu Makram, telah menceritakan kepada kami Yunus ibnu Bukair, telah menceritakan kepada kami Ziad ibnul Munzir, dari Nafi' ibnul Haris, dari Abu Barzah, bahwa Rasulullah Saw. pernah bersabda: Dibangkitkan di hari kiamat suatu kaum dari kuburan mereka, sedangkan dari mulut mereka keluar api yang menyala-nyala. Ketika ditanyakan, "Wahai Rasulullah, siapakah mereka?" Beliau bersabda, "Tidakkah kamu membaca firman-Nya yang mengatakan: 'Sesungguhnya orang-orang yang memakan harta anak yatim secara zalim' (An Nisaa:101. hingga akhir ayat." Ibnu Abu Hatim meriwayatkan dari ibnu Makram. Ibnu Hibban mengetengahkannya di dalam kitab sahih-nya, dari Ahmad ibnu Ali ibnul Musanna, dari Uqbah ibnu Makram. Ibnu Murdawaih mengatakan, telah menceritakan kepada kami Abdullah ibnu Ja'far, telah menceritakan kepada kami Ahmad ibnu Isam, telah menceritakan kepada kami Abu Amir Al-Abdi telah menceritakan kepada kami Abdullah ibnu Ja’far Az-Zuhri Muhammad, dari Al-Maqbari, dari abu Hurairah bahwa Rasulullah Saw. pernah bersabda: Aku enggan terhadap harta dua orang yang lemah, yaitu wanita dan anak yatim. Makna yang dimaksud ialah 'aku berwasiat kepada kalian agar menjauhi harta kedua orang tersebut'. Telah diketengahkan di dalam surat Al-Baqarah sebuah asar melalui jalur Ata ibnus Saib, dari Sa'id ibnu Jubair. dari Ibnu Abbas r.a. yang mengatakan bahwa ketika diturunkan firman-Nya: Sesungguhnya orang-orang yang memakan harta anak yatim secara aniaya. , hingga akhir ayat. Maka berangkatlah orang-orang yang di dalam pemeliharaannya terdapat anak yatim, lalu ia memisahkan makanannya dengan makanan anak yatimnya. begitu pula antara minumannya dengan minuman anak yatimnya. sehingga akibatnya ada sesuatu dari makanan itu yang lebih tetapi makanan tersebut disimpan buat si anak yatim hingga si anak yatim memakannya atau makanan menjadi basi. Maka hal tersebut terasa amat berat bagi mereka, lalu mereka menceritakan hal tersebut kepada Rasulullah Saw. Maka Allah menurunkan firman-Nya: Dan mereka bertanya kepadamu tentang anak-anak yatim, katakanlah mengurus urusan mereka secara patut adalah baik." (Al Baqarah:220), hingga akhir ayat. Maka mereka kembali mencampurkan makanan dan minurnan mereka dengan makanan dan minurnan anak-anak yatimnya.

Regards, Nawaf.

2000calories commented 3 years ago

Sorry for the late response, try the latest version 0.5.6

nawaf11 commented 3 years ago

Solved Really Thanks