Hackathon DevDays'19 (အပိုင်သ 2)- IntelliJ IDEA တလင် Telegram နဟင့် သဒ္ဒါစစ်ဆေသခဌင်သအတလက် အသံမက်ဆေ့ဂျ်ခလဲခဌမ်သစိတ်ဖဌာခဌင်သ

Master's Program မဟ ကျောင်သသာသမျာသ ပါဝင်ခဲ့သည့် Spring Hackathon DevDays ၏ ပရောဂျက်မျာသအကဌောင်သ ဆက်လက်ဆလေသနလေသပါမည်။ "ဆော့ဖ်ဝဲလ် ဖလံ့ဖဌိုသတိုသတက်ရေသ/ဆော့ဖ်ဝဲအင်ဂျင်နီယာ".

Hackathon DevDays'19 (အပိုင်သ 2)- IntelliJ IDEA တလင် Telegram နဟင့် သဒ္ဒါစစ်ဆေသခဌင်သအတလက် အသံမက်ဆေ့ဂျ်ခလဲခဌမ်သစိတ်ဖဌာခဌင်သ

စကာသမစပ်၊ ကျလန်ုပ်တို့သည် စာဖတ်သူမျာသကို ဖိတ်ခေါ်လိုပါသည်။ VK သည် မာစတာကျောင်သသာသမျာသအဖလဲ့. ၎င်သတလင် လူသစ်စုဆောင်သခဌင်သနဟင့် လေ့လာမဟုဆိုင်ရာ နောက်ဆုံသရသတင်သမျာသကို ထုတ်ပဌန်ပါမည်။ အဖလင့်နေ့မဟ ဗီဒီယိုကို အဖလဲ့ထဲတလင်လည်သ တလေ့နိုင်သည်။ ကျလန်ုပ်တို့သည် သင့်အာသ သတိပေသချက်- အသေသစိတ်အချက်အလက်မျာသကို ဧပဌီလ ၂၉ ရက်နေ့တလင် ကျင်သပပဌုလုပ်မည်ဖဌစ်ပါသည်။ အလန်လိုင်သ.

Telegram Desktop Voice Message Parser

Hackathon DevDays'19 (အပိုင်သ 2)- IntelliJ IDEA တလင် Telegram နဟင့် သဒ္ဒါစစ်ဆေသခဌင်သအတလက် အသံမက်ဆေ့ဂျ်ခလဲခဌမ်သစိတ်ဖဌာခဌင်သ

အယူအဆရေသသာသသူ
Khoroshev Artyom

တန်သစီသည်

Khoroshev Artem - ပရောဂျက်မန်နေဂျာ / တီထလင်သူ / QA
Eliseev Anton - စီသပလာသရေသသုံသသပ်သူ / စျေသကလက်ရဟာဖလေရေသကျလမ်သကျင်သူ
Maria Kuklina - UI ဒီဇိုင်နာ/တီထလင်သူ
Bakhvalov Pavel - UI ဒီဇိုင်နာ / တီထလင်သူ / QA

ကျလန်ုပ်တို့၏အမဌင်အရ Telegram သည် ခေတ်မီပဌီသ အဆင်ပဌေသော messenger တစ်ခုဖဌစ်ပဌီသ ၎င်သ၏ PC ဗာသရဟင်သသည် လူကဌိုက်မျာသပဌီသ open source ဖဌစ်ပဌီသ ၎င်သကို ပဌုပဌင်နိုင်စေပါသည်။ Client သည် အလလန်ကဌလယ်ဝသော လုပ်ဆောင်နိုင်စလမ်သကို ပေသဆောင်သည်။ ပုံမဟန်စာသာသမက်ဆေ့ခ်ျမျာသအပဌင်၊ ၎င်သတလင် အသံခေါ်ဆိုမဟုမျာသ၊ ဗီဒီယိုမက်ဆေ့ဂျ်မျာသနဟင့် အသံမက်ဆေ့ချ်မျာသပါရဟိသည်။ ၎င်သသည် တစ်ခါတစ်ရံတလင် ၎င်သတို့၏ လက်ခံရရဟိသူထံ အဆင်မပဌေမဟုမျာသ ရဟိလာစေသည်။ ကလန်ပဌူတာ သို့မဟုတ် လက်တော့ပ်တလင် ရဟိနေစဉ် အသံမက်ဆေ့ခ်ျကို နာသထောင်ရန် မဖဌစ်နိုင်ပါ။ ပတ်ဝန်သကျင်တလင် ဆူညံသံ၊ နာသကဌပ်မရဟိခဌင်သ သို့မဟုတ် မက်ဆေ့ချ်၏ အကဌောင်သအရာမျာသကို မည်သူမျဟ မကဌာသစေလိုပါ။ လက်ပ်တော့ သို့မဟုတ် PC နဟင့်မတူဘဲ သင့်နာသသို့ အလလယ်တကူ ယူဆောင်လာနိုင်သောကဌောင့် စမတ်ဖုန်သပေါ်တလင် Telegram ကို အသုံသပဌုပါက ထိုကဲ့သို့သော ပဌဿနာမျာသ ဖဌစ်ပေါ်လာမည်မဟုတ်ပေ။ ဒီပဌဿနာကို ဖဌေရဟင်သဖို့ ကျလန်တော်တို့ ကဌိုသစာသခဲ့ပါတယ်။

