打开 LINQPad 时执行查询

4

有没有一种方法,当我在LINQPad中打开查询时,它会执行查询并将我放在仅结果视图中?这个功能的预期用例是在LINQPad中编写小型应用程序。我不想每次都按F5和Ctrl+Shift+R。

这样做的动机是最近发布的5.36版本中的RegEx实用工具。这也是一个执行相同操作的脚本。


我可以在一定程度上帮助您 - 在 Main 的左大括号后面放置 System.Windows.Forms.SendKeys.SendWait("^+R"); 以自动键入 Ctrl-Shift-R。 - NetMage
2个回答

7
我已经在下一版本中添加了一个Util.OpenQuery方法:
public static Task<bool> OpenQuery (string queryPath, bool run = false,
                                    bool hideEditor = false, params object[] args)

您随后将能够从Automator查询中调用此内容:

void Main (System.Windows.Forms.Keys key, string currentQueryPath)
{
    if (key == (Keys.Shift | Keys.Control | Keys.Alt | Keys.F1))
        Util.OpenQuery (@"my query.linq", true, true);
}

这将允许您自动化最多12个查询(使用热键Alt+Shift+Ctrl+[F1-F12])。

1
这正是我想要的!期待下一个版本的发布,Joe。非常感谢您开发这个工具并不断努力将其变得更加优秀。 - Shrayas
1
小的功能请求:我往往会忘记我已经将哪些查询绑定到了哪些热键上。您是否可以实现类似于优化指令的功能来解决这个问题呢?我可以在查询中加入 #LINQPad RunOnOpen 或类似的内容,当我打开查询时它就会运行,另外一个 #LINQPad HideEditor 则会隐藏编辑器。只是随便提供一些想法 :) 再次感谢。 - Shrayas
我还将在导航查询对话框(Control+逗号)中添加“打开并运行”快捷方式:https://twitter.com/linqpad/status/1113001784794992641 这会有所帮助吗?请注意,查询上的#LINQPad RunOnOpen选项可能被视为安全风险。 - Joe Albahari
是的,那肯定会有所帮助。除了我必须记得以那种方式打开它之外。但我确实明白你指的是它存在安全风险的问题。 - Shrayas
现已发布新的LINQPad测试版: https://www.linqpad.net/download.aspx#beta - Joe Albahari
你很棒。 - Shrayas

3

你可以使用参数从命令行启动LINQPad来运行一个脚本文件:

linqpad "path to file" -run

如果你添加以下这行代码:
System.Windows.Forms.SendKeys.SendWait("^+R");

作为Main中的第一行,该代码将被隐藏。
注意链接答案中建议在脚本结束时关闭LINQPad。

谢谢你,@NetMage。但我不想从命令行打开查询。我的意思是我会在linqpad内部打开查询。就像Joe在最新版本中放置的RegEx评估器一样 :) 无论如何感谢你的回答,我从中学到了SendKeys方法。 - Shrayas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接