Emacs Typescript错误行格式输出-用户定义选项?

Emacs Typescript错误行格式输出-用户定义选项?,emacs,typescript,Emacs,Typescript,我们已经开始使用TypeScript和Emacs,因为这是我们选择的编辑器 我们发现的一个问题是TypeScript错误行格式似乎与Emacs编译模式错误处理不兼容 e、 g 如果我们编译一个C程序并引入一个故意的错误,我们会得到 t1.c:6:5: error: use of undeclared identifier 'a' 如果我们对得到的TypeScript编译器执行相同的操作(忽略消息,它的格式很重要) E

我们已经开始使用TypeScript和Emacs,因为这是我们选择的编辑器

我们发现的一个问题是TypeScript错误行格式似乎与Emacs编译模式错误处理不兼容

e、 g

如果我们编译一个C程序并引入一个故意的错误,我们会得到

t1.c:6:5: error: use of undeclared identifier 'a'                                       
如果我们对得到的TypeScript编译器执行相同的操作(忽略消息,它的格式很重要)

Emacs可以使用键命令ESC-g n处理第一类错误消息,并将主编辑器窗口移到错误位置

Emacs无法处理第二个错误行格式

我们已经通过将TypeScript编译器包装在一个Perl脚本中,并让Perl脚本适当地重新格式化行,拼凑出了一个解决方案。这是可行的,但有点混乱,如果TypeScript有更多的灵活性就好了


我们想知道是否有一个标志或某种方法可以将Typescript错误输出更改为与Emacs兼容的格式

t1.c:6:5:…格式实际上是GNU编码标准中记录的官方格式,因此我认为您应该联系Typescript编译器的作者,要求他们更改错误消息的格式

同时,您需要调整
编译错误regexp alist
来解释compile.el如何识别Typescript的错误消息

大概是

(eval-after-load 'compile
  (add-to-list 'compilation-error-regexp-alist
               '("^\\([^(\n]+\\)(\\([0-9]+\\),\\([0-9]+\\)):" 1 2 3)))
也许能让你开始。如果某些消息不是实际的错误,而是更像警告或附加信息,则可以改进上述内容。有关格式的详细信息,请参见
C-hv编译错误regexp-alist-RET

(eval-after-load 'compile
  (add-to-list 'compilation-error-regexp-alist
               '("^\\([^(\n]+\\)(\\([0-9]+\\),\\([0-9]+\\)):" 1 2 3)))