Re: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: Vladek Россия Github
Дата: 09.03.17 17:14
Оценка: :))) :))
Здравствуйте, VladD2, Вы писали:

VD>Что-то у меня пашет фичи из C# 7 в 2015-й студии. При этом я вроде ничего не ставил.


  Achievement unlocked!
Re[2]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: KRT Украина  
Дата: 09.03.17 09:58
Оценка: 8 (1) +2
Здравствуйте, VladD2, Вы писали:

VD>В общем, осталось понять как C# 7 попал на мою машину.


Этот пакет не устанавливался? https://www.nuget.org/packages/Microsoft.Net.Compilers/
Re[5]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: TK Лес кывт.рф
Дата: 08.03.17 19:25
Оценка: :)))
Здравствуйте, VladD2, Вы писали:

F>> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.

VD>Наверное дело в том что я не ставил 2017–ю. Еще бы понять откуда поддержка C# 7 взялась?

Попробуй макрос сделать. Может это просто мутация какая
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: crackoff Россия  
Дата: 21.03.17 08:19
Оценка: 116 (1)
Здравствуйте, VladD2, Вы писали:

VD>У меня подозрения на плагин выделенный в списке на картинке ниже. Просьба к тем кто не устанавливал 2017-ю студию проверить это предположение.

VD>[!url=https://files.gitter.im/rsdn/nemerle/U38w/blob]Image: blob[/url]

Добрый день.
Похоже, дело действительно в нем. Проверил перед установкой, фичи C#7 не работали. Скачал я его отсюда: https://dotnet.myget.org/gallery/roslyn, больше ничего не устанавливал, заработало.
Спасибо.

UPD: Старые проекты открываются и собираются нормально.

UPD2: Вот здесь процесс настройки Roslyn Insiders описан.
Отредактировано 22.03.2017 8:19 crackoff . Предыдущая версия . Еще …
Отредактировано 22.03.2017 8:18 crackoff . Предыдущая версия .
Отредактировано 21.03.2017 8:22 crackoff . Предыдущая версия .
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: crackoff Россия  
Дата: 22.03.17 07:21
Оценка: 46 (1)
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Здравствуйте, VladD2, Вы писали:


VD>>У меня подозрения на плагин выделенный в списке на картинке ниже. Просьба к тем кто не устанавливал 2017-ю студию проверить это предположение.

VD>>Image: blob

KV>В общем, опытным путём выяснил, что этот пакет не уживается с решарпером. Но фичи C# 7 действительно добавляет.


Нужно обновиться до последнего EAP (https://www.jetbrains.com/resharper/eap/), у меня EAP 5 сейчас.
Далее, либо в *.csproj.DotSettings прописать вручную
<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp70</s:String>

либо из меню при наведении на код:


Правда, после этого все равно не все проверки корректно работают

UPD.

Например, при использовании паттерн-матчинга со структурами:
Отредактировано 22.03.2017 7:30 crackoff . Предыдущая версия .
Re[6]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.03.17 22:36
Оценка: :)
Здравствуйте, TK, Вы писали:

TK>Попробуй макрос сделать. Может это просто мутация какая


Ну, это лет через 15.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: nikov США http://www.linkedin.com/in/nikov
Дата: 09.03.17 19:00
Оценка: :)
Здравствуйте, hardcase, Вы писали:

H>Здравствуйте, VladD2, Вы писали:


VD>>В общем, осталось понять как C# 7 попал на мою машину.


H>Вирус


Ransomware, очень коварное. Сначала подсаживает разработчика на фичи C# 7, потом вымогает биткойны под угрозой отключения фич.
Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.03.17 22:29
Оценка:
Что-то у меня пашет фичи из C# 7 в 2015-й студии. При этом я вроде ничего не ставил. Например, вот сейчас скомпилилось вот такое:
    static void XmlToString(StringBuilder builder, XContainer container)
    {
      foreach (var n in container.Nodes())
      {
        switch (n)
        {
          case XElement   e when e.Name == "br" || e.Name == "bl": builder.AppendLine(); break;
          case XContainer c: XmlToString(builder, c); break;
          case XText      t: builder.Append(t.Value); break;
        }
      }
    }

Ну, и там вот такое тоже:
if (_wpfTextView.Properties.TryGetProperty<TextViewModel>(Constants.TextViewModelKey, out var textViewModel))
  ...


