CLion 2018.3: दूरस्थ विकास, कोड रूपरेखा, प्रदर्शन और बहुत कुछ

नमस्कार, हेब्र!

दूसरे दिन हमने CLion 2018.3 जारी किया। इस साल तीसरी बड़ी रिलीज भाषा के विकास और भाषा के विकास में सुधार के दो महत्वपूर्ण क्षेत्रों में हमारे काम का सारांश है।

इसके अलावा, हम अंत में:

  • जोड़ा कोड प्रोफाइलिंग उपकरण;
  • एक फ़ाइल, कई लक्ष्यों या पूरे प्रोजेक्ट के स्तर पर कोडांतरण / पुन: संयोजन कोड के लिए संपादक में आदेशों को फिर से बनाएं;
  • अन्य IntelliJ प्लेटफ़ॉर्म-आधारित IDE के साथ, उन्होंने Git सबमॉड्यूल और GitHub पुल अनुरोधों के लिए समर्थन जोड़ा;
  • आईडीई (अभिगम्यता) की संभावनाओं के लिए सार्वभौमिक पहुंच के बेहतर साधन।

छवि

नीचे इन और अन्य नवाचारों के बारे में और पढ़ें। और नई सुविधाओं और सुधारों की कोशिश करने के लिए, हमारी वेबसाइट से मुफ्त 30-दिवसीय संस्करण डाउनलोड करें

C ++ भाषा समर्थन


अधिक सी ++ 17


CLION पार्सर ने C ++ 17 मानक के दो नए फीचर्स - फोल्ड एक्सप्रेशन और डिडक्शन गाइड को समझना सीख लिया है। एक तरफ, पार्सर में परिवर्तन अभी तक पूर्ण समर्थन नहीं है, लेकिन कम से कम कोड हाइलाइटिंग अधिक सही होगी, और उपयोगकर्ता द्वारा परिभाषित कटौती गाइड के मामलों के लिए आईडीई यहां तक ​​कि सही ढंग से प्रकार प्रदर्शित करेगा और आप इसे देख सकते हैं, उदाहरण के लिए, जब कॉलिंग के बारे में जानकारी समारोह मापदंडों।

छवि

Clangd अब नेविगेशन में है


पिछली बार हमने लिखा था कि CLion अब C / C ++ कोड के साथ काम करने के लिए न केवल अपने स्वयं के भाषा इंजन का उपयोग करता है, बल्कि एक अतिरिक्त, प्रयोगात्मक भी है जो कि Clangd के आधार पर बनाया गया है। संपादक में त्रुटियों और चेतावनियों को प्रदर्शित करने के लिए इसे चालू करते हुए, हम चले गए और CLion 2018.3 में कोड नेविगेशन और कोड खोज के कुछ कार्यों को इसके आधार पर लागू किया।

Clangd- आधारित भाषा इंजन परिणाम प्रदान करता है जिसे बाद में CLION इंजन से प्राप्त परिणामों के साथ वैसे भी जोड़ दिया जाता है। एक विशिष्ट उदाहरण Find Usages ( Alt+F7 ) है: संपादक में खोली गई फ़ाइलों के लिए क्लैंगड खोज और बाकी के लिए हमारा अपना इंजन खोजता है।

अन्य कार्यों के उदाहरण जो अतिरिक्त रूप से Clangd भाषा इंजन का उपयोग करते हैं:

  • घोषणा पर जाएं ( Ctrl+B / ⌘B ) / परिभाषा पर जाएं ( Ctrl+Alt+B / ⌥⌘B )
  • प्रतीक के सभी समावेशों को उजागर करना, जिस पर कर्सर खड़ा है
  • त्वरित दस्तावेज़ ( Ctrl+Q / F1 )

Clangd डिफ़ॉल्ट रूप से सक्षम है और सेटिंग्स / प्राथमिकताएँ में कॉन्फ़िगर किया गया है भाषाएँ और रूपरेखा | C / C ++ | Clangd:

छवि

यही है, आप स्वतंत्र रूप से Clangd के शीर्ष पर आवश्यक कार्यक्षमता को सक्षम / अक्षम कर सकते हैं - उदाहरण के लिए, केवल त्रुटियां या केवल नेविगेशन दिखा रहा है। यदि आपको क्लैंगड के उपयोग को पूरी तरह से अक्षम करने की आवश्यकता है, तो इस संवाद में सभी बक्से को अनचेक करें।

और वैसे भी, Clang-Tidy को Clangd के बिना चलाया जा सकता है, लेकिन Clangd के माध्यम से लॉन्च करने से प्रदर्शन में काफी सुधार होता है क्योंकि यह Clangd में कैस्ट एएसटी के पेड़ का उपयोग करता है।

दूरस्थ विकास


CLion 2018.1 की रिलीज ने विंडोज को लिनक्स (WSL) सबसिस्टम के लिए विंडोज सबसिस्टम के साथ काम करने की क्षमता पेश की। यह लिनक्स वातावरण, विंडोज में बनाया गया है, जो आपको विंडोज पर लिनक्स अनुप्रयोगों के निर्माण, चलाने और डीबग करने की अनुमति देता है। हमने तब कहा था कि हमने विशेष रूप से ssh के माध्यम से WSL के लिए समर्थन को लागू किया है, जो कि दूरस्थ उपतंत्र के रूप में है। यह पूरी तरह से दूरस्थ कॉन्फ़िगरेशन के साथ काम करने का पहला कदम था।

और इसलिए CLion 2018.3 में हमने दूरस्थ विकास के पहले बड़े संस्करण के लिए समर्थन की घोषणा की:

  • स्थानीय मशीन पर जहां CLion चलता है, वह लिनक्स, विंडोज या macOS हो सकता है।
  • एक दूरस्थ मशीन पर, जहां CLion आपके एप्लिकेशन का निर्माण करेगा, उसे चलाएगा और डिबग करेगा, परीक्षण चलाएगा, अब तक केवल लिनक्स ही हो सकता है।
  • यह माना जाता है कि कोड स्थानीय मशीन पर है। CLion खुद इसे रिमोट मशीन से सिंक्रोनाइज़ करता है, और एडिटर में कोड को जल्दी से हल करने के लिए हेडर सर्च पथों को स्थानीय एक पर वापस खींचता है। लिनक्स या मैकओएस के लिए स्थानीय मशीनों के रूप में और विंडोज के लिए sftp और gzip के माध्यम से सिंक्रोनाइज़ेशन किया जाता है।
  • यह अब तक केवल सीएमके प्रोजेक्ट्स के लिए काम करता है।

छवि

इस तरह के एक दूरस्थ विन्यास को स्थापित करना बहुत आसान है - आपको बस सेटिंग्स / वरीयताएँ में एक दूरस्थ टूलकिन बनाने की आवश्यकता है निर्माण, निष्पादन, तैनाती | टूलचिन्स और इसे कुछ सीएमके प्रोफाइल में उपयोग करें। विस्तृत निर्देश हमारे अंग्रेजी भाषा के ब्लॉग और ऑनलाइन प्रलेखन में हैं । दूरस्थ होस्ट के साथ सिंक्रनाइज़ेशन की प्रगति फ़ाइल स्थानांतरण विंडो (दृश्य | उपकरण विंडोज | फ़ाइल स्थानांतरण) में प्रदर्शित होती है, और सेटिंग्स / वरीयताएँ में दूरस्थ मशीन पर कनेक्शन मापदंडों और निर्देशिका पथों को बदलते हैं। निर्माण, निष्पादन, तैनाती | तैनाती।

इस दिशा में बहुत काम होने की उम्मीद है। अब, जैसा कि आप देख सकते हैं, रिमोट मशीन पर कोड को सीधे पता लगाने के विकल्प समर्थित नहीं हैं, रिमोट संस्करण नियंत्रण प्रणाली के लिए कोई समर्थन नहीं है, रिमोट टर्मिनल के साथ कोई एकीकरण नहीं है, और कनेक्शन में ही कई छोटी खामियां हैं। लेकिन मुख्य बात यह है - सीएलियन के साथ दूरस्थ विकास अब संभव है!

कस्टम कोड प्रदर्शन विश्लेषण


CLion 2018.3 कोड प्रदर्शन का विश्लेषण करने की क्षमता प्रदान करता है। लिनक्स पर, परफेक्ट के साथ इंटीग्रेशन दिया गया है , मैकओएस पर, DTrace के साथ। नई क्रिया रन मेनू में, नेविगेशन पैनल में और एप्लिकेशन लॉन्च आइकन के संदर्भ मेनू में उपलब्ध है। सीपीयू प्रोफाइलर विंडो में कोड प्रोफाइलिंग परिणाम उपलब्ध हैं (देखें | टूल विंडोज | सीपीयू प्रोफाइलर)।

छवि

काम करने के लिए कोड रूपरेखा, ब्लॉग या ऑनलाइन दस्तावेज़ पढ़ने के लिए आपको अपने कंप्यूटर पर क्या स्थापित करना है, इसके बारे में और पढ़ें।

