Microsoft/TypeScript

Not all leading tab characters in diagnostic messages are replaced with spaces

開放

#41,268 建立於 2020年10月27日

 (0 則留言) (0 個反應) (0 位負責人)TypeScript (13,395 個分叉)batch import
BugDomain: Error MessagesHelp Wanted

倉庫指標

星標
 (108,860 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

The error diagnostics that are used by default do not replace ALL leading tab characters with a single space.

As one would expect from seeing this code line in souce code: https://github.com/microsoft/TypeScript/blob/85ef91e2233fa384e980005c109fadc04376ce3e/src/compiler/program.ts#L410

This line only replaces the first leading tab character. Which causes way too much leading whitespace printed in the logs when errors occur during tsc build.

TypeScript Version: 4.0.3

Search Terms: tabs diagnostics, reporter, formatCodeSpan, formatDiagnosticsWithColorAndContext, leading tabs,

Expected behavior: Source code has four leading tabs for indentation.

[line number] [gutter seperator] [space] [space] [space] [space] [line content]

image

Actual behavior: [line number] [gutter seperator] [space] [tab] [tab] [tab] [line content]

image

PR I can submit a PR for this that would change this line: lineContent = lineContent.replace("\t", " "); // convert tabs to single spaces to: lineContent = lineContent.replace(/\t/gy, " "); // convert all leading tabs to single spaces

貢獻者指南