Fact-checked by Grok 2 weeks ago

Code folding

Code folding is a feature available in many text editors and integrated development environments () that allows developers to collapse or hide specific sections of , replacing them with a compact placeholder to simplify navigation and reduce visual clutter in complex files. This functionality typically operates by identifying structural elements such as functions, classes, loops, or custom regions based on syntax, indentation, or explicit markers, enabling users to expand or collapse these blocks . In practice, folded sections are often indicated by visual icons like arrows or ellipses in the editor's , with hovering or clicking allowing quick previews or expansions, and some implementations highlight errors within collapsed areas for immediate awareness. The primary benefits of code folding include enhanced by focusing attention on high-level code structure, improved productivity through faster scanning of large codebases, and reduced during or maintenance tasks. It supports better of by permitting developers to temporarily hide details while keeping an overview visible, which is particularly useful in languages with nested syntax like , , or C#. Variations in allow for folding via selection, folding based on predefined rules for specific types, or approaches combining both, with options for fold levels and behaviors. Commonly found in professional IDEs such as , , and MPLAB X, code folding integrates seamlessly with other editing tools like and auto-completion to streamline the development . While it promotes efficient code exploration, some developers note potential drawbacks, such as over-reliance on folding masking underlying code quality issues, though this does not diminish its role as a standard productivity aid in modern programming environments.

Overview

Definition and Purpose

Code folding is an interactive feature available in many text editors and integrated development environments (IDEs) that enables users to collapse or expand specific sections of source code, thereby hiding subsections to enhance readability and maintain focus on relevant parts. This functionality treats code as a hierarchical structure, allowing developers to toggle the visibility of blocks such as functions, classes, or loops without altering the underlying content. The primary purpose of code folding is to assist in managing large or complex codebases by minimizing visual clutter, which improves overall code comprehension and navigation efficiency. It facilitates a shift between high-level overviews and detailed inspections, enabling quicker orientation within expansive projects and reducing during editing or review tasks. By providing this layered view, code folding supports better organization and focus, particularly in environments with nested or repetitive structures. In terms of basic mechanics, users interact with code folding through visual indicators, such as plus (+) or minus (-) icons in the editor's gutter, which can be clicked to collapse or expand regions, or via keyboard shortcuts to toggle visibility across single or multiple sections. Folded code remains fully editable upon expansion, ensuring that the hidden portions are preserved and accessible without loss of data or functionality. These interactions are designed to be intuitive, integrating seamlessly into the workflow of programming tasks.

Key Benefits

Code folding significantly enhances developer productivity by enabling faster and in large codebases. By allowing users to irrelevant sections, it reduces the need for excessive scrolling and minimizes distractions, permitting focus on specific tasks such as or modification. Similarly, integrating code folding with refactoring visualizations in accelerates change inspection, with processing times often under 0.2 seconds per commit, thereby supporting efficient workflows without disrupting development flow. From a , code folding aids in visualizing the hierarchical structure of code, making complex nested elements like functions or classes more comprehensible at a glance. This feature provides a higher-level overview by hiding implementation details, which reduces mental effort required to parse extensive files and fosters better understanding of overall . In practice, it simplifies the differentiation between structural changes and functional updates, lowering during code analysis. Tools like those in ABAP Tools exemplify this by collapsing coherent blocks such as methods or loops, improving readability and enabling developers to maintain focus on key logic without visual overload. Code folding also contributes to error reduction by minimizing exposure to distracting or unrelated code segments, which facilitates more effective and refactoring. Hiding non-essential details helps developers concentrate on potential issues within targeted areas, decreasing the likelihood of overlooking bugs amid verbose surroundings. For example, when reviewing refactored code, folding irrelevant modifications highlights behavioral changes, aiding precise identification of errors or inconsistencies. This targeted visibility supports safer code maintenance, as seen in environments where folding ensures edits occur in the correct sections, reducing unintended alterations.

History

Origins in Early Editors