Разве это не фичи 7-го Шарпа?

Почему они доступны в 2015-й студии?

Вот гифка показывающая проходящее:
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Отредактировано 08.03.2017 13:36 VladD2 . Предыдущая версия .
Re: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: _NN_ www.nemerleweb.com
Дата: 08.03.17 08:13
Оценка:
Здравствуйте, VladD2, Вы писали:

Студия 2017 установлена ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: fddima  
Дата: 08.03.17 09:06
Оценка:
Здравствуйте, VladD2, Вы писали:

У меня — не пашет. Создал проект в 2017, и 2015-ая отвергает ПМ. Компилирование приводит к ошибкам. Попытка вручную установить LangVersion в проекте — сообщает invalid option '7' for /langversion.

Впрочем, сегодня с утра создал пустой ConsoleApp в 2017. Попытался его открыть в 2015 и получил серию крешей раза три. Пошаманил с файлами проектов. Вроде начало открываться. Но теперь нет крешей если повторить процедуру с самого начала и без шаманств... Жесть какая-то.
Re[2]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.03.17 13:03
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Студия 2017 установлена ?


Я же сказал — нет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.03.17 13:10
Оценка:
Здравствуйте, fddima, Вы писали:

F>У меня — не пашет. Создал проект в 2017, и


У меня 2017–й не стоит.

F>Но теперь нет крешей если повторить процедуру с самого начала и без шаманств... Жесть какая-то.


У меня не падает. Вот эдит энд континю на новых конструкциях не пашут.

А апдэйты на 2015–й Студии стоят?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.03.17 13:14
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Студия 2017 установлена ?


Я как–то ради эксперемента ставил что–то вроди Розлин СДК, но потом еготгрохнул.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.03.17 13:36
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Студия 2017 установлена ?


Добавил в тематическое сообщение гифку демонстрирующую проходящее.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: fddima  
Дата: 08.03.17 16:15
Оценка:
Здравствуйте, VladD2, Вы писали:

F>>У меня — не пашет. Создал проект в 2017, и

VD>У меня 2017–й не стоит.
Хочу как у тебя.

VD>А апдэйты на 2015–й Студии стоят?

2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.03.17 16:34
Оценка:
Здравствуйте, fddima, Вы писали:

VD>>У меня 2017–й не стоит.

F> Хочу как у тебя.

Собственно, если кто не верит, вот список установленного отфильтрованный по "Vis":


F> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.


у меня все как часы работает. Просто я с дуру начал юзать 7-й шарп, и только потом понял, что это аномалия. А вообще я не понимаю как люди без ПМ мучались все это время. Даже включенный огрызок сильно упрощает жизнь. Хотя конечно, полноценный МП куда приятнее.

Вот думаю, может перейти на 2017-ю студи, благо ее вчера зарелизили вроде? А то у меня один проект на шарпе и я в нем уже заиспользовал фич C# 7.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.03.17 17:56
Оценка:
Здравствуйте, fddima, Вы писали:

F> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.


Наверное дело в том что я не ставил 2017–ю. Еще бы понять откуда поддержка C# 7 взялась?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: fddima  
Дата: 08.03.17 18:40
Оценка:
Здравствуйте, VladD2, Вы писали:

F>> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.


VD>у меня все как часы работает.

У меня тоже. Отладка хрома отваливается только потосу что не пережевывает объем отладочной информации. Хотя скорее всего инспектор пару раз отваливается за собой и валит студию. Символ-сервер то в 15-й отлельный и он справляется хоть и медленно (натурально с fastlink он может отладочную инфу грузить минут 5-15 в зависимости от IO). Даж юзеры на SSD предпочитают выждать. Всё остальное по части шарпа — даже с набором некотопых плагинов — проблем не было. С установкой 17-й пояаились рандомные крэши обоих студий. Мне кажется преимущественно до той стадии когда всё хорошенько прогрузится. Но казалось бы — как 15-ю зацепили? В общем не знаю. Я перегружаю хост раз в неделю или две, так что побоку.


VD>Даже включенный огрызок сильно упрощает жизнь. Хотя конечно, полноценный МП куда приятнее.

if-else писать никто не запрещает, а типичный прикладной код — линейка о перекладывании данных. Ты же на это смотришь совершенно под иным углом. В мои последние 100К шарпового кода — есть ровно два места куда вставлю новый шарповый ПМ. Поэтому — да, полноценный — куда приятнее. Хорошо, что сделали хоть какой-то. Плохо, что засорили switch. Имхо match — это то что нужно. Пофигу, но как-то традиционней и понятнее.

