【问题标题】:OmniSharp ignoring #if / #endif blocks in Visual Studio Code (0.1.0 - 0.5.0)OmniSharp 忽略 Visual Studio Code (0.1.0 - 0.5.0) 中的 #if / #endif 块
【发布时间】:2015-08-31 18:25:58
【问题描述】:

我工作室的几个人正在尝试在 OSX 上进行 Visual Studio Code for Unity 开发,但是似乎 OmniSharp 忽略了 #if/#endif 块中的所有代码。

#if/#endif 块中没有智能感知、没有“去定义”、没有跟踪引用等。就 OmniSharp 的其余功能而言:这些块中的代码可能也不存在。没有智能感知或“去定义”已经够糟糕了,有时我在编写 #if/#endif 块内的代码时不得不切换 IDE。

我可以做些什么来解决这个问题吗?这是 OmniSharp 已经知道的吗?我无法通过 Google 找到有关此问题的任何信息,所以我觉得我是唯一一个看到它的人(以及我项目中尝试使用 Visual Studio Code 的其他人)。

【问题讨论】:

    标签: intellisense visual-studio-code omnisharp


    【解决方案1】:

    我向 VSCode 报告了同样的错误,作为回应,他们将其移至 OmniSharp 的 Github 页面;这是由于 OmniSharp 缺乏对 MSBuild 文件的支持,所以它只是忽略了 .csproj 文件中的 <DefineConstants>。我认为已经有一些关于解决此问题的讨论,但我还没有看到任何时间框架或完成的工作。

    我不得不暂时放弃使用 VSCode,因为很多插件都依赖这些标签。我一直在尝试寻找其他方法来定义这些常量,以便编辑器看到它们,但它们都没有成果。

    【讨论】:

    • 目前最简单的“修复”是让他们完全忽略所有#if 块,至少我会从这些块中获得代码完成、引用、智能感知等。当然,我不确定这有多简单,如果忽略那些 #if 块,可能会有特定于平台的代码无法正常工作。
    • 我与开发团队就 Unity3D 支持进行了一些交谈,并提出了这个问题。您的“修复”也是我认为最简单的方法。他们正在考虑可能的修复,希望在下一次更新中有一些解决方法。尽管忽略它们可能会导致变量名等冲突。
    猜你喜欢
    • 1970-01-01
    • 2017-04-18
    • 2018-11-16
    • 1970-01-01
    • 2020-12-11
    • 2018-12-11
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多