Skip to content
| Marketplace
Sign in
Visual Studio Code>Snippets>Smart SeparatorsNew to Visual Studio Code? Get it now.
Smart Separators

Smart Separators

idlesilver

| (0) | Free
A fork of Comment Divider focused on multi-cursor editing, smart reruns, and cleaner code section separators.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Smart Separators

Smart Separators

Smart Separators is a Visual Studio Code extension for turning selected lines into formatted comment separators.

This extension is a maintained fork of Comment Divider. The fork keeps the original idea of language-aware section dividers, but focuses on faster editing workflows and predictable reruns on existing divider lines.

How this fork differs from Comment Divider

  • Multi-cursor and multi-line selections are handled in one command run.
  • Rerunning commands on existing dividers toggles or upgrades them instead of stacking more filler text.
  • Whitespace-only lines are treated as solid divider insertion targets.
  • Settings and commands use the smart-separators namespace, so they can live beside the original extension without sharing configuration keys.

See CHANGELOG for release details.

Supports all common languages.

Install

https://marketplace.visualstudio.com/items?itemName=idlesilver.smart-separators

Demo

Subheader Demo

Commands

Make main header

  • Default Shortcut:

    Shift + Alt + X

  • Default Style:

    /* -------------------------------------------------------------------------- */
    /*                                Example text                                */
    /* -------------------------------------------------------------------------- */
    

Make subheader

  • Default Shortcut:

    Alt + X

  • Default Style:

    /* ------------------------------ Example text ------------------------------ */
    

Insert solid line

  • Default Shortcut:

    Alt + Y

  • Default Style:

    /* -------------------------------------------------------------------------- */
    

Smart behavior

  • Commands run on every line covered by the current selections or cursors.
  • Running a header command on a whitespace-only line inserts a solid divider instead.
  • Repeating Make Subheader on one of its own dividers collapses it back to a plain comment.
  • Running Make Main Header on a subheader divider upgrades it to the main header style without duplicating fillers.
  • Running a header command on a solid divider removes the divider, leaving just the indentation.

Language Support

Extension uses relevant comment characters for all common languages.

For example, in python files subheader looks like

# ------------------------------ python example ------------------------------ #

or in html files

<!-- ---------------------------- html example ----------------------------- -->

Also, you can easily add support for any missing language or override the default preset.

Default Configuration

Common

  // Set line length for all dividers.
  "smart-separators.length": 80,
  // Set whether the divider will be shrink consider indent size, or will be always fixed length.
  "smart-separators.shouldLengthIncludeIndent": false,
  • if shouldLengthIncludeIndent: false

    /* --------------------------------- indent0 -------------------------------- */
    
        /* --------------------------------- indent1 -------------------------------- */
    
            /* --------------------------------- indent2 -------------------------------- */
    
  • if shouldLengthIncludeIndent: true

    /* --------------------------------- indent0 -------------------------------- */
    
        /* ------------------------------- indent1 ------------------------------ */
    
            /* ----------------------------- indent2 ---------------------------- */
    

Main Header

  // "Set symbol for main header line filling (only one).
  "smart-separators.mainHeaderFiller": "-",

  // Set main header vertical style.
  "smart-separators.mainHeaderHeight": "block",

  // Set main header text align.
  "smart-separators.mainHeaderAlign": "center",

  // Set main header text transform style.
  "smart-separators.mainHeaderTransform": "none",

Subheader

  // "Set symbol for subheader line filling (only one).
  "smart-separators.subheaderFiller": "-",

  // Set subheader vertical style.
  "smart-separators.subheaderHeight": "line",

  // Set subheader text align.
  "smart-separators.subheaderAlign": "center",

  // Set subheader text transform style.
  "smart-separators.subheaderTransform": "none",

Solid Line

  // Set symbol for solid line filling.
  "smart-separators.lineFiller": "-",

Languages Configuration

If some language is not supported out of the box, or you want to change default comment characters for an already supported language, it is possible to do it in the settings.

"smart-separators.languagesMap": {
      "toml": ["#", "#"],
      "scss": ["//"]
}

The item name is the language mode name and is associated with an array of 1 or 2 elements. The first element is the start of the line. The second, if defined, is the end.

The example above defines the right characters for toml and overrides scss defaults. As a result, the subheaders for these languages look like this:

# ------------------------------ toml subheader ------------------------------ #
// ----------------------------- scss subheader --------------------------------

Issues

Request features and report bugs using GitHub.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft