Как я могу изменить предложения, которые я получаю от автозаполнения Resharper++?

Я купил Resharper два дня назад, но теперь у меня с ним 2 большие проблемы.

  1. Когда я набираю main, он вручную превращает его в

    int main(int argc, char* argv[])
    

    Мне это очень нравится, но мне нужно изменить этот код на

    int32_t main(int32_t argc,char* argv[])
    

    Кто-нибудь знает, как я могу изменить код, предложенный автозаполнением?

  2. Вторая проблема заключается в том, что когда я набираю endl, сначала предлагается другой вариант, хотя это худшее совпадение (например, _END_C_LIB_DECL в данном случае):

    неверное предложение

    вместо того, чтобы показывать endl в качестве первого предложения. То же самое с std::array. Я не хочу всегда вводить std::endl, как мне настроить Resharper так, чтобы первое предложение было наиболее подходящим?


person Mergim Cortez    schedule 05.03.2017    source источник
comment
main должен вернуть int. Реализации также требуются только для поддержки () и (int, char**) в качестве списков параметров.   -  person chris    schedule 05.03.2017
comment
int32_t - это typedef для int   -  person Mergim Cortez    schedule 05.03.2017
comment
Вы не можете полагаться на это.   -  person chris    schedule 05.03.2017
comment
как же так? int32_t всегда сможет удерживать 0   -  person Mergim Cortez    schedule 05.03.2017
comment
Дело не в его способности удерживать 0. Язык требует, чтобы main возвращал int. Если вы не вернете int, ваша программа не будет правильно сформирована на C++. Язык также не гарантирует, что int32_t будет таким же, как int.   -  person chris    schedule 05.03.2017
comment
int - это что угодно ›= 16, которое в любом случае может содержать 0. int32_t может делать то же самое, только потому, что стандарт их не определяет, это не значит, что это неправильно)   -  person Mergim Cortez    schedule 05.03.2017
comment
Стандарт определяет, что правильно. Язык определяется стандартом.   -  person chris    schedule 05.03.2017
comment
int не определен как 32-битный во всех системах. В основном он определяется как быстрый и удобный размер, обычно от 16 до 64 бит.   -  person Marius    schedule 09.03.2017
comment
Улучшенный заголовок, исправлен английский язык, удалены благодарности и извинения за плохой английский язык, улучшено форматирование кода, добавлен нумерованный список   -  person Fabio says Reinstate Monica    schedule 09.03.2017


Ответы (1)


Содержимое шаблона main можно изменить с помощью окна инструментов «ReSharper | Инструменты | Обозреватель шаблонов».

Что касается второй проблемы, позвольте мне объяснить ее причину. ReSharper имеет два источника завершения. Результаты завершения, видимые в текущей точке, отображаются мгновенно, а результаты, которые могут потребовать уточнения пространства имен или вставки директивы include, добавляются позже (поскольку их сбор может быть медленным). При добавлении этих дополнительных элементов завершения ReSharper не может изменить выбранный элемент завершения, поэтому endl отображается вторым элементом.

person Igor Akhmetov    schedule 07.03.2017
comment
спасибо за вашу помощь, думаю, мне придется с этим жить, но теперь я знаю, как изменить main, так что это круто. - person Mergim Cortez; 08.03.2017
comment
Это также проблема с VB.NET, и это большая боль. При вводе вызова функции, если переменная параметра, которую я отправляю, называется так же, как и переменная параметра приема, я сначала получаю recParmVar := , а затем - предложение для имени переменной, которое я пытаюсь отправить. Теперь для каждого параметра в вызове функции мне нужно либо ввести полное имя переменной, которую я отправляю, либо ввести несколько символов, нажать стрелку вниз, а затем ввести. Я бы предпочел вообще отключить предложение параметра функции. - person Brad Irby; 26.06.2019
comment
Для будущего меня и других я нашел способ обойти это. Введите частичное имя исходной переменной и нажмите пробел. Автозаполнение будет использовать имя переменной, а не параметр var :=. - person Brad Irby; 26.06.2019