UNPKG

coffee-fmt

Version:

a `gofmt` inspired Coffeescript formatter/beautifier.

30 lines (23 loc) 998 B
syntaxErrorToString = -> return Error::toString.call @ unless @code and @location {first_line, first_column, last_line, last_column} = @location last_line ?= first_line last_column ?= first_column filename = @filename or '[stdin]' codeLine = @code.split('\n')[first_line] start = first_column # Show only the first line on multi-line errors. end = if first_line is last_line then last_column + 1 else codeLine.length marker = codeLine[...start].replace(/[^\s]/g, ' ') + repeat('^', end - start) # Check to see if we're running on a color-enabled TTY. if process? colorsEnabled = process.stdout.isTTY and not process.env.NODE_DISABLE_COLORS if @colorful ? colorsEnabled colorize = (str) -> "\x1B[1;31m#{str}\x1B[0m" codeLine = codeLine[...start] + colorize(codeLine[start...end]) + codeLine[end..] marker = colorize marker """ #{filename}:#{first_line + 1}:#{first_column + 1}: error: #{@message} #{codeLine} #{marker} """