Ты мне вот что скажи лучше — есть ли такой язык где бы возвращаемый параметр мог быть именован? Ну т.е. HashSet.Add returns bool added или success, а не безликий bool?
И можно ли считать тупл с одним элементом — так, как буд-то его вовсе нет? Чисто теоретически.

VD>Вот думаю, может перейти на 2017-ю студи, благо ее вчера зарелизили вроде? А то у меня один проект на шарпе и я в нем уже заиспользовал фич C# 7.

Я поставил, но не спешу переходить. Если можешь потерпеть — потерпи неделю-две до первых фиксов. Я сейчас вообще в ксамарин студии колбашусь — и плююсь в основном.
В целом — переходить однозначно нужно.
Re[5]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: fddima  
Дата: 08.03.17 18:42
Оценка:
Здравствуйте, VladD2, Вы писали:

F>> 2015u3. Проблем до установки 2017 не было ни разу. Ну отваливающийся дебаггер (креш) при отладке хрома — это норма и ре считается.

VD>Наверное дело в том что я не ставил 2017–ю. Еще бы понять откуда поддержка C# 7 взялась?
Я не ставил RC или каких либо SDK из "новой" эры. Очевидно, что что-то не так. Согласись — новый компилятор откуда-то должен был появиться. Может я проморгал обновление если оно было. Не знаю. Сегодня уже лень проверить.
Re[3]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: _NN_ www.nemerleweb.com
Дата: 08.03.17 19:35
Оценка:
Здравствуйте, VladD2, Вы писали:

Поищи все csc.exe на компе.
Или открой 'Developer command prompt' и проверь (where csc).
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.03.17 22:41
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Поищи все csc.exe на компе.

_NN>Или открой 'Developer command prompt' и проверь (where csc).

Есть путь проще. Поднял уровень диагностики в студии до уровня Normal. Пишет:
CoreCompile:

C:\Users\vc_000\AppData\Local\Microsoft\VisualStudio\14.0\Extensions\q3vtunre.o2z\csc.exe /noconfig /nowarn:1701,1702,2008 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE /errorendlocation /preferreduilang:en-US /highentropyva+ /reference:"C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\EnvDTE.dll" /reference:"C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\EnvDTE100.dll" /reference:"C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\EnvDTE80.dll" /reference:"C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\EnvDTE90.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.Build.Framework.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\Microsoft.VisualStudio.CommandBars.dll" /reference:"C:\!\Nitra\packages\Microsoft.VisualStudio.CoreUtility.14.3.25407\lib\net45\Microsoft.VisualStudio.CoreUtility.dll"
...


Т.е. это вот это доброе расширение https://oz-code.com/ отладчика мне C# 7 поставило.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.03.17 22:53
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Т.е. это вот это доброе расширение https://oz-code.com/ отладчика мне C# 7 поставило.


А может и не оно.

Список файлов следующий:

_rels\
package\
CertificateInformation.dat
csc.exe
csc.rsp
csc.exe.config
extension.packcomponent
extension.vsixmanifest
Microsoft.Build.Tasks.CodeAnalysis.dll
Microsoft.CodeAnalysis.dll
Microsoft.CodeAnalysis.CSharp.dll
Microsoft.CodeAnalysis.VisualBasic.dll
Microsoft.CSharp.Core.targets
Microsoft.DiaSymReader.Native.amd64.dll
Microsoft.DiaSymReader.Native.arm.dll
Microsoft.DiaSymReader.Native.x86.dll
Microsoft.VisualBasic.Core.targets
Microsoft.Win32.Primitives.dll
Roslyn.Compilers.Extension.dll
Roslyn.Compilers.Extension.pdb
Roslyn.Compilers.Extension.pkgdef
System.AppContext.dll
System.Collections.Immutable.dll
System.Console.dll
System.Diagnostics.FileVersionInfo.dll
System.Diagnostics.Process.dll
System.IO.Compression.dll
System.IO.FileSystem.dll
System.IO.FileSystem.DriveInfo.dll
System.IO.FileSystem.Primitives.dll
System.IO.Pipes.dll
System.Reflection.Metadata.dll
System.Runtime.InteropServices.RuntimeInformation.dll
System.Security.AccessControl.dll
System.Security.Cryptography.Algorithms.dll
System.Security.Cryptography.Encoding.dll
System.Security.Cryptography.Primitives.dll
System.Security.Cryptography.X509Certificates.dll
System.Security.Principal.Windows.dll
System.Text.Encoding.CodePages.dll
System.Threading.Thread.dll
System.Xml.XmlDocument.dll
System.Xml.XPath.XDocument.dll
vbc.exe
vbc.rsp
vbc.exe.config
VBCSCompiler.exe
VBCSCompiler.exe.config


