
Mariia
16.06.2018
20:03:18

Sergey
16.06.2018
20:07:12
Как yaml провайдеру объяснить, что поле может быть option?
именно Option он вроде как не провайдает, но там есть параметр InferTypesFromStrings …
если наверно его сделать false и в провайднутом типе все проперти будут reference типами…
то провадер или будет возвращал null или можно сделать несложно чтобы он возвращал null

Nikolay
16.06.2018
20:09:46

Ayrat
16.06.2018
20:10:23
Я могу встрять. Каждый раз пытаюсь райдер завести, и он всё больше похож на VS в плохом смысле - навязывание воркфлоу. Т.е. dotnet restore -> dotnet build -> dotnet publish. Шаг вправо влево - расстрел.
Понятно что JB сосредоточены на C# где это норма, там 90% людей делают ASP.NET CRUD'ы и не парятся. Но вот привязать FAKE или paket в райдер без гемороя невозможно. Не говоря уж о проекте с кастомным билдфлоу и паблишингом отличным от /bin/debug/netcoreapp2.0/app.dll

Google

Sergey
16.06.2018
20:10:50
Печаль, спасибо
сходу даже не понятно как это должно работать… если все по умолчанию сделать Optional с ним сразу станет не приятно работать весьма…

Artem
16.06.2018
20:11:32

Nikolay
16.06.2018
20:12:02
Хотя не понятно тогда как делать с int, и другими

Sergey
16.06.2018
20:13:08

Ayrat
16.06.2018
20:13:17

Nikolay
16.06.2018
20:13:27
Прокатит разве что с массивами

Mariia
16.06.2018
20:14:01
я чет думала наоброт, но значит ошибалась

Nikolay
16.06.2018
20:14:51
Типа такого:
props:
- key: 1
value: 5
- key: 2
value: null

Ayrat
16.06.2018
20:15:45
Они пару месяцев назад объявили о поддержке Paket.
Знаешь как это работает? Они просто отключают auto nuget restore если видят папку .paket и говорят тебя варнингом: "мы задетектили пакет, дальше сам ебись через консоль".
Поддержка, my ass
т.е. в VS Code у тебя там в команд палетте есть все пакет команды и оно изи пизи, а в райдере тебе или кастомные екшны руками рисовать, или реально консоль.

Google

Ayrat
16.06.2018
20:16:59
И это они называют - ПОДДЕРЖКА PAKET

Sergey
16.06.2018
20:18:09
Типа такого:
props:
- key: 1
value: 5
- key: 2
value: null
тогда уж
yaml
props
- key: 1
vakey: 5
- key: 2
я тут как раз билд FSharp.Configuration чинил потом код перед глазами =) - с массивами да, наверно можно, но инференс будет посложнее - но еще yaml TP же позволяем редактировать файлик обратно, вот сохранение изменений обратно, тоже будет с танцами

Artem
16.06.2018
20:18:26

Nikolay
16.06.2018
20:20:10

Ayrat
16.06.2018
20:20:22

Nikolay
16.06.2018
20:22:14
Хмм, или мб лучше как-то руками правило задавать для Option? Грубо говоря так:
type Config = YamlProvider<"config.yaml", options = [| "props.value" |]>
Мб синтаксис кривой, но суть думаю ясна

Ayrat
16.06.2018
20:22:50
там кастомную раскраску с полпинка добавить
там например до сих пор лагает подсветка на объявлениях вида Array.ofSeq потому что они of ловят как ключевое слово и оно синее
ну там приколов масса
Rider тоже тупой. Он не понимает кастомные операторы вида >>- или <&>
После них парсер Райдера ломается навсегда и весь остальной файл у меня серый
VS Code регекспы хотя бы по строкам ловит. поэтому если баг в одной строчке, следующая будет нормально отображаться. райдер ломает сразу всё после первой ошибки

Sergey
16.06.2018
20:26:07

Nikolay
16.06.2018
20:26:44

Ayrat
16.06.2018
20:26:58
А ещё бонус. регекспы для раскраски кода F# вы можете посмотреть и поправить пул реквестом.
Исходники райдера вы вряд ли увидите, лучшее что вы сможете сделать это написать унылый тикет в их youtrack и потерять надежду на его выполнение

