XML kodunu düzenlemek için Notepad++ kaynak kodu düzenleyicisi kullanılıyor.
**Kaynak kodu düzenleyicisi**, bilgisayar programının kaynak kodunu düzenlemek için özel olarak tasarlanmış bir metin düzenleyici programıdır. Bağımsız bir uygulama olabileceği gibi bir tümleşik geliştirme ortamı (IDE) veya web tarayıcısı içine de yerleştirilebilir. Kaynak kodu düzenleyicileri temel bir programlama aracıdır, çünkü programcıların temel işi kaynak kodu yazmak ve düzenlemektir.

Özellikleri
-----------

Emacs olarak bilinen popüler bir kaynak ve metin düzenleyicisi
Kaynak kodu düzenleyicileri, sözdizimi vurgulama, girintileme, otomatik tamamlama ve ayraç eşleştirme işlevleri gibi kaynak kodunun yazılmasını basitleştirmek ve hızlandırmak için özel olarak tasarlanmış özelliklere sahiptir. Bu editörler ayrıca bir derleyici, yorumlayıcı, hata ayıklayıcı veya yazılım geliştirme süreci ile ilgili diğer programları çalıştırmak için uygun bir yol sağlarlar. Bu nedenle, Notepad gibi birçok metin düzenleyici kaynak kodunu düzenlemek için kullanılabilirken, kodun düzenlenmesini geliştirmiyor, otomatikleştirmiyor veya kolaylaştırmıyorsa, bunlar "kaynak kodu düzenleyicileri" değildir.

Yapı düzenleyiciler, ham metni düzenlemek yerine kodun yapısını, genellikle soyut sözdizimi ağacı'nı manipüle eden farklı bir kaynak kodu düzenleyici biçimidir. Bu durumda, sözdizimi vurgulama, doğrulama ve kod biçimlendirme gibi özellikler somut sözdizimi ağacı veya soyut sözdizimi ağacından kolayca ve verimli bir şekilde uygulanır, ancak düzenleme genellikle serbest biçimli metinden daha katıdır. Yapı düzenleyicileri ayrıca her dil için kapsamlı destek gerektirir ve bu nedenle yeni dillere genişletilmesi, temel desteğin yalnızca sözdizimi vurgulama veya girintilemeyi desteklemeyi gerektirdiği metin editörlerinden daha zordur. Bu nedenle, bazı IDE'ler benzer işlevsellik sağlasa da, katı yapı editörleri kaynak kodu düzenleme için popüler değildir.

Bir kaynak kodu düzenleyicisi, kod girilirken sözdizimini kontrol edebilir ve sözdizimi sorunları konusunda hemen uyarabilir. Birkaç kaynak kodu düzenleyicisi  gibi kaynak kodunu sıkıştırır, tipik olarak yaygın anahtar sözcükleri single-byte tokens'a dönüştürür, gereksiz boşlukları kaldırır ve sayıları ikili bir forma dönüştürür. Bu tür simgeleştirme düzenleyicileri daha sonra kaynak kodu görüntülerken sıkıştırmayı açar, muhtemelen güzel baskı (prettyprinting) tutarlı bir şekilde büyük harf ve boşluklarla yazdırır. Birkaç kaynak kodu düzenleyicisi her ikisini de yapar.

İlk olarak Microsoft'un Visual Studio Code programında kullanılan Language Server Protocol, kaynak kod düzenleyicilerinin LSP sunucusu olan herhangi bir dil hakkında sözdizimi bilgilerini okuyabilen bir LSP istemcisi uygulamasına olanak tanır. Bu, kaynak kod düzenleyicilerinin sözdizimi vurgulama, yeniden düzenleme ve referans bulma ile daha fazla dili kolayca desteklemesine olanak tanır.

Neovim ve Brackets gibi birçok kaynak kodu düzenleyicisi yerleşik bir LSP istemcisi eklerken, Emacs, vim ve Sublime Text gibi diğer düzenleyiciler ayrı bir eklenti aracılığıyla bir LSP İstemcisi desteğine sahiptir.

Tarihçe
-------

1985 yılında IBM'den Mike Cowlishaw, Oxford University Press'de geçici görev yaparken LEXX'i yarattı. LEXX canlı ayrıştırma kullanıyordu ve sözdizimi vurgulaması için renk ve yazı tipleri kullanıyordu. IBM'in LPEX'i (Live Parsing Extensible Editor) LEXX'e dayanıyordu ve VM/CMS, OS/2, OS/400, Windows ve Java üzerinde çalışıyordu.

vim'in ilk halka açık sürümü 1991'de olmasına rağmen, sözdizimi vurgulama özelliği 1998'deki 5.0 sürümüne kadar tanıtılmamıştır.

2003 yılında Don Ho tarafından Windows için bir kaynak kodu düzenleyicisi olan Notepad++ piyasaya sürüldü. Amaç, java tabanlı kaynak kodu düzenleyicisi JEXT'e bir alternatif oluşturmaktı.

2015 yılında Microsoft, Visual Studio IDE'sine hafif ve platformlar arası bir alternatif olarak Visual Studio Code'u piyasaya sürdü. 2016 yılında Visual Studio Code, Language Server Protocol (Dil Sunucusu Protokolünü) kullanan Microsoft ürünü oldu.