Все же это похоже шаповский экстеншон.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.03.17 23:19
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Разве это не фичи 7-го Шарпа?


Проверил работу локальных функций:
    static string ToText(string text)
    {
      if (!text.StartsWith("<hint>", StringComparison.InvariantCultureIgnoreCase))
        return text;

      void XmlToString(StringBuilder builder, XContainer container)
      {
        foreach (var n in container.Nodes())
        {
          switch (n)
          {
            case XElement e when e.Name == "br" || e.Name == "bl": builder.AppendLine(); break;
            case XContainer c: XmlToString(builder, c); break;
            case XText t: builder.Append(t.Value); break;
          }
        }
      }

      var sb = new StringBuilder();
      XmlToString(sb, XElement.Parse(text));
      return sb.ToString();
    }

Работают. Но вывода типов для них нет, по сему типы параметров надо указывать всегда. Лажает Майкрософт. До Немерла 2006-го не дотягивают.

А с кортежами проблема:
      (int x, string y) foo()
      {
        return (42, "yaho!");
      }


Пишет:

C:\!\Nitra\Ide\NitraCommonVSIX\Models\FileModel.cs(209,16,209,29): error CS8179: Predefined type 'System.ValueTuple`2' is not defined or imported
C:\!\Nitra\Ide\NitraCommonVSIX\Models\FileModel.cs(207,7,207,24): error CS8137: Cannot define a class or member that utilizes tuples because the compiler required type 'System.Runtime.CompilerServices.TupleElementNamesAttribute' cannot be found. Are you missing a reference?
C:\!\Nitra\Ide\NitraCommonVSIX\Models\FileModel.cs(207,7,207,24): error CS8179: Predefined type 'System.ValueTuple`2' is not defined or imported


то есть нужна какая-то дополнительная либа...

Ага. С этим тоже разобрался. Надо было поставить NuGet-пакет System.ValueTuple.

return ref тоже пашет:
      ref int foo(int[] ary)
      {
        return ref ary[2];
      }

      var ary2 = new[] { 2, 4, 6, 8 };
      foo(ary2) = 42;


Бинарные константы работают (хотя и не особо нужны):
      const int X = 0b010_1010;


Рекорды не пашут. Но вроде их не осилили.

В общем, осталось понять как C# 7 попал на мою машину.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Отредактировано 08.03.2017 23:23 VladD2 . Предыдущая версия .
Re[2]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: hardcase Пират http://nemerle.org
Дата: 09.03.17 08:25
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>В общем, осталось понять как C# 7 попал на мою машину.


Вирус
/* иЗвиНите зА неРовнЫй поЧерК */
Re[6]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: alexzzzz  
Дата: 09.03.17 12:54
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Список файлов следующий:

VD>

VD>_rels\
VD>package\
VD>CertificateInformation.dat
VD>csc.exe
VD>csc.rsp
VD>csc.exe.config
...
VD>vbc.exe
VD>vbc.rsp
VD>vbc.exe.config
VD>VBCSCompiler.exe
VD>VBCSCompiler.exe.config


Это Roslyn.
Re[3]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.03.17 13:17
Оценка:
Здравствуйте, KRT, Вы писали:

KRT>Этот пакет не устанавливался? https://www.nuget.org/packages/Microsoft.Net.Compilers/


Нет. Да и мало такого пакета. Надо еще плагин к IDE обновить ведь. У меня ведь не только компиляция работает, но и интеллисенс.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.03.17 13:18
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Вирус


Ну, вот мне надо понять, как этот вирус инсллировать. Или выкашивать весь кода на c3 7, что я понаписал с дуру.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: Lexey Россия  
Дата: 09.03.17 14:47
Оценка:
Здравствуйте, VladD2, Вы писали:

KRT>>Этот пакет не устанавливался? https://www.nuget.org/packages/Microsoft.Net.Compilers/


VD>Нет. Да и мало такого пакета. Надо еще плагин к IDE обновить ведь. У меня ведь не только компиляция работает, но и интеллисенс.


А решарпер у тебя стоит? В 2013-ой студии хватало этого пакета и решарпера, чтобы фичи 6-го шарпа работали.
"Будь достоин победы" (c) 8th Wizard's rule.
Re[5]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: rameel https://github.com/rsdn/CodeJam
Дата: 09.03.17 14:54
Оценка:
Здравствуйте, Lexey, Вы писали:

L>А решарпер у тебя стоит? В 2013-ой студии хватало этого пакета и решарпера, чтобы фичи 6-го шарпа работали.


Судя по гифке, что в стартовом сообщении, не стоит. Но как бы то ни было, у меня стоит 2015 студия вместе с 2017, есть решарпер, но фичи 7 шарпа не доступны
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[5]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.03.17 15:23
Оценка:
Здравствуйте, Lexey, Вы писали:

L>А решарпер у тебя стоит?


Нет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.03.17 19:13
Оценка:
Здравствуйте, nikov, Вы писали:

N>Ransomware, очень коварное. Сначала подсаживает разработчика на фичи C# 7, потом вымогает биткойны под угрозой отключения фич.


Вот ты шутишь, оно почти так и есть. Шарп для этого проекта (а это проект плагина к студии для Nitra) выбран специально, чтобы людям не знакомым с Nemerle было проще разобраться и расширить его если надо. Ну, и из соображений совместимости с разным тулингом VS SDK.

Но писать на c3 6 что-то сложнее классов с переопределенными методами очень неприятно. В некоторых местах приходится городить вот такой огород (эмуляция паттерн-матчинга):
    void Response(AsyncServerMessage msg)
    {
      Debug.Assert(msg.FileId >= 0);
      ITextBuffer textBuffer = _textBuffer;

      OutliningCreated outlining;
      KeywordsHighlightingCreated keywordHighlighting;
      SymbolsHighlightingCreated symbolsHighlighting;
      MatchedBrackets matchedBrackets;
      MappingMessages mappingMessages;
      ParsingMessages parsingMessages;
      SemanticAnalysisMessages semanticAnalysisMessages;
      Hint hint;

      if ((outlining = msg as OutliningCreated) != null)
      {
        var tegget = (OutliningTagger)textBuffer.Properties.GetProperty(Constants.OutliningTaggerKey);
        tegget.Update(outlining);
      }
      else if ((keywordHighlighting = msg as KeywordsHighlightingCreated) != null)
        UpdateSpanInfos(HighlightingType.Keyword, keywordHighlighting.spanInfos, keywordHighlighting.Version);
      else if ((symbolsHighlighting = msg as SymbolsHighlightingCreated) != null)
        UpdateSpanInfos(HighlightingType.Symbol, symbolsHighlighting.spanInfos, symbolsHighlighting.Version);
      else if ((matchedBrackets = msg as MatchedBrackets) != null)
      {
        if (_activeTextViewModelOpt == null)
          return;

        _activeTextViewModelOpt.Update(matchedBrackets);
      }
      else if ((parsingMessages = msg as ParsingMessages) != null)
        UpdateCompilerMessages(0, parsingMessages.messages, parsingMessages.Version);
      else if ((mappingMessages = msg as MappingMessages) != null)
        UpdateCompilerMessages(1, mappingMessages.messages, mappingMessages.Version);
      else if ((semanticAnalysisMessages = msg as SemanticAnalysisMessages) != null)
        UpdateCompilerMessages(2, semanticAnalysisMessages.messages, semanticAnalysisMessages.Version);
      else if ((hint = msg as Hint) != null)
        _mouseHoverTextViewModelOpt?.ShowHint(hint);
    }


Для человека подсевшего на полноценный язык это вызывает когнитивный резонанс. Невольно хочется заюзать хотя бы фичи 7-го Шарпа.

И вот в какой-то момент мне Студия сама советует (через лампочки) использовать фичи 7-го шарпа. Я даже не думая начинаю их использовать, а потом понимаю, что что-то тут не так.