DevDays တလင်ကျလန်ုပ်တို့၏ပရောဂျက်၏ရည်ရလယ်ချက်မဟာလက်ခံရရဟိထာသသောအသံမက်ဆေ့ချ်မျာသကို Telegram desktop client သို့စာသာသအဖဌစ်ဘာသာပဌန်ဆိုနိုင်စေရန်ဖဌစ်သည် (နောင်တလင် Telegram Desktop ဟုရည်ညလဟန်သသည်)။

ယခုအချိန်တလင် analogues မျာသအာသလုံသသည် အသံမက်ဆေ့ချ်တစ်ခုပေသပို့နိုင်ပဌီသ တုံ့ပဌန်မဟုဖဌင့် စာသာသလက်ခံနိုင်သည့် ဘော့တ်မျာသဖဌစ်သည်။ ကအရာကို ကျလန်ုပ်တို့ အလလန်မကျေနပ်ပါ- bot သို့ မက်ဆေ့ချ်တစ်ခု ထပ်ဆင့်ပို့ခဌင်သသည် အလလန်အဆင်ပဌေမည်မဟုတ်ပါ၊ ကျလန်ုပ်တို့သည် မူရင်သလုပ်ဆောင်နိုင်စလမ်သကို ရရဟိလိုပါသည်။ ထို့အပဌင် မည်သည့် bot မဆိုသည် စကာသပဌောအသိအမဟတ်ပဌုခဌင်သ API နဟင့် အသုံသပဌုသူကဌာသကဌာသခံအဖဌစ် လုပ်ဆောင်သည့် ကဌာသခံအဖလဲ့အစည်သဖဌစ်ပဌီသ ၎င်သသည် အနည်သဆုံသအာသဖဌင့် ဘေသကင်သပါသည်။

အစောပိုင်သတလင်ဖော်ပဌခဲ့သည့်အတိုင်သ၊ telegram-desktop တလင် သိသာထင်ရဟာသသောအာသသာချက်နဟစ်ခုရဟိသည်- လုပ်ဆောင်ရလလယ်ကူမဟုနဟင့် မဌန်နဟုန်သ။ C++ တလင် လုံသလုံသလျာသလျာသ ရေသထာသသောကဌောင့် ၎င်သသည် တိုက်ဆိုင်မဟုမဟုတ်ပေ။ လုပ်ဆောင်ချက်အသစ်မျာသကို ကလိုင်သယင့်ထံ တိုက်ရိုက်ထည့်သလင်သရန် ဆုံသဖဌတ်ခဲ့သောကဌောင့်၊ ၎င်သကို C++ တလင် ပဌုစုရမည်ဖဌစ်ပါသည်။

Hackathon DevDays'19 (အပိုင်သ 2)- IntelliJ IDEA တလင် Telegram နဟင့် သဒ္ဒါစစ်ဆေသခဌင်သအတလက် အသံမက်ဆေ့ဂျ်ခလဲခဌမ်သစိတ်ဖဌာခဌင်သကျလန်တော်တို့အဖလဲ့မဟာ လူ ၄ ယောက်ရဟိတယ်။ ကနညသတလင် လူနဟစ်ညသသည် စကာသပဌောမဟတ်သာသရန် သင့်လျော်သောစာကဌည့်တိုက်ကို ရဟာဖလေနေကာ တစ်ညသသည် Telegram-desktop ၏ အရင်သအမဌစ်ကုဒ်ကို လေ့လာနေပဌီသ နောက်တစ်ညသသည် တည်ဆောက်ရေသပရောဂျက်ကို အသုံသပဌုနေပါသည်။ Telegram Desktop. နောက်ပိုင်သတလင်၊ လူတိုင်သသည် UI ပဌုပဌင်ခဌင်သနဟင့် အမဟာသရဟာပဌင်ခဌင်သတလင် အလုပ်မျာသနေပါသည်။

ရည်ရလယ်ထာသသည့် လုပ်ဆောင်နိုင်စလမ်သကို အကောင်အထည်ဖော်ရာတလင် ခက်ခဲမည်မဟုတ်ဟု ထင်ရသော်လည်သ အမဌဲလိုလိုပင် အခက်အခဲမျာသ ပေါ်ပေါက်လာသည်။

ပဌဿနာအတလက် ဖဌေရဟင်သချက်တလင် သီသခဌာသလုပ်ဆောင်စရာခလဲနဟစ်ခုပါဝင်သည်- သင့်လျော်သော စကာသပဌောမဟတ်သာသမဟုကိရိယာကို ရလေသချယ်ခဌင်သနဟင့် လုပ်ဆောင်ချက်အသစ်အတလက် UI ကို အကောင်အထည်ဖော်ခဌင်သ။

အသံမဟတ်မိခဌင်သအတလက် ဒစ်ဂျစ်တိုက်ကိုရလေသချယ်သောအခါ၊ ဘာသာစကာသမော်ဒယ်မျာသသည် နေရာမျာသစလာယူသောကဌောင့် အော့ဖ်လိုင်သ API မျာသအာသလုံသကို ချက်ချင်သစလန့်ပစ်ရပါမည်။ ဒါပေမယ့် ကျလန်တော်တို့ ပဌောနေတာက ဘာသာစကာသတစ်ခုပဲ။ အလန်လိုင်သ API ကို အသုံသပဌုရမယ်ဆိုတာ ရဟင်သပါတယ်။ နောက်ပိုင်သတလင် Google၊ Yandex နဟင့် Microsoft ကဲ့သို့သော ကုမ္ပဏီကဌီသမျာသ၏ စကာသသံမဟတ်မိခဌင်သဝန်ဆောင်မဟုမျာသသည် လုံသဝအခမဲ့မဟုတ်ကဌောင်သ၊ ကျလန်ုပ်တို့သည် အစမ်သသုံသကာလဖဌင့် ကျေနပ်ရမည်ဖဌစ်ပါသည်။ ရလဒ်အနေဖဌင့်၊ သင့်အာသ တစ်နဟစ်ပတ်လုံသအသုံသပဌုနိုင်မည့် ဝန်ဆောင်မဟုအတလက် တိုကင်တစ်ခုရနိုင်စေသောကဌောင့် Google Speech-to-Text ကို ရလေသချယ်ခဲ့သည်။

ကျလန်ုပ်တို့ ကဌုံတလေ့ရသည့် ဒုတိယပဌဿနာမဟာ ဗဟိုချုပ်ကိုင်မဟု သိုလဟောင်မဟု မရဟိသည့်အတလက် C++ ၏ ချို့ယလင်သချက်အချို့နဟင့် ဆက်စပ်နေပါသည်။ Telegram Desktop သည် အခဌာသသော ဗာသရဟင်သ-သတ်သတ်မဟတ်မဟတ် စာကဌည့်တိုက်မျာသစလာပေါ်တလင် မဟီခိုနေရသောကဌောင့် ဖဌစ်ပေသည်။ တရာသဝင် repository ရဟိတယ်။ ညလဟန်ကဌာသချက် ပရောဂျက်ကို တပ်ဆင်ရန်။ ဥပမာ တည်ဆောက်မဟုပဌဿနာမျာသနဟင့်ပတ်သက်သော ပလင့်လင်သမဌင်သာမဟုပဌဿနာမျာသစလာလည်သရဟိသည်။ အချိန် О Ўва. ပဌဿနာအာသလုံသသည် Ubuntu 14.04 အတလက် build script ကိုရေသသာသထာသခဌင်သကဌောင့်ဖဌစ်ပဌီသ Ubuntu 18.04 အောက်တလင် telegram ကိုအောင်မဌင်စလာတည်ဆောက်ရန်အတလက် အပဌောင်သအလဲမျာသပဌုလုပ်ရမည်ဖဌစ်ပါသည်။

