स्रोत-कोड संपादक: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 9: Line 9:
[[संरचना संपादक]] स्रोत-कोड संपादक का एक अलग रूप है, जहां अनिर्मित पाठ को संपादित करने के अतिरिक्त, कोड की संरचना में हेरफेर किया जाता है, इस स्थिति में सिंटैक्स हाइलाइटिंग, सत्यापन और कोड स्वरूपण जैसी विशेषताएं आसानी से और कुशलता से [[कंक्रीट सिंटैक्स ट्री]] या [[सार वाक्य रचना का पेड़|अमूर्त सिंटैक्स ट्री]]  से लागू की जाती हैं, किंतु संपादन अधिकांशतः फ्री-फॉर्म टेक्स्ट की तुलना में अधिक कठोर होता है। संरचना संपादकों को भी प्रत्येक भाषा के लिए व्यापक समर्थन की आवश्यकता होती है, और इस प्रकार पाठ संपादकों की तुलना में नई भाषाओं का विस्तार करना कठिन होता है, जहां मूल समर्थन के लिए केवल सिंटैक्स हाइलाइटिंग या इंडेंटेशन का समर्थन करने की आवश्यकता होती है। इस कारण से, सख्त संरचना संपादक स्रोत कोड संपादन के लिए लोकप्रिय नहीं हैं, चूँकि कुछ आईडीई समान कार्यक्षमता प्रदान करते हैं।
[[संरचना संपादक]] स्रोत-कोड संपादक का एक अलग रूप है, जहां अनिर्मित पाठ को संपादित करने के अतिरिक्त, कोड की संरचना में हेरफेर किया जाता है, इस स्थिति में सिंटैक्स हाइलाइटिंग, सत्यापन और कोड स्वरूपण जैसी विशेषताएं आसानी से और कुशलता से [[कंक्रीट सिंटैक्स ट्री]] या [[सार वाक्य रचना का पेड़|अमूर्त सिंटैक्स ट्री]]  से लागू की जाती हैं, किंतु संपादन अधिकांशतः फ्री-फॉर्म टेक्स्ट की तुलना में अधिक कठोर होता है। संरचना संपादकों को भी प्रत्येक भाषा के लिए व्यापक समर्थन की आवश्यकता होती है, और इस प्रकार पाठ संपादकों की तुलना में नई भाषाओं का विस्तार करना कठिन होता है, जहां मूल समर्थन के लिए केवल सिंटैक्स हाइलाइटिंग या इंडेंटेशन का समर्थन करने की आवश्यकता होती है। इस कारण से, सख्त संरचना संपादक स्रोत कोड संपादन के लिए लोकप्रिय नहीं हैं, चूँकि कुछ आईडीई समान कार्यक्षमता प्रदान करते हैं।


