Здравствуйте, Jack128, Вы писали:
J>Собственно вот.
Что-то у меня в этой студии с Решарпером проблемы. Работает, ни разу не падал, но есть какая-то заторможенность при наборе. Например, пишу новый метод, открываю фигурную скобку, жму Enter и вместо
void Method()
{
|
}
получаю
void Method() { }
|
Курсор перелетел на следующую строку, а закрывающаяся скобка осталась на предыдущей. Если себя контролировать и тыкать в клавиши нарочито медленно, то такой фигни не происходит, а если печатать быстро на автомате, то происходит минимум в половине случаев.
Попробовал R# 9.1.3, не помогло. Точно такая же фигня была и в RC-версии студии. Когда началась, не помню. То ли после перехода на RC с более ранней версии, то ли после перехода R# с 8 на 9.
Здравствуйте, alexzz, Вы писали:
A>Что-то у меня в этой студии с Решарпером проблемы. Работает, ни разу не падал, но есть какая-то заторможенность при наборе. Например, пишу новый метод, открываю фигурную скобку, жму Enter и вместо A>Курсор перелетел на следующую строку, а закрывающаяся скобка осталась на предыдущей.
Это и в ванильной Студии (без Решарпера), даже у них на презентациях было видно:
Здравствуйте, AK107, Вы писали:
AK>это касается не только консоли, то же самое с выводом в файл/etc, т.е. проблема в сборке исполняемого файла (ресурсов).
Здравствуйте, Sinix, Вы писали:
S>Критичен только для любителей ходить по граблям использовать что-то кроме юникода. Впрочем, лечится элементарно.
зачеркнутое — это про саму студию? потому что именно она создавала по известному только ей алгоритму часть файлов проекта с дефолтной кодировкой винды, я для этого ничего специально не делал.
про лечится элементано — нихрена не элементарно! еще вчера пришлось допиливать похожее решение, т.к. оно читает в UTF-8 если есть BOM, в противном случае в ANSI — в итоге это решение херит те самые файлы. Там нужно определение кодировки — и если кодировка не опредеоилась, то ставить Encoding.Default.
Здравствуйте, AK107, Вы писали:
AK>зачеркнутое — это про саму студию? потому что именно она создавала по известному только ей алгоритму часть файлов проекта с дефолтной кодировкой винды, я для этого ничего специально не делал.
Этот волюнтаризм вроде бы ещё в 2010й студии поправили, если правильно помню. По умолчанию там должен быть utf8.
AK>про лечится элементано — нихрена не элементарно!
Ага, тут погорячился. Я в своё время не мучался и просто запустил что-то типа этого.
Давно было, точное имя не вспомню.
А собственно сабж в применении к StringBuilder.AppendFormat: как показала практика довольно часто используется в коде и получается так, что string interpolation не применим к StringBuilder'у, что приводит к соседству разных подходов из старой и новой "школы". Я конечно понимаю, что можно сделать stringBuilder.Append($"..."), но это как-то масло-маслянное получается, учитывая что string.Format реализовывается через StringBuilder и соотвественно string interpolation добавит оверхед там где мы пытаемся его избежать используя StringBuilder.
Ну и отседа вопрос философский: нафига они замутили эту полумеру (может стоило продумать унификацию?) и как с этим жить?
AK>Ну и отседа вопрос философский: нафига они замутили эту полумеру (может стоило продумать унификацию?) и как с этим жить?
А в чём проблема-то? Добавляем к String builder extension-метод с параметром — FormattableString, дальше несложно.
Конкретно string interpolation замутили в процессе набора фич для c# interactive, но к релизу тот недопилен (как и многое другое). Чтобы всё успеть, релиз пришлось бы отложить на полгода-год. Поэтому как я понимаю, решили выпустить то, что есть, остальное — к следующему релизу.
Здравствуйте, alexzz, Вы писали:
A>Что-то у меня в этой студии с Решарпером проблемы. Работает, ни разу не падал, но есть какая-то заторможенность при наборе. Например, пишу новый метод, открываю фигурную скобку, жму Enter и вместо A>
void Method()
A>{
A> |
A>}
A>получаю A>
void Method() { }
A>|
A>Курсор перелетел на следующую строку, а закрывающаяся скобка осталась на предыдущей. Если себя контролировать и тыкать в клавиши нарочито медленно, то такой фигни не происходит, а если печатать быстро на автомате, то происходит минимум в половине случаев.
Оказалось, это не лаги при вводе текста, это в Студии 2015 на комбинации Shift+Enter висела функция какого-то идиотского автозавершения строки (Edit.SmartBreakLine). Назначил комбинации Shift+Enter обычный перевод строки (Edit.BreakLine) и стало хорошо.
Здравствуйте, AK107, Вы писали:
AK>зачеркнутое — это про саму студию? потому что именно она создавала по известному только ей алгоритму часть файлов проекта с дефолтной кодировкой винды, я для этого ничего специально не делал.
AK>про лечится элементано — нихрена не элементарно! еще вчера пришлось допиливать похожее решение, т.к. оно читает в UTF-8 если есть BOM, в противном случае в ANSI — в итоге это решение херит те самые файлы. Там нужно определение кодировки — и если кодировка не опредеоилась, то ставить Encoding.Default.
Не совсем так. VS пытается определить кодировку автоматом, и умеет подхватывать исходники в UTF-8 без BOM, хотя для этого нужен костыль типа комментария с не латинскими unicode символами в начале файла. Причем это очень старая фишка и походу самый простой способ работать с кросплатформенными исходниками включающими что то кроме латиницы ANSI.
скажу коротко: словил проблему с этим сразу. причем вылезает в самых дурацких местах вроде логирования. а конкретнее у NLog есть метод GetCurrentClassLogger который через StackFrame в цикле определяет по некоемому алгоритму "текущий" класс для имени логгера, так много интересного и неожиданного определяется вроде такого названия как "lamba_method", а также часто вообще по-разному если лог определяется в базовом классе — там так вообще то имя производного, то базового
короче вырубил RyuJit и все стало в норме.
з.ы. и они еще говорят, да расслабься бро, баги в jit были всегда, у тебя точно не воспроизведется