mirror of
https://github.com/jashkenas/coffeescript.git
synced 2022-11-09 12:23:24 -05:00
fix tabbed literate code
This commit is contained in:
parent
f672e0cdb5
commit
9595b30d6f
3 changed files with 12 additions and 7 deletions
|
@ -40,7 +40,7 @@
|
|||
};
|
||||
|
||||
Lexer.prototype.clean = function(code) {
|
||||
var line, lines;
|
||||
var line, lines, match;
|
||||
if (code.charCodeAt(0) === BOM) {
|
||||
code = code.slice(1);
|
||||
}
|
||||
|
@ -55,8 +55,8 @@
|
|||
_results = [];
|
||||
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
|
||||
line = _ref2[_i];
|
||||
if (LITERATE.test(line)) {
|
||||
_results.push(line.substr(4));
|
||||
if (match = LITERATE.exec(line)) {
|
||||
_results.push(line.slice(match[0].length));
|
||||
} else {
|
||||
_results.push('# ' + line);
|
||||
}
|
||||
|
|
|
@ -65,15 +65,15 @@ exports.Lexer = class Lexer
|
|||
|
||||
# Preprocess the code to remove leading and trailing whitespace, carriage
|
||||
# returns, etc. If we're lexing literate CoffeeScript, strip external Markdown
|
||||
# by removing all lines that aren't indented by at least four spaces.
|
||||
# by removing all lines that aren't indented by at least four spaces or a tab.
|
||||
clean: (code) ->
|
||||
code = code.slice(1) if code.charCodeAt(0) is BOM
|
||||
code = "\n#{code}" if WHITESPACE.test code
|
||||
code = code.replace(/\r/g, '').replace TRAILING_SPACES, ''
|
||||
if @literate
|
||||
lines = for line in code.split('\n')
|
||||
if LITERATE.test line
|
||||
line.substr(4)
|
||||
if match = LITERATE.exec line
|
||||
line[match[0].length..]
|
||||
else
|
||||
'# ' + line
|
||||
code = lines.join '\n'
|
||||
|
|
|
@ -40,4 +40,9 @@ and unordered lists, are fine:
|
|||
|
||||
* A
|
||||
|
||||
* List
|
||||
* List
|
||||
|
||||
Tabs work too:
|
||||
|
||||
test "tabbed code", ->
|
||||
ok yes
|
||||
|
|
Loading…
Add table
Reference in a new issue