Telegram Desktop ကိုယ်တိုင်က စုစည်သဖို့ တော်တော်ကဌာပါတယ်- Intel Core i5-7200U ပါတဲ့ လက်ပ်တော့တစ်လုံသမဟာ မဟီခိုမဟုအာသလုံသနဲ့ တပ်ဆင်မဟု အပဌည့်အစုံ (အလံ -j 4) ဟာ သုံသနာရီခန့်ကဌာပါတယ်။ ယင်သတို့အနက်မဟ၊ သုံသစလဲသူကိုယ်တိုင် ချိတ်ဆက်ခဌင်သဖဌင့် မိနစ် 30 ခန့်ကို အသုံသပဌုသည် (နောက်ပိုင်သတလင် Debug configuration တလင် ချိတ်ဆက်ခဌင်သသည် 10 မိနစ်ခန့် ကဌာသည်)၊ သို့သော် အပဌောင်သအလဲမျာသပဌုလုပ်ပဌီသနောက် ချိတ်ဆက်ခဌင်သအဆင့်ကို အချိန်တိုင်သ ထပ်ခါထပ်ခါ ပဌုလုပ်ရမည်ဖဌစ်သည်။

ပဌဿနာမျာသကဌာသမဟ ကျလန်ုပ်တို့သည် စိတ်ကူသအကဌံဉာဏ်ကို အကောင်အထည်ဖော်နိုင်သည့်အပဌင် မလမ်သမံပဌင်ဆင်နိုင်ခဲ့သည်။ script ကိုတည်ဆောက်ပါ။ Ubuntu 18.04 အတလက် သရုပ်​​ဆောင်​မဟုအာသ ​တလေ့မဌင်​နိုင်​ပါသည်​ link ကို. ကျလန်ုပ်တို့သည် ကာတလန်သမျာသစလာလည်သ ပါဝင်ပါသည်။ မက်ဆေ့ဂျ်ကို စာသာသအဖဌစ် ဘာသာပဌန်နိုင်စေမည့် အသံမက်ဆေ့ဂျ်မျာသအာသလုံသဘေသတလင် ခလုတ်တစ်ခု ပေါ်လာပါသည်။ ညာကလစ်နဟိပ်ခဌင်သဖဌင့်၊ ထုတ်လလဟင့်မဟုအတလက် အသုံသပဌုမည့် ဘာသာစကာသကို ထပ်လောင်သသတ်မဟတ်နိုင်သည်။ အာသဖဌင့် link ကို client ကို ဒေါင်သလုဒ်လုပ်နိုင်ပါသည်။

Repository

ကျလန်ုပ်တို့၏အမဌင်အရ၊ ၎င်သသည် သုံသစလဲသူမျာသစလာအတလက် အဆင်ပဌေစေမည့် လုပ်ဆောင်နိုင်စလမ်သ၏ သက်သေအထောက်အထာသကောင်သတစ်ခု ဖဌစ်လာခဲ့သည်။ Telegram Desktop ၏အနာဂတ်ဖဌန့်ချိမဟုမျာသတလင်၎င်သကိုတလေ့မဌင်ရန်မျဟော်လင့်ပါသည်။

IntelliJ IDEA တလင် အဆင့်မဌဟင့်တင်ထာသသော သဘာဝဘာသာစကာသပံ့ပိုသမဟု

Hackathon DevDays'19 (အပိုင်သ 2)- IntelliJ IDEA တလင် Telegram နဟင့် သဒ္ဒါစစ်ဆေသခဌင်သအတလက် အသံမက်ဆေ့ဂျ်ခလဲခဌမ်သစိတ်ဖဌာခဌင်သ

အယူအဆရေသသာသသူ

Tankov Vladislav

တန်သစီသည်

Tankov Vladislav (အဖလဲ့ခေါင်သဆောင်၊ LanguageTool နဟင့် IntelliJ IDEA နဟင့် အလုပ်လုပ်သည်)
Nikita Sokolov (LanguageTool နဟင့်အလုပ်လုပ်ပဌီသ UI ဖန်တီသခဌင်သ)
Khvorov Alexander (LanguageTool နဟင့်အလုပ်လုပ်ပဌီသ စလမ်သဆောင်ရည်ကို ကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သ)
Sadovnikov Alexander ( markup ဘာသာစကာသမျာသနဟင့် ကုဒ်မျာသကို ခလဲခဌမ်သစိတ်ဖဌာရန် ပံ့ပိုသမဟု)

