This was created with the “improved” editor… to show WP support some of the problems I’m fighting on a regular basis.
So here’s a picture, just for fill:

It’s worth noting that you (well, I) cannot add this post text after that picture in Visual mode, because the “last character” is inside the picture caption: whatever I type appears in the caption. Switching to HTML mode, starting this sentence, then switching back to Visual mode, is the only way to go.
Here’s the same block of code, pasted in Visual mode:
void loop() { MillisNow = millis(); if ((MillisNow - MillisThen) > UpdateMS) { digitalWrite(PIN_HEARTBEAT,HIGH); for (byte c=0; c < PIXELSIZE; c++) { // step to next increment in each color if (++Pixels[c].Step >= Pixels[c].NumSteps) { Pixels[c].Step = 0; printf("Cycle %d steps %d at %8ld delta %ld ms\r\n",c,Pixels[c].NumSteps,MillisNow,(MillisNow - MillisThen)); } } for (int i=0; i < LEDSTRINGCOUNT; i++) { // for each layer byte Value[PIXELSIZE]; for (byte c=0; c < PIXELSIZE; c++) { // ... for each color Value[c] = StepColor(c,-i*Pixels[c].PlatterPhase); // figure new PWM value // Value[c] = (c == RED && Value[c] == 0) ? Pixels[c].MaxPWM : Value[c]; // flash highlight for tracking } uint32_t UniColor = strip.Color(Value[RED],Value[GREEN],Value[BLUE]); if (false && (i == 0)) printf("L: %d C: %08lx\r\n",i,UniColor); for (int j=0; j < LEDSTRIPCOUNT; j++) { // fill layer with color strip.setPixelColor(Map[i][j],UniColor); } } strip.show(); MillisThen = MillisNow; digitalWrite(PIN_HEARTBEAT,LOW); } }
The editor strips all the leading tabs and left-justifies all the lines. Tabs within the lines vanish, too, so all the comments slide leftward against the preceding code.
Here’s the same block, pasted in Visual mode with “Paste as text” turned on:
void loop() { MillisNow = millis(); if ((MillisNow - MillisThen) > UpdateMS) { digitalWrite(PIN_HEARTBEAT,HIGH); for (byte c=0; c < PIXELSIZE; c++) { // step to next increment in each color if (++Pixels[c].Step >= Pixels[c].NumSteps) { Pixels[c].Step = 0; printf("Cycle %d steps %d at %8ld delta %ld ms\r\n",c,Pixels[c].NumSteps,MillisNow,(MillisNow - MillisThen)); } } for (int i=0; i < LEDSTRINGCOUNT; i++) { // for each layer byte Value[PIXELSIZE]; for (byte c=0; c < PIXELSIZE; c++) { // ... for each color Value[c] = StepColor(c,-i*Pixels[c].PlatterPhase); // figure new PWM value // Value[c] = (c == RED && Value[c] == 0) ? Pixels[c].MaxPWM : Value[c]; // flash highlight for tracking } uint32_t UniColor = strip.Color(Value[RED],Value[GREEN],Value[BLUE]); if (false && (i == 0)) printf("L: %d C: %08lx\r\n",i,UniColor); for (int j=0; j < LEDSTRIPCOUNT; j++) { // fill layer with color strip.setPixelColor(Map[i][j],UniColor); } } strip.show(); MillisThen = MillisNow; digitalWrite(PIN_HEARTBEAT,LOW); } }
Obviously, that had no effect whatsoever: all the tabs vanish.
Here’s the same block, pasted in HTML mode:
void loop() { MillisNow = millis(); if ((MillisNow - MillisThen) > UpdateMS) { digitalWrite(PIN_HEARTBEAT,HIGH); for (byte c=0; c < PIXELSIZE; c++) { // step to next increment in each color if (++Pixels[c].Step >= Pixels[c].NumSteps) { Pixels[c].Step = 0; printf("Cycle %d steps %d at %8ld delta %ld ms\r\n",c,Pixels[c].NumSteps,MillisNow,(MillisNow - MillisThen)); } } for (int i=0; i < LEDSTRINGCOUNT; i++) { // for each layer byte Value[PIXELSIZE]; for (byte c=0; c < PIXELSIZE; c++) { // ... for each color Value[c] = StepColor(c,-i*Pixels[c].PlatterPhase); // figure new PWM value // Value[c] = (c == RED && Value[c] == 0) ? Pixels[c].MaxPWM : Value[c]; // flash highlight for tracking } uint32_t UniColor = strip.Color(Value[RED],Value[GREEN],Value[BLUE]); if (false && (i == 0)) printf("L: %d C: %08lx\r\n",i,UniColor); for (int j=0; j < LEDSTRIPCOUNT; j++) { // fill layer with color strip.setPixelColor(Map[i][j],UniColor); } } strip.show(); MillisThen = MillisNow; digitalWrite(PIN_HEARTBEAT,LOW); } }
When pasted, that looked correct, but switching back to Visual mode, even without doing any editing, stripped out all the tabs again.
Oh, and something is escaping the ampersand characters over and over again.
So, obviously, nobody has ever tested the “improved” editor against source code blocks.
Incidentally, the Visual and HTML tabs scroll off the top, but pressing Ctrl-Home scrolls only within this narrow text window. Scrolling to the top requires mouse manipulation: click outside the text column, then whack Ctrl-Home. All that, just to switch modes.