Overview
What Comma List Toggle does
Joins multiple non-empty lines with commas or splits one comma-separated line while respecting commas inside matching quotes.
| Category | Text Editing & Formatting |
|---|---|
| Action type | JavaScript |
| Result | Replace or copy text |
| Internet | Not required |
Example
Action and outcome
| Action | Outcome |
|---|---|
| Comma List ToggleSelected text: Apple, Banana, "Pear, green" | Apple Banana "Pear, green" |
Workflow
Use Comma List Toggle
Follow these steps to switch between comma-separated values and separate lines with ActionClip.
- Select the text you want to use.
- Choose Comma List Toggle from ActionClip.
- Review the result, then replace the selection or copy the new text.
Before you add it
Requirements and privacy
- Before you start: No setup required.
- Your selected text: Runs locally in ActionClip’s JavaScript sandbox. Selected text does not leave your Mac.
Inspect before installing
Action configuration
The definition below is included so you can inspect how the action works before downloading it.
JavaScript definition
function run(selected_text) {
const lines = selected_text
.split(/\r\n?|\n/)
.map((line) => line.trim())
.filter((line) => line.length > 0);
if (lines.length > 1) return lines.join(", ");
if (lines.length === 0) return "";
const values = [];
let current = "";
let quote = null;
for (let index = 0; index < lines[0].length; index += 1) {
const character = lines[0][index];
if ((character === '"' || character === "'") && quote === null) {
quote = character;
current += character;
} else if (character === quote) {
if (lines[0][index + 1] === quote) {
current += character + character;
index += 1;
} else {
quote = null;
current += character;
}
} else if (character === "," && quote === null) {
if (current.trim()) values.push(current.trim());
current = "";
} else {
current += character;
}
}
if (current.trim()) values.push(current.trim());
return values.length > 1 ? values.join("\n") : lines[0];
}