यह ध्यान देने योग्य है कि यूआई / यूएक्स अभी भी कुछ प्रयोगात्मक है। इसे 2019.x संस्करणों में काफी सुधार करने की योजना है। लेकिन पहले से ही उपयोगी चीजें हैं, जैसे एक बार में सभी थ्रेड्स को एक साथ देखने की क्षमता, स्रोत कोड पर नेविगेट करने की क्षमता आदि।

कमानों का निर्माण और पुनर्निर्माण करें


बिल्ड कमांड के विभिन्न संयोजनों की संख्या इतनी बढ़ गई है कि हमने उन सभी को एक अलग मेनू आइटम - बिल्ड में रखने का फैसला किया। संपूर्ण प्रोजेक्ट की असेंबली / रिस्पेशन है, और all चयनित सीमेक प्रोफाइल, और चयनित कॉन्फ़िगरेशन, और एक विशिष्ट फ़ाइल से सभी लक्ष्य हैं:

छवि

यह, ज़ाहिर है, सीएमके के लिए है। एक संकलन डेटाबेस के लिए एक विशेष फ़ाइल के लिए केवल एक पुनर्निर्माण आदेश होगा।

यूनिवर्सल डायलॉग्स: रन एनीथिंग एंड सर्च एवरीवेयर


सीलिएन उपयोगकर्ता लंबे समय से खोज एवरीवेयर ( Double Shift ) संवाद के साथ-साथ नाम या सेटिंग को खोजने के लिए एक्शन डायलॉग ( Ctrl+Shift+A / ) Ctrl+Shift+A ) और उनके द्वारा फ़ाइल, प्रतीक या कक्षा में नेविगेट करने के लिए संवाद के साथ ⇧⌘A नाम दें। और अब यह वास्तव में, एक ही संवाद है!

छवि

टैब के माध्यम से अलग-अलग डायलॉग अलग-अलग टैब में बदल गए, जो काम करता है। उसी समय, हमने इन संवादों से जुड़ी कई समस्याओं को समाप्त कर दिया, जिनमें फ़ोकस की हानि और गलत आकार शामिल हैं।

एक और नया सार्वभौमिक संवाद रन एनीथिंग ( Double Ctrl ) है। इसमें से, आप एप्लिकेशन को सामान्य मोड में या डीबगर के नीचे से चला सकते हैं, और कोई भी प्रोजेक्ट खोल सकते हैं:

छवि

Compilation_database.json में जाँचें


संकलन डेटाबेस एक वैकल्पिक डिज़ाइन मॉडल है जो कुछ समय से CLion का समर्थन कर रहा है। यह बहुत सुविधाजनक है कि आप इसे किसी भी अन्य डिजाइन मॉडल, लोकप्रिय या यहां तक ​​कि कस्टम से प्राप्त कर सकते हैं । CLion संकलन डेटाबेस से परियोजनाएं खोल सकता है, कोड को सही ढंग से पार्स कर सकता है और कोड के साथ काम करने के सभी स्मार्ट साधन प्रदान कर सकता है। इस प्रारूप में पूरी परियोजना की जानकारी के लिए एकमात्र माइनस की कमी है, अब तक केवल आईडीई से अलग-अलग फाइलें एकत्र की जाएंगी।

इस रिलीज़ में, हमने CL__ के लिए comp__database.json फ़ाइलों के लिए एक योजना जोड़ी, और इस योजना के आधार पर पहले से ही फ़ाइल में चेक लागू किया। उदाहरण के लिए, संपत्ति का मूल्य या आम तौर पर गायब संपत्ति का गलत प्रकार:

छवि

यदि आप अभी भी ऐसी फाइल को हाथ से लिखने या किसी मौजूदा फ़ाइल को सही करने का निर्णय लेते हैं, तो चेक बहुत उपयोगी हो सकते हैं।

संपादक प्रदर्शन और परीक्षण


हमारे उपयोगकर्ताओं के कई डंपों में, यह देखा गया कि आईडीई के प्रदर्शन के साथ महत्वपूर्ण समस्याएं आईडीई द्वारा परियोजना में उपलब्ध परीक्षणों की सूची को निर्धारित करने के तरीके से संबंधित हैं। संस्करण 2018.3 में, हमने इस प्रक्रिया को आलसी बना दिया है, और अब, यदि आपने संपादक में कोई परीक्षण फ़ाइल नहीं खोली है, तो उन्हें अनुक्रमित नहीं किया जाएगा। इसके अलावा, परीक्षण के परिणामों के लिए नेविगेट करते समय, परीक्षण मैक्रो के स्वत: पूर्णता, आदि के दौरान प्रदर्शन में सुधार किया गया।

संपादक का संवर्द्धन