Vlad
16.06.2018
20:28:41
Евгений кстати в чате вроде был

Ayrat
16.06.2018
20:30:02
Узнаю джаву (хоть это и котлин)
упоролись они там по по вложенности папок
если что в этой папке лежит один файл. Как и во многих других

Artem
16.06.2018
21:11:31
как в вскоде выполнить только выделенный кусок кода?
оно так умеет?

Google

Artem
16.06.2018
21:21:23
UPD: нашёл как. осталось перебиндить хоткей

Mariia
16.06.2018
21:24:14
@fvnever ples bot

TheRainwildsKeeper
17.06.2018
00:29:45

Artem
17.06.2018
02:14:20
Неплох, но не идеален

Evgeniy
17.06.2018
05:08:37

Andrew
17.06.2018
05:35:50

Evgeniy
17.06.2018
05:48:31
Да, @auduchinok делает большую работу в F# плагине.

Eugene
17.06.2018
06:02:03

Ayrat
17.06.2018
06:08:59

Eugene
17.06.2018
06:09:52

Ayrat
17.06.2018
06:11:00

Eugene
17.06.2018
06:12:32

Evgeniy
17.06.2018
07:20:54
Hi ?

Roman
17.06.2018
08:34:13

Mariia
17.06.2018
13:00:20
а можно глупый вопрос, когда стоит юзать беквард пайпы?
и не делает ли их использование флоу программы более запутанным

Evgeniy
17.06.2018
13:02:33

Ayrat
17.06.2018
13:19:21

Google

Ayrat
17.06.2018
13:19:22
в сложных сценариях без <| никуда. ща пример кину
в Job.tryIn надо подать три лямбды. если они неоднострочники, то без <| будет куча скобок
я иногда заменяю <| на ^

Evgeniy
17.06.2018
13:24:30
Выглядит жутко.

Ayrat
17.06.2018
13:27:30
ну, это и не хеловорлд так-то

Evgeniy
17.06.2018
13:31:07

Friedrich
17.06.2018
13:31:24
а можно глупый вопрос, когда стоит юзать беквард пайпы?
Я выдумал себе «более сложные правила», как говорит тов. @gsomix.
Некоторые функции, которые часто стоят на первом месте в выражениях, я мысленно объявил «операторами». Например, Async.AwaitTask, ignore и тому подобные.
С этими «операторами» я в своём коде разрешаю использовать <|. Например, так:
let! result = Async.AwaitTask <| reader.ReadToEndAsync()
ignore <| Directory.CreateDirectory path
Мне кажется, это как раз более читаемо, если сильно не баловаться.

Evgeniy
17.06.2018
13:31:54

Mariia
17.06.2018
13:32:55
как в сишарпе
если честно половину не поняла

Ayrat
17.06.2018
13:33:48

Friedrich
17.06.2018
13:34:16
спасибо, с эвеитом прям оч круто выглядит
Ну, обычно такой авейт вообще не нужен. Конкретно этот авейт сшивает наш Async и сишарповый Task.
Если у тебя везде асинки или везде таски, и ты используешь соответствующий билдер, то с этими функциями извращаться не нужно, и всё делает простой let!

Evgeniy
17.06.2018
13:34:48

Friedrich
17.06.2018
13:35:49
FusionTasks!
Наверное, это очень глупо прозвучит, но я забыл, что такое FusionTasks :(

Evgeniy
17.06.2018
13:35:56
https://github.com/kekyo/FSharp.Control.FusionTasks

Ayrat
17.06.2018
13:36:35
https://github.com/rspeele/TaskBuilder.fs
Пакет может прям файл подтянуть

Google

Friedrich
17.06.2018
13:36:52

Evgeniy
17.06.2018
13:37:18
TaskBuilder и FusionTasks про разное.

Mariia
17.06.2018
13:39:51
hm

Ayrat
17.06.2018
13:41:14
Ну, это не секрет.

Andrew
17.06.2018
13:51:00
Кстати говоря, а как определяется приоритет для кастомных операторов?

Evgeniy
17.06.2018
14:03:03
Ну, в смысле, по правилам, описанным в спеке.
Зависит от символов с твоем операторе.

Andrew
17.06.2018
14:03:43
Ох щи, так и думал
Но это же дичь

Evgeniy
17.06.2018
14:03:55
Да.