Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Code folding
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Software with code folding capability== One of the earliest folding editors was [[STET (text editor)|STET]], an editor written for the [[VM/CMS]] 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 programming language|occam]] [[Integrated development environment|IDE]] ''circa'' 1983, which was called the [[Inmos Transputer Development System (TDS)]]<ref>{{Cite book|title=Transputer research and applications, 2 : NATUG-2, proceedings of the Second Conference of the North American Transputer Users Group, October 18-19, 1989, Durham, NC|last=North American Transputer Users Group. Conference (2nd : 1989 : Durham, N.C.)|date=1990|publisher=IOS Press|others=Board, John A., Duke University.|isbn=9051990278|location=Amsterdam|pages=85|oclc=35478471}}</ref><sup>,</sup>.<ref>{{Cite web|url=http://www.transputer.net/tn/03/tn03.pdf|title=INMOS Technical Note 03 - Getting started with the TDS|last=Cormie|first=David|date=1986|website=transputer.net|access-date=2019-07-19}}</ref> The "f" editor (in list below) probably is the most intact legacy from this work. The [[Apple Macintosh|Macintosh]] computer historically had a number of [[source code editor]]s that "folded" portions of code via "[[progressive disclosure|disclosure]] triangles". The [[UserLand Software]] product Frontier is a scripting environment that has this capability.<ref>{{cite web|accessdate=2006-12-27|url=http://www.outliners.com/|title=Outliners.com|url-status=dead|archiveurl=https://web.archive.org/web/20061223230643/http://www.outliners.com/|archivedate=2006-12-23}}</ref><!-- This site doesn't actually verify this citation? --> Folding is provided by many modern text editors, and [[#Conventions|syntax-based]] or semantics-based folding is now a component of many [[Integrated development environment|software development environments]]. Editors include: <!-- (Please insert in alphabetical order) --> {| class="wikitable sortable" style="text-align: center; width: auto; table-layout: fixed;" |- ! style="width: 12em" | Name ! Token ! Indentation ! Syntax ! User |- | [[ABAP#ABAP_Workbench|ABAP Editor]] | {{yes}} | {{dunno}} | {{yes}} | {{dunno}} |- | AkelPad | {{dunno}} | {{dunno}} | {{yes}} | {{dunno}} |- | [[Anjuta|Anjuta IDE]] | {{dunno}} | {{yes}} | {{yes}} | {{dunno}} |- | [[Atom (text editor)|Atom]]{{efn|http://flight-manual.atom.io/using-atom/sections/folding/}} | {{dunno}} | {{yes}} | {{dunno}} | {{yes}} |- | [[BBEdit]] | {{dunno}} | {{dunno}} | {{Yes}} | {{dunno}} |- | [[Brackets (text editor)|Brackets]] | {{yes2}}Plug-in | {{yes}} | {{yes}} | {{no}} |- | [[Codeanywhere]] | {{yes}} | {{yes}} | {{yes}} | {{dunno}} |- | [[Codenvy]] | {{yes}} | {{yes}} | {{yes}} | {{dunno}} |- | [[Code::Blocks|Code::Blocks IDE]] | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes}} |- | [[Cubic IDE]] | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes}} |- | CudaText | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} |- | [[Delphi (IDE)|Delphi IDE]] | {{Yes}} | {{dunno}} | {{Yes}} | {{dunno}} |- | [[Adobe Dreamweaver|Dreamweaver]] | {{dunno}} | {{dunno}} | {{dunno}} | {{yes}} |- | [[Eclipse (software)|Eclipse]] | {{dunno}} | {{dunno}} | {{yes}} | {{dunno}} |- | EditPlus | {{no}} | {{yes}} | {{no}} | {{no}} |- | [[Emacs]] | {{yes}}{{efn|Token-based folding is implemented by the [http://www.emacswiki.org/emacs/FoldingMode ''folding'' minor mode]. One can also use ''[https://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Mode.html outline]'' and ''[http://www.emacswiki.org/emacs/AllOut allout]'' minor modes for sectioning program sources.}} | {{dunno}}{{efn|One can use the <code>set-selective-display</code> function in Emacs to hide lines based on the indentation level, as suggested in the [http://www.emacswiki.org/emacs/HideShow#toc4 Universal code folding] note.}} | {{yes}}{{efn|1=Syntax-dependent folding is supported by the ''[https://www.gnu.org/software/emacs/manual/html_node/emacs/Outline-Mode.html outline]'' and ''[http://www.emacswiki.org/emacs/AllOut allout]'' modes for special dedicated [[Outline (list)|outline]]-syntaxes; by the ''[http://www.emacswiki.org/emacs/HideShow#toc3 hideshow]'' minor mode for some programming languages; also, by the ''[http://www.emacswiki.org/emacs/semantic-tag-folding.el semantic-tag-folding]'' minor mode and the <code>[http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/cedet/semantic/senator.el?h=cedet-branch#n484 senator-fold-tag]</code> command for [http://cedet.sourceforge.net/semantic.shtml syntaxes supported by ''semantic'' (a component of CEDET)], as well as by ''[http://www.emacswiki.org/emacs/DocMode doc-mode]'' for [[JavaDoc]] or [[Doxygen]] comments, by ''[https://www.gnu.org/software/auctex/manual/auctex/Folding.html#Folding TeX-fold-mode]'', <code>[http://www.lysator.liu.se/~lenst/about_psgml/psgml.html#Fold sgml-fold-element]</code> command, ''[http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/nxml/nxml-outln.el?h=EMACS_23_1_RC#n23 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. the [http://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/lisp-mode.el#n226 use] of it in properly indented Emacs Lisp source code, the [http://c2.com/cgi/wiki?EmacsOutlineMode use of it (see near the end of the page)] for properly indented HTML. Several folding mechanisms are unified by the ''[http://www.emacswiki.org/emacs/FoldDwim fold-dwim]'' interface. See also [http://www.emacswiki.org/emacs/CategoryHideStuff CategoryHideStuff].}} | {{yes}}{{efn|Folding of user-selected regions in Emacs is implemented by the <code>[http://www.emacswiki.org/emacs/HideRegion hide-region-hide]</code> command.}} |- | [[EmEditor|EmEditor Professional]] | {{dunno}} | {{yes}} | {{yes}} | {{dunno}} |- | FlashDevelop IDE | {{dunno}} | {{dunno}} | {{yes}} | {{dunno}} |- | [[geany]] | {{dunno}} | {{yes}} | {{yes}} | {{dunno}} |- | [[gedit]] | {{yes}} | {{yes}} | {{yes}} | {{dunno}} |- | [[ISPF#ISPF Editor|ISPF]] | {{dunno}} | {{Yes}} | {{dunno}} | {{Yes}} |- | [[JED (text editor)|JED]] | {{yes}} | {{yes}}{{efn|The <code>set_selective_display</code> function may be used to hide lines indented beyond a specified amount.}} | {{dunno}} | {{no}} |- | [[jEdit]] | {{yes}} | {{yes}} | {{yes}} | {{yes}} |- | [[Kate (text editor)|Kate]] | {{yes}} | {{yes}} | {{yes}} | {{yes}} |- | [[MATLAB]] | {{no}} | {{no}} | {{yes}} | {{no}} |- | [[Microsoft Visual Studio|MS Visual Studio]] | {{yes}} | {{yes}} | {{yes}} | {{yes}} |- | [[NetBeans|NetBeans IDE]] | {{yes}} | {{yes}} | {{yes}} | {{yes}} |- | [[Notepad++]] | {{dunno}} | {{yes}} | {{yes}} | {{yes}} |- | [[PHPEd|NuSphere PHPEd]] | {{dunno}} | {{dunno}} | {{Yes}} | {{Yes}} |- | [[Qt Creator]] | {{dunno}} | {{dunno}} | {{Yes}} | {{dunno}} |- | [[SciTE]] | {{yes}} | {{yes}} | {{yes}} | {{dunno}} |- | [[STET (text editor)|STET]]{{efn|STET may have been the first text editor that supported folding{{Citation needed|date=January 2008}}}} | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} |- | [[TextMate]] | {{yes}} | {{yes}} | {{yes}} | {{yes}} |- | [[UltraEdit]] | {{no}} | {{no}} | {{yes}} | {{Yes}} |- | [[Vim (text editor)|Vim]] | {{yes}} | {{yes}} | {{yes}} | {{yes}} |- | [[Visual Expert]] | {{dunno}} | {{dunno}} | {{yes}} | {{dunno}} |- | [[Visual Studio Code]] | {{yes}} | {{yes}} | {{yes}} | {{no}} |- | [[Xcode]] | {{yes}} | {{yes}} | {{yes}} | {{yes}} |- | [[Zend Studio]] | {{dunno}} | {{dunno}} | {{dunno}} | {{dunno}} |} ===Other editors=== {{div col|colwidth=22em}} * aoeui, the [[Dvorak Simplified Keyboard|Dvorak]]-optimized editor * Author-it enterprise authoring and component content management software * f (alias xf, Winf, Winf32) * Folding Text Editor * [[GFA BASIC]] * GridinSoft Notepad * [[IntelliJ IDEA]] (and other [[JetBrains]] IDEs) * [[Keynote (notetaking software)|Keynote]] * [[Komodo Edit]] * [[Kwrite]] * [[Leo (text editor)|Leo]] * [[LEXX_(text_editor)|LEXX/LPEX]] (editor for the [[OED]])<ref>LEXX – A programmable structured editor ''IBM Journal of Research and Development'', Vol 31, No. 1, 1987, IBM Reprint order number G322-0151</ref> * [[MonoDevelop]] * [[NoteTab|NoteTab Pro]] * [[Padre (software)|Padre]] * RJ Text Editor * [[Smultron]] * [[The Hessling Editor]] * [[Visual Studio]] * [[WinShell]] (since version 3.30) * [[XEDIT]] (however its folding is effected by scripts) * Zeus {{div col end}}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)