जैसा कि आप जानते हैं, क्विक डॉक्यूमेंटेशन विंडो ( Ctrl+Q / F1 ) में, CLion न केवल प्रलेखन और कोड टिप्पणी दिखा सकता है, बल्कि मैक्रोज़ में वेरिएबल्स और अंतिम प्रतिस्थापन के लिए अनुमानित प्रकार भी है। यह अंतिम खोज अब स्वरूपित हो गई है, और इसमें कीवर्ड हाइलाइट किए गए हैं। घोंसले के कई स्तरों के साथ जटिल मैक्रोज़ के लिए बहुत आसान है, उदाहरण के लिए बूस्ट:

छवि

TODO टिप्पणियाँ अब बहुस्तरीय हो सकती हैं, मुख्य बात यह है कि दूसरी और बाद की पंक्तियों को इंडेंट करना है - CLion स्वचालित रूप से समझ जाएगा कि यह TODO टिप्पणी का हिस्सा है:

छवि

ऐसे उपयोगकर्ता हैं जिनके लिए मानक विषय सुविधाजनक नहीं हैं, क्योंकि उनके पास पर्याप्त कंट्रास्ट नहीं है। उनके लिए हमने एक विशेष हाई-कंट्रास्ट थीम जोड़ा। यह केवल कोड संपादक (Ctrl + `) या संपूर्ण IDE (सेटिंग्स / वरीयताएँ) के लिए सक्षम किया जा सकता है। सूरत और व्यवहार | उपस्थिति | थीम)।

छवि

IntelliJ प्लेटफ़ॉर्म के साथ, हमने IDE (सेटिंग्स / प्राथमिकताएँ | प्लगइन्स) में प्लगइन सेटिंग्स मेनू को फिर से डिज़ाइन किया। अब स्थापित प्लगइन्स को अद्यतित रखना बहुत आसान है, साथ ही मौजूदा आईडीई प्लगइन्स के विशाल भंडार को क्रमबद्ध करना और फ़िल्टर करना है।

संस्करण नियंत्रण प्रणाली


एक अन्य प्रमुख प्लेटफार्म परिवर्तन गिट सबमॉड्यूल के लिए लंबे समय से प्रतीक्षित समर्थन है। अब CLCS में VCS के साथ काम करने के लिए सभी कार्यों को भी सबमॉडुल्स द्वारा ध्यान में रखा जाता है: किसी प्रोजेक्ट को क्लोन करना, इसे अपडेट करना, संस्करणों (अंतर) की तुलना करना, आदि।

GitHub Pull Request विंडो को जोड़ा गया है, जिसमें आप न केवल सभी पुल अनुरोधों को देख सकते हैं, बल्कि उन्हें लेखक या स्थिति द्वारा खोज / फ़िल्टर भी कर सकते हैं। और आप केवल एक क्लिक में किसी भी पुल अनुरोध से एक नई शाखा बना सकते हैं।

डेमो


अंग्रेजी में CLion 2018.3 की नई विशेषताओं के बारे में पारंपरिक वीडियो:


आगे क्या?


अगले साल हम क्लैंगड पर आधारित दूसरे अतिरिक्त भाषा इंजन पर काम जारी रखने की योजना बना रहे हैं - आइए देखें कि अन्य आईडीई विशेषताएं क्या हैं जिन्हें हम इस पर लागू कर सकते हैं। हम संपादक की उत्पादकता में सुधार करेंगे, मौजूदा सुविधाओं को खत्म करेंगे और सुधारेंगे; CLion में दूरस्थ विकास का समर्थन करने का काम विशेष रूप से विविध दिखता है। एकीकरण से हम क्लैंग-प्रारूप की योजना बनाते हैं और, शायद, यह विंडोज या MSVC के लिए डिबगर है।

और हमारे लिए मुख्य फोकस एंबेडेड डेवलपमेंट होगा । हाल ही में, एलियन , CLion OpenOCD + STM32CubeMX में एक बहुत लोकप्रिय समर्थन प्लगइन के लेखक ने अपनी टीम में शामिल किया। इलिया इस कार्यक्षमता को आईडीई में एकीकृत करना जारी रखेगा, लेकिन हम मेमोरी दृश्य को पूरा करने और बहुत निकट भविष्य में हेक्स दृश्य को रीमेक करने की योजना बना रहे हैं।

प्रश्न, इच्छाएँ, बग रिपोर्ट और टिप्पणी में सिर्फ विचार व्यक्त करते हैं! हमें जवाब देने में खुशी होगी।

आपकी JetBrains CLion टीम
विकसित करने के लिए ड्राइव

Source: https://habr.com/ru/post/hi431384/


All Articles