7

我正在尝试设置我的 Ubuntu 机器以进行 dotnet 核心开发。我煞费苦心地安装了 Omnisharp-vim 并将其设置为与 OmniSharp-Roslyn 服务器一起使用。我还安装了 Syntastic 和 YouCompleteMe。我正在接受语法检查和 Intellisense。我有两个问题:

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

  2. 我收到有效 C# 6 代码的语法错误。例如,它不能识别 nameof 运算符。

4

1 回答 1

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 文件源代码。

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 项目。

于 2017-02-20T00:43:57.380 回答