IDE'ler ile karşılaştırma
-------------------------

Kaynak kodu düzenleyicisi, Tümleşik Geliştirme Ortamının bir bileşenidir. Bağımsız bir kaynak kodu düzenleyicisinin aksine, bir IDE tipik olarak hata ayıklayıcı ve derleme araçlarını da içerir. Bağımsız kaynak kodu düzenleyicileri, IDE'lerin ihtiyaç duymadıkları özelliklerle şişirildiğine inanan bazı geliştiriciler tarafından IDE'lere tercih edilmektedir.

Önemli örnekler
---------------

* Atom
* Brackets
* Eclipse
* Emacs
* Gedit
* NetBeans
* Notepad++ (yalnızca Windows)
* SlickEdit
* Sublime Text
* TextMate (yalnızca macOS)
* UltraEdit
* vi/Vim
* Visual Studio Code

Tartışma
--------

Birçok kaynak kodu düzenleyicisi ve IDE, programlama topluluğu tarafından bazen neşeli bir şekilde "kutsal savaşlar" olarak adlandırılan, süregelen kullanıcı tartışmalarına dahil olmuştur. Önemli örnekler arasında "vi vs. Emacs" ve "Eclipse vs. NetBeans" sayılabilir. Bu tartışmalar internet kültürünün önemli bir parçasını oluşturmuştur ve genellikle herhangi bir yerde herhangi bir düzenleyiciden bahsedildiğinde başlarlar.

Ayrıca bakınız
--------------

* Tümleşik geliştirme ortamı
* Tümleşik geliştirme ortamları karşılaştırması
* Çevrimiçi kaynak kodu oyun alanları karşılaştırması
* Metin düzenleyicileri karşılaştırması#Programlama özellikleri
* JavaScript tabanlı kaynak kodu düzenleyicileri karşılaştırması
* Hex düzenleyicileri karşılaştırması
* HTML düzenleyicileri karşılaştırması
* Metin düzenleyicileri listesi
* Düzenleyici savaşı

Kaynakça
--------

1. ↑  "source code editor". PC Magazine. 6 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Mart 2023.
2. ↑  "17 Best Code Editors". Hostinger Tutorials. 6 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Mart 2023.
3. ↑  Zaher Talab. "How to Choose a Code Editor". developer.com. 6 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Mart 2023.
4. ↑  Sven Lennartz. "35 Useful Source Code Editors Reviewed". Smashing Magazine. 6 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Mart 2023.
5. 1 2  Krill, Paul (27 Haziran 2016). "Microsoft-backed Language Server Protocol strives for language, tools interoperability". *InfoWorld* (İngilizce). 19 Haziran 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Haziran 2022.
6. ↑  "LSP documentation - Neovim". *neovim.io*. 27 Haziran 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Haziran 2022.
7. ↑  Shubham, Yadav. "Language Server Protocol Support in Brackets · adobe/brackets Wiki". *GitHub* (İngilizce). 19 Haziran 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Haziran 2022.
8. ↑  "LSP Mode - Language Server Protocol support for Emacs - LSP Mode - LSP support for Emacs". *emacs-lsp.github.io*. 15 Şubat 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Haziran 2022.
9. ↑  Devlieghere, Jonas (22 Nisan 2018). "Using LSP & clangd in Vim". *Jonas Devlieghere* (İngilizce). 28 Mayıs 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Haziran 2022.
10. ↑  "Home - Sublime Text Language Server Protocol Documentation". *lsp.readthedocs.io*. 12 Haziran 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Haziran 2022.
11. ↑  "LPEX Editor's User Guide - Version 4" (PDF). *IBM*. 11 Ağustos 2022 tarihinde kaynağından arşivlendi (PDF). Erişim tarihi: 19 Haziran 2022.
12. ↑  *Mike Cowlishaw FREng BSc CEng FIET FBCS CITP*, IBM, 18 Ekim 2006 tarihinde kaynağından arşivlendi, erişim tarihi: 20 Haziran 2022
13. ↑  "The History of Vim". *Jovica Ilic*. 5 Haziran 2014. 25 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Nisan 2023.
14. ↑  Orin, Andy (18 Haziran 2015). "Behind The App: The Story Of Notepad++". *Lifehacker Australia* (İngilizce). 17 Haziran 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Haziran 2022.
15. ↑  Somasegar, S (4 Temmuz 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. 4 Temmuz 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Haziran 2022.
16. ↑  Ayush (21 Mayıs 2018). "10 Best IDEs For Programmers And Developers". *Technotification*. 5 Temmuz 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 18 Haziran 2022.
17. ↑  Petreley, Nicholas (11 Şubat 2003). "Java text editing software for Linux". *Computer World*. 17 Haziran 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Haziran 2022.
18. 1 2 3 4 5 6  "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". 7 Ağustos 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Nisan 2023. The major players operating into Text Editor Market include: Visual Studio Code, Notepad++, Sublime, Brackets, UltraEdit, Atom
19. ↑  "Holy War (Hacker Jargon)". 2 Nisan 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 30 Kasım 2016.