function doCSSReflection(editor) {
						var outputInfo = editorUtils.outputInfo(editor);
						var caretPos = editor.getCaretPos();

						var cssRule = cssEditTree.parseFromPosition(outputInfo.content, caretPos);
						if (!cssRule) return;

						var property = cssRule.itemFromPosition(caretPos, true);
						// no property under cursor, nothing to reflect
						if (!property) return;

						var oldRule = cssRule.source;
						var offset = cssRule.options.offset;
						var caretDelta = caretPos - offset - property.range().start;

						handlers.exec(false, [property]);

						if (oldRule !== cssRule.source) {
							return {
								data: cssRule.source,
								start: offset,
								end: offset + oldRule.length,
								caret: offset + property.range().start + caretDelta
							};
						}
					}
@type HandlerList List of registered handlers