Folding editor
   HOME

TheInfoList



OR:

Code or text folding, or less commonly holophrasting, is a feature of some
graphical user interfaces The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
that allows the user to selectively hide ("fold") or display ("unfold") parts of a document. This allows the user to manage large amounts of text while viewing only those subsections that are currently of interest. It is typically used with documents which have a natural
tree structure A tree structure, tree diagram, or tree model is a way of representing the hierarchical nature of a structure in a graphical form. It is named a "tree structure" because the classic representation resembles a tree, although the chart is genera ...
consisting of nested elements. Other names for these features include expand and collapse, code hiding, and outlining. In
Microsoft Word Microsoft Word is a word processor, word processing software developed by Microsoft. It was first released on October 25, 1983, under the name ''Multi-Tool Word'' for Xenix systems. Subsequent versions were later written for several other pla ...
, the feature is called "collapsible outlining". Many user interfaces provide
disclosure widget A disclosure widget, expander, or disclosure triangle is a graphical control element that is used to show or hide a collection of "child" widgets in a specific area of the interface. The widget hides non-essential settings or information and thu ...
s for code folding in a sidebar, indicated for example by a triangle that points sideways (if collapsed) or down (if expanded), or by a /code> box for collapsible (expanded) text, and a /code> box for expandable (collapsed) text. Code folding is found in
text editor A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software (e.g. Windows Notepad). Text editors are provided with operating systems and software development packages, and can be ...
s,
source code editor 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) or web browser. Source-code ed ...
s, and IDEs. The folding structure typically follows the
syntax tree Syntax tree may refer to: * Abstract syntax tree, used in computer science * Concrete syntax tree A parse tree or parsing tree or derivation tree or concrete syntax tree is an ordered, rooted tree that represents the syntactic structure of a str ...
of the program defined by the
computer language A computer language is a formal language used to communicate with a computer. Types of computer languages include: * Construction language – all forms of communication by which a human can specify an executable problem solution to a comput ...
. It may also be defined by levels of
indentation __FORCETOC__ In the written form of many languages, an indentation or indent is an empty space at the beginning of a line to signal the start of a new paragraph. Many computer languages have adopted this technique to designate "paragraphs" or o ...
, or be specified explicitly using an in-band marker (saved as part of the source code) or out-of-band. Text folding is a similar feature used on ordinary text, where the nested elements consist of paragraphs, sections, or outline levels. Programs offering this include folding editors,
outliner An outliner (or outline processor) is a specialized type of text editor (word processor) used to create and edit outlines, which are text files which have a tree structure, for organization. Textual information is contained in discrete sections c ...
s, and some
word processor A word processor (WP) is a device or computer program that provides for input, editing, formatting, and output of text, often with some additional features. Early word processors were stand-alone devices dedicated to the function, but current ...
s. Data folding is found in some
hex editor A hex editor (or ''binary file editor'' or ''byte editor'') is a computer program that allows for manipulation of the fundamental binary data that constitutes a computer file. The name 'hex' comes from 'hexadecimal', a standard numerical format f ...
s and is used to structure a binary file or hide inaccessible data sections. Folding is also frequently used in
data comparison In computing, file comparison is the calculation and display of the differences and similarities between data objects, typically text files such as source code. The methods, implementations, and results are typically called a diff, after the Un ...
, to select one version or another, or only the differences.


History

