NppExec插件在第一个冒号处结束输出

时间:2013-07-11 11:24:05

标签: notepad++ typescript nppexec

我正在尝试使用TypeScript,我正在使用Notepad++编写TypeScript,并使用NppExec插件来编译我的脚本。似乎它应该工作,但有一个非常奇怪的问题:NppExec只显示第一个警告/错误消息文本之前的:输出。例如,假设编译输出应为:

C:/temp/tstest/test.ts(26,14): Supplied parameters do not match any signature of call target
C:/temp/tstest/test.ts(33,9): Supplied parameters do not match any signature of call target

我将在NppExec控制台窗口中看到:

node C:\temp\tstest\node_modules\typescript\bin\tsc.js C:\temp\tstest\test.ts
Process started >>>
C:/temp/tstest/test.ts(26,14): <<< Process finished. (Exit code 1)
================ READY ================

请注意,它在第一个):之后终止了输出。

非常有趣的是,如果我将JavaScript引擎从Node更改为cscript(Windows脚本宿主),那么它可以工作......但需要永远!如果我用cscript执行相同的命令,这就是我所看到的:

cscript C:\temp\tstest\node_modules\typescript\bin\tsc.js C:\temp\tstest\test.ts
Process started >>>
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

C:/temp/tstest/test.ts(26,14): Supplied parameters do not match any signature of call target
C:/temp/tstest/test.ts(33,9): Supplied parameters do not match any signature of call target
<<< Process finished. (Exit code 1)
================ READY ================

有关该去哪儿的建议吗?我宁愿使用Node,因为它更快......

这是一段展示所有这些内容的视频: http://screencast.com/t/xxgodAU8

编辑:事实证明,如果您将-w开关(“监视文件并在更改时重建”开关)传递给tsc.js,它将在Node执行时起作用。 ..但它不会只构建一次,它会继续构建,直到你杀死它才会结束。

3 个答案:

答案 0 :(得分:1)

我开始了一个记事本++插件项目。 你可以在这里找到它: https://github.com/hansrwindhoff/nppPluginTypescript.git

在保存时编译 并在nodejs中运行js

如果有人想要聪明,那就太棒了!

有一个语法着色xml文件: https://gist.github.com/wate/5077019 这个要点与我无关。

答案 1 :(得分:0)

我没有答案,但我可以就攻击计划给你一些想法。

可能整个消息正在输出但是一些特殊字符或序列使得Notepad ++停止处理它。将输出重定向到文件以查看其中发生的情况。 hex editor插件可能有所帮助。有了这些知识,您可以通过awksed之类的工具来管理命令输出,以重写有问题的位,以便Notepad ++喜欢它。

答案 2 :(得分:0)

我之前在Codeplex开始了一项功能请求。问题似乎是nodejs刷新其缓冲区的方式。请参阅github和codeplex上的讨论:

http://typescript.codeplex.com/workitem/115

https://github.com/joyent/node/issues/4640#issuecomment-12542632

您可能想要对请求进行投票,因此优先级会提高。