C поддръжка в ReSharper

Но сега искам да говоря за нещо извън нашите планове за 8-ke: от няколко месеца част от нашия екип работи върху нещо напълно ново, което нашите потребители искат от години -поддръжка за езика за програмиране C++ в ReSharper.

Тази инициатива е част от нашия план да направим C++ един от езиците, които ще се поддържат напълно в нашите продукти - както в ReSharper, така и в отделна среда за разработка на различни платформи, която обявихме по-рано тази година.

C++ е много мощен език, който не е изчезнал през годините, въпреки появата и нарастването на популярността на неговите „наследни езици“ C# или Java: днес много код се пише на този език и той ще се използва много дълго време. В JetBrains вярваме, че нашият инструментариум може да помогне на C++ разработчиците да се развиват по-бързо и по-ефективно.

Набор от функции

Анализирането на език като C++ не е лесно, особено като се има предвид цялата предварителна обработка и обработка на шаблони, които отнемат особено време в големи проекти. Нашата основна цел е точно правилното боравене с всички възможни нюанси и много усилия отидоха само за „разбиране“ на C ++, независимо от специфичните функции, които се използват в езика. В момента нямаме много видима функционалност, но е свършена много фундаментална работа. Днес тези вътрешни компилации, които се подготвят от нас, включват следната функционалност:

  • Поддръжка заосветяване на синтаксиса
  • Пълен набор от механизми за поддръжка на навигация, включителноGo to Type,Go to Symbol,Go to File Member и разбира се новотоGo to Everything специфично за ReSharper 8.
  • Поддържаконтекстуална навигация, вкл. навигация към декларацията (Отидете на декларация ), наследени символи (Изведени символи ), базови символи (Основни символи ) - с други думи, поддръжка за всички основни функции, които можете да очаквате, когато отворите менюто Навигиране до:
    поддръжка

  • Рефакторинг за въвеждане на нова променлива (Въвеждане на променлива ):
  • Контекстни действия замакро заместване, както единични, така и вложени (т.е. напълно изпълнени):
    поддръжка
  • Разбирането на шаблоните дава на ReSharper способността да изчислява правилно и ви позволява да преминете към конкретни специализации на даден шаблон:

    ReSharper

    За да ви дам представа какво можете да очаквате от текущата C++ поддръжка на ReSharper, ви предлагам да гледате този скрийнкаст:

    Как да опитате всичко това?

    В момента нямаме публични компилации, с които да експериментираме, инастоящият EAP не включва поддръжка за C++. Ще ни отнеме още няколко месеца, за да получим нещо, което си струва да покажем на широката публика. Но ако не искате да чакате, ето какво можете да направите:

    • Отидете на страницата за поддръжка на C++ на нашия сайт.
    • Попълнете формуляра, като опишете C++ разширенията, библиотеките и езиковите версии, които използвате. Извиняваме се за толкова големия „въпросник“, но повярвайте ми – тази информация е много важна за нас, за да разберем върху какво трябва да работим първо.
    • Изпратете ни заявка за абониране за частни компилации на ReSharper с вградена поддръжка на C++. След като имаме частна компилация, която може да функционира с настройките на вашата среда, ще ви изпратим имейл с връзка къмизтегляния.

    Какво следва?

    • Първо, бих искал да подчертая още веднъж, че поддръжката на C++няма да бъде включена в ReSharper 8, тъй като той все още е „суров“ за пълноценно производствено издание.
    • През следващите няколко месеца нашият екип ще работи върху поддръжката на C++, за да представипубличен EAP тази есен. Докато добавяме поддръжка за нови езикови версии, специфични за платформата разширения и поддръжка за нови версии на Visual Studio, ние ще изпращаме частни компилации на тези, които се абонират за тях.
    • В момента сме почти готови да поддържаме C / C ++ 03 за малки и средни проекти, които или изобщо не използват библиотеки на трети страни, или използват малки. Настоящиятплан за развитие за следващите няколко месеца изглежда по следния начин:
    • Поддръжка за малки и средни проекти, които използват по-големи библиотеки като Boost
    • C++11 поддръжка
    • Гаранция за адекватна работа с големи проекти
    • Поддръжка за специфични за Visual Studio разширения, както и поддръжка на MFC/ATL/WTL