The earliest known example of code folding in an editor is in
NLS (computer system) NLS, or the "oN-Line System", was a revolutionary computer collaboration system developed in the 1960s. Designed by Douglas Engelbart and implemented by researchers at the Augmentation Research Center (ARC) at the Stanford Research Institute (SR ...
. Probably the first widely available folding editor was the 1974 Structured Programming Facility (SPF) editor for IBM 370 mainframes, which could hide lines based on their indentation. It displayed on character-mapped 3270 terminals. It was very useful for prolix languages like COBOL. It evolved into the Interactive System Productivity Facility (
ISPF In computing, Interactive System Productivity Facility (ISPF) is a software product for many historic IBM mainframe operating systems and currently the z/OS and z/VM operating systems that run on IBM mainframes. It includes a screen editor, th ...
).


Use

Code folding has various
use pattern Use may refer to: * Use (law), an obligation on a person to whom property has been conveyed * Use (liturgy), a special form of Roman Catholic ritual adopted for use in a particular diocese * Use–mention distinction, the distinction between using ...
s, primarily organizing code or hiding less useful information so one can focus on more important information. Common patterns follow.


Outlining

Most basically, applications use code folding to outline source code, collapsing each block to a single line. This can be only top-level blocks like functions and classes, nested blocks like nested functions and methods, or all blocks, notably control-flow blocks. This allows one to get an overview of code, easily navigating and rearranging it, and to drill down into more detail as needed, without being distracted by other code. Viewing-wise, this allows one to quickly see a list of all functions (without their bodies), while navigation-wise this replaces extensive paging past long functions – or searching for the target – with going directly to the next function.


Hiding boilerplate code

Some languages or libraries require extensive boilerplate code. This results in extremely long code, which can obscure the main point. Further, substantive code can be lost in the boilerplate. For example, in Java a single private field with a getter and setter requires at least 3 lines, if each is on a separate line: private String name = null; public String getName() public void setName(String name) This expands to 10 lines with conventional function line breaks and spacing between functions (including trailing newline): private String name = null; public String getName() public void setName(String name) Documentation with Javadoc expands this to 20 lines: /** * Property name readable/writable. */ private String name = null; /** * Getter for property name */ public String getName() /** * Setter for property name. * @param name */ public void setName(String name) If there are many such fields, the result can easily be hundreds of lines of code with very little "interesting" content – code folding can reduce this to a single line per field, or even to a single line for all fields. Further, if all routine fields are folded, but non-routine fields (where getter or setter is not just returning or assigning a private field) are not folded, it becomes easier to see the substantive code.


Collapsing metadata

Metadata can be lengthy, and is generally less important than the data it is describing. Collapsing metadata allows one to primarily focus on the data, not the metadata. For example, a long list of
attributes Attribute may refer to: * Attribute (philosophy), an extrinsic property of an object * Attribute (research), a characteristic of an object * Grammatical modifier, in natural languages * Attribute (computing), a specification that defines a prope ...
in C# may be manually collapsed as follows: #region Attributes rowsable(false) ergableProperty(false) efaultValue(null) ersistenceMode(PersistenceMode.InnerProperty) emplateContainer(typeof(MyType)) emplateInstance(TemplateInstance.Single) #endregion public ITemplate ContentTemplate The resulting code displays as: Attributes public ITemplate ContentTemplate


Collapsing comments

Comments are a form of human-readable metadata, and lengthy comments can disrupt the flow of code. This can be the case either for a long comment for a short section of code, such as a paragraph to explain one line, or comments for
documentation generator A documentation generator is a programming tool that generates software documentation intended for programmers ( API documentation) or end users (end-user guide), or both, from a set of source code files, and in some cases, binary files. Some gen ...
s, such as
Javadoc Javadoc (originally cased JavaDoc) is a documentation generator created by Sun Microsystems for the Java language (now owned by Oracle Corporation) for generating API documentation in HTML format from Java source code. The HTML format is used for ...
o
XML Documentation
Code folding allows one to have long comments, but to display them only when required. In cases where a long comment has a single summary line, such as Python docstrings, the summary can still be displayed when the section is collapsed, allowing a summary/detailed view.


Showing structure or sandwich code in structured programming

Structured programming consists of nested blocks of code, and long blocks of code – such as long switch statements – can obscure the overall structure. Code folding allows one to see the overall structure and expand to a specific level. Further, in some uses, particularly strict structured programming (single function exit), there are code patterns that are hard to see when looking at expanded code. For example, in
resource management In organizational studies, resource management is the efficient and effective development of an organization's resources when they are needed. Such resources may include the financial resources, inventory, human skills, production resources, or i ...
in structured programming, one generally acquires a resource, followed by a block of code using the resource, and finishing with releasing the resource. The acquisition/release pairing is hard to see if there is a long block of code in between, but easy to see if the intervening block is folded. Similarly, in conditional code like if...then...else, secondary blocks may be far from the condition statement.


Grouping code

Fold groups can be used to group code, either by explicit grouping – similar to comment blocks separating a module into sections, or class members into associated groups – or implicitly, such as by automatically grouping class members by access level.


Hiding legacy code

Legacy code – or any code that a developer does not wish to view or change at a given point in time – can be folded away so that programmers can concentrate on the code under consideration.


Hiding in-source data tables


Conventions

In order to support code folding, the text editor must provide a mechanism for identifying "folding points" within a text file. Some text editors provide this mechanism automatically, while others provide defaults that can either be overridden or augmented by the user. There are various mechanisms, coarsely divided as automatic and manual – do they require any specification by the programmer? Folding points are usually determined with one or more of the following mechanisms. Each of these has its own distinct advantages and difficulties, and it is essentially up to the developers who create the text editor software to decide which to implement. Text editors that provide support for multiple folding mechanisms typically allow the user to choose which is most appropriate for the file being edited.


Syntax-dependent

Syntax-dependent folding points are those that rely on the content of the file being edited in order to specify where specific folding regions should begin and end. Syntax-based folding points are typically defined around any or all of the standard sub-features of the markup language or
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
in use. These are desirable due to being automatic and agreeing with code structure, but may require significant work to implement, and time to compute when editing a file.


Indentation-based

Indentation-based folding points are generally specified by the position and sequence of non-printing whitespace, such as tabs and spaces, within the text. This is most often used as a simple form of syntax-based folding, as indentation almost always reflects nesting level in
indent style In computer programming, an indentation style is a convention governing the indentation of blocks of code to convey program structure. This article largely addresses the free-form languages, such as C and its descendants, but can be (and oft ...
s for structured programming languages. This convention is particularly suitable to syntaxes that have an
off-side rule A computer programming language is said to adhere to the off-side rule of syntax if blocks in that language are expressed by their indentation. The term was coined by Peter Landin, possibly as a pun on the offside rule in association football ...
, so the structure largely agrees with the indent. Examples include
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
and text files that require indentation as a rule by themselves. However, even in these cases, structure does not exactly agree with indent, such as in line continuation, and thus syntax-dependent folding is preferred.


Token-based

Token-based folding points are specified using special delimiters that serve no other purpose in the text than to identify the boundaries of folding points. This convention can be compared to indentation-based folding points, where printable characters are used instead of whitespace. The most common delimiter tokens are to end it. Another notable token is #region
/code>
C# directives
, respectively #Region
/code>
Visual Basic directives
, used in Microsoft Visual Studio
Code Editor 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) or web browser. Source-code ed ...
. These are treated syntactically as compiler directives, though they do not affect compilation. As a manual method, token-based folding allows discretion in grouping code based on arbitrary criteria, such as "functions related to a given task", which cannot be inferred from syntactic analysis. Token-based folding requires in-band signalling, with folding tokens essentially being structured comments, and unlike other methods, are present in the source code and visible to other programmers. This allows them to be shared, but also requires their use (or preservation) by all programmers working on a particular file, and can cause friction and maintenance burden.


User-specified

User-specified folding allows the user to fold sections of text using a generic selection method, but without changing the source code (out-of-band), instead being specified only in the editor. For example, a programmer may select some lines of text and specify that they should be folded. Folded text might be anonymous or named, and this may be preserved across editing sessions or discarded. Unlike token-based folding, this does not change the source text – it thus is not shared with other editors of the file, and is not visible in the code.


Examples

The following document contains folding tokens ():

 Heading 1
 

 Heading 2
 

 Heading 3
 
When loaded into a folding editor, the outline structure will be shown:

 Heading 1
 {{{ ...

 Heading 2
 {{{ ...

 Heading 3
 {{{ ...
Usually clicking on the {{{ marks makes the appropriate body text appear.


Software with code folding capability

One of the earliest folding editors was STET, an editor written for the
VM/CMS VM (often: VM/CMS) is a family of IBM virtual machine operating systems used on IBM mainframes System/370, System/390, zSeries, System z and compatible systems, including the Hercules emulator for personal computers. The following versions ...
operating system in 1977 by Mike Cowlishaw. STET is a text editor (for documentation, programs, etc.) which folds files on the basis of blocks of lines; any block of lines can be folded and replaced by a name line (which in turn can be part of a block which itself can then be folded). A folding editor appeared in the occam IDE ''circa'' 1983, which was called the Inmos Transputer Development System (TDS),. The "f" editor (in list below) probably is the most intact legacy from this work. The
Macintosh The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and software en ...
computer historically had a number of
source code editor 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) or web browser. Source-code ed ...
s that "folded" portions of code via "
disclosure Disclosure may refer to: Arts and media * ''Disclosure'' (The Gathering album), 2012 *Disclosure (band), a UK-based garage/electronic duo * ''Disclosure'' (novel), 1994 novel written by Michael Crichton ** ''Disclosure'' (1994 film), an American ...
triangles". The
UserLand Software UserLand Software is a US-based software company, founded in 1988, that sells web content management, as well as blogging software packages and services. Company history Dave Winer founded the company in 1988 after leaving Symantec in the spri ...
product Frontier is a scripting environment that has this capability. Folding is provided by many modern text editors, and syntax-based or semantics-based folding is now a component of many software development environments. Editors include: {, class="wikitable sortable" style="text-align: center; width: auto; table-layout: fixed;" , - ! style="width: 12em" , Name ! Token ! Indentation ! Syntax ! User , - , ABAP Editor , {{yes , {{dunno , {{yes , {{dunno , - ,
AkelPad AkelPad is a small, expandable text editor for Microsoft Windows. AkelPad is distributed as free and open-source software, hosted on SourceForge where it has been downloaded more than 3 million times. Unicode and codepages AkelPad handles f ...
, {{dunno , {{dunno , {{yes , {{dunno , - , Anjuta IDE , {{dunno , {{yes , {{yes , {{dunno , - ,
Atom Every atom is composed of a nucleus and one or more electrons bound to the nucleus. The nucleus is made of one or more protons and a number of neutrons. Only the most common variety of hydrogen has no neutrons. Every solid, liquid, gas, ...
{{efn, http://flight-manual.atom.io/using-atom/sections/folding/ , {{dunno , {{yes , {{dunno , {{yes , - ,
BBEdit BBEdit is a proprietary text editor made by Bare Bones Software, originally developed for Macintosh System Software 6, and currently supporting macOS. History The first version of BBEdit was created as a "bare bones" text editor to serve as a "p ...
, {{dunno , {{dunno , {{Yes , {{dunno , - ,
Brackets A bracket is either of two tall fore- or back-facing punctuation marks commonly used to isolate a segment of text or data from its surroundings. Typically deployed in symmetric pairs, an individual bracket may be identified as a 'left' or ' ...
, {{yes2Plug-in , {{yes , {{yes , {{no , - , Codeanywhere , {{yes , {{yes , {{yes , {{dunno , - ,
Codenvy Eclipse Che is an open-source, Java-based developer workspace server and Online IDE (integrated development environment). It includes a multi-user remote development platform. The workspace server comes with a flexible RESTful webservice. It a ...
, {{yes , {{yes , {{yes , {{dunno , - , Code::Blocks IDE , {{Yes , {{Yes , {{Yes , {{Yes , - ,
Cubic IDE Cubic IDE is a modular development environment ( IDE) for AmigaOS (versions 3.5 and 3.9 only) and MorphOS. Its central editor is GoldED 8, which supports file type centric configuration. The specific features for developers include syntax highli ...
, {{Yes , {{Yes , {{Yes , {{Yes , - ,
CudaText CudaText, from Bosnian-Croatian-Montenegrin-Serbian ''čuda'' ("wonders" or "miracles", IPA: uda, is a free open source cross-platform native GUI text and source code editor. CudaText supersedes its predecessor ''SynWrite'', no longer under ...
, {{dunno , {{dunno , {{dunno , {{dunno , - , Delphi IDE , {{Yes , {{dunno , {{Yes , {{dunno , - , Dreamweaver , {{dunno , {{dunno , {{dunno , {{yes , - , Eclipse , {{dunno , {{dunno , {{yes , {{dunno , - , EditPlus , {{no , {{yes , {{no , {{no , - , Emacs , {{yes{{efn, Token-based folding is implemented by th
''folding'' minor mode
One can also use

' and
allout
' minor modes for sectioning program sources. , {{dunno{{efn, One can use the set-selective-display function in Emacs to hide lines based on the indentation level, as suggested in th
Universal code folding
note. , {{yes{{efn, 1=Syntax-dependent folding is supported by the

' and
allout
' modes for special dedicated outline-syntaxes; by the
hideshow
' minor mode for some programming languages; also, by the
semantic-tag-folding
' minor mode and the senator-fold-tag
/code> command fo
syntaxes supported by ''semantic'' (a component of CEDET)
as well as by
doc-mode
' for
JavaDoc Javadoc (originally cased JavaDoc) is a documentation generator created by Sun Microsystems for the Java language (now owned by Oracle Corporation) for generating API documentation in HTML format from Java source code. The HTML format is used for ...
or
Doxygen Doxygen ( ) is a documentation generator and static analysis tool for software source trees. When used as a documentation generator, Doxygen extracts information from specially-formatted comments within the code. When used for analysis, Doxyge ...
comments, by
TeX-fold-mode
',
/code> command,
nxml-outln
' library in the corresponding language-specific modes, and possibly in other modes for particular syntaxes. Sometimes, the standard simple ''outline'' minor mode is used to simulate syntax-based folding, cf. th
use
of it in properly indented Emacs Lisp source code, th
use of it (see near the end of the page)
for properly indented HTML. Several folding mechanisms are unified by the
fold-dwim
' interface. See als
CategoryHideStuff
, {{yes{{efn, Folding of user-selected regions in Emacs is implemented by the hide-region-hide
/code> command. , - , EmEditor Professional , {{dunno , {{yes , {{yes , {{dunno , - , FlashDevelop IDE , {{dunno , {{dunno , {{yes , {{dunno , - ,
geany Geany ( IPA:dʒiːni ) is a free and open-source lightweight GUI text editor using Scintilla and GTK, including basic IDE features. It is designed to have short load times, with limited dependency on separate packages or external librarie ...
, {{dunno , {{yes , {{yes , {{dunno , - ,
gedit gedit ( or ) is a text editor designed for the GNOME desktop environment. It was GNOME's default text editor and part of the GNOME Core Applications until GNOME version 42 in March 2022, which changed the default text editor to GNOME Text Ed ...
, {{yes , {{yes , {{yes , {{dunno , - ,
ISPF In computing, Interactive System Productivity Facility (ISPF) is a software product for many historic IBM mainframe operating systems and currently the z/OS and z/VM operating systems that run on IBM mainframes. It includes a screen editor, th ...
, {{dunno , {{Yes , {{dunno , {{Yes , - , JED , {{yes , {{yes{{efn, The set_selective_display function may be used to hide lines indented beyond a specified amount. , {{dunno , {{no , - , jEdit , {{yes , {{yes , {{yes , {{yes , - ,
Kate Kate name may refer to: People and fictional characters * Kate (given name), a list of people and fictional characters with the given name or nickname * Gyula Káté (born 1982), Hungarian amateur boxer * Lauren Kate (born 1981), American autho ...
, {{yes , {{yes , {{yes , {{yes , - ,
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementa ...
, {{no , {{no , {{yes , {{no , - , MS Visual Studio , {{yes , {{yes , {{yes , {{yes , - , NetBeans IDE , {{yes , {{yes , {{yes , {{yes , - , Notepad++ , {{dunno , {{yes , {{yes , {{yes , - , NuSphere PHPEd , {{dunno , {{dunno , {{Yes , {{Yes , - ,
Qt Creator Qt Creator is a cross-platform C++, JavaScript and QML integrated development environment (IDE) which simplifies GUI application development. It is part of the SDK for the Qt GUI application development framework and uses the Qt API, which e ...
, {{dunno , {{dunno , {{Yes , {{dunno , - , SciTE , {{yes , {{yes , {{yes , {{dunno , - , STET{{efn, STET may have been the first text editor that supported folding{{Citation needed, date=January 2008 , {{dunno , {{dunno , {{dunno , {{dunno , - ,
TextMate TextMate is a general-purpose GUI text editor for macOS created by Allan Odgaard. TextMate features declarative customizations, tabs for open documents, recordable macros, folding sections, snippets, shell integration, and an extensible bund ...
, {{yes , {{yes , {{yes , {{yes , - , UltraEdit , {{no , {{no , {{yes , {{Yes , - , Vim , {{yes , {{yes , {{yes , {{yes , - , Visual Expert , {{dunno , {{dunno , {{yes , {{dunno , - ,
Visual Studio Code Visual Studio Code, also commonly referred to as VS Code, is a source-code editor made by Microsoft with the Electron Framework, for Windows, Linux and macOS. Features include support for debugging, syntax highlighting, intelligent code comple ...
, {{yes , {{yes , {{yes , {{no , - ,
Xcode Xcode is Apple's integrated development environment (IDE) for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, and tvOS. It was initially released in late 2003; the latest stable release is version 14.2, released on December 13, ...
, {{yes , {{yes , {{yes , {{yes , - , Zend Studio , {{dunno , {{dunno , {{dunno , {{dunno


Other editors

{{div col, colwidth=22em * aoeui, the Dvorak-optimized editor * Author-it enterprise authoring and component content management software *
Bluefish The bluefish (''Pomatomus saltatrix'') is the only extant species of the family Pomatomidae. It is a marine pelagic fish found around the world in temperate and subtropical waters, except for the northern Pacific Ocean. Bluefish are known as ta ...
* f (alias xf, Winf, Winf32) * Folding Text Editor *
GFA BASIC GFA BASIC is a dialect of the BASIC programming language, by Frank Ostrowski. The name is derived from the company ("GFA Systemtechnik GmbH"), which distributed the software. In the mid-1980s to the 1990s it enjoyed popularity as an advanced BA ...
* GridinSoft Notepad *
IntelliJ IDEA IntelliJ IDEA is an integrated development environment (IDE) written in Java for developing computer software written in Java, Kotlin, Groovy, and other JVM-based languages. It is developed by JetBrains (formerly known as IntelliJ) and is av ...
(and other
JetBrains JetBrains s.r.o. (formerly IntelliJ Software s.r.o.) is a Czech software development company which makes tools for software developers and project managers. , the company has offices in Prague; Munich; Berlin; Boston, Massachusetts; Ams ...
' IDE) * Keynote *
Komodo Edit Komodo Edit is a free and open source text editor for dynamic programming languages. It was introduced in January 2007 to complement ActiveState's commercial Komodo IDE. As of version 4.3, Komodo Edit is built atop the Open Komodo project. Komodo ...
* Kwrite * Leo * LEXX/LPEX (editor for the
OED The ''Oxford English Dictionary'' (''OED'') is the first and foundational historical dictionary of the English language, published by Oxford University Press (OUP). It traces the historical development of the English language, providing a co ...
)LEXX – A programmable structured editor ''IBM Journal of Research and Development'', Vol 31, No. 1, 1987, IBM Reprint order number G322-0151 *
MonoDevelop MonoDevelop (also known as Xamarin Studio) is an open-source integrated development environment for Linux, macOS, and Windows. Its primary focus is development of projects that use Mono and .NET Framework. MonoDevelop integrates features similar t ...
* NoteTab Pro *
Padre __NOTOC__ Padre means father in many Romance languages, and it may also refer to: Music * "Padre" (song) People * A military chaplain * A Latin Catholic priest * A member of the San Diego Padres baseball team Places * Padre Island, a barrier ...
* RJ Text Editor *
Smultron Smultron is a text editor for macOS that is designed for both beginners and advanced users, named after the Swedish word for the woodland strawberry. It was originally published as free software but is now sold through the Mac App Store. It i ...
*
The Hessling Editor XEDIT is a visual editor for VM/CMS using block mode IBM 3270 terminals. (Line-mode terminals are also supported.) XEDIT is much more line-oriented than modern PC and Unix editors. For example, XEDIT supports automatic line numbers, and ma ...
*
Visual Studio Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms such ...
*
WinShell WinShell is a freeware, closed-source multilingual integrated development environment (IDE) for LaTeX and TeX for Windows. WinShell includes a text editor, syntax highlighting, project management, spell checking, a table wizard, BibTeX front-end, ...
(since version 3.30) *
XEDIT XEDIT is a visual editor for VM/CMS using block mode IBM 3270 terminals. (Line-mode terminals are also supported.) XEDIT is much more line-oriented than modern PC and Unix editors. For example, XEDIT supports automatic line numbers, and ma ...
(however its folding is effected by scripts) * Zeus {{div col end


See also

*The Programming features section of the
Comparison of text editors This article provides basic comparisons for notable text editors. More feature details for text editors are available from the '' Category of text editor features'' and from the individual products' articles. This article may not be up-to-date or n ...
article for more editors that support folding * Accordion (GUI), a similar UI technique applied to hierarchical lists rather than text


Notes

{{notelist


References

{{reflist {{refbegin * {{cite web, url=http://www.codinghorror.com/blog/2008/07/the-problem-with-code-folding.html , title=The Problem With Code Folding , first=Jeff , last=Atwood , authorlink=Jeff Atwood , work=Coding Horror , date=6 Jul 2008, postscript= – criticism of code folding, detailed comments on use. {{refend


External links

{{Commons category
What is a folding editor?
by the author of the fe
/code> editor.
Description of the folding editor
used in occam. {{DEFAULTSORT:Code Folding Source code Text editor features Articles with example C Sharp code