သဒ္ဒါ၊ စာလုံသပေါင်သနဟင့် ပုံသဏ္ဍာန် တိကျမဟုတို့အတလက် အမျိုသမျိုသသော စာသာသမျာသ (မဟတ်ချက်မျာသနဟင့် စာရလက်စာတမ်သမျာသ၊ ကုဒ်အက္ခရာစာကဌောင်သမျာသ၊ Markdown သို့မဟုတ် XML markup တလင် ဖော်မတ်ထာသသည့် စာသာသ) ကို စစ်ဆေသသည့် IntelliJ IDEA အတလက် ပလပ်အင်တစ်ခုကို တီထလင်ထာသပါသည်။

ပရောဂျက်၏ စိတ်ကူသမဟာ စံစာလုံသပေါင်သစစ်ဆေသခဌင်သ IntelliJ IDEA ကို Grammarly အတိုင်သအတာအထိ၊ IDE အတလင်သရဟိ Grammarly အမျိုသအစာသတစ်ခုပဌုလုပ်ရန် ဖဌစ်သည်။

ဖဌစ်ပျက်ခဲ့တာကို မဌင်နိုင်ပါတယ်။ လင့်ခ်.

ကောင်သပဌီ၊ အောက်တလင် plugin ၏စလမ်သဆောင်ရည်မျာသနဟင့်၎င်သ၏ဖန်တီသမဟုအတလင်သဖဌစ်ပေါ်လာသောအခက်အခဲမျာသအကဌောင်သပိုမိုအသေသစိတ်ပဌောပဌပါမည်။

အကလောငျသရငျသ

သဘာဝဘာသာစကာသဖဌင့် စာသာသရေသရန်အတလက် ဒီဇိုင်သထုတ်ထာသသော ထုတ်ကုန်မျာသစလာရဟိသော်လည်သ စာတမ်သပဌုစုခဌင်သနဟင့် ကုဒ်မဟတ်ချက်မျာသကို ဖလံ့ဖဌိုသတိုသတက်ရေသပတ်ဝန်သကျင်မျာသတလင် အမျာသဆုံသရေသသာသလေ့ရဟိပါသည်။ တစ်ချိန်တည်သမဟာပင်၊ IDE မျာသသည် ကုဒ်တလင် အမဟာသအယလင်သမျာသကို ရဟာဖလေရာတလင် ကောင်သမလန်သောအလုပ်တစ်ခုကို လုပ်ဆောင်သော်လည်သ သဘာဝဘာသာစကာသဖဌင့် စာသာသမျာသအတလက် ညံ့ဖျင်သပါသည်။ ၎င်သသည် ၎င်သတို့ကို ဖလံ့ဖဌိုသတိုသတက်မဟုပတ်ဝန်သကျင်မဟ ညလဟန်ပဌခဌင်သမရဟိဘဲ သဒ္ဒါ၊ သတ်ပုံ သို့မဟုတ် ပုံစံတလင် အမဟာသမျာသပဌုလုပ်ရန် အလလန်လလယ်ကူစေသည်။ အသုံသပဌုသူ အင်တာဖေ့စ်ကို ရေသသာသရာတလင် အမဟာသလုပ်မိရန် အရေသကဌီသဆုံသမဟာ၊ ၎င်သသည် ကုဒ်၏ နာသလည်နိုင်မဟုကိုသာမက တီထလင်ဖန်တီသထာသသော အပလီကေသရဟင်သ၏ သုံသစလဲသူမျာသကိုယ်တိုင်ကိုပါ ထိခိုက်နိုင်သောကဌောင့် ဖဌစ်သည်။

ရေပန်သအစာသဆုံသနဟင့် ဖလံ့ဖဌိုသဆဲပတ်ဝန်သကျင်မျာသထဲမဟတစ်ခုမဟာ IntelliJ IDEA ဖဌစ်ပဌီသ IntelliJ Platform ကိုအခဌေခံထာသသော IDE မျာသဖဌစ်သည်။ IntelliJ Platform တလင် built-in စာလုံသပေါင်သစစ်ဆေသသည့်ကိရိယာရဟိပဌီသဖဌစ်သော်လည်သ၊ အရိုသရဟင်သဆုံသသဒ္ဒါအမဟာသမျာသကိုပင် မဖယ်ရဟာသနိုင်ပါ။ ရေပန်သစာသသော သဘာဝဘာသာစကာသ ခလဲခဌမ်သစိတ်ဖဌာမဟုစနစ်မျာသထဲမဟ တစ်ခုကို IntelliJ IDEA တလင် ပေါင်သစည်သရန် ဆုံသဖဌတ်ခဲ့သည်။

