Emacs Typescript错误行格式输出-用户定义选项?
我们已经开始使用TypeScript和Emacs,因为这是我们选择的编辑器 我们发现的一个问题是TypeScript错误行格式似乎与Emacs编译模式错误处理不兼容 e、 g 如果我们编译一个C程序并引入一个故意的错误,我们会得到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
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)))