Code folding originated in the late as part of structured editing environments designed to manage the complexity of increasingly large programs on resource-constrained hardware. One of the earliest implementations appeared in the (Structured Editing Tool) editor, released in 1977, which introduced tree-based navigation and the ability to collapse and expand hierarchical sections of text for better overview control. This was soon followed by the Cornell Program Synthesizer, developed in the late at , a syntax-directed environment that allowed users to fold and unfold program elements to hide less relevant sections and focus on structure. These tools marked a shift from linear text editing to hierarchical views, enabling programmers to navigate block-structured languages like Pascal without overwhelming the limited display capabilities of contemporary systems. The innovations in structured editors were heavily influenced by earlier outline processors developed for non-code text, such as those in Douglas Engelbart's NLS (oN-Line System) from the late 1960s, which featured view controls for expanding and contracting document hierarchies to manage information density. By the mid-1980s, these concepts extended to general-purpose text editors, notably with ' outline mode introduced around 1985, which provided indentation- and header-based folding for outlining documents and code alike. Outline mode built on the framework to offer dynamic hiding and revealing of subsections, adapting structured editing principles to a wider audience of Unix developers. A key milestone in the popularization of code folding came in the with and Vim variants, where indentation-based folding gained widespread adoption to handle the expanding codebases of languages such as and Pascal. Early clones like Elvis, released in 1990, laid groundwork for enhanced features, though full folding support matured in Vim in the early 2000s, with Vim 6.0 introducing folding in 2001. This era's implementations were driven by the practical need to address the scarcity of screen real estate on early terminals, which typically displayed only 24 lines of text, making it challenging to comprehend programs spanning hundreds or thousands of lines.

Evolution in IDEs and Modern Tools

Code folding emerged as a standard feature in integrated development environments (IDEs) during the 1990s, marking a shift from rudimentary text editors to more sophisticated tools that supported structured code navigation. Microsoft's Visual Studio, first released in 1997, introduced outlining—essentially code folding—allowing developers to collapse and expand code blocks such as functions, classes, and regions based on syntax parsing. This capability evolved to incorporate language-specific rules, improving accuracy for languages like C++ and Visual Basic by leveraging the IDE's parser to identify foldable units like braces or keywords. The rise of in the late 1990s further influenced folding mechanisms, particularly through tag-based folding in and XML editors. Tools like Allaire HomeSite (1996) popularized collapsing nested tags to handle verbose markup, a that later extended to general-purpose programming languages by treating like XML elements. This integration helped manage increasingly complex codebases in emerging web technologies. By the , code folding advanced with the proliferation of and cross-platform . ' , launched in 2001, included robust folding from its early versions, supporting automatic collapse of methods, imports, and comments, with options for custom regions added in later updates like version 11.1 (2012). Similarly, (VS Code), released in 2015 by , incorporated folding in version 0.10.11, enabling indentation- and syntax-based collapses via extensions and built-in providers for languages like and . Recent trends in the emphasize cloud-based and collaborative development, where folding adapts to distributed environments. GitHub Codespaces, introduced in 2020, leverages VS Code's folding features within cloud workspaces, supporting real-time collaboration through extensions like Live Share, where multiple users can view and interact with folded code sections synchronously. While AI-assisted coding tools like (integrated into VS Code since 2021) enhance code generation and navigation, folding remains primarily syntax-driven.

Folding Mechanisms

Syntax-Dependent Folding

Syntax-dependent folding, also known as syntax-based folding, is a mechanism in code editors and integrated development environments () that identifies and collapses foldable regions of by analyzing the programming language's syntactic structure. This approach relies on a parser or syntax highlighter to recognize predefined grammatical elements, such as functions, es, conditional blocks, or loops, delineated by language-specific keywords or delimiters. For instance, in C-like languages such as C++, folding occurs between matching curly braces {} that enclose blocks, while in , it targets structures like def to end for methods or class definitions. The process begins with the editor tokenizing the source code into syntactic elements using a language grammar or parser, such as Tree-sitter in modern editors like Neovim. Once tokenized, the system matches opening and closing delimiters or keywords to define fold boundaries, enabling the collapse of entire units like a body while preserving the code's integrity. This supports hierarchical nesting, where inner folds (e.g., a within a function) can be managed at multiple levels, often limited by a configurable depth like Vim's 'foldnestmax' option to prevent excessive complexity. In implementations like Vim, syntax items marked with a "fold" attribute in the syntax file dictate these regions, ensuring folds align with highlighted code structures. This method offers precision in structured languages with explicit delimiters, automatically adapting to the without user intervention and enhancing in complex files by revealing high-level outlines. However, it demands language-specific rules, which can be resource-intensive for large files or intricate syntaxes, and it typically fails or produces inaccurate folds on malformed or incomplete lacking proper matching elements. Unlike indentation-based folding, which infers structure from whitespace regardless of keywords, syntax-dependent folding prioritizes grammatical accuracy for delimiter-heavy languages.