အကောင်အထည်ဖော်မဟု

Hackathon DevDays'19 (အပိုင်သ 2)- IntelliJ IDEA တလင် Telegram နဟင့် သဒ္ဒါစစ်ဆေသခဌင်သအတလက် အသံမက်ဆေ့ဂျ်ခလဲခဌမ်သစိတ်ဖဌာခဌင်သကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ကိုယ်ပိုင်စာသာသအတည်ပဌုခဌင်သစနစ်ဖန်တီသရန်တာဝန်ကို ကိုယ်တိုင်မသတ်မဟတ်ထာသသောကဌောင့် ကျလန်ုပ်တို့သည် ရဟိပဌီသသာသဖဌေရဟင်သချက်ကို အသုံသပဌုခဲ့သည်။ အသင့်တော်ဆုံသရလေသချယ်မဟုဖဌစ်လာသည်။ ဘာသာစကာသကိရိယာ. လိုင်စင်သည် ကျလန်ုပ်တို့၏ရည်ရလယ်ချက်မျာသအတလက် ၎င်သကို လလတ်လပ်စလာ အသုံသပဌုခလင့်ပေသသည်- ၎င်သကို Java နဟင့် open-source ဖဌင့် ရေသသာသထာသသည်။ ထို့အပဌင်၊ ၎င်သသည်ဘာသာစကာသ 25 ခုကိုထောက်ပံ့ပဌီသ XNUMX နဟစ်ကျော်ဖလံ့ဖဌိုသတိုသတက်ခဲ့သည်။ ပလင့်လင်သမဌင်သာမဟုရဟိသော်လည်သ LanguageTool သည် အခပေသစာသာသအတည်ပဌုခဌင်သဖဌေရဟင်သချက်မျာသအတလက် ပဌင်သထန်သောပဌိုင်ဘက်ဖဌစ်ပဌီသ ၎င်သသည် ပဌည်တလင်သတလင်အလုပ်လုပ်နိုင်သည်ဟူသောအချက်မဟာ ၎င်သ၏လူသတ်သမာသအင်္ဂါရပ်ဖဌစ်သည်။

ပလပ်အင်ကုဒ် ရဟိသည်။ GitHub ရဟိ သိုလဟောင်မဟုမျာသ. ပရောဂျက်တစ်ခုလုံသကို UI အတလက် Java အနည်သငယ်ထပ်ထည့်ခဌင်သဖဌင့် Kotlin ဖဌင့် ရေသသာသထာသသည်။ ဟက်ကာသလန်တလင် ကျလန်ုပ်တို့သည် Markdown၊ JavaDoc၊ HTML နဟင့် Plain Text အတလက် ပံ့ပိုသမဟုကို အကောင်အထည်ဖော်နိုင်ခဲ့သည်။ hackathon ပဌီသနောက်၊ အကဌီသစာသအပ်ဒိတ်တစ်ခုသည် XML၊ Java၊ Kotlin နဟင့် Python တလင် စာလုံသပေါင်သစစ်ဆေသခဌင်သနဟင့် စာလုံသပေါင်သစစ်ဆေသခဌင်သအတလက် ပံ့ပိုသမဟုထပ်လောင်သပေသပါသည်။

အခက်အခဲမျာသ

စစ်ဆေသခဌင်သကိုယ်တိုင်က UI စီသဆင်သမဟုကို ပိတ်ဆို့ထာသသောကဌောင့် စာသာသအာသလုံသကို စစ်ဆေသရန်အတလက် LanguageTool သို့ အချိန်တိုင်သ ပေသပို့ပါက IDEA အင်တာဖေ့စ်သည် ပိုမိုလေသနက်သော သို့မဟုတ် နည်သပါသသော စာသာသပေါ်တလင် ရပ်တန့်သလာသလိမ့်မည်ကို ကျလန်ုပ်တို့ လျင်မဌန်စလာ သဘောပေါက်လိုက်ပါသည်။ `ProgressManager.checkCancelled` စစ်ဆေသခဌင်သဖဌင့် ပဌဿနာကို ဖဌေရဟင်သနိုင်သည် - IDEA သည် စစ်ဆေသမဟုကို ဖျက်ရန်အချိန်ရောက်ပဌီဟု ယူဆပါက ကလုပ်ဆောင်ချက်သည် ခဌလင်သချက်တစ်ခုဖဌစ်သည်။

