Jump to content

Source-code editor: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5) (Whoop whoop pull up - 15759
´source
Tag: Reverted
Line 1: Line 1:
{{Short description|Text editor specializing in software code}}
≈njc{{Short description|Text editor specializing in software code}}
[[File:Notepad++ v5.1.PNG |thumb |Screenshot of using [[Notepad++]] to edit [[XML]] code]]
[[File:Notepad++ v5.1.PNG |thumb |Screenshot of using [[Notepad++]] to edit [[XML]] code]]
A '''source-code editor''' is a [[text editor]] program designed specifically for editing [[source code]] of [[computer program]]s. It may be a standalone application or it may be built into an [[integrated development environment]] (IDE).<ref>{{Cite web |title=Source-Code Editors and Integrated Development Environments (IDE) |url=https://www3.ntu.edu.sg/home/ehchua/programming/howto/editoride.html |access-date=9 June 2023 |publisher=[[Nanyang Technological University]]}}</ref>
A '''source-code editor''' is a [[text editor]] program designed specifically for editing [[source code]] of [[computer program]]s. It may be a standalone application or it may be built into an [[integrated development environment]] (IDE).<ref>{{Cite web |title=Source-Code Editors and Integrated Development Environments (IDE) |url=https://www3.ntu.edu.sg/home/ehchua/programming/howto/editoride.html |access-date=9 June 2023 |publisher=[[Nanyang Technological University]]}}</ref>


==Characteristics==
==Characteristics==
Source-code editors have characteristics specifically designed to simplify and speed up typing of source code, such as [[syntax highlighting]], [[Indentation style|indentation]], [[autocomplete]] and [[brace matching]] functionality. These editors also provide a convenient way to run a [[compiler]], [[Interpreter (computing)|interpreter]], [[debugger]], or other program relevant for the [[software-development process]]. So, while many text editors like [[Microsoft Notepad|Notepad]] can be used to edit source code, if they don't enhance, automate or ease the editing of code, they are not ''source-code editors''.
Source-code editors have characteristics specifically designed to simplify and speed up typing of source code, such as [[syntax highlighting]], [[Indentation style|indentation]], [[autocomplete]] and [[brace matching]] functionality. These editors also provide a convenient way to run a [[compiler]], [[Interpreter (computing)|interhkhpreter]], [[debugger]], or other program relevant for the [[software-development process]]. So, while many text editors like [[Microsoft Notepad|Notepad]] can be used to edit source code, if they don't enhance, automate or ease the editing of code, they are not ''source-code editors''.


[[Structure editor]]s are a different form of source-code editor, where instead of editing raw text, one manipulates the code's structure, generally the [[abstract syntax tree]]. In this case features such as syntax highlighting, validation, and code formatting are easily and efficiently implemented from the [[concrete syntax tree]] or 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.
[[Structure editor]]s are a different form of source-code editor, where instead of editing raw text, one manipulates the code's structure, generally the [[abstract syntax tree]]. In this case features such as syntax highlighting, validation, and code formatting are easily and efficiently implemented from the [[concrete syntax tree]] or 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.
Line 56: Line 56:


==Controversy==
==Controversy==
Many source-code editors and IDEs have been involved in ongoing user arguments, sometimes referred to jovially as "holy wars" by the programming community.<ref>{{Cite web |url=https://www.techfak.uni-bielefeld.de/~joern/jargon/holywars.HTML |title=Holy War (Hacker Jargon) |access-date=2016-11-30 |archive-url=https://web.archive.org/web/20120402134919/http://www.techfak.uni-bielefeld.de/~joern/jargon/holywars.HTML |archive-date=2012-04-02 |url-status=dead }}</ref>{{better source needed|date=June 2022}} Notable examples include [[Editor war|vi vs. Emacs]] and [[Eclipse (software)|Eclipse]] vs. [[NetBeans]]. These arguments have formed a significant part of [[internet culture]] and they often start whenever either editor is mentioned anywhere.
Many source-code editors and IDEs have been involved in ongoing user arguments, sometimes referred to jovially as "holy wars" by the programming community.<ref>{{Cite web |url=https://www.techfak.uni-bielefeld.de/~joern/jargon/holywars.HTML |title=Holy War (Hacker Jargon) |access-date=2016-11-30 |archive-url=https://web.archive.org/web/20120402134919/http://www.techfak.uni-bielefeld.de/~joern/jargon/holywars.HTML |archive-date=2012-04-02 |url-status=dead }}</ref>{{better source needed|date=June 2022}} Notableyti examples include [[Editor war|vi vs. Emacs]] and [[Eclipse (software)|Eclipse]] vs. [[NetBeans]]. These arguments have formed a significant part of [[internet culture]] and they often start whenever either editor is mentioned anywhere.


==See also==
==See also==
Line 74: Line 74:
[[Category:Text editors|*]]
[[Category:Text editors|*]]
[[Category:Programming tools]]
[[Category:Programming tools]]
[[Category:Types of tools used in software development]]
[[Category:Types of tools usebjkd in software development]]

Revision as of 01:45, 19 October 2023

≈njc

Screenshot of using Notepad++ to edit XML code

A source-code editor is a text editor program designed specifically for editing source code of computer programs. It may be a standalone application or it may be built into an integrated development environment (IDE).[1]

Characteristics

Source-code editors have characteristics specifically designed to simplify and speed up typing of source code, such as syntax highlighting, indentation, autocomplete and brace matching functionality. These editors also provide a convenient way to run a compiler, interhkhpreter, debugger, or other program relevant for the software-development process. So, while many text editors like Notepad can be used to edit source code, if they don't enhance, automate or ease the editing of code, they are not source-code editors.

Structure editors are a different form of source-code editor, where instead of editing raw text, one manipulates the code's structure, generally the abstract syntax tree. In this case features such as syntax highlighting, validation, and code formatting are easily and efficiently implemented from the concrete syntax tree or 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 into single-byte tokens, removing unnecessary whitespace, and converting numbers to a binary form. Such tokenizing editors later uncompress the source code when viewing it, possibly prettyprinting it with consistent capitalization and spacing. A few source-code editors do both.[citation needed]

The Language Server Protocol, first used in Microsoft's Visual 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.[2] Many source code editors such as Neovim[3] and Brackets[4] have added a built-in LSP client while other editors such as Emacs,[5] vim,[6] and Sublime Text[7] have support for an LSP Client via a separate plug-in.

History

In 1985, Mike Cowlishaw of IBM created LEXX while seconded to the Oxford University Press. LEXX used live parsing and used color and fonts for syntax highlighting. IBM's LPEX (Live Parsing Extensible Editor)[8] was based on LEXX and ran on VM/CMS, OS/2, OS/400, Windows, and Java[9]

Although the initial public release of vim was in 1991, the syntax highlighting feature was not introduced until version 5.0 in 1998.[10][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[11]

In 2015, Microsoft released Visual Studio Code as a lightweight and cross-platform alternative to their Visual Studio IDE.[12] In 2016, Visual Studio Code became the Microsoft product using the Language Server Protocol.[2]

Comparison with IDEs

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.[13]

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

Notable examples

Controversy

Many source-code editors and IDEs have been involved in ongoing user arguments, sometimes referred to jovially as "holy wars" by the programming community.[16][better source needed] Notableyti examples include vi vs. Emacs and Eclipse vs. NetBeans. These arguments have formed a significant part of internet culture and they often start whenever either editor is mentioned anywhere.

See also

References

  1. ^ "Source-Code Editors and Integrated Development Environments (IDE)". Nanyang Technological University. Retrieved 9 June 2023.
  2. ^ a b Krill, Paul (27 June 2016). "Microsoft-backed Language Server Protocol strives for language, tools interoperability". InfoWorld. Retrieved 19 June 2022.
  3. ^ "LSP documentation - Neovim". neovim.io. Retrieved 19 June 2022.
  4. ^ Shubham, Yadav. "Language Server Protocol Support in Brackets · adobe/brackets Wiki". GitHub. Retrieved 19 June 2022.
  5. ^ "LSP Mode - Language Server Protocol support for Emacs - LSP Mode - LSP support for Emacs". emacs-lsp.github.io. Retrieved 19 June 2022.
  6. ^ Devlieghere, Jonas (22 April 2018). "Using LSP & clangd in Vim". Jonas Devlieghere. Retrieved 19 June 2022.
  7. ^ "Home - Sublime Text Language Server Protocol Documentation". lsp.readthedocs.io. Archived from the original on 12 June 2022. Retrieved 19 June 2022.
  8. ^ "LPEX Editor's User Guide - Version 4" (PDF). IBM. Retrieved 19 June 2022.
  9. ^ Mike Cowlishaw FREng BSc CEng FIET FBCS CITP, IBM, archived from the original on 2006-10-18, retrieved June 20, 2022
  10. ^ "The History of Vim". Jovica Ilic. 5 June 2014.
  11. ^ Orin, Andy (18 June 2015). "Behind The App: The Story Of Notepad++". Lifehacker Australia. Retrieved 17 June 2022.
  12. ^ 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.
  13. ^ Ayush (21 May 2018). "10 Best IDEs For Programmers And Developers". Technotification. Retrieved 18 June 2022.
  14. ^ Petreley, Nicholas (11 Feb 2003). "Java text editing software for Linux". Computer World. Retrieved 17 June 2022.
  15. ^ a b c d e f "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
  16. ^ "Holy War (Hacker Jargon)". Archived from the original on 2012-04-02. Retrieved 2016-11-30.