【问题标题】:IntelliSense doesn't work in Visual Studio Code on MacIntelliSense 在 Mac 上的 Visual Studio Code 中不起作用
【发布时间】:2016-03-31 18:02:58
【问题描述】:

我正在使用 Visual Studio Code 在 Mac 上开发一个 ASP.NET 5 应用程序。我遇到的问题是,除了我之前键入的方法和变量名称的简单自动完成之外,我没有得到任何 IntelliSense 支持(例如可用的类方法)。

该应用针对 DNX Core 5.0:

"frameworks": {
    "dnxcore50": { }
},

我通过 DNVM 安装了 CoreCLR 1.0.0-rc1-update1:​​

$dnvm 列表

活动版本运行时架构操作系统别名

-------- ------- -------- ------------ --------------- -----

  • 1.0.0-rc1-update1 coreclr x64 darwin 默认

我尝试了以下方法来解决问题,但没有成功:

  • 确保选择了一个项目(右下角的火图标)
  • settings.json 中明确提出建议

    {
        "editor.quickSuggestions": true`
    }
    

任何建议将不胜感激。

【问题讨论】:

  • 获取 Resharper。问题解决了。
  • @Krythic,是否有适用于 Visual Studio Code 的 ReShaper?

标签: c# intellisense visual-studio-code omnisharp


【解决方案1】:

简而言之,问题在于,虽然我的机器上安装了 Mono,但我没有 DNX Mono。通过本地 DNVM (dnvm upgrade -r mono) 安装它解决了这个问题,现在我在 Visual Studio Code 中获得了很好的 IntelliSense 支持。

现在说来话长。

Visual Studio Code 使用 OmniSharp 提供 IntelliSense 支持。 OmniSharp 是一组工具,通过在您的机器上运行的基于 Nancy 的 Web API 提供 C# 代码分析服务(关于它的精彩帖子 herehere)。

我没有得到任何 IntelliSense,因为 OmniSharp 运行时出现错误,如果我更加注意 Visual Studio 代码输出窗口(@98​​7654329@L 在 Mac 上),我很容易发现这些错误。 OmniSharp 日志(见下文)显示它尝试使用 dnx-mono.1.0.0-rc1-update1 运行时,然后抛出异常,因为它不存在。

据我了解,OmniSharp 无法使用 DNX CoreCLR (because it doesn't support sockets?),需要 DNX Mono 才能运行。 VS Code GitHub repo here 有一些关于这个话题的讨论。

运行 dnvm upgrade -r mono 并重新启动 Visual Studio Code 解决了该问题。我的 DNVM 设置现在如下所示:

请注意,您不必为了让 IntelliSense 工作而使用 DNX Mono 进行开发。你只需要安装它。

OmniSharp 日志

[INFO] 在 APP_PATH 启动 OmniSharp...

[INFO] 从“/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/jrieken.vscode-omnisharp/bin/omnisharp”启动 OmniSharp,进程 ID 为 34893...

[INFORMATION:OmniSharp.Startup] Omnisharp 服务器在主机 34884 的 APP_PATH 位置使用 stdio 运行。

[INFORMATION:OmniSharp.Dnx.DnxProjectSystem] 扫描 DNX 项目的 APP_PATH

[INFORMATION:OmniSharp.Dnx.DnxPaths] 使用运行时'/Users/nsamteladze/.dnx/runtimes/dnx-coreclr-darwin-x64.1.0.0-rc1-update1'。

[INFORMATION:OmniSharp.Dnx.DnxProjectSystem] 找到项目 APP_PATH/project.json。

[INFORMATION:OmniSharp.Dnx.DesignTimeHostManager] 使用“/Users/nsamteladze/.dnx/runtimes/dnx-mono.1.0.0-rc1-update1”作为设计时主机。

[ERROR:OmniSharp.Startup] 项目系统“DnxProjectSystem”引发异常。 System.InvalidOperationException:尚未设置文件名 在 System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo,System.Diagnostics.Process 进程)[0x00000] 在:0 在 System.Diagnostics.Process.Start () [0x00000] in :0 在 (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start () 在 OmniSharp.Dnx.DesignTimeHostManager.Start (System.String hostId, System.Action`1 onConnected) [0x00000] in :0 在 OmniSharp.Dnx.DnxProjectSystem.Initalize(IConfiguration 配置)[0x00000] 中:0 在 OmniSharp.Startup.Configure(IApplicationBuilder 应用程序,IServiceProvider serviceProvider,ILibraryManager manager,IOmnisharpEnvironment env,ILoggerFactory loggerFactory,ISharedTextWriter writer,IOptions'1 optionsAccessor)[0x00000] in :0

[INFORMATION:OmniSharp.MSBuild.MSBuildProjectSystem] 在 APP_PATH 中找不到解决方案文件

[INFORMATION:OmniSharp.ScriptCs.ScriptCsProjectSystem] 检测 APP_PATH 中的 CSX 文件。

[INFORMATION:OmniSharp.ScriptCs.ScriptCsProjectSystem] 找不到任何 CSX 文件

[INFORMATION:OmniSharp.Startup] 解决方案已完成加载

【讨论】:

    猜你喜欢
    • 2019-06-10
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 2017-02-01
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多