F#的格式文档

时间:2012-09-06 19:50:28

标签: visual-studio-2010 f# format

我想格式化文档:给它缩进和类似的东西。

Visual Studio中的

Ctrl K + Ctrl D/F对F#不起作用,是否有任何解决方法?它适用于C#虽然......

编辑:我想要做的是从外部来源复制粘贴一些代码。我通常使用Ctrl K + Ctrl D来格式化它,它适用于C#。但是,在.fs文件中,它似乎不起作用。最重要的是,缩进似乎是F#的必备条件......

2 个答案:

答案 0 :(得分:7)

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行。所以,相反,你想得到的是:

let another () = 
  for i in 0 .. 10 do
    printfn "Hello world" // (*)
  printfn "finished"

复制& amp;在Visual Studio中粘贴以保持代码的相同含义是像往常一样粘贴复制的代码( Ctrl + V )然后,在代码仍被选中时,更正缩进。要缩进代码,请进一步使用 Tab 并缩小它,使用 Shift + Tab

这样,您可以使用复制和粘贴F#代码就好了。您无需重新格式化整个块,因为复制到另一个位置的有效F#代码将自动格式化。你只需要修复缩进。

关于评论中提到的#light模式 - 在早期版本的F#中,可以使用其他关键字和分号而不是缩进敏感模式。现代缩进敏感样式称为#light,但它现在是默认样式,您无需担心遗留样式。

答案 1 :(得分:0)