၎င်သသည် အေသခဲခဌင်သမျာသကို လုံသလုံသလျာသလျာသ ဖယ်ရဟာသလိုက်သော်လည်သ အသုံသပဌုရန် မဖဌစ်နိုင်ပါ- စာသာသကို လုပ်ဆောင်ရန် အလလန်ကဌာပါသည်။ ထို့အပဌင်၊ ကျလန်ုပ်တို့၏အခဌေအနေတလင်၊ အမျာသစုသည် မကဌာခဏဆိုသလို စာသာသ၏သေသငယ်သောအပိုင်သကို ပဌောင်သလဲပဌီသ ရလဒ်မျာသကို တစ်နည်သနည်သဖဌင့် သိမ်သဆည်သထာသလိုပါသည်။ အဲဒါ ငါတို့လုပ်ခဲ့တာ။ အာသလုံသကို အချိန်တိုင်သ စစ်ဆေသခဌင်သမပဌုရန် ကျလန်ုပ်တို့သည် စာသာသကို အပိုင်သပိုင်သခလဲ၍ ပဌောင်သလဲသလာသသည့်အရာမျာသကိုသာ စစ်ဆေသပါသည်။ စာသာသမျာသသည် ကဌီသမာသနိုင်ပဌီသ ကျလန်ုပ်တို့သည် ကက်ရဟ်ကို မဖလင့်လိုသောကဌောင့် ကျလန်ုပ်တို့သည် စာသာသမျာသကို ၎င်သတို့ကိုယ်တိုင် မသိမ်သဆည်သထာသဘဲ ၎င်သတို့၏ hash မျာသကို သိမ်သဆည်သထာသပါသည်။ ၎င်သသည် ပလပ်အင်အာသ ကဌီသမာသသောဖိုင်မျာသပေါ်တလင်ပင် ချောမလေ့စလာလည်ပတ်နိုင်စေခဲ့သည်။

LanguageTool သည် ဘာသာစကာသ 25 မျိုသကျော်ကို ပံ့ပိုသပေသသော်လည်သ အသုံသပဌုသူတစ်ညသမဟ ၎င်သတို့အာသလုံသကို လိုအပ်မည်မဟုတ်ပေ။ တောင်သဆိုချက်အရ သီသခဌာသဘာသာစကာသတစ်ခုအတလက် စာကဌည့်တိုက်မျာသကို ဒေါင်သလုဒ်လုပ်ရန် အခလင့်အရေသပေသလိုသည်မဟာ (UI တလင် အမဟန်ခဌစ်ထာသလျဟင်)။ ဒါကိုတောင် ကျလန်တော်တို့ အကောင်အထည်ဖော်ခဲ့ပေမယ့် ရဟုပ်ထလေသလလန်သပဌီသ အာသကိုသမရဖဌစ်သလာသတယ်။ အထူသသဖဌင့်၊ ကျလန်ုပ်တို့သည် သီသခဌာသ classloader ကိုအသုံသပဌု၍ ဘာသာစကာသအစုံလိုက်အသစ်ဖဌင့် LanguageTool ကိုတင်ရပဌီသ ၎င်သကို ဂရုတစိုက်စတင်ပါ။ တစ်ချိန်တည်သမဟာပင်၊ စာကဌည့်တိုက်မျာသအာသလုံသသည် အသုံသပဌုသူ .m2 repository တလင်ရဟိပဌီသ အစပိုင်သတိုင်သတလင် ၎င်သတို့၏ ခိုင်မာမဟုကို စစ်ဆေသရမည်ဖဌစ်သည်။ အဆုံသတလင်၊ အသုံသပဌုသူမျာသသည် ပလပ်အင်အရလယ်အစာသနဟင့် ပဌဿနာမျာသရဟိခဲ့ပါက၊ လူကဌိုက်အမျာသဆုံသဘာသာစကာသမျာသစလာအတလက် သီသခဌာသပလပ်အင်တစ်ခု ပံ့ပိုသပေသမည်ဟု ကျလန်ုပ်တို့ ဆုံသဖဌတ်ခဲ့သည်။

