F# 帮助嵌入FSI
从这里开始--我一直在尝试在我的应用程序中嵌入FSI 然而,我从StandardOutput中得到了一些奇怪的东西 例如,在标准FSI中,如果我发送:F# 帮助嵌入FSI,f#,embed,redirectstandardoutput,fsi,F#,Embed,Redirectstandardoutput,Fsi,从这里开始--我一直在尝试在我的应用程序中嵌入FSI 然而,我从StandardOutput中得到了一些奇怪的东西 例如,在标准FSI中,如果我发送: let a = 3;; 我把这个拿回来: [empty line here] val a : int = 3 [empty line here] > | (管道表示输入位置) 但是如果我发送让a=3到StandardInput,我在StandardOutput上得到了以下信息: > val a : int = 3 | 还有人试
let a = 3;;
我把这个拿回来:
[empty line here]
val a : int = 3
[empty line here]
> |
(管道表示输入位置)
但是如果我发送让a=3代码>到StandardInput,我在StandardOutput上得到了以下信息:
>
val a : int = 3
|
还有人试过这个吗?我有没有做错什么,如果没有,有没有办法解决这个问题?到目前为止,我尝试过的所有事情都不起作用,在我尝试我能想到的“更糟糕”的事情之前(在发送内容后设置计时器,在超时时添加>我自己),我想知道是否有更好的方法 嵌入F#Interactive时,Visual Studio使用--fsi服务器:
参数。
据我所知,这有两件事:
- 更改输出的打印方式(它不是打印
,而是在单独的行上打印服务器提示>
,因此从输出中删除它应该更容易,并在需要输入时检测状态)
- 它还启动一些.NET远程处理通道,您可以使用该通道停止F#Interactive中的命令执行(例如,如果它运行到无限循环中),它还可以提供一些完成信息
MonoDevelop F#插件中的F#交互式键盘使用标志()。我认为它基本上是正确的,但我相信它有时会在输出中打印额外的\n
。嵌入F#Interactive时,Visual Studio使用--fsi server:
参数。
据我所知,这有两件事:
- 更改输出的打印方式(它不是打印
,而是在单独的行上打印服务器提示>
,因此从输出中删除它应该更容易,并在需要输入时检测状态)
- 它还启动一些.NET远程处理通道,您可以使用该通道停止F#Interactive中的命令执行(例如,如果它运行到无限循环中),它还可以提供一些完成信息
MonoDevelop F#插件中的F#交互式键盘使用标志()。我认为它基本上是正确的,但我相信它有时会在输出中打印额外的\n
。我忍不住尝试printfn“服务器提示>”代码>在VS:)我忍不住尝试printfn“SERVER-PROMPT>”代码>在VS:)