एक स्रोत-कोड संपादक कोड अंकित करते समय सिंटैक्स की जांच कर सकता है और तुरंत सिंटैक्स समस्याओं की चेतावनी दे सकता है। कुछ स्रोत-कोड संपादक स्रोत कोड को संकुचित करते हैं, सामान्यतः सामान्य खोजशब्दों को सिंगल-बाइट टोकन में परिवर्तित करते हैं, अनावश्यक व्हाट्सएप को हटाते हैं, और संख्याओं को बाइनरी रूप में परिवर्तित करते हैं। अनावश्यक व्हाट्सएप को हटाना और संख्याओं को बाइनरी रूप में परिवर्तित करना। इस तरह के टोकनिंग संपादक बाद में इसे देखते समय स्रोत कोड को असम्पीडित करते हैं, संभवतः इसे लगातार कैपिटलाइज़ेशन और रिक्ति के साथ सुंदर रूप से प्रिंट करते हैं। कुछ स्रोत-कोड संपादक दोनों करते हैं।{{citation needed|date=June 2022}}
एक स्रोत-कोड संपादक कोड अंकित करते समय सिंटैक्स की जांच कर सकता है और तुरंत सिंटैक्स समस्याओं की चेतावनी दे सकता है। कुछ स्रोत-कोड संपादक स्रोत कोड को संकुचित करते हैं, सामान्यतः सामान्य खोजशब्दों को सिंगल-बाइट टोकन में परिवर्तित करते हैं, अनावश्यक व्हाट्सएप को हटाते हैं, और संख्याओं को बाइनरी रूप में परिवर्तित करते हैं। इस तरह के टोकनिंग संपादक बाद में इसे देखते समय स्रोत कोड को असम्पीडित करते हैं, संभवतः इसे लगातार कैपिटलाइज़ेशन और रिक्ति के साथ सुंदर रूप से प्रिंट करते हैं। कुछ स्रोत-कोड संपादक दोनों करते हैं।{{citation needed|date=June 2022}}
माइक्रोसॉफ्ट के [[विजुअल स्टूडियो कोड]] में पहली बार उपयोग किया जाने वाला [[भाषा सर्वर प्रोटोकॉल]], स्रोत कोड संपादकों को एलएसपी क्लाइंट को लागू करने की अनुमति देता है जो एलएसपी सर्वर के साथ किसी भी भाषा के बारे में सिंटैक्स जानकारी पढ़ सकता है। यह स्रोत कोड संपादकों को सिंटैक्स हाइलाइटिंग, रीफैक्टरिंग और संदर्भ खोज के साथ आसानी से अधिक भाषाओं का समर्थन करने की अनुमति देता है।<ref name="Krill 2016">{{cite web |last1=Krill |first1=Paul |title=Microsoft-backed Language Server Protocol strives for language, tools interoperability |url=https://www.infoworld.com/article/3088698/microsoft-backed-langauge-server-protocol-strives-for-language-tools-interoperability.html |website=InfoWorld |access-date=19 June 2022 |language=en |date=27 June 2016}}</ref> कई स्रोत कोड संपादक जैसे कि नियोविम<ref name="neovim LSP">{{cite web |title=LSP documentation - Neovim |url=https://neovim.io/doc/lsp/ |website=neovim.io |access-date=19 June 2022}}</ref> और कोष्ठक<ref name="Shubham 2019">{{cite web |last1=Shubham |first1=Yadav |title=Language Server Protocol Support in Brackets · adobe/brackets Wiki |url=https://github.com/adobe/brackets/wiki/Language-Server-Protocol-Support-in-Brackets |website=GitHub |access-date=19 June 2022 |language=en}}</ref> एक अंतर्निहित LSP क्लाइंट जोड़ा है जबकि अन्य संपादकों जैसे Emacs,<ref name="Emacs LSP">{{cite web |title=LSP Mode - Language Server Protocol support for Emacs - LSP Mode - LSP support for Emacs |url=https://emacs-lsp.github.io/lsp-mode/ |website=emacs-lsp.github.io |access-date=19 June 2022}}</ref> क्योंकि,<ref name="Devlieghere 2018">{{cite web |last1=Devlieghere |first1=Jonas |title=Using LSP & clangd in Vim |url=https://jonasdevlieghere.com/vim-lsp-clangd/ |website=Jonas Devlieghere |access-date=19 June 2022 |language=en |date=22 April 2018}}</ref> और उदात्त पाठ<ref name="LSP Sublime">{{cite web |title=Home - Sublime Text Language Server Protocol Documentation |url=https://lsp.readthedocs.io/en/latest/ |website=lsp.readthedocs.io |access-date=19 June 2022}}</ref> एक अलग प्लग-इन के माध्यम से LSP क्लाइंट के लिए समर्थन है।
माइक्रोसॉफ्ट के [[विजुअल स्टूडियो कोड]] में पहली बार उपयोग किया जाने वाला [[भाषा सर्वर प्रोटोकॉल]], स्रोत कोड संपादकों को एलएसपी क्लाइंट को लागू करने की अनुमति देता है जो एलएसपी सर्वर के साथ किसी भी भाषा के बारे में सिंटैक्स जानकारी पढ़ सकता है। यह स्रोत कोड संपादकों को सिंटैक्स हाइलाइटिंग, रीफैक्टरिंग और संदर्भ खोज के साथ आसानी से अधिक भाषाओं का समर्थन करने की अनुमति देता है।<ref name="Krill 2016">{{cite web |last1=Krill |first1=Paul |title=Microsoft-backed Language Server Protocol strives for language, tools interoperability |url=https://www.infoworld.com/article/3088698/microsoft-backed-langauge-server-protocol-strives-for-language-tools-interoperability.html |website=InfoWorld |access-date=19 June 2022 |language=en |date=27 June 2016}}</ref> कई स्रोत कोड संपादक जैसे कि नियोविम<ref name="neovim LSP">{{cite web |title=LSP documentation - Neovim |url=https://neovim.io/doc/lsp/ |website=neovim.io |access-date=19 June 2022}}</ref> और कोष्ठक<ref name="Shubham 2019">{{cite web |last1=Shubham |first1=Yadav |title=Language Server Protocol Support in Brackets · adobe/brackets Wiki |url=https://github.com/adobe/brackets/wiki/Language-Server-Protocol-Support-in-Brackets |website=GitHub |access-date=19 June 2022 |language=en}}</ref> एक अंतर्निहित LSP क्लाइंट जोड़ा है जबकि अन्य संपादकों जैसे Emacs,<ref name="Emacs LSP">{{cite web |title=LSP Mode - Language Server Protocol support for Emacs - LSP Mode - LSP support for Emacs |url=https://emacs-lsp.github.io/lsp-mode/ |website=emacs-lsp.github.io |access-date=19 June 2022}}</ref> क्योंकि,<ref name="Devlieghere 2018">{{cite web |last1=Devlieghere |first1=Jonas |title=Using LSP & clangd in Vim |url=https://jonasdevlieghere.com/vim-lsp-clangd/ |website=Jonas Devlieghere |access-date=19 June 2022 |language=en |date=22 April 2018}}</ref> और उदात्त पाठ<ref name="LSP Sublime">{{cite web |title=Home - Sublime Text Language Server Protocol Documentation |url=https://lsp.readthedocs.io/en/latest/ |website=lsp.readthedocs.io |access-date=19 June 2022}}</ref> एक अलग प्लग-इन के माध्यम से LSP क्लाइंट के लिए समर्थन है।



Revision as of 17:32, 28 February 2023

XML कोड संपादित करने के लिए नोटपैड++ का उपयोग करने का स्क्रीनशॉट

स्रोत-कोड संपादक एक पाठ संपादक प्रोग्राम है जिसे विशेष रूप से कंप्यूटर प्रोग्राम के सोर्स कोड को संपादित करने के लिए डिज़ाइन किया गया है। यह एक स्टैंडअलोन एप्लिकेशन हो सकता है या इसे एक एकीकृत विकास वातावरण (आईडीई) या वेब ब्राउज़र में बनाया जा सकता है। स्रोत-कोड संपादक एक मूलभूत प्रोग्रामिंग उपकरण हैं, क्योंकि प्रोग्रामर का मौलिक कार्य स्रोत कोड को लिखना और संपादित करना है।

स्रोत-कोड संपादक एक पाठ संपादक प्रोग्राम है जिसे विशेष रूप से कंप्यूटर प्रोग्राम के सोर्स कोड को संपादित करने के लिए डिज़ाइन किया

विशेषताएं

स्रोत-कोड संपादकों में विशेष रूप से स्रोत कोड के टाइपिंग को सरल और तेज करने के लिए डिज़ाइन की गई विशेषताएँ होती हैं, जैसे वाक्य - विन्यास पर प्रकाश डालना, इंडेंटेशन शैली, स्वतः पूर्ण और ब्रेस मिलान कार्यक्षमता। ये संपादक सॉफ़्टवेयर-विकास प्रक्रिया के लिए प्रासंगिक एक संकलक, दुभाषिया (कंप्यूटिंग), डिबगर, या अन्य प्रोग्राम चलाने का एक सुविधाजनक विधि भी प्रदान करते हैं। इसलिए, जबकि माइक्रोसॉफ्ट नोटपैड जैसे कई पाठ संपादकों का उपयोग स्रोत कोड को संपादित करने के लिए किया जा सकता है, यदि वे कोड के संपादन को बढ़ाते, स्वचालित या आसान नहीं करते हैं, तो वे स्रोत-कोड संपादक नहीं हैं।

संरचना संपादक स्रोत-कोड संपादक का एक अलग रूप है, जहां अनिर्मित पाठ को संपादित करने के अतिरिक्त, कोड की संरचना में हेरफेर किया जाता है, इस स्थिति में सिंटैक्स हाइलाइटिंग, सत्यापन और कोड स्वरूपण जैसी विशेषताएं आसानी से और कुशलता से कंक्रीट सिंटैक्स ट्री या अमूर्त सिंटैक्स ट्री से लागू की जाती हैं, किंतु संपादन अधिकांशतः फ्री-फॉर्म टेक्स्ट की तुलना में अधिक कठोर होता है। संरचना संपादकों को भी प्रत्येक भाषा के लिए व्यापक समर्थन की आवश्यकता होती है, और इस प्रकार पाठ संपादकों की तुलना में नई भाषाओं का विस्तार करना कठिन होता है, जहां मूल समर्थन के लिए केवल सिंटैक्स हाइलाइटिंग या इंडेंटेशन का समर्थन करने की आवश्यकता होती है। इस कारण से, सख्त संरचना संपादक स्रोत कोड संपादन के लिए लोकप्रिय नहीं हैं, चूँकि कुछ आईडीई समान कार्यक्षमता प्रदान करते हैं।

एक स्रोत-कोड संपादक कोड अंकित करते समय सिंटैक्स की जांच कर सकता है और तुरंत सिंटैक्स समस्याओं की चेतावनी दे सकता है। कुछ स्रोत-कोड संपादक स्रोत कोड को संकुचित करते हैं, सामान्यतः सामान्य खोजशब्दों को सिंगल-बाइट टोकन में परिवर्तित करते हैं, अनावश्यक व्हाट्सएप को हटाते हैं, और संख्याओं को बाइनरी रूप में परिवर्तित करते हैं। इस तरह के टोकनिंग संपादक बाद में इसे देखते समय स्रोत कोड को असम्पीडित करते हैं, संभवतः इसे लगातार कैपिटलाइज़ेशन और रिक्ति के साथ सुंदर रूप से प्रिंट करते हैं। कुछ स्रोत-कोड संपादक दोनों करते हैं।[citation needed] माइक्रोसॉफ्ट के विजुअल स्टूडियो कोड में पहली बार उपयोग किया जाने वाला भाषा सर्वर प्रोटोकॉल, स्रोत कोड संपादकों को एलएसपी क्लाइंट को लागू करने की अनुमति देता है जो एलएसपी सर्वर के साथ किसी भी भाषा के बारे में सिंटैक्स जानकारी पढ़ सकता है। यह स्रोत कोड संपादकों को सिंटैक्स हाइलाइटिंग, रीफैक्टरिंग और संदर्भ खोज के साथ आसानी से अधिक भाषाओं का समर्थन करने की अनुमति देता है।[1] कई स्रोत कोड संपादक जैसे कि नियोविम[2] और कोष्ठक[3] एक अंतर्निहित LSP क्लाइंट जोड़ा है जबकि अन्य संपादकों जैसे Emacs,[4] क्योंकि,[5] और उदात्त पाठ[6] एक अलग प्लग-इन के माध्यम से LSP क्लाइंट के लिए समर्थन है।

इतिहास

1985 में, IBM के माइक काउलिशॉ ने ऑक्सफोर्ड यूनिवरसिटि प्रेस के लिए secondment करते हुए LEXX (टेक्स्ट एडिटर) बनाया। LEXX (पाठ संपादक) हाइलाइटिंग के लिए लाइव पार्सिंग और इस्तेमाल किए गए रंग और फोंट का इस्तेमाल किया। आईबीएम का एलपीईएक्स (लाइव पार्सिंग एक्स्टेंसिबल एडिटर)[7] LEXX पर आधारित था और VM (ऑपरेटिंग सिस्टम) | VM/CMS, OS/2, IBM i|OS/400, Microsoft Windows, और जावा वर्चुअल मशीन पर चलता था[8] चूँकि विम (पाठ संपादक) की प्रारंभिक सार्वजनिक रिलीज़ 1991 में हुई थी, सिंटैक्स हाइलाइटिंग फीचर को 1998 में संस्करण 5.0 तक पेश नहीं किया गया था।[9][better source needed] 2003 में, विंडोज के लिए एक स्रोत कोड संपादक, नोटपैड ++, डॉन हो द्वारा जारी किया गया था। इरादा जावा-आधारित स्रोत कोड संपादक, जेईएक्सटी के लिए एक विकल्प बनाना था[10] 2015 में, माइक्रोसॉफ्ट ने विजुअल स्टूडियो कोड को उनके विजुअल स्टूडियो आईडीई के हल्के और क्रॉस-प्लेटफॉर्म विकल्प के रूप में जारी किया।[11] 2016 में, विजुअल स्टूडियो कोड भाषा सर्वर प्रोटोकॉल का उपयोग कर माइक्रोसॉफ्ट उत्पाद बन गया।[1]

आईडीई के साथ तुलना

एक स्रोत-कोड संपादक एक एकीकृत विकास परिवेश का एक घटक है। एक स्टैंडअलोन स्रोत-कोड संपादक के विपरीत, एक IDE में सामान्यतः डिबगर और बिल्ड टूल भी शामिल होते हैं।[12] कुछ डेवलपर्स द्वारा स्टैंडअलोन स्रोत कोड संपादकों को आईडीई पर पसंद किया जाता है, जब उनका मानना ​​​​है कि आईडीई उन विशेषताओं से फूला हुआ है जिनकी उन्हें आवश्यकता नहीं है।[13]

उल्लेखनीय उदाहरण

विवाद

कई स्रोत-कोड संपादक और आईडीई चल रहे उपयोगकर्ता तर्कों में शामिल रहे हैं, जिन्हें कभी-कभी प्रोग्रामिंग समुदाय द्वारा पवित्र युद्ध के रूप में संदर्भित किया जाता है।[15][better source needed] उल्लेखनीय उदाहरणों में संपादक युद्ध | vi बनाम Emacs और ग्रहण (सॉफ़्टवेयर) बनाम NetBeans शामिल हैं। इन तर्कों ने इंटरनेट संस्कृति का एक महत्वपूर्ण हिस्सा बना लिया है और वे अधिकांशतः तब शुरू होते हैं जब किसी भी संपादक का कहीं भी उल्लेख किया जाता है।

यह भी देखें

संदर्भ

  1. 1.0 1.1 Krill, Paul (27 June 2016). "Microsoft-backed Language Server Protocol strives for language, tools interoperability". InfoWorld (in English). Retrieved 19 June 2022.
  2. "LSP documentation - Neovim". neovim.io. Retrieved 19 June 2022.
  3. Shubham, Yadav. "Language Server Protocol Support in Brackets · adobe/brackets Wiki". GitHub (in English). Retrieved 19 June 2022.
  4. "LSP Mode - Language Server Protocol support for Emacs - LSP Mode - LSP support for Emacs". emacs-lsp.github.io. Retrieved 19 June 2022.
  5. Devlieghere, Jonas (22 April 2018). "Using LSP & clangd in Vim". Jonas Devlieghere (in English). Retrieved 19 June 2022.
  6. "Home - Sublime Text Language Server Protocol Documentation". lsp.readthedocs.io. Retrieved 19 June 2022.
  7. "LPEX Editor's User Guide - Version 4" (PDF). IBM. Retrieved 19 June 2022.
  8. Mike Cowlishaw FREng BSc CEng FIET FBCS CITP, IBM, archived from the original on 2006-10-18, retrieved June 20, 2022
  9. "The History of Vim". Jovica Ilic. 5 June 2014.
  10. Orin, Andy (18 June 2015). "Behind The App: The Story Of Notepad++". Lifehacker Australia (in English). Retrieved 17 June 2022.
  11. Somasegar, S (4 July 2015). "Introducing Visual Studio Code, Visual Studio 2015 RC, Application Insights Public Preview and .NET Core Preview for Linux and Mac - Somasegar's blog - Site Home - MSDN Blogs". blogs.msdn.com/. Microsoft. Archived from the original on 4 July 2015. Retrieved 17 June 2022.
  12. Ayush (21 May 2018). "10 Best IDEs For Programmers And Developers". Technotification. Retrieved 18 June 2022.
  13. Petreley, Nicholas (11 Feb 2003). "Java text editing software for Linux". Computer World. Retrieved 17 June 2022.
  14. 14.0 14.1 14.2 14.3 14.4 14.5 "Global Text Editor Market By Product Type (Cloud Based, Web Based) And By End-Users/Application (Large Enterprises, SMEs) Global Market Share, Forecast Data, In-Depth Analysis, And Detailed Overview, and Forecast, 2013 - 2026". The major players operating into Text Editor Market include: Visual Studio Code, Notepad++, Sublime, Brackets, UltraEdit, Atom
  15. "Holy War (Hacker Jargon)". Archived from the original on 2012-04-02. Retrieved 2016-11-30.