Source-code editor

(Redirected fromSource code editor)

Asource-code editoris atext editorprogram designed specifically for editingsource codeofcomputer programs.It may be a standalone application or it may be built into anintegrated development environment(IDE).

Screenshot of usingNotepad++to editXMLcode

Features

edit

Source-code editors have features specifically designed to simplify and speed up typing of source code, such assyntax highlighting,indentation,autocompleteandbrace matchingfunctionality. These editors also provide a convenient way to run acompiler,interpreter,debugger,or other program relevant for thesoftware-development process.So, while many text editors likeNotepadcan be used to edit source code, if they do not enhance, automate or ease the editing of code, they are notsource-code editors.

Structure editorsare a different form of source-code editor, where instead of editing raw text, one manipulates the code's structure, generally theabstract syntax tree.In this case features such as syntax highlighting, validation, and code formatting are easily and efficiently implemented from theconcrete syntax treeor abstract syntax tree, but editing is often more rigid than free-form text. Structure editors also require extensive support for each language, and thus are harder to extend to new languages than text editors, where basic support only requires supporting syntax highlighting or indentation. For this reason, strict structure editors are not popular for source code editing, though some IDEs provide similar functionality.

A source-code editor can check syntax while code is being entered and immediately warn of syntax problems. A few source-code editors compress source code, typically converting common keywords intosingle-byte tokens,removing unnecessary whitespace, and converting numbers to a binary form. Such tokenizing editors later uncompress the source code when viewing it, possiblyprettyprintingit with consistent capitalization and spacing. A few source-code editors do both.[citation needed]

TheLanguage Server Protocol,first used in Microsoft'sVisual Studio Code,allows for source code editors to implement an LSP client that can read syntax information about any language with a LSP server. This allows for source code editors to easily support more languages with syntax highlighting, refactoring, and reference finding.[1]Many source code editors such as Neovim[2]and Brackets[3]have added a built-in LSP client while other editors such as Emacs,[4]vim,[5]and Sublime Text[6]have support for an LSP Client via a separate plug-in.

History

edit

In 1985,Mike CowlishawofIBMcreatedLEXXwhilesecondedto theOxford University Press.LEXX used live parsing and used color and fonts for syntax highlighting. IBM's LPEX (Live Parsing Extensible Editor)[7]was based on LEXX and ran onVM/CMS,OS/2,OS/400,Windows,andJava[8]

Although the initial public release ofvimwas in 1991, the syntax highlighting feature was not introduced until version 5.0 in 1998.[9][better source needed]

In 2003,Notepad++,a source code editor for Windows, was released by Don Ho. The intention was to create an alternative to the java-based source code editor, JEXT[10]

In 2015,Microsoftreleased Visual Studio Code as a lightweight and cross-platform alternative to theirVisual StudioIDE.[11]In 2016, Visual Studio Code became the Microsoft product using the Language Server Protocol.[1]

Comparison with IDEs

edit

A source-code editor is one component of a Integrated Development Environment. In contrast to a standalone source-code editor, an IDE typically also includes debugger and build tools.

Standalone source code editors are preferred over IDEs by some developers when they believe the IDEs are bloated with features they do not need.[12]

Notable examples

edit

Controversy

edit

Many source-code editors and IDEs have been involved in ongoing user arguments, sometimes referred to jovially as "holy wars" by the programming community.[14][better source needed]Notable examples includevi vs. EmacsandEclipsevs.NetBeans.These arguments have formed a significant part ofinternet cultureand they often start whenever either editor is mentioned anywhere.

See also

edit

References

edit
  1. ^abKrill, Paul (27 June 2016)."Microsoft-backed Language Server Protocol strives for language, tools interoperability".InfoWorld.Retrieved19 June2022.
  2. ^"LSP documentation - Neovim".neovim.io.Retrieved19 June2022.
  3. ^Shubham, Yadav."Language Server Protocol Support in Brackets · adobe/brackets Wiki".GitHub.Retrieved19 June2022.
  4. ^"LSP Mode - Language Server Protocol support for Emacs - LSP Mode - LSP support for Emacs".emacs-lsp.github.io.Retrieved19 June2022.
  5. ^Devlieghere, Jonas (22 April 2018)."Using LSP & clangd in Vim".Jonas Devlieghere.Retrieved19 June2022.
  6. ^"Home - Sublime Text Language Server Protocol Documentation".lsp.readthedocs.io.Archived fromthe originalon 12 June 2022.Retrieved19 June2022.
  7. ^"LPEX Editor's User Guide - Version 4"(PDF).IBM.Retrieved19 June2022.
  8. ^Mike Cowlishaw FREng BSc CEng FIET FBCS CITP,IBM, archived fromthe originalon 2006-10-18,retrievedJune 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.Retrieved17 June2022.
  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 fromthe originalon 4 July 2015.Retrieved17 June2022.
  12. ^Petreley, Nicholas (11 Feb 2003)."Java text editing software for Linux".Computer World.Retrieved17 June2022.
  13. ^abcdef"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
  14. ^"Holy War (Hacker Jargon)".Archived fromthe originalon 2012-04-02.Retrieved2016-11-30.