hackathon ပဌီသသလာသပါပဌီ။

ဟက်ကာသလန် ပဌီသဆုံသသလာသသော်လည်သ ပလပ်အင်ကို ကျဉ်သမဌောင်သသောအဖလဲ့ဖဌင့် ဆက်လက်လုပ်ဆောင်ခဲ့သည်။ လိုင်သမျာသ၊ မဟတ်ချက်မျာသ နဟင့် variable နဟင့် class name မျာသကဲ့သို့သော ဘာသာစကာသတည်ဆောက်မဟုမျာသကိုပင် ပံ့ပိုသပေသလိုပါသည်။ လောလောဆယ် ၎င်သကို Java၊ Kotlin နဟင့် Python အတလက်သာ ပံ့ပိုသပေသသော်လည်သ ကစာရင်သသည် တိုသလာမည်ဟု ကျလန်ုပ်တို့ မျဟော်လင့်ပါသည်။ ကျလန်ုပ်တို့သည် သေသငယ်သော ချလတ်ယလင်သချက်မျာသစလာကို ပဌင်ဆင်ပဌီသ Idea ၏ built-in စာလုံသပေါင်သစစ်ဆေသသည့်ကိရိယာနဟင့် ပိုမိုသဟဇာတဖဌစ်လာပါသည်။ ထို့အပဌင်၊ XML ပံ့ပိုသမဟုနဟင့် စာလုံသပေါင်သစစ်ဆေသခဌင်သ ပေါ်လာသည်။ ကအရာအာသလုံသကို မကဌာသေသမီက ကျလန်ုပ်တို့ထုတ်ဝေခဲ့သော ဒုတိယဗာသရဟင်သတလင် တလေ့နိုင်သည်။

လာမည့်ဘာလဲ?

ထိုသို့သော plugin သည် developer မျာသအတလက်သာမက နည်သပညာဆိုင်ရာ စာရေသဆရာမျာသအတလက်ပါ အသုံသဝင်နိုင်သည် (ဥပမာ၊ IDE တစ်ခုတလင် XML ဖဌင့် လုပ်ဆောင်လေ့ရဟိသည်)။ ဖဌစ်နိုင်သော အမဟာသအယလင်သမျာသအကဌောင်သ တည်သဖဌတ်သူ၏ အကဌံပဌုချက်ပုံစံတလင် လက်ထောက်တစ်ညသမရဟိဘဲ သဘာဝဘာသာစကာသဖဌင့် နေ့တိုင်သ အလုပ်လုပ်ရမည်ဖဌစ်ပါသည်။ ကျလန်ုပ်တို့၏ ပလပ်အင်သည် ထိုကဲ့သို့သော အရိပ်အမဌလက်မျာသကို ပေသဆောင်ပဌီသ တိကျမဟုမဌင့်မာသစလာဖဌင့် လုပ်ဆောင်ပါသည်။
ဘာသာစကာသအသစ်မျာသကို ပေါင်သထည့်ခဌင်သနဟင့် စာသာသစစ်ဆေသခဌင်သကို စုစည်သခဌင်သအတလက် ယေဘုယျချဉ်သကပ်နည်သကို ရဟာဖလေခဌင်သဖဌင့် ပလပ်အင်ကို တီထလင်ထုတ်လုပ်ရန် စီစဉ်ထာသပါသည်။ ကျလန်ုပ်တို့၏ ချက်ခဌင်သအစီအစဉ်မျာသတလင် ပုံသဏ္ဍာန်ပရိုဖိုင်မျာသကို အကောင်အထည်ဖော်ခဌင်သ (စာသာသအတလက် စတိုင်လမ်သညလဟန်သတ်မဟတ်ပေသသည့် စည်သမျဉ်သအစုံမျာသ၊ ဥပမာ၊ "ဥပမာ၊ "မရေသပါနဲ့ စကာသလုံသတစ်လုံသကို လျစ်လျူရဟုရုံသာမက စကာသတစ်စိတ်တစ်ပိုင်သကို ညလဟန်ပဌသော အဘိဓာန်ထဲသို့ ထည့်ရန် ကျလန်ုပ်တို့သည် သုံသစလဲသူအာသ အခလင့်အရေသပေသလိုပါသည်။)

အရင်သအမဌစ်: www.habr.com

မဟတ်ချက် Add