F # fsautocomplete при монотаргетинге .NET Standard в emacs fsharp-mode - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь настроить свою среду разработки в разных средах.Моя текущая проблема заключается в настройке автозаполнения.

Есть ли способ настроить fsautocomplete в fmaarp-режиме Emacs для выполнения анализа и завершения для стандартных библиотек .NET?

Похоже, этоспецифично для скриптов, но я намерен иметь достаточное количество скриптов, поэтому оно актуально.

Я использую:

  • Ubuntu 18.04
  • emacs 25.2
  • dotnet-sdk 2.2 (следующие указания здесь для Linux -> Ubuntu 18.04)
  • Mono 6.0 (следующие указания здесь для Ubuntu 18.04)

Я настроил (setq inferior-fsharp-program "dotnet fsi") для использования интерпретатора F #, поставляемого с ядром dotnet.

Я испытываю трудности с получением fsautocomplete для работы с библиотеками .NET Standard.Чтобы было ясно, fsautocomplete работает просто отлично в целом, но не тогда, когда я использую стандартную библиотеку .NET.Ниже приведены два примера.

Я настраиваю свою рабочую область следующим образом:

$ paket init
$ paket add FSharp.Data
$ paket restore

Теперь я пишу простой скрипт.Обратите внимание, что первое предназначается для .NET Framework 4.5 (net45 при чтении библиотеки)

#r "packages/FSharp.Data/lib/net45/FSharp.Data.dll"
open FSharp.Data

type Species = HtmlProvider<"https://en.wikipedia.org/wiki/The_world's_100_most_threatened_species">

let species = [ for x in Species.GetSample().Tables.``Species list``.Rows ->
                x.Type, x.``Common name`` ]

Вот версия для .NET Standard 2.0:

#r "packages/FSharp.Data/lib/netstandard2.0/FSharp.Data.dll"
open FSharp.Data

type Species = HtmlProvider<"https://en.wikipedia.org/wiki/The_world's_100_most_threatened_species">

let species = [ for x in Species.GetSample().Tables.``Species list``.Rows ->
                x.Type, x.``Common name`` ]

Первая версия (.NET Framework 4.5) обеспечивает автоматическое заполнение без ошибок и ошибок intellisense.

Вторая версия (.NET Standard 2.0) не работает с автозаполнением и выдает ошибки intellisense.Текст сообщения об ошибке приведен ниже, а скриншот находится внизу этого сообщения.

Ссылка на тип 'FSharp.Data.HtmlProvider, Sample = "" в сборке' FSharp.Data'был найден, но тип не мог быть найден в этой сборке.

Теперь я оцениваю скрипт в интерпретаторе с любой версией библиотеки, и он работает просто отлично.Но я буду ориентироваться на .NET Standard и строить с помощью инструментов сборки .NET Core sdk.В настоящее время мой лучший обходной путь - это просто использовать ссылки на библиотеки .NET Framework при написании сценариев, но тестировать их на .NET Standard, что кажется неидеальным.

Я искал параметры конфигурации в следующих местах:

Пока я ненайти что-нибудь, что, кажется, позволяет мне настроить это.Есть мысли?

intellisense error

...