Indentation-Based Folding

Indentation-based folding is a code folding that collapses sections of text based on their leading whitespace or indentation levels, treating consistently indented blocks as collapsible units without relying on language-specific syntax markers. This method is commonly implemented in text editors and to support languages where structure is primarily defined by indentation, such as and . The mechanism scans each line for its indentation amount, typically measured in spaces or tabs, and groups lines into folds starting from a line with greater indentation than the previous one and ending at the next line with equal or lesser indentation. For instance, in Vim, setting foldmethod=indent computes the fold level by dividing the line's indent by the 'shiftwidth' value (rounded down), forming nested folds for consecutive lines at the same or higher levels, with nesting limited by the 'foldnestmax' option. Empty lines or those matching the 'foldignore' pattern (e.g., comments starting with #) inherit the fold level from adjacent lines to maintain structure. Similarly, Visual Studio Code defaults to indentation-based evaluation, where a fold begins when a line has smaller indentation than subsequent lines and ends at the line with matching or reduced indentation, configurable via the "editor.foldingStrategy": "indentation" setting. Users can adjust thresholds, such as minimum indent size, to define fold start and end points more precisely. This approach offers advantages in simplicity and applicability, requiring no of syntax rules, which makes it efficient for quick scripting and configuration files like where visual hierarchy mirrors logical structure. It promotes conceptual understanding by allowing developers to outline at a glance, reducing in deeply nested documents. However, limitations arise in scenarios with inconsistent indentation, such as mixed spaces and tabs or ad-hoc formatting, leading to incorrect fold boundaries or fragmented regions. It is less effective for languages without enforced indentation, like early variants that relied on fixed column positions rather than variable whitespace, potentially causing ambiguous or non-functional folds in or brace-delimited codebases. Configurable options mitigate some issues, but the method's reliance on uniform whitespace can introduce errors in collaborative environments with varying preferences. For example, in a script:
def main():
    if condition:
        print("Outer block")
        for item in items:
            print("Inner block")
    print("After loop")
The if block would fold to show only if condition:, with the nested for loop as a sub-fold, based on increasing indentation levels.

Applications

Structural Outlining and Grouping

Code folding serves as a powerful mechanism for structural outlining in programming environments, enabling developers to collapse individual functions and methods to reveal the skeletal structure of modules. This approach allows for a high-level overview of code organization, where entire classes or namespaces can be reduced to their essential signatures, facilitating rapid and comprehension of large codebases. For instance, in integrated development environments (IDEs) like , the "Collapse to Definitions" feature folds member bodies within types, exposing the hierarchical arrangement of components without delving into implementation details. Similarly, supports folding of methods and classes to display module skeletons, promoting efficient navigation through complex projects. In (), this outlining capability is particularly valuable for visualizing and . By folding the bodies of class methods and properties, developers can inspect the inheritance chain and relationships between classes at a glance, aiding in the assessment of and dependencies. Visual Studio's outlining tools, for example, expose type structures when members are collapsed. This not only streamlines refactoring tasks but also supports collaborative code reviews by presenting a concise blueprint of the application's architecture. Code folding also excels at grouping related code elements into cohesive folds, enhancing modularity visualization in contexts. Developers can bundle logically connected segments, such as multiple event handlers in a user interface or a series of calls within a service method, into a single collapsible unit. In , custom regions defined with #region directives allow explicit grouping of these elements, collapsing them to a single line for focused editing elsewhere in the codebase. This technique improves maintainability by isolating related functionality, making it simpler to manage event-driven or service-oriented code without disrupting the overall flow. Within paradigms, code folding illuminates structures by selectively collapsing nested blocks while retaining visibility of the logical skeleton. For example, if-else constructs or loop bodies can be folded to emphasize the program's sequential and conditional pathways, preventing deep nesting from overwhelming the reader without concealing the core decision logic. enables folding of statements like if/else and for loops via extensions or in Java development tools (JDT), allowing developers to toggle visibility of these structures for clearer delineation of execution paths. RStudio extends this to braced regions in languages like , where conditional blocks are automatically foldable to highlight algorithmic structure during analysis or . Such features underscore code folding's role in promoting disciplined, readable code that aligns with tenets.

