[content] src/extension.ts (typescript)
					backgroundColor: new vscode.ThemeColor('editor.background'),
					fontStyle: 'italic',
					fontWeight: '600',
					margin: '0',
					textDecoration: `none; display: block; white-space: pre; content: "↳ Execute in Terminal:\\A ${cmd}"; border: 1px solid var(--vscode-charts-purple); padding: 4px; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.25); pointer-events: none;`
				}
			});
			editor.setDecorations(decorationReplaceBlockType, [{ range: new vscode.Range(cursor, cursor) }]);
		} else if (next.kind === 'editInsert') {
			const pos = new vscode.Position(next.position[0], next.position[1]);
			const fullBlock = next.text;
			const cssContent = fullBlock
				.replace(/"/g, '\\"')
				.replace(/
?
/g, '\\A ');
	
			const docLineCount = editor.document.lineCount;
			const endLine = pos.line;
	
			if (endLine + 1 < docLineCount) {
				const nextLineStart = new vscode.Position(endLine + 1, 0);
				decorationReplaceBlockType = vscode.window.createTextEditorDecorationType({
					before: {
						contentText: '',
						color: new vscode.ThemeColor('charts.purple'),
						backgroundColor: new vscode.ThemeColor('editor.background'),
						fontStyle: 'italic',
						fontWeight: '600',
						margin: '0',
						// Add border-top to visualize the insertion point
						textDecoration: `none; display: block; white-space: pre; content: "${cssContent}"; border: 1px solid var(--vscode-charts-purple); padding: 4px; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.25); pointer-events: none;`
					}
				});
				editor.setDecorations(decorationReplaceBlockType, [{ range: new vscode.Range(nextLineStart, nextLineStart) }]);
			} else {
				decorationReplaceBlockType = vscode.window.createTextEditorDecorationType({
					after: {
						contentText: '',
						color: new vscode.ThemeColor('charts.purple'),
						backgroundColor: new vscode.ThemeColor('editor.background'),
						fontStyle: 'italic',
						fontWeight: '600',
						margin: '0',
						// Add border-top to visualize the insertion point
						textDecoration: `none; display: block; white-space: pre; content: "\\A ${cssContent}"; border: 1px solid var(--vscode-charts-purple); padding: 4px; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.25); pointer-events: none;`
					}
				});
				editor.setDecorations(decorationReplaceBlockType, [{ range: new vscode.Range(pos, pos) }]);
			}
		} else if (next.kind === 'editDelete') {
			const range = new vscode.Range(
				new vscode.Position(next.range.start[0], next.range.start[1]),
				new vscode.Position(next.range.end[0], next.range.end[1])
			);
			decorationDeleteType = vscode.window.createTextEditorDecorationType({
				backgroundColor: 'rgba(255, 60, 60, 0.18)',
				border: '1px solid rgba(255, 60, 60, 0.35)',
				textDecoration: 'line-through'
			});
			editor.setDecorations(decorationDeleteType, [{ range }]);
		} else if (next.kind === 'editReplace') {
			const range = new vscode.Range(
				new vscode.Position(next.range.start[0], next.range.start[1]),
				new vscode.Position(next.range.end[0], next.range.end[1])
			);
			// Highlight original range (to be replaced)
			decorationReplaceType = vscode.window.createTextEditorDecorationType({
				backgroundColor: 'rgba(255,165,0,0.15)',
				border: '1px dashed rgba(255,165,0,0.45)',
				color: new vscode.ThemeColor('disabledForeground'),
				textDecoration: 'line-through'
			});
			editor.setDecorations(decorationReplaceType, [{ range }]);
	
			// Show replacement block on the line after the replaced range
			const fullBlock = next.text;
			
			// CSS-escape the text for the 'content' property:
			// - Escape double quotes
			// - Replace newlines with \A (CSS newline)
			const cssContent = fullBlock
				.replace(/"/g, '\\"')
				.replace(/
?
/g, '\\A '); 
	
			// Determine target for the "lines after" decoration
			const docLineCount = editor.document.lineCount;
			const endLine = range.end.line;
			
			if (endLine + 1 < docLineCount) {
				// Attach 'before' decoration to the start of the NEXT line
				const nextLineStart = new vscode.Position(endLine + 1, 0);
				decorationReplaceBlockType = vscode.window.createTextEditorDecorationType({
					before: {
						contentText: '', // Handled by CSS content
						color: new vscode.ThemeColor('charts.purple'),
						backgroundColor: new vscode.ThemeColor('editor.background'),
						fontStyle: 'italic',
						fontWeight: '600',
						margin: '0',
						textDecoration: `none; display: block; white-space: pre; content: "${cssContent}"; border: 1px solid var(--vscode-charts-purple); padding: 4px; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.25); pointer-events: none;`
					}
				});
				editor.setDecorations(decorationReplaceBlockType, [{ range: new vscode.Range(nextLineStart, nextLineStart) }]);
			} else {
				// EOF: Attach 'after' decoration to the end of the current line
				decorationReplaceBlockType = vscode.window.createTextEditorDecorationType({
					after: {
						contentText: '', // Handled by CSS content
						color: new vscode.ThemeColor('charts.purple'),
						backgroundColor: new vscode.ThemeColor('editor.background'),
						fontStyle: 'italic',
						fontWeight: '600',
						margin: '0',
						textDecoration: `none; display: block; white-space: pre; content: "\\A ${cssContent}"; border: 1px solid var(--vscode-charts-purple); padding: 4px; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.25); pointer-events: none;`
					}
				});
				editor.setDecorations(decorationReplaceBlockType, [{ range: new vscode.Range(range.end, range.end) }]);
			}
		}