IntelliSense не работает в Visual Studio Code на Mac

Я использую Visual Studio Code для разработки приложения ASP.NET 5 на Mac. У меня проблема в том, что я не получаю никакой поддержки IntelliSense (например, доступный класс методы) помимо простого автозаполнения для имен методов и переменных, которые я ранее вводил.

Приложение предназначено для DNX Core 5.0:

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

И у меня CoreCLR 1.0.0-rc1-update1 установлен через DNVM:

список $ dnvm

Активная версия Архитектура среды выполнения Псевдоним операционной системы

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

  • 1.0.0-rc1-update1 coreclr x64 дарвин по умолчанию

Я попытался решить проблему следующим образом, но безуспешно:

  • Убедитесь, что проект выбран (значок огня в правом нижнем углу)
  • Предложения явным образом повернуты в settings.json

    {
        "editor.quickSuggestions": true`
    }
    

Мы будем очень благодарны за любые предложения.


person Nikolai Samteladze    schedule 25.12.2015    source источник
comment
Получите Resharper. Проблема решена.   -  person Krythic    schedule 26.12.2015
comment
@Krythic, есть ли ReShaper для Visual Studio Code?   -  person Nikolai Samteladze    schedule 26.12.2015


Ответы (1)


Короче говоря, проблема заключалась в том, что, хотя на моем компьютере был установлен Mono, у меня не было DNX Mono. Установка его через DNVM локально (dnvm upgrade -r mono) устранила проблему, и теперь у меня есть хорошая поддержка IntelliSense в Visual Studio Code.

Теперь длинный рассказ.

Visual Studio Code использует OmniSharp для обеспечения поддержки IntelliSense. OmniSharp - это набор инструментов, который предоставляет услуги анализа кода C # через веб-API на основе Nancy, который работает на вашем компьютере (отличные сообщения об этом здесь и здесь).

Я не получил IntelliSense, потому что OmniSharp работал с ошибками, которые я мог бы легко обнаружить, если бы уделил больше внимания окну вывода кода Visual Studio (Cmd+L L на Mac). Журнал OmniSharp (см. Ниже) показывает, что он пытался использовать dnx-mono.1.0.0-rc1-update1 среду выполнения, а затем выдал исключение, потому что его там не было.

Насколько я понимаю, OmniSharp не может использовать DNX CoreCLR (, потому что он не поддерживает сокеты?) и для работы требуется DNX Mono. Эта тема обсуждается в репозитории VS Code на GitHub.

Запуск dnvm upgrade -r mono и перезапуск Visual Studio Code устранили проблему. Моя настроенная DNVM теперь выглядит так:  введите описание изображения здесь

Обратите внимание, что вам не обязательно использовать DNX Mono для разработки, чтобы IntelliSense заработал. Вам просто нужно установить его.

Журнал OmniSharp

[ИНФОРМАЦИЯ] Запуск OmniSharp в APP_PATH ...

[ИНФОРМАЦИЯ] OmniSharp запущен из '/ Applications / Visual Studio Code.app/Contents/Resources/app/extensions/jrieken.vscode-omnisharp/bin/omnisharp' с идентификатором процесса 34893 ...

[ИНФОРМАЦИЯ: OmniSharp.Startup] Сервер Omnisharp работает с использованием stdio в местоположении APP_PATH на хосте 34884.

[ИНФОРМАЦИЯ: OmniSharp.Dnx.DnxProjectSystem] Сканирование APP_PATH для проектов DNX

[ИНФОРМАЦИЯ: OmniSharp.Dnx.DnxPaths] Использование среды выполнения '/Users/nsamteladze/.dnx/runtimes/dnx-coreclr-darwin-x64.1.0.0-rc1-update1'.

[ИНФОРМАЦИЯ: OmniSharp.Dnx.DnxProjectSystem] Найден проект APP_PATH / project.json.

[ИНФОРМАЦИЯ: OmniSharp.Dnx.DesignTimeHostManager] Использование '/Users/nsamteladze/.dnx/runtimes/dnx-mono.1.0.0-rc1-update1' для узла времени разработки.

[ОШИБКА: OmniSharp.Startup] Система проектов «DnxProjectSystem» выдала исключение. System.InvalidOperationException: имя файла не было задано в System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] в: 0 в System.Diagnostics.Process.Start () [ 0x00000] в: 0 в (удаленное взаимодействие-вызов-с-проверкой оболочки) System.Diagnostics.Process: Start () в OmniSharp.Dnx.DesignTimeHostManager.Start (System.String hostId, System.Action`1 onConnected) [0x00000] в : 0 в OmniSharp.Dnx.DnxProjectSystem.Initalize (конфигурация IConfiguration) [0x00000] в: 0 в OmniSharp.Startup.Configure (приложение IApplicationBuilder, IServiceProvider serviceProvider, диспетчер ILibraryManager, параметры IOmnisOharpEnvironment писателя IOmnisOharpEnvironment, log [0x00000] в: 0

[ИНФОРМАЦИЯ: OmniSharp.MSBuild.MSBuildProjectSystem] В APP_PATH файлы решения не найдены.

[ИНФОРМАЦИЯ: OmniSharp.ScriptCs.ScriptCsProjectSystem] Обнаружение файлов CSX в APP_PATH.

[ИНФОРМАЦИЯ: OmniSharp.ScriptCs.ScriptCsProjectSystem] Не удалось найти файлы CSX.

[ИНФОРМАЦИЯ: OmniSharp.Startup] Решение завершено.

person Nikolai Samteladze    schedule 26.12.2015