Difference between revisions of "User talk:Paxed/MixedSyntaxHighlight"
Jump to navigation
Jump to search
m (→Bug: regexp eats leading spaces: i'll look into it later.) |
(don't see why it would) |
||
Line 5: | Line 5: | ||
::Hmm, yeah, that's tricky... maybe you could make the regexp <code>/^ <span id=\"line([0-9]+)">[ 0]*\1\.( *)(.*)<\/span>$/</code> and do something like <code>$text .= substr($matches[2], 5 - strlen($matches[1])) . $matches[3] . "\n";</code>? That should handle both left- and right-adjusted line numbers (and, coincidentally, should reject any lines where the number doesn't match the ID). --[[User:Ilmari Karonen|Ilmari Karonen]] 09:42, 19 December 2010 (UTC) | ::Hmm, yeah, that's tricky... maybe you could make the regexp <code>/^ <span id=\"line([0-9]+)">[ 0]*\1\.( *)(.*)<\/span>$/</code> and do something like <code>$text .= substr($matches[2], 5 - strlen($matches[1])) . $matches[3] . "\n";</code>? That should handle both left- and right-adjusted line numbers (and, coincidentally, should reject any lines where the number doesn't match the ID). --[[User:Ilmari Karonen|Ilmari Karonen]] 09:42, 19 December 2010 (UTC) | ||
:::I'll look into it later today; hopefully this doesn't cause too much cpu usage increase... --[[User:Paxed|paxed]] 10:30, 19 December 2010 (UTC) | :::I'll look into it later today; hopefully this doesn't cause too much cpu usage increase... --[[User:Paxed|paxed]] 10:30, 19 December 2010 (UTC) | ||
+ | ::::I don't see why it would. (If you want to optimize the CPU usage, I'd suggest collecting the pieces of text in an array and doing a single join() to concatenate them at the end.) --[[User:Ilmari Karonen|Ilmari Karonen]] 10:51, 19 December 2010 (UTC) |
Latest revision as of 10:51, 19 December 2010
Bug: regexp eats leading spaces
The regexp /^ <span id=\"line([0-9]{1,4})">[0-9]{1,4}\. *(.*)<\/span>$/
causes indentation using spaces to disappear; see e.g. Source:Pray.c#dosacrifice. Presumably, removing the first "*" (or replacing it with "?") would fix the problem. --Ilmari Karonen 07:10, 19 December 2010 (UTC)
- The problem is that lines have the same number of characters for the line numbers... but lines with fewer numbers are padded with spaces. --paxed 08:15, 19 December 2010 (UTC)
- Hmm, yeah, that's tricky... maybe you could make the regexp
/^ <span id=\"line([0-9]+)">[ 0]*\1\.( *)(.*)<\/span>$/
and do something like$text .= substr($matches[2], 5 - strlen($matches[1])) . $matches[3] . "\n";
? That should handle both left- and right-adjusted line numbers (and, coincidentally, should reject any lines where the number doesn't match the ID). --Ilmari Karonen 09:42, 19 December 2010 (UTC)- I'll look into it later today; hopefully this doesn't cause too much cpu usage increase... --paxed 10:30, 19 December 2010 (UTC)
- I don't see why it would. (If you want to optimize the CPU usage, I'd suggest collecting the pieces of text in an array and doing a single join() to concatenate them at the end.) --Ilmari Karonen 10:51, 19 December 2010 (UTC)
- I'll look into it later today; hopefully this doesn't cause too much cpu usage increase... --paxed 10:30, 19 December 2010 (UTC)
- Hmm, yeah, that's tricky... maybe you could make the regexp