Skip to content

Whitespace

Most modern programming languages do not consider white space characters (spaces, tabs and newlines) syntax, ignoring them, as if they weren’t there. We consider this to be a gross injustice to these perfectly friendly members of the character set. Should they be ignored, just because they are invisible? Whitespace is a language that seeks to redress the balance. Any non whitespace characters are ignored; only spaces, tabs and newlines are considered syntax.

Whitespace must be learned.

2 Comments

  1. gk wrote:

    Freedom to use whitespace as we see fit should be in the programmers constitution !

    Saturday, May 17, 2014 at 18:50 | Permalink
  2. Dhiumara wrote:

    I had the same problem derRaab! Replace \t by fixed spaecs is not really correct, tab char represent variables space char. I wrote a quickly solution making this two changes in wp-syntax/wp-syntax.php:Change 1:if ($this->header_type != GESHI_HEADER_PRE && $this->header_type != GESHI_HEADER_PRE_VALID) {$this->indent($parsed_code);} else{$this->indentPRE($parsed_code);}Change 2, insert a new funtion for my pre-blocks:function indentPRE(&$result) {/// Replace tabs with the correct number of spaecsif (false !== strpos($result, “\t”)) {$lines = explode(“\n”, $result);$result = null;//Save memory while we process the lines individually$tab_width = $this->get_real_tab_width();$tab_string = ‘ ‘ . str_repeat(‘ ‘, $tab_width);for ($key = 0, $n = count($lines); $key ‘ ‘,// 3 => ‘ ‘ etc etc// to use instead of building a string every time$tab_end_width = $tab_width – ($pos % $tab_width); //Moved out of the look as it doesn’t change within the loopif (($pos & 1) || 1 == $tab_end_width) {$str .= substr($tab_string, 6, $tab_end_width);} else {$str .= substr($tab_string, 0, $tab_end_width+5);}$lines[$key] .= $str;$pos += $tab_end_width;if (false === strpos($line, “\t”, $i + 1)) {$lines[$key] .= substr($line, $i + 1);break;}} else if (0 == $pos && ‘ ‘ == $char) {$lines[$key] .= ‘ ‘;++$pos;} else {$lines[$key] .= $char;++$pos;}}}$result = implode(“\n”, $lines);unset($lines);//We don’t need the lines separated beyond this — free them!}}This last function is a copy-paste-modify of ident().If I didn’t make a mistake this corrected tab’s size (in my case 8 to 4).

    Friday, December 4, 2015 at 05:52 | Permalink

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*