Теперь вот подумываю загрузить 2017-ю Студию и перейти на нее.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: IT Россия linq2db.com
Дата: 13.03.17 13:21
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Что-то у меня пашет фичи из C# 7 в 2015-й студии. При этом я вроде ничего не ставил.


Видимо на твоей машине шарп унюхал где-то поблизости Немерле? Решил не ударить в грязь лицом

ЗЫ. Посмотри установленные нугет пакеты. Компилятор можно поставить и таким способом, что, кстати, было бы полезно для N.
Если нам не помогут, то мы тоже никого не пощадим.
Отредактировано 13.03.2017 13:24 IT . Предыдущая версия . Еще …
Отредактировано 13.03.2017 13:23 IT . Предыдущая версия .
Re[2]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.03.17 13:43
Оценка:
Здравствуйте, IT, Вы писали:

IT>ЗЫ. Посмотри установленные нугет пакеты. Компилятор можно поставить и таким способом, что, кстати, было бы полезно для N.


Компилятор может и можно, нот у меня и интелисенс работает, т.е. новая версия шарповского плагина.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: vorona  
Дата: 17.03.17 12:56
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Что-то у меня пашет фичи из C# 7 в 2015-й студии. При этом я вроде ничего не ставил. Например, вот сейчас скомпилилось вот такое:


New .NET Native compiler distributed as a NuGet package

.NET Native compiler is now distributed as a NuGet package bundled with the Microsoft.NETCore.UniversalWindowsPlatform package. This will allow future updates to the compiler without requiring updates to Visual Studio.

Re[2]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.03.17 14:48
Оценка:
Здравствуйте, vorona, Вы писали:

VD>>Что-то у меня пашет фичи из C# 7 в 2015-й студии. При этом я вроде ничего не ставил. Например, вот сейчас скомпилилось вот такое:


V>New .NET Native compiler distributed as a NuGet package


Еще раз повторю, что у меня и интелисенс работает. Просто пакет с компилятором тут не помог бы.

У меня подозрения на плагин выделенный в списке на картинке ниже. Просьба к тем кто не устанавливал 2017-ю студию проверить это предположение.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.03.17 06:41
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Еще раз повторю, что у меня и интелисенс работает. Просто пакет с компилятором тут не помог бы.


Там и пакет с анализаторами для Розлина тоже есть.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.03.17 09:22
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Там и пакет с анализаторами для Розлина тоже есть.


Причем тут анализатор? Это должен быть vsix.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 21.03.17 08:05
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>У меня подозрения на плагин выделенный в списке на картинке ниже. Просьба к тем кто не устанавливал 2017-ю студию проверить это предположение.

VD>Image: blob

Проверил. Установка этого плагина на 2015 у меня привела к тому, что любой солюшин с C#-проектами стал открываться с ошибками загрузки CSharpPackage. Ну соответственно отвалилась и возможность что-либо делать с такими проектами. Удаление плагина и даже repair студии -- проблему не решили
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[3]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 21.03.17 11:45
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>У меня подозрения на плагин выделенный в списке на картинке ниже. Просьба к тем кто не устанавливал 2017-ю студию проверить это предположение.

VD>Image: blob

В общем, опытным путём выяснил, что этот пакет не уживается с решарпером. Но фичи C# 7 действительно добавляет.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.03.17 14:33
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Проверил. Установка этого плагина на 2015 у меня привела к тому, что любой солюшин с C#-проектами стал открываться с ошибками загрузки CSharpPackage. Ну соответственно отвалилась и возможность что-либо делать с такими проектами. Удаление плагина и даже repair студии -- проблему не решили


Хм. У меня все работало как часы.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.03.17 14:34
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Проверил. Установка этого плагина на 2015 у меня привела к тому, что любой солюшин с C#-проектами стал открываться с ошибками загрузки CSharpPackage. Ну соответственно отвалилась и возможность что-либо делать с такими проектами. Удаление плагина и даже repair студии -- проблему не решили


Вот у товарища
Автор: crackoff
Дата: 21.03.17
заработало, вроде.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Что-то я не понимаю. C# 7 доступен в VS 2015?
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.03.17 14:36
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>В общем, опытным путём выяснил, что этот пакет не уживается с решарпером. Но фичи C# 7 действительно добавляет.


Как я понимаю РеШарпер и сам обеспечивает интеллисенс для C# 7. В случае его наличия можно просто взять вот этот
Автор: KRT
Дата: 09.03.17
нюгет-пакет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.