# InlineFold
A Sublime Text plugin that is useful to fold regions into a single line.
It can be useful to hide long strings (for example, TailwindCSS classes).
If the cursor is on the same line where the text was folded because of the `"inline_fold.rules"`,
the text will be shown,
else the text will be folded.
![output](https://user-images.githubusercontent.com/22029477/216466685-fe0c97a2-78a0-4462-b6a5-081779cbcdcb.gif)
### Set Fold Regions Globally
From the top menu, select `Preferences > Settings` and specify the `"inline_fold.rules"` setting:
```jsonc
// Preferences.sublime-settings
{
"inline_fold.rules": [
{
// Example:
"fold_selector": "string.quoted.single - punctuation.definition.string, string.quoted.double - punctuation.definition.string",
"preceding_text": "class,className",
}
]
}
```
- `fold_selector` - [Required] The `fold_selector` is the region that will be folded.
- `preceding_text` - [Optional] The region will be folded only if the `preceding_text` is found before the `fold_selector`. InlineFold will scan max one line before finding the `preceding_text`. Multiple words can be specified by separating them with a comma`,` (example `"preceding_text": "class,className"`).
### Set Fold Regions per Syntax
If a rule is specific to a particular syntax, for example, Python.
Open a Python file.
Click `Preferences > Settings - Syntax Specific` and specify the `"inline_fold.rules"`. Those rules will only apply to Python files:
```jsonc
// Python.sublime-settings
{
"inline_fold.rules": [
{
// Example: view.run_command(...)
// The `- punctuation.section.arguments.begin` will not fold the open bracket
// The `- punctuation.section.arguments.end` will not fold the close bracket
"fold_selector": "meta.function-call.arguments.python - punctuation.section.arguments.begin - punctuation.section.arguments.end",
}
]
}
```
### Examples
Here is a few examples:
```jsonc
{
"inline_fold.rules": [
// Fold TailwindCSS class names
// Example:
{
"fold_selector": "string.quoted.single - punctuation.definition.string, string.quoted.double - punctuation.definition.string",
"preceding_text": "class,className",
},
// [Python] Fold docstring except for the first line of the docs string.
// class Person:
// """
// Some really long docs string. ..."""
{
"fold_selector": "comment.block.documentation.python - punctuation.definition.comment",
}
]
}
```
For more example go [here](https://github.com/predragnikolic/InlineFold/issues/8).