Knowledge (XXG)

Code folding

Source πŸ“

204:
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.
27: 707:
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
540:
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
203:
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
823:
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
668:
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.
663:
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
814:
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
733:
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
652:. 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. 56:
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
703:
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.
716:
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
765:
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
681:
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.
824:
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.
872:. 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). 708:
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.
639:
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
811:
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.
549:
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
690:
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.
2147:"Now, this is interesting, because I tend to use #region more to HIDE THE CRAP (XML documentation etc, long list of attributes etc.) making it easier to see the important code…" 725:
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.
2170:
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
2201: 2046:
Simon Gauvin, Omid Banyasad, "Transparency, holophrasting, and automatic layout applied to control structures for visual dataflow programming languages", in
175:
mainframes, which could hide lines based on their indentation. It displayed on character-mapped 3270 terminals. It was very useful for prolix languages like
749:
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
2154: 1967:
library in the corresponding language-specific modes, and possibly in other modes for particular syntaxes. Sometimes, the standard simple
916: 879: 195:, primarily organizing code or hiding less useful information so one can focus on more important information. Common patterns follow. 105: 84:
for code folding in a sidebar, indicated for example by a triangle that points sideways (if collapsed) or down (if expanded), or by a
1923: 216:. This results in extremely long code, which can obscure the main point. Further, substantive code can be lost in the boilerplate. 886: 665: 219:
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:
1963: 2303: 2177: 554: 541:
or setter is not just returning or assigning a private field) are not folded, it becomes easier to see the substantive code.
316:
This expands to 10 lines with conventional function line breaks and spacing between functions (including trailing newline):
2355: 1720: 746: 2334: 1972: 1811: 1807: 1687: 876: 171:. Probably the first widely available folding editor was the 1974 Structured Programming Facility (SPF) editor for 53: 2285: 1895: 1857: 1409: 805: 801: 798: 641: 2146: 1035: 901: 660: 126:
is a similar feature used on ordinary text, where the nested elements consist of paragraphs, sections, or
1951: 550: 168: 120:, or be specified explicitly using an in-band marker (saved as part of the source code) or out-of-band. 2243: 2350: 722: 109: 1773: 664:
exit), there are code patterns that are hard to see when looking at expanded code. For example, in
2195: 1740: 1618: 1523: 1371: 1185: 997: 897: 861: 192: 101: 2168:
North American Transputer Users Group. Conference (2nd : 1989 : Durham, N.C.) (1990).
1957: 2297: 2183: 2173: 1735: 1580: 1333: 1166: 905: 750: 117: 113: 81: 35: 1755: 1837: 1760: 213: 20: 1466: 1817: 893: 718: 156: 1917: 794: 789: 784: 779: 649: 1906: 869: 172: 139: 131: 127: 74: 58: 2344: 1778: 1710: 1599: 742: 1880:
function in Emacs to hide lines based on the indentation level, as suggested in the
889:. The "f" editor (in list below) probably is the most intact legacy from this work. 1986: 1147: 1092: 1054: 735: 1447: 2281: 1750: 1725: 1656: 839:
Heading 1 {{{ Body }}} Heading 2 {{{ Body }}} Heading 3 {{{ Body }}}
97: 2318: 1911: 1881: 2109: 2085: 1928: 1485: 149: 1849: 815:
working on a particular file, and can cause friction and maintenance burden.
2187: 2000: 1714: 1702: 1561: 1111: 762: 152:
and is used to structure a binary file or hide inaccessible data sections.
2330: 2216: 1979:
for properly indented HTML. Several folding mechanisms are unified by the
1981: 1976: 1937: 1783: 1768: 1542: 1428: 1240: 135: 1901: 1863: 1693:
Author-it enterprise authoring and component content management software
842:
When loaded into a folding editor, the outline structure will be shown:
26: 1946: 1942: 1820:, a similar UI technique applied to hierarchical lists rather than text 1073: 645: 2017:
function may be used to hide lines indented beyond a specified amount.
908:
product Frontier is a scripting environment that has this capability.
61:
consisting of nested elements. Other names for these features include
2172:. Board, John A., Duke University. Amsterdam: IOS Press. p. 85. 1730: 1390: 1016: 978: 865: 745:, so the structure largely agrees with the indent. Examples include 2323: 1789: 1637: 1504: 1352: 1295: 1276: 1221: 741:
This convention is particularly suitable to syntaxes that have an
176: 25: 2086:"The Mother of All Demos, presented by Douglas Engelbart (1968)" 1998:
Folding of user-selected regions in Emacs is implemented by the
1314: 942: 180: 179:. It evolved into the Interactive System Productivity Facility ( 2048:
Proceedings of the 2006 ACM symposium on Software visualization
2026:
STET may have been the first text editor that supported folding
1744: 167:
The earliest known example of code folding in an editor is in
31: 1971:
minor mode is used to simulate syntax-based folding, cf. the
159:, to select one version or another, or only the differences. 2247: 673:, secondary blocks may be far from the condition statement. 656:
Showing structure or sandwich code in structured programming
421:* Property <code>name</code> readable/writable. 845:
Heading 1 {{{ ... Heading 2 {{{ ... Heading 3 {{{ ...
2060: 2271:, Vol 31, No. 1, 1987, IBM Reprint order number G322-0151 1838:
http://flight-manual.atom.io/using-atom/sections/folding/
2217:"INMOS Technical Note 03 - Getting started with the TDS" 1915:
minor mode for some programming languages; also, by the
1975:
of it in properly indented Emacs Lisp source code, the
761:
Token-based folding points are specified using special
2292:– criticism of code folding, detailed comments on use. 915:
or semantics-based folding is now a component of many
911:
Folding is provided by many modern text editors, and
413:
Documentation with Javadoc expands this to 20 lines:
16:
Tool of editors for programming, scripting and markup
484:* Setter for property <code>name</code>. 448:* Getter for property <code>name</code> 753:, and thus syntax-dependent folding is preferred. 77:, the feature is called "collapsible outlining". 832:The following document contains folding tokens ( 2267:LEXX – A programmable structured editor 852:marks makes the appropriate body text appear. 212:Some languages or libraries require extensive 108:. The folding structure typically follows the 1893:Syntax-dependent folding is supported by the 1814:article for more editors that support folding 8: 1792:(however its folding is effected by scripts) 2200:: CS1 maint: numeric names: authors list ( 2061:"HxD - Freeware Hex Editor and Disk Editor" 1867:minor modes for sectioning program sources. 87:box for collapsible (expanded) text, and a 1848:Token-based folding is implemented by the 921: 887:Inmos Transputer Development System (TDS) 808:, though they do not affect compilation. 1977:use of it (see near the end of the page) 860:One of the earliest folding editors was 2269:IBM Journal of Research and Development 2039: 1830: 2295: 2193: 2132: 896:computer historically had a number of 738:for structured programming languages. 557:may be manually collapsed as follows: 116:. It may also be defined by levels of 856:Software with code folding capability 804:. These are treated syntactically as 90:box for expandable (collapsed) text. 7: 2108:Saint-flour, Gilbert (25 Jun 1998). 900:that "folded" portions of code via " 669:Similarly, in conditional code like 155:Folding is also frequently used in 14: 2331:Description of the folding editor 2157:from the original on Aug 6, 2020. 917:software development environments 875:A folding editor appeared in the 770:to begin the folded section, and 130:. Programs offering this include 912: 597:The resulting code displays as: 2286:"The Problem With Code Folding" 112:of the program defined by the 1: 2151:The Problem With Code Folding 80:Many user interfaces provide 2153:. Coding Horror Discussion. 1905:modes for special dedicated 868:operating system in 1977 by 864:, an editor written for the 694:Hiding in-source data tables 885:1983, which was called the 2372: 2302:: CS1 maint: postscript ( 1812:Comparison of text editors 1696:f (alias xf, Winf, Winf32) 18: 2319:What is a folding editor? 777:Another notable token is 191:Code folding has various 54:graphical user interfaces 848:Usually clicking on the 642:documentation generators 599: 559: 415: 318: 221: 30:Code folding example on 19:Not to be confused with 799:Microsoft Visual Studio 795:Visual Basic directives 208:Hiding boilerplate code 52:, is a feature of some 2215:Cormie, David (1986). 2145:Rob (March 19, 2014). 2084:Marcel (Jul 9, 2012), 1933:(a component of CEDET) 1929:syntaxes supported by 1882:Universal code folding 661:Structured programming 38: 2321:by the author of the 2015:set_selective_display 1985:interface. See also 1878:set-selective-display 1241:EmEditor Professional 29: 2356:Text editor features 1918:semantic-tag-folding 1808:Programming features 1786:(since version 3.30) 723:programming language 1921:minor mode and the 1855:. One can also use 1774:The Hessling Editor 1699:Folding Text Editor 919:. Editors include: 898:source code editors 806:compiler directives 666:resource management 635:Collapsing comments 545:Collapsing metadata 102:source code editors 63:expand and collapse 48:, or less commonly 1909:-syntaxes; by the 1707:GridinSoft Notepad 1619:Visual Studio Code 686:Hiding legacy code 562:#region Attributes 82:disclosure widgets 39: 1987:CategoryHideStuff 1958:sgml-fold-element 1690:-optimized editor 1674: 1673: 1259:FlashDevelop IDE 906:UserLand Software 904:triangles". The 751:line continuation 729:Indentation-based 650:XML Documentation 148:is found in some 114:computer language 2363: 2326: 2307: 2301: 2293: 2272: 2265: 2259: 2258: 2256: 2255: 2246:. Archived from 2240: 2234: 2233: 2231: 2230: 2221: 2212: 2206: 2205: 2199: 2191: 2165: 2159: 2158: 2142: 2136: 2130: 2124: 2123: 2121: 2120: 2105: 2099: 2098: 2097: 2096: 2081: 2075: 2074: 2072: 2071: 2057: 2051: 2044: 2027: 2024: 2018: 2016: 2011: 2005: 2003: 2001:hide-region-hide 1996: 1990: 1960: 1935:, as well as by 1926: 1924:senator-fold-tag 1891: 1885: 1879: 1876:One can use the 1874: 1868: 1846: 1840: 1835: 1743:(editor for the 1410:MS Visual Studio 1093:Code::Blocks IDE 922: 851: 835: 792: 787:), respectively 782: 773: 769: 712:Syntax-dependent 672: 671:if...then...else 630: 627: 624: 621: 618: 615: 612: 609: 606: 603: 593: 590: 587: 584: 581: 578: 575: 572: 569: 566: 563: 536: 533: 530: 527: 524: 521: 518: 515: 512: 509: 506: 503: 500: 497: 494: 491: 488: 485: 482: 479: 476: 473: 470: 467: 464: 461: 458: 455: 452: 449: 446: 443: 440: 437: 434: 431: 428: 425: 422: 419: 409: 406: 403: 400: 397: 394: 391: 388: 385: 382: 379: 376: 373: 370: 367: 364: 361: 358: 355: 352: 349: 346: 343: 340: 337: 334: 331: 328: 325: 322: 312: 309: 306: 303: 300: 297: 294: 291: 288: 285: 282: 279: 276: 273: 270: 267: 264: 261: 258: 255: 252: 249: 246: 243: 240: 237: 234: 231: 228: 225: 214:boilerplate code 89: 86: 21:Constant folding 2371: 2370: 2366: 2365: 2364: 2362: 2361: 2360: 2341: 2340: 2322: 2315: 2310: 2294: 2280: 2276: 2275: 2266: 2262: 2253: 2251: 2244:"Outliners.com" 2242: 2241: 2237: 2228: 2226: 2219: 2214: 2213: 2209: 2192: 2180: 2167: 2166: 2162: 2144: 2143: 2139: 2131: 2127: 2118: 2116: 2107: 2106: 2102: 2094: 2092: 2083: 2082: 2078: 2069: 2067: 2059: 2058: 2054: 2045: 2041: 2036: 2031: 2030: 2025: 2021: 2014: 2012: 2008: 1999: 1997: 1993: 1956: 1922: 1892: 1888: 1877: 1875: 1871: 1847: 1843: 1836: 1832: 1827: 1818:Accordion (GUI) 1810:section of the 1803: 1798: 1682: 1676: 858: 849: 846: 840: 833: 830: 821: 788: 778: 771: 767: 759: 731: 719:markup language 714: 701: 696: 688: 679: 670: 658: 637: 632: 631: 628: 625: 622: 619: 616: 613: 611:ContentTemplate 610: 607: 604: 601: 595: 594: 591: 588: 585: 582: 579: 576: 574:ContentTemplate 573: 570: 567: 564: 561: 547: 538: 537: 534: 531: 528: 525: 522: 519: 516: 513: 510: 507: 504: 501: 498: 495: 492: 489: 486: 483: 480: 477: 474: 471: 468: 465: 462: 459: 456: 453: 450: 447: 444: 441: 438: 435: 432: 429: 426: 423: 420: 417: 411: 410: 407: 404: 401: 398: 395: 392: 389: 386: 383: 380: 377: 374: 371: 368: 365: 362: 359: 356: 353: 350: 347: 344: 341: 338: 335: 332: 329: 326: 323: 320: 314: 313: 310: 307: 304: 301: 298: 295: 292: 289: 286: 283: 280: 277: 274: 271: 268: 265: 262: 259: 256: 253: 250: 247: 244: 241: 238: 235: 232: 229: 226: 223: 210: 201: 189: 165: 157:data comparison 140:word processors 132:folding editors 88: 85: 24: 17: 12: 11: 5: 2369: 2367: 2359: 2358: 2353: 2343: 2342: 2339: 2338: 2328: 2314: 2313:External links 2311: 2309: 2308: 2284:(6 Jul 2008). 2277: 2274: 2273: 2260: 2235: 2224:transputer.net 2207: 2178: 2160: 2137: 2125: 2110:"ISPF history" 2100: 2076: 2052: 2038: 2037: 2035: 2032: 2029: 2028: 2019: 2006: 1991: 1886: 1869: 1841: 1829: 1828: 1826: 1823: 1822: 1821: 1815: 1802: 1799: 1797: 1796: 1793: 1787: 1781: 1776: 1771: 1766: 1765:RJ Text Editor 1763: 1758: 1753: 1748: 1738: 1733: 1728: 1723: 1718: 1708: 1705: 1700: 1697: 1694: 1691: 1683: 1681: 1678: 1672: 1671: 1668: 1665: 1662: 1659: 1653: 1652: 1649: 1646: 1643: 1640: 1634: 1633: 1630: 1627: 1624: 1621: 1615: 1614: 1611: 1608: 1605: 1602: 1596: 1595: 1592: 1589: 1586: 1583: 1577: 1576: 1573: 1570: 1567: 1564: 1558: 1557: 1554: 1551: 1548: 1545: 1539: 1538: 1535: 1532: 1529: 1526: 1520: 1519: 1516: 1513: 1510: 1507: 1501: 1500: 1497: 1494: 1491: 1488: 1482: 1481: 1478: 1475: 1472: 1469: 1467:NuSphere PHPEd 1463: 1462: 1459: 1456: 1453: 1450: 1444: 1443: 1440: 1437: 1434: 1431: 1425: 1424: 1421: 1418: 1415: 1412: 1406: 1405: 1402: 1399: 1396: 1393: 1387: 1386: 1383: 1380: 1377: 1374: 1368: 1367: 1364: 1361: 1358: 1355: 1349: 1348: 1345: 1342: 1339: 1336: 1330: 1329: 1326: 1323: 1320: 1317: 1311: 1310: 1307: 1304: 1301: 1298: 1292: 1291: 1288: 1285: 1282: 1279: 1273: 1272: 1269: 1266: 1263: 1260: 1256: 1255: 1252: 1249: 1246: 1243: 1237: 1236: 1233: 1230: 1227: 1224: 1218: 1217: 1214: 1211: 1208: 1205: 1201: 1200: 1197: 1194: 1191: 1188: 1182: 1181: 1178: 1175: 1172: 1169: 1163: 1162: 1159: 1156: 1153: 1150: 1144: 1143: 1140: 1137: 1134: 1131: 1127: 1126: 1123: 1120: 1117: 1114: 1108: 1107: 1104: 1101: 1098: 1095: 1089: 1088: 1085: 1082: 1079: 1076: 1070: 1069: 1066: 1063: 1060: 1057: 1051: 1050: 1047: 1044: 1041: 1038: 1032: 1031: 1028: 1025: 1022: 1019: 1013: 1012: 1009: 1006: 1003: 1000: 994: 993: 990: 987: 984: 981: 975: 974: 971: 968: 965: 962: 958: 957: 954: 951: 948: 945: 939: 938: 935: 932: 929: 926: 870:Mike Cowlishaw 857: 854: 844: 838: 829: 826: 820: 819:User-specified 817: 758: 755: 730: 727: 713: 710: 700: 697: 695: 692: 687: 684: 678: 675: 657: 654: 636: 633: 600: 560: 546: 543: 416: 319: 222: 209: 206: 200: 197: 188: 185: 164: 161: 128:outline levels 75:Microsoft Word 59:tree structure 15: 13: 10: 9: 6: 4: 3: 2: 2368: 2357: 2354: 2352: 2349: 2348: 2346: 2336: 2332: 2329: 2325: 2320: 2317: 2316: 2312: 2305: 2299: 2291: 2290:Coding Horror 2287: 2283: 2279: 2278: 2270: 2264: 2261: 2250:on 2006-12-23 2249: 2245: 2239: 2236: 2225: 2218: 2211: 2208: 2203: 2197: 2189: 2185: 2181: 2175: 2171: 2164: 2161: 2156: 2152: 2148: 2141: 2138: 2134: 2129: 2126: 2115: 2111: 2104: 2101: 2091: 2087: 2080: 2077: 2066: 2062: 2056: 2053: 2049: 2043: 2040: 2033: 2023: 2020: 2010: 2007: 2002: 1995: 1992: 1988: 1984: 1983: 1978: 1974: 1970: 1966: 1965: 1959: 1954: 1953: 1952:TeX-fold-mode 1949:comments, by 1948: 1944: 1940: 1939: 1934: 1932: 1925: 1920: 1919: 1914: 1913: 1908: 1904: 1903: 1898: 1897: 1890: 1887: 1883: 1873: 1870: 1866: 1865: 1860: 1859: 1854: 1852: 1845: 1842: 1839: 1834: 1831: 1824: 1819: 1816: 1813: 1809: 1805: 1804: 1800: 1794: 1791: 1788: 1785: 1782: 1780: 1779:Visual Studio 1777: 1775: 1772: 1770: 1767: 1764: 1762: 1759: 1757: 1754: 1752: 1749: 1746: 1742: 1739: 1737: 1734: 1732: 1729: 1727: 1724: 1722: 1719: 1716: 1712: 1711:IntelliJ IDEA 1709: 1706: 1704: 1701: 1698: 1695: 1692: 1689: 1685: 1684: 1680:Other editors 1679: 1677: 1669: 1666: 1663: 1660: 1658: 1655: 1654: 1650: 1647: 1644: 1641: 1639: 1636: 1635: 1631: 1628: 1625: 1622: 1620: 1617: 1616: 1612: 1609: 1606: 1603: 1601: 1600:Visual Expert 1598: 1597: 1593: 1590: 1587: 1584: 1582: 1579: 1578: 1574: 1571: 1568: 1565: 1563: 1560: 1559: 1555: 1552: 1549: 1546: 1544: 1541: 1540: 1536: 1533: 1530: 1527: 1525: 1522: 1521: 1517: 1514: 1511: 1508: 1506: 1503: 1502: 1498: 1495: 1492: 1489: 1487: 1484: 1483: 1479: 1476: 1473: 1470: 1468: 1465: 1464: 1460: 1457: 1454: 1451: 1449: 1446: 1445: 1441: 1438: 1435: 1432: 1430: 1427: 1426: 1422: 1419: 1416: 1413: 1411: 1408: 1407: 1403: 1400: 1397: 1394: 1392: 1389: 1388: 1384: 1381: 1378: 1375: 1373: 1370: 1369: 1365: 1362: 1359: 1356: 1354: 1351: 1350: 1346: 1343: 1340: 1337: 1335: 1332: 1331: 1327: 1324: 1321: 1318: 1316: 1313: 1312: 1308: 1305: 1302: 1299: 1297: 1294: 1293: 1289: 1286: 1283: 1280: 1278: 1275: 1274: 1270: 1267: 1264: 1261: 1258: 1257: 1253: 1250: 1247: 1244: 1242: 1239: 1238: 1234: 1231: 1228: 1225: 1223: 1220: 1219: 1215: 1212: 1209: 1206: 1203: 1202: 1198: 1195: 1192: 1189: 1187: 1184: 1183: 1179: 1176: 1173: 1170: 1168: 1165: 1164: 1160: 1157: 1154: 1151: 1149: 1146: 1145: 1141: 1138: 1135: 1132: 1129: 1128: 1124: 1121: 1118: 1115: 1113: 1110: 1109: 1105: 1102: 1099: 1096: 1094: 1091: 1090: 1086: 1083: 1080: 1077: 1075: 1072: 1071: 1067: 1064: 1061: 1058: 1056: 1053: 1052: 1048: 1045: 1042: 1039: 1037: 1034: 1033: 1029: 1026: 1023: 1020: 1018: 1015: 1014: 1010: 1007: 1004: 1001: 999: 996: 995: 991: 988: 985: 982: 980: 977: 976: 972: 969: 966: 963: 960: 959: 955: 952: 949: 946: 944: 941: 940: 936: 933: 930: 927: 924: 923: 920: 918: 914: 909: 907: 903: 899: 895: 890: 888: 884: 881: 878: 873: 871: 867: 863: 855: 853: 843: 837: 827: 825: 818: 816: 812: 809: 807: 803: 800: 796: 791: 786: 785:C# directives 781: 775: 764: 756: 754: 752: 748: 744: 743:off-side rule 739: 737: 736:indent styles 728: 726: 724: 720: 711: 709: 705: 698: 693: 691: 685: 683: 677:Grouping code 676: 674: 667: 662: 655: 653: 651: 647: 643: 634: 598: 558: 556: 552: 544: 542: 487:* @param name 414: 317: 220: 217: 215: 207: 205: 198: 196: 194: 186: 184: 182: 178: 174: 170: 162: 160: 158: 153: 151: 147: 143: 141: 137: 133: 129: 125: 121: 119: 115: 111: 107: 103: 99: 95: 91: 83: 78: 76: 72: 68: 64: 60: 55: 51: 50:holophrasting 47: 43: 37: 33: 28: 22: 2289: 2282:Atwood, Jeff 2268: 2263: 2252:. Retrieved 2248:the original 2238: 2227:. Retrieved 2223: 2210: 2169: 2163: 2150: 2140: 2128: 2117:. Retrieved 2113: 2103: 2093:, retrieved 2089: 2079: 2068:. Retrieved 2064: 2055: 2047: 2042: 2022: 2009: 1994: 1980: 1968: 1962: 1950: 1936: 1930: 1927:command for 1916: 1910: 1900: 1894: 1889: 1872: 1862: 1856: 1850: 1844: 1833: 1675: 1429:NetBeans IDE 1055:Codeanywhere 931:Indentation 913:syntax-based 910: 891: 882: 874: 859: 847: 841: 831: 822: 813: 810: 776: 760: 740: 732: 715: 706: 702: 689: 680: 659: 638: 596: 548: 539: 412: 315: 218: 211: 202: 193:use patterns 190: 166: 154: 146:Data folding 145: 144: 124:Text folding 123: 122: 98:text editors 96:is found in 94:Code folding 93: 92: 79: 70: 66: 62: 49: 46:text folding 45: 41: 40: 2351:Source code 2133:Atwood 2008 1756:NoteTab Pro 1751:MonoDevelop 1726:Komodo Edit 1713:(and other 1686:aoeui, the 1657:Zend Studio 1167:Dreamweaver 943:ABAP Editor 834:{{{ ... }}} 802:Code Editor 797:), used in 774:to end it. 757:Token-based 699:Conventions 150:hex editors 138:, and some 118:indentation 110:syntax tree 67:code hiding 2345:Categories 2254:2006-12-27 2229:2019-07-19 2179:9051990278 2119:2015-10-27 2114:Planet MVS 2095:2019-12-29 2070:2007-04-30 2050:, p. 67–75 2034:References 1964:nxml-outln 1961:command, 1853:minor mode 1486:Qt Creator 1148:Delphi IDE 979:Anjuta IDE 902:disclosure 763:delimiters 644:, such as 602:Attributes 565:#endregion 551:attributes 34:code with 2196:cite book 1982:fold-dwim 1741:LEXX/LPEX 1715:JetBrains 1703:GFA BASIC 1562:UltraEdit 1448:Notepad++ 1204:EditPlus 1130:CudaText 1112:Cubic IDE 894:Macintosh 608:ITemplate 571:ITemplate 199:Outlining 136:outliners 71:outlining 2333:used in 2298:cite web 2188:35478471 2155:Archived 2065:mh-nexus 2004:command. 1938:doc-mode 1931:semantic 1912:hideshow 1801:See also 1784:WinShell 1769:Smultron 1543:TextMate 1040:Plug-in 1036:Brackets 961:AkelPad 828:Examples 2327:editor. 2090:YouTube 1969:outline 1947:Doxygen 1943:JavaDoc 1907:outline 1896:outline 1858:outline 1851:folding 1721:Keynote 1186:Eclipse 1074:Codenvy 934:Syntax 790:#Region 780:#region 646:Javadoc 499:setName 460:getName 427:private 372:setName 345:getName 321:private 275:setName 248:getName 224:private 173:IBM 370 163:History 2186:  2176:  1902:allout 1864:allout 1731:Kwrite 1688:Dvorak 1391:MATLAB 1017:BBEdit 928:Token 866:VM/CMS 747:Python 605:public 568:public 505:String 493:public 469:return 457:String 454:public 430:String 378:String 366:public 354:return 342:String 339:public 324:String 281:String 269:public 257:return 245:String 242:public 227:String 104:, and 69:, and 2335:occam 2220:(PDF) 1884:note. 1825:Notes 1790:XEDIT 1761:Padre 1717:IDEs) 1638:Xcode 1505:SciTE 1353:jEdit 1296:gedit 1277:geany 1222:Emacs 937:User 925:Name 883:circa 877:occam 177:COBOL 73:. In 2304:link 2202:link 2184:OCLC 2174:ISBN 2013:The 1941:for 1899:and 1861:and 1806:The 1795:Zeus 1651:Yes 1648:Yes 1645:Yes 1642:Yes 1629:Yes 1626:Yes 1623:Yes 1610:Yes 1594:Yes 1591:Yes 1588:Yes 1585:Yes 1575:Yes 1572:Yes 1556:Yes 1553:Yes 1550:Yes 1547:Yes 1524:STET 1515:Yes 1512:Yes 1509:Yes 1496:Yes 1480:Yes 1477:Yes 1461:Yes 1458:Yes 1455:Yes 1442:Yes 1439:Yes 1436:Yes 1433:Yes 1423:Yes 1420:Yes 1417:Yes 1414:Yes 1401:Yes 1385:Yes 1382:Yes 1379:Yes 1376:Yes 1372:Kate 1366:Yes 1363:Yes 1360:Yes 1357:Yes 1341:Yes 1338:Yes 1328:Yes 1322:Yes 1315:ISPF 1306:Yes 1303:Yes 1300:Yes 1287:Yes 1284:Yes 1268:Yes 1251:Yes 1248:Yes 1235:Yes 1232:Yes 1226:Yes 1210:Yes 1196:Yes 1180:Yes 1158:Yes 1152:Yes 1125:Yes 1122:Yes 1119:Yes 1116:Yes 1106:Yes 1103:Yes 1100:Yes 1097:Yes 1084:Yes 1081:Yes 1078:Yes 1065:Yes 1062:Yes 1059:Yes 1046:Yes 1043:Yes 1027:Yes 1011:Yes 1005:Yes 998:Atom 989:Yes 986:Yes 970:Yes 953:Yes 947:Yes 892:The 862:STET 529:name 523:name 517:this 508:name 496:void 472:name 439:null 433:name 402:name 396:name 390:this 381:name 369:void 357:name 333:null 327:name 305:name 299:name 293:this 284:name 272:void 260:name 236:null 230:name 181:ISPF 106:IDEs 42:Code 1973:use 1945:or 1745:OED 1736:Leo 1632:No 1581:Vim 1569:No 1566:No 1404:No 1398:No 1395:No 1347:No 1334:JED 1216:No 1213:No 1207:No 1049:No 880:IDE 850:{{{ 836:): 772:}}} 768:{{{ 721:or 648:or 623:set 617:get 586:set 580:get 553:in 481:/** 445:/** 418:/** 187:Use 183:). 169:NLS 44:or 36:Vim 32:PHP 2347:: 2324:fe 2300:}} 2296:{{ 2288:. 2222:. 2198:}} 2194:{{ 2182:. 2149:. 2112:. 2088:, 2063:. 1955:, 1670:? 1667:? 1664:? 1661:? 1613:? 1607:? 1604:? 1537:? 1534:? 1531:? 1528:? 1518:? 1499:? 1493:? 1490:? 1474:? 1471:? 1452:? 1344:? 1325:? 1319:? 1309:? 1290:? 1281:? 1271:? 1265:? 1262:? 1254:? 1245:? 1229:? 1199:? 1193:? 1190:? 1177:? 1174:? 1171:? 1161:? 1155:? 1142:? 1139:? 1136:? 1133:? 1087:? 1068:? 1030:? 1024:? 1021:? 1008:? 1002:? 992:? 983:? 973:? 967:? 964:? 956:? 950:? 555:C# 490:*/ 463:() 451:*/ 424:*/ 348:() 251:() 142:. 134:, 100:, 65:, 2337:. 2306:) 2257:. 2232:. 2204:) 2190:. 2135:. 2122:. 2073:. 1989:. 1747:) 793:( 783:( 629:} 626:; 620:; 614:{ 592:} 589:; 583:; 577:{ 535:} 532:; 526:= 520:. 514:{ 511:) 502:( 478:} 475:; 466:{ 442:; 436:= 408:} 405:; 399:= 393:. 387:{ 384:) 375:( 363:} 360:; 351:{ 336:; 330:= 311:} 308:; 302:= 296:. 290:{ 287:) 278:( 266:} 263:; 254:{ 239:; 233:= 23:.

Index

Constant folding

PHP
Vim
graphical user interfaces
tree structure
Microsoft Word
disclosure widgets
text editors
source code editors
IDEs
syntax tree
computer language
indentation
outline levels
folding editors
outliners
word processors
hex editors
data comparison
NLS
IBM 370
COBOL
ISPF
use patterns
boilerplate code
attributes
C#
documentation generators
Javadoc

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