Visual studio 2010 F格式文件#
我想格式化文档:给它缩进之类的东西 Visual Studio中的Ctrl-K+Visual studio 2010 F格式文件#,visual-studio-2010,f#,format,Visual Studio 2010,F#,Format,我想格式化文档:给它缩进之类的东西 Visual Studio中的Ctrl-K+Ctrl-D/F不适用于F#,有人有解决方法吗?它确实对C#有用,不过 编辑:我想做的是从外部源复制粘贴一些代码。我通常使用Ctrl K+Ctrl D对其进行格式化,它适用于C。但是,在.fs文件中,它似乎不起作用。最重要的是,缩进似乎是F#必须具备的功能。F#是缩进敏感的,因此,如果您将有效代码从一个位置复制到另一个位置,您可能需要做的唯一一件事就是确保它从左侧有正确的偏移量。例如,假设您有: let test (
Ctrl-D/F
不适用于F#,有人有解决方法吗?它确实对C#有用,不过
编辑:我想做的是从外部源复制粘贴一些代码。我通常使用Ctrl K
+Ctrl D
对其进行格式化,它适用于C。但是,在.fs文件中,它似乎不起作用。最重要的是,缩进似乎是F#必须具备的功能。F#是缩进敏感的,因此,如果您将有效代码从一个位置复制到另一个位置,您可能需要做的唯一一件事就是确保它从左侧有正确的偏移量。例如,假设您有:
let test () =
printfn "Hello world" // (*)
let another () =
for i in 0 .. 10 do
test() // (#)
printfn "finished"
现在,如果您想复制行(*)
,并使用它而不是调用test
,只需复制粘贴即可将代码转换为以下内容:
let another () =
for i in 0 .. 10 do
printfn "Hello world" // (*)
printfn "finished"
但这有不同的含义!它将两个printfn
行重复10次。因此,您希望得到的是:
let another () =
for i in 0 .. 10 do
printfn "Hello world" // (*)
printfn "finished"
在VisualStudio中执行复制和粘贴以保持代码的相同含义的方法是,像往常一样粘贴复制的代码(Ctrl+V),然后在代码仍处于选中状态时,更正缩进。若要进一步缩进代码,请使用Tab;若要缩进较少,请使用Shift+Tab
这样,就可以对F代码使用复制和粘贴了。您不需要重新格式化整个块,因为复制到另一个位置的有效F#代码将自动格式化。你只需要修正压痕
关于注释中提到的
#light
模式,在F#的早期版本中,可以使用额外的关键字和分号,而不是缩进敏感模式。现代缩进敏感样式被称为#light
,但它现在是默认样式,您无需担心传统样式。似乎唯一的答案是使用以下其中一种:
在
#light
模式下处理空格和类似的,F#code是,因此自动缩进(1)不太有用;(2) 易出错。自VS2010以来,不支持非灯光模式。事实上,如果小心使用,我相信Emacs可以很好地格式化F#(假设@bytebuster指出,一些基本的有意义的预格式化)。我可能错了,但值得一试。我既没有使用FSI,也没有代码中的#light
;这难道不意味着我的代码不应该处于#light
模式吗?这是什么光模式?(对不起,我对F#有点陌生)在VS 2010和VS 2012中,使用Shift+Tab会在第一行以开口括号开始时导致缩进错误。这种错误可以通过从不在大括号打开后立即编写代码来避免。但是,这种解决方法看起来很笨拙,并且不符合……在F#中移动代码的最佳方法是:1)使用“SHIFT+ALT+DOWNARROW”定义偏移线(在要移动的代码块左侧具有零宽度的垂直线),2)然后使用“TAB”或“SHIFT+TAB”移动偏移线(从而也移动代码)来回地这保证了,无论您使用何种编码样式,移动块内的缩进始终保持正确。那么格式化代码呢??(不仅仅是缩进,还有所有其他的事情,比如空格的数量,以及何时开始新行)