Hiding Repetitive or Auxiliary Code

Code folding enables developers to conceal , such as statements or automatically generated getters and s, thereby reducing visual clutter and emphasizing core logic in languages like . In integrated development environments (s) like , blocks can be configured to collapse by default through the code folding settings, allowing users to expand them only when necessary for editing dependencies. Similarly, repetitive getter and methods, often generated via IDE tools, can be grouped into custom folding regions to hide their implementation details while retaining access to the class structure. For metadata and comments, code folding collapses documentation blocks like Javadoc annotations or lengthy explanatory sections without removing them from the source file, preserving context for future reference. In , users can toggle the collapse of all doc comments via the menu (Code > Folding > Collapse Doc Comments) or set them to fold automatically on file open, streamlining review of executable code. supports folding for Javadoc and header comments through preferences (Window > Preferences > Java > Editor > Folding), enabling the concealment of non-executable metadata to focus on implementation. This approach is particularly useful for long comment blocks that provide rationale or usage notes, as folding maintains their presence in the file while minimizing distraction during active development. Hiding legacy code or embedded data further enhances by masking outdated sections or inline datasets, such as -formatted tables within scripts, to prioritize current functionality. Deprecated functions can be temporarily folded using custom regions in like , where developers select the code block and apply outlining (Ctrl+M, Ctrl+H) to collapse it, allowing focus on active development without altering the codebase. For embedded data, arbitrary sections like multi-line strings in or can be folded via selection-based mechanisms in editors such as (Code > Folding > Fold Selection), concealing verbose literals during or refactoring. This targeted concealment supports ongoing projects by isolating auxiliary elements, as seen in scenarios where legacy integrations are preserved but visually suppressed.

Examples

Language-Specific Illustrations

In , code folding is primarily indentation-based, allowing editors to collapse blocks defined by consistent whitespace levels, such as containing nested loops. Consider the following expanded example of a function that processes data with nested loops:
python
def process_data(items):
    total = 0
    for item in items:
        if item > 0:
            subtotal = 0
            for factor in range(1, item + 1):
                subtotal += factor
            total += subtotal
    return total
When folded at the outer function level, the editor displays it as:
python
def [process_data](/page/processing)(items):
    ...  # Folded: total calculation with nested [loops](/page/loop)
The inner can also be folded independently, revealing only the subtotal accumulation line while hiding the range iteration. This mechanism leverages 's reliance on indentation for block structure, enabling hierarchical collapsing without explicit markers. In , folding is syntax-dependent, targeting constructs like async functions and object literals through brace delimiters and keywords, which helps manage asynchronous code flows. For instance, an async function fetching and processing might appear expanded as:
javascript
async [function](/page/Function) fetchUserData([user](/page/User)Id) {
    try {
        const response = await fetch(`/api/[user](/page/User)s/${userId}`);
        const [user](/page/User) = await response.[json](/page/JSON)();
        [return](/page/Return) {
            [id](/page/ID): [user](/page/User).[id](/page/ID),
            name: [user](/page/User).name,
            [details](/page/Posterior_commissure): {
                [email](/page/Email): [user](/page/User).[email](/page/Email),
                preferences: [user](/page/User).preferences || {}
            }
        };
    } catch ([error](/page/Error)) {
        console.[error](/page/Error)('Fetch failed:', [error](/page/Error));
    }
}
Folded at the level, it collapses to:
javascript
async [function](/page/Function) fetchUserData(userId) {
    ...  # Folded: async fetch and object [return](/page/Return)
}
The nested object literal can be folded separately, showing only the top-level while concealing the details object, which aids in navigating promise-based asynchronous patterns. For and CSS, folding is tag-based, collapsing nested elements to streamline markup editing, effectively bridging structure with document hierarchy. An example snippet with embedded CSS for a nested , expanded:
html
<div class="container">
    <h1>Main Title</h1>
    <section class="content">
        <style>
            .content { padding: 20px; }
            .nested { border: 1px solid #ccc; margin: 10px; }
        </style>
        <div class="nested">
            <p>Inner content here.</p>
            <ul>
                <li>Item 1</li>
                <li>Item 2</li>
            </ul>
        </div>
    </section>
</div>
When folded by tags, the section element might collapse to:
html
<div class="container">
    <h1>Main Title</h1>
    <section class="content">
        ...  # Folded: styles and nested div with list
    </section>
</div>
This tag-driven approach allows independent folding of the <style> block or the inner <div>, reducing visual clutter in complex, nested documents.

Visual Demonstrations

Visual demonstrations of code folding typically illustrate how editors represent foldable regions through intuitive elements in the editor's or margin, allowing users to toggle visibility without disrupting workflow. In , fold indicators appear as small triangles positioned in the between line numbers and the text; a downward-pointing triangle signifies an expanded state where the full content is visible, while clicking it collapses the region into an upward-pointing triangle with an or placeholder line indicating hidden content. Similarly, in (as of version 17.9 and later), the outlining margin to the left of the displays chevron icons—a downward-pointing v for expanded states and a right-pointing > for collapsed regions—with hovering over the margin providing a preview of the folded content to aid quick inspection. These elements ensure that users can visually identify collapsible blocks, such as functions or classes, at a glance. Hierarchical views in code folding are depicted through nested indicators that reflect the structural depth of the code, often using vertical lines or indentation in the to connect parent and child folds. For instance, diagrams commonly show a top-level fold for an entire (collapsed to a single line with a broad indicator), which upon expansion reveals method-level folds with subordinate triangles aligned beneath, and further sub-folds for properties or loops within those methods, creating a tree-like that mirrors the code's syntax . This multi-level representation, as seen in editors like UltraEdit, includes lines that visually delineate the boundaries of nested regions, helping developers navigate complex structures without expanding everything at once. Dynamic interactions are demonstrated via toggle mechanisms that respond to user input, such as clicks on indicators or shortcuts, often with immediate visual feedback to confirm the state change. In , clicking the fold icon in the or using Ctrl + - / + triggers collapse or expansion, updating the indicator from a minus to a plus symbol and vice versa, while supporting recursive toggling for entire hierarchies with Ctrl + Shift + - / +. Search integration within folds is visualized in scenarios where query results highlight matches inside collapsed regions, prompting automatic expansion or displaying hit counts in the fold to maintain without manual unfolding. Although animations for smooth transitions during toggling are not universally implemented, some extensions in editors like VS Code add subtle fade or slide effects to enhance the interactive feel.

Implementation in Software

Integrated Development Environments

Integrated development environments () provide robust built-in support for code folding, enabling developers to manage complex codebases by collapsing and expanding structural elements directly within the editor. This feature enhances navigation and focus in full-featured , which integrate folding with broader tooling like , , and . Major IDEs such as , , and offer syntax-dependent and region-based folding as core capabilities, often extensible through configuration or plugins. In Visual Studio, code folding—referred to as outlining—supports both syntax-based collapsing of elements like methods, classes, and control structures, as well as user-defined regions marked by #region and #endregion directives. Developers can collapse regions by double-clicking the outlining margin or using keyboard shortcuts like Ctrl+M, Ctrl+M, with expansion achieved similarly or by clicking the expansion icon. Customization includes adjusting the highlight color for collapsed regions via Tools > Options > Environment > Fonts and Colors, though outlining state does not persist across sessions or major edits by default. Eclipse incorporates folding since version 3.0 through its JFace Text framework, allowing collapse of syntax elements such as methods and classes in the Java Development Tools (JDT) editor, with support for custom regions via plugins. Folding is enabled per file via right-click > Folding > Enable Folding, and regions are managed using ProjectionAnnotationModel for extensible behavior. Customization occurs through plugins like the Eclipse Folding Plugin, which adds persistence for collapsed states across sessions, as built-in folding does not retain states by default. IntelliJ IDEA provides configurable code folding for syntax elements including methods, imports, and comments, accessible via Editor > General > Code Folding settings, where users can enable or disable specific foldable units. Custom regions are supported using //region and //endregion markers, compatible with styles from other editors like or VS Code. Fold levels can be user-defined through these settings, and enabling options like "Method bodies" ensures persistence of folded states across sessions in related IDEs. Advanced features in these IDEs extend folding beyond basic syntax. Support for the (LSP) enables real-time folding via the textDocument/foldingRange request, where language servers compute and provide foldable ranges dynamically, integrating seamlessly in , (via plugins), and IntelliJ for languages like or . During sessions, folding remains active in the editor across all three IDEs, allowing developers to collapse irrelevant sections while stepping through breakpoints or inspecting variables, though no automatic folding at breakpoints is standardized. Multi-file folding is not natively supported as per-file editor functionality, but IDE outline views provide hierarchical collapsing of project structures spanning multiple files.

Text Editors and Extensions

Lightweight text editors often provide code folding through built-in features, plugins, or user configurations, enabling developers to manage code visibility without the full feature set of integrated development environments. , a , supports multiple folding methods via the foldmethod option, including indent, which automatically creates folds based on line indentation levels computed by dividing the indent by the 'shiftwidth' value (rounded down). This method works well for languages with consistent indentation, such as , allowing users to set it with :set foldmethod=indent and control visibility using commands like zm to close all folds or zr to open them incrementally. Emacs offers code folding primarily through minor modes like Outline minor mode, a buffer-local feature that provides outlining commands (prefixed by C-c @) for hiding and revealing sections based on structural headings, making it suitable for both code and structured text. For programming languages, users can enable it alongside major modes to fold functions or blocks defined by outline-regexp patterns. includes built-in syntax-based folding as part of its syntax definition system, where folding rules are specified in .sublime-syntax files using contexts like folding_start and folding_stop to delineate collapsible regions automatically upon . Extensions enhance folding in editors like and Notepad++. In VS Code, (LSP) extensions leverage the textDocument/foldingRange request to provide server-driven folding ranges, allowing precise control over collapsible sections based on language semantics rather than just indentation or syntax. Notepad++ supports custom folding regions through its User Defined Languages (UDL) system, where users define folder keywords or characters in the Folder & Default tab to enable folding for non-standard or user-created syntaxes, such as custom #region directives. Configurations in these editors often involve manual fold markers for explicit control. In Vim, setting foldmethod=marker uses default markers like {{{ and }}} to define fold boundaries, enabling users to insert them directly in code without relying on automatic detection; for example, placing {{{ before a block and }}} after creates a foldable section. Performance considerations arise with large files, where syntax or expression-based folding can increase computational overhead due to repeated , potentially slowing editor responsiveness; in such cases, switching to indent or manual methods is recommended to maintain efficiency in editors like Vim and .

References

  1. [1]
    What Is Code Folding? | phoenixNAP IT Glossary
    Mar 25, 2025 · Code folding is a feature in text editors and integrated development environments that allows developers to collapse or hide sections of code.Missing: history | Show results with:history
  2. [2]
    Fold and unfold (collapse/expand) code fragments | JetBrains Rider
    Oct 9, 2024 · You can collapse (fold) types, members, and other code fragments to a single visible line, hiding the details that are unimportant at the moment.
  3. [3]
    What is code folding in the MPLAB® X IDE? - Developer Help
    Jun 24, 2024 · Code folding is a feature of the MPLAB X editor that makes it possible to collapse (hide) and expand parts of a file, making it easier to focus just on the ...
  4. [4]
    The Problem With Code Folding - Coding Horror
    Jul 6, 2008 · It's a named hint you place in C# or VB.NET code to set a code folding point. Any code placed inside that region is, by default, collapsed when you re-open it ...
  5. [5]
    Code Folding (IDE Tutorial) - RAD Studio
    ### Definition, Purpose, and Mechanics of Code Folding
  6. [6]
    Code Folding and Sections in the RStudio IDE - Posit Support
    Apr 8, 2025 · Code folding allows you to easily show and hide blocks of code to make it easier to navigate your source file and focus on the coding task at hand.
  7. [7]
    Fold sections of code and text in UltraEdit/UEStudio
    Code folding is indispensable for managing complex/nested code structures. Code folding allows you to collapse (hide) a section of code.
  8. [8]
    [PDF] Enhancing IDE Representation of Changes in Git with Refactorings ...
    Aug 25, 2021 · For example, code completion helps developers to write code faster and make fewer errors through reduced typing, while code folding1 helps ...
  9. [9]
    Using Code Folding | SAP Help Portal
    You can use code folding to hide or display a block of code in order to get a better overview and to improve readability.<|control11|><|separator|>
  10. [10]
    Addressing Accessibility Barriers in Programming for People with ...
    Mar 21, 2022 · Additionally, the lack of access to IDE features such as code folding which allows one to collapse/expand a section of code further makes this ...
  11. [11]
    [PDF] STET - speleotrove.com
    Dec 28, 1980 · In addition to conventional editing facilities, STET gives the user a third dimension: a tree structure that may be traversed using Program.Missing: 1977 folding
  12. [12]
    The Cornell program synthesizer: a syntax-directed programming ...
    The Cornell Program Synthesizer demands a structural perspective at all stages of program development. Its separate features are unified by a common foundation.
  13. [13]
    Code folding - EPFL Graph Search
    The earliest known example of code folding in an editor is in NLS. Probably the first widely available folding editor was the 1974 Structured Programming ...
  14. [14]
    History and Acknowledgments (The Org Manual) - Org Mode
    Org was born in 2003, out of frustration over the user interface of the Emacs Outline mode. I was trying to organize my notes and projects.<|separator|>
  15. [15]
    Understanding the Origins and the Evolution of Vi & Vim - Pikuma
    Aug 11, 2023 · This article is a trip back to the origins of UNIX text editors. Let's look at the important players and historical events that shaped their evolution.
  16. [16]
    History of the Text Editor | by Patrick Van Stee | Notes on Software
    Apr 17, 2013 · 1976. With the increasing popularity of cheaper CRT displays, most terminals had enough real estate to display more than one line at a time.Missing: limitations | Show results with:limitations
  17. [17]
    Collapse and Expand Regions of Code - Visual Studio (Windows)
    Aug 25, 2025 · You can also select Ctrl+M+M to collapse and expand code. To collapse an outlining region, double-click any line in the region on the outlining ...
  18. [18]
    Code Folding | IntelliJ IDEA Documentation - JetBrains
    May 26, 2025 · Use this page to specify the default code folding settings. For shortcuts on how to expand or collapse code elements, refer to the code folding section.
  19. [19]
    Working collaboratively in a codespace - GitHub Docs
    Visual Studio Live Share lets you collaboratively edit and debug with others in real time, within a codespace. You can securely share your current codespace ...
  20. [20]
  21. [21]
    Language Configuration Guide | Visual Studio Code Extension API
    A folding region starts when a line has a smaller indent than one or more following lines, and ends when there is a line with the same or smaller indent. Empty ...Brackets definition · Autoclosing · Autosurrounding · Folding
  22. [22]
    Code Browser - Code Folding - Marc Kerbiquet
    Code folding allows to hide a group of lines in a text file and to show only a descriptive headline instead. This allows to hide the details and to show the ...
  23. [23]
    Code Folding in Neovim with Tree-sitter - John Maguire
    Mar 9, 2022 · In this post we're going to do a quick overview of how to enable syntax based code folding powered by Tree-sitter.
  24. [24]
    Fold - Neovim docs
    The folds are automatically defined by the indent of the lines. The foldlevel is computed from the indent of the line, divided by the 'shiftwidth' (rounded ...
  25. [25]
    NetBeans Code Folding and the Case for Code Folding - InfoWorld
    In this blog entry, I will briefly cover how to use code folding in NetBeans 6.1 while attempting to make a case for code folding in the correct situations.<|separator|>
  26. [26]
    fold - Vim documentation
    The folds are automatically defined by the indent of the lines. The foldlevel is computed from the indent of the line, divided by the 'shiftwidth' (rounded ...
  27. [27]
  28. [28]
    Code folding not working properly when code indentation is ... - GitHub
    Oct 15, 2020 · A folding region starts when a line has a smaller indent than one or more following lines, and ends when there is a line with the same or ...
  29. [29]
  30. [30]
  31. [31]
    [PDF] IDEs SHOULD BE AVAILABLE TO HARDWARE ENGINEERS TOO!
    Symbol Navigation: Symbol navigation allows for ease in code and structural navigation. ... • Code collapse: Code 'folding' or 'collapsing' is a feature that ...
  32. [32]
    Folding preferences - Eclipse Help
    If enabled, fold preprocessor branches. Enable folding of control flow statements (if/else, do/while, for, switch), If enabled, fold control flow statements.Missing: code | Show results with:code
  33. [33]
    Code Sections – RStudio User Guide - Posit Docs
    Code sections provide structure for both navigation and folding of long functions or other code control flow. Code folding.
  34. [34]
    auto-collapse imports STOP – IDEs Support (IntelliJ Platform)
    May 25, 2017 · You can disable imports folding in File | Settings | Editor | General | Code Folding. But note that code folding options only work on ...
  35. [35]
    Write and edit source code | IntelliJ IDEA Documentation - JetBrains
    Sep 17, 2025 · Code folding. IntelliJ IDEA automatically recognizes certain code structures and makes them foldable. You can also define custom folding ...
  36. [36]
    Java Editor Folding Preferences - Eclipse Help
    Custom folding regions allow creating regions to fold using a marker text for the start and end of the region in a comment. Leaving the fields for the start or ...
  37. [37]
    Fold and unfold (collapse/expand) code fragments | MPS - JetBrains
    Oct 9, 2024 · Use code folding arrows ( , , and ) in the editor gutter. tip. If you hold the Alt key and click the folding arrows, the code blocks are folded ...
  38. [38]
    Syntax folding of Python files - Vim Tips Wiki - Fandom
    Entering the command :setlocal foldmethod=indent while editing a Python program enables folding based on the indent level, and that may be all that is needed.
  39. [39]
    Basic editing - Visual Studio Code
    Move the mouse over the gutter and click to fold and unfold regions. Use Shift + Click on the folding icon to fold or unfold the region and all regions inside.
  40. [40]
    JavaScript in Visual Studio Code
    Visual Studio Code includes built-in JavaScript IntelliSense, debugging, formatting, code navigation, refactorings, and many other advanced language features.
  41. [41]
    HTML in Visual Studio Code
    Folding. You can fold regions of source code using the folding icons on the gutter between line numbers and line start. Folding regions are available for all ...
  42. [42]
    Code Folding | PhpStorm Documentation - JetBrains
    May 26, 2025 · Use this page to specify the default code folding settings. For shortcuts on how to expand or collapse code elements, refer to the code folding section.
  43. [43]
    Code Outlining (Folding) - Actipro WPF Controls Docs
    Code outlining, also commonly referred to as code folding, is a mechanism by which a hierarchy of outlining nodes is maintained and visually rendered in an ...Missing: benefits | Show results with:benefits
  44. [44]
    Code folding - UltraEdit Wiki
    Code folding refers to the ability to show and hide logical sections of text, usually in source code files, for the purposes of isolating and focusing on one ...
  45. [45]
    Better Folding - Visual Studio Marketplace
    Feb 15, 2023 · Extension for Visual Studio Code - Improve the folding experience in VS Code.
  46. [46]
    Folding in Eclipse Text Editors
    To enable folding, we have to specify which regions of the text are collapsible. We do this by calling addAnnotation() adding ProjectionAnnotations to the ...
  47. [47]
    Eclipse Folding Plugin
    May 12, 2014 · The solution to persist folding (collapsing) of code sections in eclipse editors. Currently eclipse offers no good way to save and restore code folding on ...
  48. [48]
    How to save code folding after IDE restart? - pycharm - Stack Overflow
    Oct 26, 2019 · The code folding for methods keeps persistent after restart after I activated these checkboxes "Method bodies" and "Custom folding regions".
  49. [49]
    Specification
    No readable text found in the HTML.<|separator|>
  50. [50]
    Language Server Protocol (LSP) | IntelliJ Platform Plugin SDK
    The Language Server Protocol (LSP) is an open-standard protocol developed by Microsoft. It enables communication between development tools and Language Servers.<|separator|>
  51. [51]
    Outline Minor Mode (GNU Emacs Manual)
    Outline minor mode is a buffer-local mode that provides the same commands as Outline mode, but can be used with other major modes, using C-c @ as prefix.
  52. [52]
    Syntax Definitions - Sublime Text
    Sublime Text can use both .sublime-syntax and .tmLanguage files for syntax highlighting. This document describes .sublime-syntax files. Overview.<|separator|>
  53. [53]
    Syntax Highlighting - User Defined Languages
    The Folder & Default tab allows setting the default style, setting up keywords (or characters) that will allow code folding, and setting up styles for those ...UDL > Folding in code · UDL > Parser · Programming Language · UDL > Keywords
  54. [54]
    Vim Folding - Vim From Scratch
    Folding is a way to hide a chunk of text, and thus unclutter the view. That comes handy when you need to focus on some other part of code, or if you want to get ...