Ubuntu 16.10上的OmniSharp-VIM,OmniSharp-Roslyn和dotnet核心 - 语法检查无法识别C#6并需要解决方案文件

时间:2016-11-04 21:06:08

标签: c# vim syntastic omnisharp .net-core

我正在尝试为dotnet核心开发设置我的Ubuntu机器。我已经精心安装了Omnisharp-vim并将其设置为与OmniSharp-Roslyn服务器配合使用。我也安装了Syntastic和YouCompleteMe。我正在进行语法检查和Intellisense。我有两个问题:

  1. 如果没有解决方案文件,Omnisharp-vim将无法运行。 Dotnet核心项目不必拥有解决方案文件。我该如何解决这个问题?

  2. 我收到有效C#6代码的语法错误。例如,它无法识别运营商名称。

1 个答案:

答案 0 :(得分:4)

如何?

将有效的global.json文件添加到根目录。

{}

在vimrc文件的顶部添加两行。

let g:OmniSharp_server_type = 'roslyn'
let g:OmniSharp_prefer_global_sln = 1

为什么?

这两个OmniSharp设置告诉omnisharp-vim使用Roslyn并使用包含global.json文件的目录。

以下是使用这些变量的OmniSharp.vim file源代码。

if g:OmniSharp_server_type ==# 'roslyn' && g:OmniSharp_prefer_global_sln
  let global_solution_files = s:globpath(dir, 'global.json')
  call filter(global_solution_files, 'filereadable(v:val)')
  if !empty(global_solution_files)
    let solution_files = [dir]
    break
  endif
endif

如果那不起作用......

尝试从命令行手动启动OmniSharp:

omnisharp-vim\omnisharp-roslyn\artifacts\scripts\OmniSharp.cmd -s C:\temp\

C:\temp\目录包含一个带有有效global.json文件的新.NET Core项目。