В моем CodeFixProvider я добавляю новый параметр в конструктор, но форматирование не работает. Если у человека каждый параметр находится в отдельной строке, новый параметр добавляется, но в начале строки с запятой в новой строке. Вместо этого:
class Foo(
string something,
Context context
);
В итоге я создаю это:
class Foo(
string something
, Context context
);
Что мне нужно изменить в приведенном ниже коде, чтобы он работал правильно?
var newParameter = SyntaxFactory
.Parameter(SyntaxFactory.Identifier(parameterName))
.WithType(typeSyntax);
var count = parameterList.Parameters.Count;
if (count > 0) {
var previous = parameterList.Parameters[count - 1];
newParameter = newParameter.WithTriviaFrom(previous);
}
var newParameterList = parameterList.AddParameters(newParameter);
SyntaxNode? newItem;
if (data.Item is ConstructorDeclarationSyntax constructor)
newItem = constructor.WithParameterList(newParameterList);
else if (data.Item is ClassDeclarationSyntax @class)
newItem = @class.WithParameterList(newParameterList);
else
return data.Document;
editor.ReplaceNode(data.Item, newItem);
Подробнее здесь: https://stackoverflow.com/questions/788 ... wrong-spot
Рослин ПараметрЛистСинтакс ставит запятую не в том месте ⇐ C#
Место общения программистов C#
-
Anonymous
1722880007
Anonymous
В моем CodeFixProvider я добавляю новый параметр в конструктор, но форматирование не работает. Если у человека каждый параметр находится в отдельной строке, новый параметр добавляется, но в начале строки с запятой в новой строке. Вместо этого:
class Foo(
string something,
Context context
);
В итоге я создаю это:
class Foo(
string something
, Context context
);
Что мне нужно изменить в приведенном ниже коде, чтобы он работал правильно?
var newParameter = SyntaxFactory
.Parameter(SyntaxFactory.Identifier(parameterName))
.WithType(typeSyntax);
var count = parameterList.Parameters.Count;
if (count > 0) {
var previous = parameterList.Parameters[count - 1];
newParameter = newParameter.WithTriviaFrom(previous);
}
var newParameterList = parameterList.AddParameters(newParameter);
SyntaxNode? newItem;
if (data.Item is ConstructorDeclarationSyntax constructor)
newItem = constructor.WithParameterList(newParameterList);
else if (data.Item is ClassDeclarationSyntax @class)
newItem = @class.WithParameterList(newParameterList);
else
return data.Document;
editor.ReplaceNode(data.Item, newItem);
Подробнее здесь: [url]https://stackoverflow.com/questions/78835787/roslyn-parameterlistsyntax-puts-comma-in-wrong-spot[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия