{"id":16611017,"url":"https://github.com/alefragnani/vscode-separators","last_synced_at":"2025-03-16T21:31:03.465Z","repository":{"id":38018145,"uuid":"309450949","full_name":"alefragnani/vscode-separators","owner":"alefragnani","description":"Separators Extension for Visual Studio Code","archived":false,"fork":false,"pushed_at":"2025-03-04T22:30:00.000Z","size":977,"stargazers_count":44,"open_issues_count":9,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-16T06:05:54.953Z","etag":null,"topics":["separators","typescript","visual-studio-code","vscode","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alefragnani.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"alefragnani","patreon":"alefragnani","custom":"https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=EP57F3B6FXKTU\u0026lc=US\u0026item_name=Alessandro%20Fragnani\u0026item_number=vscode%20extensions\u0026currency_code=USD\u0026bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted"}},"created_at":"2020-11-02T17:50:51.000Z","updated_at":"2025-03-04T22:30:04.000Z","dependencies_parsed_at":"2024-04-29T00:22:43.413Z","dependency_job_id":"180ffb49-85bb-4405-a966-f2ce30ec7a4b","html_url":"https://github.com/alefragnani/vscode-separators","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alefragnani%2Fvscode-separators","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alefragnani%2Fvscode-separators/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alefragnani%2Fvscode-separators/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alefragnani%2Fvscode-separators/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alefragnani","download_url":"https://codeload.github.com/alefragnani/vscode-separators/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243936482,"owners_count":20371520,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["separators","typescript","visual-studio-code","vscode","vscode-extension"],"created_at":"2024-10-12T01:34:25.943Z","updated_at":"2025-03-16T21:31:03.459Z","avatar_url":"https://github.com/alefragnani.png","language":"TypeScript","funding_links":["https://github.com/sponsors/alefragnani","https://patreon.com/alefragnani","https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=EP57F3B6FXKTU\u0026lc=US\u0026item_name=Alessandro%20Fragnani\u0026item_number=vscode%20extensions\u0026currency_code=USD\u0026bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted","https://www.patreon.com/alefragnani"],"categories":[],"sub_categories":[],"readme":"[![](https://vsmarketplacebadges.dev/version-short/alefragnani.separators.svg)](https://marketplace.visualstudio.com/items?itemName=alefragnani.separators)\n[![](https://vsmarketplacebadges.dev/downloads-short/alefragnani.separators.svg)](https://marketplace.visualstudio.com/items?itemName=alefragnani.separators)\n[![](https://vsmarketplacebadges.dev/rating-short/alefragnani.separators.svg)](https://marketplace.visualstudio.com/items?itemName=alefragnani.separators)\n[![](https://img.shields.io/github/actions/workflow/status/alefragnani/vscode-separators/main.yml?branch=master)](https://github.com/alefragnani/vscode-separators/actions?query=workflow%3ACI)\n\n\u003cp align=\"center\"\u003e\n  \u003cbr /\u003e\n  \u003ca title=\"Learn more about Separators\" href=\"http://github.com/alefragnani/vscode-separators\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/alefragnani/vscode-separators/master/images/vscode-separators-logo-readme.png\" alt=\"Separators Logo\" width=\"70%\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# What's new in Separators 2.8\n\n* Adds **Getting Started / Walkthrough**\n* Published to **Open VSX**\n* Adds new option to draw separators above comments\n* Adds new setting to define the minimum number of lines for symbols\n\n## Support\n\n**Separators** is an open source extension created for **Visual Studio Code**. While being free and open source, if you find it useful, please consider supporting it.\n\n\u003ctable align=\"center\" width=\"60%\" border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003ca title=\"Paypal\" href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=EP57F3B6FXKTU\u0026lc=US\u0026item_name=Alessandro%20Fragnani\u0026item_number=vscode%20extensions\u0026currency_code=USD\u0026bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted\"\u003e\u003cimg src=\"https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif\"/\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca title=\"GitHub Sponsors\" href=\"https://github.com/sponsors/alefragnani\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/alefragnani/oss-resources/master/images/button-become-a-sponsor-rounded-small.png\"/\u003e\u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca title=\"Patreon\" href=\"https://www.patreon.com/alefragnani\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/alefragnani/oss-resources/master/images/button-become-a-patron-rounded-small.png\"/\u003e\u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n# Separators\n\nIt improves the readability of your source code, by drawing lines on top of each symbol. \n\n![Print](images/vscode-separators-print-readme.png)\n\nHere are some of the features that **Separators** provides:\n\n* Customize the separators appearance\n* Each kind of symbol can have its own customization\n* Select which symbols will have separators\n\n## Language Support\n\nThe extension will automatically work with any language you have installed in VS Code. The only requirement is that the language itself does support `Go to Symbol`. \n\nTo be sure your desired language will work on Separators, take a look at `Outline` view in VS Code. If it display contents, then Separators will work perfectly.\n\n# Features\n\n## Available commands\n\n* `Separators: Toggle Visibility` \n* `Separators: Select Symbols` \n\n## Available settings\n\nYou can customize the appearance of each kind of Symbol. \n\n* List of symbols in which the separators will be drawn\n```json\n    // globally (user/workspace setting)\n    \"separators.enabledSymbols\": [ \n        \"Classes\", \n        \"Constructors\",\n        \"Enums\", \n        \"Functions\",\n        \"Interfaces\", \n        \"Methods\",\n        \"Namespaces\",\n        \"Structs\"\n    ],\n\n    // per-language setting\n    \"[typescript]\": {\n        \"separators.enabledSymbols\": [\n            \"Enums\",\n            \"Interfaces\"\n        ],\n    }\n```\n\n* Controls whether callback/inline Functions should be ignored _(default is `false`)_\n```json\n    // globally (user/workspace setting)\n    \"separators.functions.ignoreCallbackInline\": true\n\n    // per-language setting\n    \"[javascript]\": {\n        \"separators.functions.ignoreCallbackInline\": true\n    }\n```\n\u003e For now, only **JavaScript**, **TypeScript** and **Lua** languages are supported. If you would like to see it on other languages, please open an issue providing details/samples\n\n* Indicates the maximum depth (level) which the separators should be rendered _(default is `0`)_\n```json\n    \"separators.maxDepth\": 1\n\n    // per-language setting\n    \"[javascript]\": {\n        \"separators.maxDepth\": 2\n    }\n```\n\n* Specifies the minimum number of lines that a symbol must have to draw separators _(default is `0` - unlimited)_\n```json\n    \"separators.minimumLineCount\": 2\n\n    // per-language setting\n    \"[javascript]\": {\n        \"separators.minimumLineCount\": 2\n    }\n```\n\n* Defines the border width _(in `px`)_\n```json\n    \"separators.classes.borderWidth\": 1,\n    \"separators.constructors.borderWidth\": 1, \n    \"separators.enums.borderWidth\": 1,\n    \"separators.functions.borderWidth\": 1, \n    \"separators.interfaces.borderWidth\": 1,\n    \"separators.methods.borderWidth\": 1, \n    \"separators.namespaces.borderWidth\": 1,\n    \"separators.structs.borderWidth\": 1,\n```\n\n* Define how border style _(choose between `solid`, `dotted`, `dashed` or `double`)_\n```json\n    \"separators.classes.borderStyle\": \"solid\",\n    \"separators.constructors.borderStyle\": \"solid\",\n    \"separators.enums.borderStyle\": \"solid\",\n    \"separators.functions.borderStyle\": \"solid\",\n    \"separators.interfaces.borderStyle\": \"solid\",\n    \"separators.methods.borderStyle\": \"solid\",\n    \"separators.namespaces.borderStyle\": \"solid\",\n    \"separators.structs.borderStyle\": \"solid\",\n```\n\n* Indicates the locations (relative to the symbols) where the separators will be drawn _(default `aboveTheSymbol`)\n\n| Option                 | Behavior                                                   |\n|------------------------|------------------------------------------------------------|\n| `aboveTheSymbol`       | A single separator located above the symbol                |\n| `aboveTheComment`      | A single separator located above the comment of the symbol |\n| `belowTheSymbol`       | A single separator located below the symbol                |\n| `surroundingTheSymbol` | A pair of separators located above and below the symbol    |\n\n```json\n   \"separators.location\": \"aboveTheSymbol\"\n```\n\n* Indicates the comment rules to draw separators above comments\n\nOut of the box, the extension supports three _patterns_ of comments:\n  * **Slash based comments**: Like those found in JavaScript, TypeScript, C, C++, C#, Java, etc\n```javascript\n   // this is a single line comment\n   \n   /* this is a multi line comment \n      this is a multi line comment */\n```\n  * **Pascal based comments**: Like those found in Pascal, Object Pascal, etc\n```pascal\n   // this is a single line comment\n      \n   { this is a multi line comment \n      this is a multi line comment }\n\n   (* this is an old school multi line comment \n      this is an old school multi line comment *)\n```\n  * **Lua based comments**: Like those found in Lua\n```lua\n   -- this is a single line comment\n   \n   --[[ this is a multi line comment \n        this is a multi line comment ]]\n```\n\nIf you want to add support for a custom language, you can add a new rule to the `separators.aboveComments.rules` setting. Here is an example for Lua:\n```json\n   \"separators.aboveComments.rules\": [\n        {\n            \"name\": \"Lua\",\n            \"languageIds\": [\n                \"lua\"\n            ],\n            \"rules\": {\n                \"singleLine\": \"^\\\\s*--\",\n                \"multiLine\": [\n                    {\n                        \"start\": \"^\\\\s*\\\\-\\\\-\\\\[\\\\[\",\n                        \"end\": \"\\\\]\\\\]\\\\s*$\"\n                    }\n                ]\n            }\n        }\n    ],\n```\n\nOr you can open a PR, an contribute to the built in rules in the extension. These are located in the `./rules.json` file\n\n\u003e Be aware that regex must be escaped, so `\\\\` is used instead of `\\`\n\n## Available colors\n\nFor more information about customizing colors in VSCode, see [Theme Color](https://code.visualstudio.com/api/references/theme-color).\n\n* Choose the color of the border \n```json\n    \"workbench.colorCustomizations\": {\n      \"separators.classes.borderColor\": \"#65EAB9\",  \n      \"separators.constructors.borderColor\": \"#65EAB9\",  \n      \"separators.enums.borderColor\": \"#65EAB9\",  \n      \"separators.functions.borderColor\": \"#65EAB9\",  \n      \"separators.interfaces.borderColor\": \"#65EAB9\",  \n      \"separators.methods.borderColor\": \"#65EAB9\",  \n      \"separators.namespaces.borderColor\": \"#65EAB9\",  \n      \"separators.structs.borderColor\": \"#65EAB9\",  \n    }\n```\n\n# License\n\n[GPL-3.0](LICENSE.md) \u0026copy; Alessandro Fragnani","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falefragnani%2Fvscode-separators","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falefragnani%2Fvscode-separators","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falefragnani%2Fvscode-separators/lists"}