Parameter name hints - как скрыть, когда параметр один?
От: CodeMonkey  
Дата: 07.03.19 17:25
Оценка:
Просто не вижу никакого смысла показывать название параметра, когда он всего один
Re: Parameter name hints - как скрыть, когда параметр один?
От: qxWork Голландия http://www.jetbrains.com/company/people/Coox_Sergey.html
Дата: 11.03.19 09:44
Оценка:
Здравствуйте, CodeMonkey, Вы писали:

CM>Просто не вижу никакого смысла показывать название параметра, когда он всего один

даже когда значение аргумета false или -1?
Re: Parameter name hints - как скрыть, когда параметр один?
От: Retran Россия  
Дата: 11.03.19 10:03
Оценка: 2 (1)
Привет!

CM>Просто не вижу никакого смысла показывать название параметра, когда он всего один


Просто добавьте в список исключений паттерн "(*)":


Это выключит подсказки для всех методов с одним параметром с любым именем.
Re[2]: Parameter name hints - как скрыть, когда параметр один?
От: CodeMonkey  
Дата: 11.03.19 16:04
Оценка:
Здравствуйте, qxWork, Вы писали:

W>даже когда значение аргумета false или -1?


А почему нет? По названию метода обычно и так понятно.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[2]: Parameter name hints - как скрыть, когда параметр один?
От: CodeMonkey  
Дата: 11.03.19 17:42
Оценка:
Здравствуйте, Retran, Вы писали:

R>Это выключит подсказки для всех методов с одним параметром с любым именем.


Есть одна проблема, это не работает для методов-расширений. И для методов с одним обязательным параметром и некоторым числом опциональных тоже не работает.

Да и вообще, местами не понять логику без бутылки. Например:

Почему у первого метода хинт показывается у второго аргумента, но не у первого, а у второго метода — у первого, но не у второго?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[3]: Parameter name hints - как скрыть, когда параметр один?
От: Retran Россия  
Дата: 12.03.19 12:01
Оценка:
Здравствуйте, CodeMonkey, Вы писали:

CM>Есть одна проблема, это не работает для методов-расширений. И для методов с одним обязательным параметром и некоторым числом опциональных тоже не работает.


Да, потому что у этих методов на самом деле не один параметр.
Вообще, хинты для первого аргумента не показываются если имя параметра очевидно из имени метода. В остальных случаях они обычно оказываются полезными.

CM>Да и вообще, местами не понять логику без бутылки. Например:

CM>Image: Resharper.png
CM>Почему у первого метода хинт показывается у второго аргумента, но не у первого, а у второго метода — у первого, но не у второго?

В первом случае: второй аргумент — это литерал, а остальные — нет, и имена параметров уже содержатся в аргументах (нет смысла показывать "path: LocalPath").
Во втором случае нужно посмотреть на декларацию метода ParsePackageInfo. Предположу, что там два параметра с одинаковым типом (а значит хинты полезны), но хинт для второго аргумента прячется по той же причине что и в первом случае.

Можно выключить "Hide if intention of argument is clear from usage" в настройках, поведение станет прозрачнее. Но хинтов станет больше и многие из них будут бесполезны.
Re[3]: Parameter name hints - как скрыть, когда параметр один?
От: Retran Россия  
Дата: 12.03.19 12:02
Оценка:
Здравствуйте, CodeMonkey, Вы писали:

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


W>>даже когда значение аргумета false или -1?


CM>А почему нет? По названию метода обычно и так понятно.


Можете привести пример?
Re[4]: Parameter name hints - как скрыть, когда параметр один?
От: CodeMonkey  
Дата: 12.03.19 15:42
Оценка:
Здравствуйте, Retran, Вы писали:

R>Можете привести пример?


if (text.EndsWith(":"))
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[4]: Parameter name hints - как скрыть, когда параметр один?
От: CodeMonkey  
Дата: 12.03.19 15:47
Оценка:
Здравствуйте, Retran, Вы писали:

R>Да, потому что у этих методов на самом деле не один параметр.


Формально — да, фактически — нет.

R>Вообще, хинты для первого аргумента не показываются если имя параметра очевидно из имени метода. В остальных случаях они обычно оказываются полезными.


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

R>В первом случае: второй аргумент — это литерал, а остальные — нет, и имена параметров уже содержатся в аргументах (нет смысла показывать "path: LocalPath").

R>Во втором случае нужно посмотреть на декларацию метода ParsePackageInfo. Предположу, что там два параметра с одинаковым типом (а значит хинты полезны), но хинт для второго аргумента прячется по той же причине что и в первом случае.
R>Можно выключить "Hide if intention of argument is clear from usage" в настройках, поведение станет прозрачнее. Но хинтов станет больше и многие из них будут бесполезны.

ParsePackageInfo(string fileName, string basePath)


А "fileName: filePath" очень полезно, что ли?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[5]: Parameter name hints - как скрыть, когда параметр один?
От: Retran Россия  
Дата: 14.03.19 08:52
Оценка:
Здравствуйте, CodeMonkey, Вы писали:

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


R>>Можете привести пример?


CM>
CM>if (text.EndsWith(":"))
CM>


Такие случаи лучше явно разруливать через список исключений. Например, кмк, подойдет "(value)".
Re[5]: Parameter name hints - как скрыть, когда параметр один?
От: Retran Россия  
Дата: 14.03.19 08:59
Оценка:
Здравствуйте, CodeMonkey, Вы писали:

CM>
CM>ParsePackageInfo(string fileName, string basePath)
CM>


CM>А "fileName: filePath" очень полезно, что ли?


В таких случаях действительно может быть некоторый процент ложных срабатываний.
Но, конкретно здесь, мне хинт кажется полезным потому что у fileName и filePath не эквивалентная семантика и непонятно почему значение с более широкой семантикой передается в параметр с более узкой. Особенно, учитывая, что Directory.GetFiles выше по коду отдает именно file names.
Re[6]: Parameter name hints - как скрыть, когда параметр один?
От: CodeMonkey  
Дата: 14.03.19 16:31
Оценка:
Здравствуйте, Retran, Вы писали:

R>Но, конкретно здесь, мне хинт кажется полезным потому что у fileName и filePath не эквивалентная семантика и непонятно почему значение с более широкой семантикой передается в параметр с более узкой. Особенно, учитывая, что Directory.GetFiles выше по коду отдает именно file names.


Про семантику задвинул внушительно, но Directory.GetFiles возвращает всё же пути к файлам, а не имена.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[7]: Parameter name hints - как скрыть, когда параметр один?
От: Retran Россия  
Дата: 20.03.19 13:04
Оценка:
Здравствуйте, CodeMonkey, Вы писали:

CM>Про семантику задвинул внушительно, но Directory.GetFiles возвращает всё же пути к файлам, а не имена.


https://docs.microsoft.com/ru-ru/dotnet/api/system.io.directory.getfiles?view=netframework-4.7.2
Re[8]: Parameter name hints - как скрыть, когда параметр один?
От: CodeMonkey  
Дата: 20.03.19 16:42
Оценка:
Здравствуйте, Retran, Вы писали:

CM>>Про семантику задвинул внушительно, но Directory.GetFiles возвращает всё же пути к файлам, а не имена.


R>https://docs.microsoft.com/ru-ru/dotnet/api/system.io.directory.getfiles?view=netframework-4.7.2


Нет, возвращает именно пути к файлам.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.