【问题标题】:How to invoke F# auto-completion in Emacs如何在 Emacs 中调用 F# 自动完成功能
【发布时间】:2014-09-05 15:30:04
【问题描述】:

我安装了 FSharp 3.1、Emacs 24 和 emacs 的 fsharp-mode。但是,自动完成功能(在点完成)不起作用。我按照https://github.com/fsharp/fsharpbinding/blob/master/emacs/README.md 此处的所有说明进行操作,并将 fsautocomplete.exe 添加到我的 $PATH 中。

但是还是不行。

PS: 我在 Debian sid、Ubuntu Trusty 和 Mac 10.9 中失败了。

【问题讨论】:

  • "在类 Unix 系统上,您必须使用 --readline- 标志以确保 F# Interactive 能够与 Emacs 一起正常工作。通常,fsifsc 通过 shell 脚本调用 fsharpifsharpc。”你也这样做了吗?
  • 我做到了,但似乎 fsharpbinding 没有使用 fsi 或 fsc 来实现自动完成功能。

标签: emacs autocomplete f# f#-3.0


【解决方案1】:

我是作者。要在 fsharp 模式下自动完成,您必须编辑脚本 (.fsx) 文件或与项目 (.fsproj) 文件关联的普通 (.fs) 文件。

如果打开了一个 .fs 文件并且没有加载其他项目,那么 fsharp-mode 将在当前和封闭目录中查找并加载一个 .fsproj。这可以使用 C-c C-p 手动完成。此时,项目中提到的所有 .fs 文件都可以使用自动补全功能。

如果尚未加载项目,则 .fs 文件中将没有自动完成功能。

我试图在 README.md 中说明这一点。我会看看更新它,并尝试在界面中提供有关自动完成功能不可用的原因的反馈。

【讨论】:

  • 运行 mono fsautocomplete.exe 时出现下一个错误:实例字段 FSharp.InteractiveAutocomplete.Main+files@464:p 未处理的异常:System.TypeLoadException:无法从程序集“fsautocomplete,Version=0.18.0.0,Culture=neutral,PublicKeyToken=null”加载类型“FSharp.InteractiveAutocomplete.Main+files@464”。在 FSharp.InteractiveAutocomplete.Main.entry (System.String[] args)
  • Mono JIT 编译器版本 3.2.8 (Debian 3.2.8+dfsg-4ubuntu1.1)
【解决方案2】:

作者给我的解决方法是.fs文件必须和相关的.fsproject在同一目录下。

【讨论】:

    猜你喜欢
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 2013-03-17
    • 2011-08-05
    • 1970-01-01
    相关资源
    最近更新 更多