Настройка NppAutoIndent или есть хорошая настраиваемая альтернатива?

Недавно я начал использовать плагин NppAutoIndent для Notepad++ и был довольно доволен режимом Smart Indent, но отсутствие настраиваемых параметров меня раздражает, поскольку в режиме Smart Indent есть несколько вариантов поведения, которые я хотел бы настроить. изменить. Я думал изменить исходный код плагина и перекомпилировать его, чтобы попытаться добиться нужного поведения, но у меня есть Visual Studio 2010 и проект для плагина кажется проектом VS 2003, и, поскольку я новичок в использовании Visual Studio для проектов C/C++, я не Я даже не знаю, с чего начать, чтобы разобраться с некоторыми предупреждениями, выдаваемыми при конвертации проекта в VS 2010.

Вкратце: есть ли более настраиваемая альтернатива плагину NppAutoIndent или есть лучший способ обновить исходный проект для VS 2010?

ОБНОВИТЬ:

Вот большинство предупреждений. Многие из них кажутся неважными, но я не уверен, на что стоит обратить внимание.

  • Из-за изменения переключателей обработки исключений для компилятора C/C++, /EHsc был автоматически преобразован в /EHa в этом проекте.
  • Выполнено преобразование в новый файл проекта «C:[...]\NppAutoIndent\project\NppAutoIndent.vcxproj».
  • Из-за требования, чтобы проекты Visual C++ создавали встроенный (по умолчанию) манифест Windows SxS, файлы манифеста в проекте теперь автоматически создаются с помощью инструмента манифеста. Возможно, вам придется изменить свою сборку, чтобы она работала правильно. Например, рекомендуется преобразовать информацию о зависимостях, содержащуюся в любых файлах манифеста, в "#pragma comment(linker,"")" в файле заголовка, включенном в исходный код. Если ваш проект уже встраивает манифест в раздел ресурсов RT_MANIFEST через файл ресурсов (.rc), может потребоваться закомментировать эту строку, прежде чем проект будет построен правильно.
  • Из-за изменения соответствия в компиляторе C++ может потребоваться изменение кода, прежде чем ваш проект будет построен без ошибок. Предыдущие версии компилятора C++ позволяли указывать указатели функций-членов по имени функции-члена (например, MemberFunctionName). Стандарт C++ требует полного имени с использованием оператора адреса (например, &ClassName::MemberFunctionName). Если ваш проект содержит формы или элементы управления, используемые в конструкторе Windows Forms, вам может потребоваться изменить код в InitializeComponent, так как сгенерированный конструктором код использовал несовместимый синтаксис при построении делегата (используемый в обработчиках событий).
  • Это приложение было обновлено и теперь включает параметры, связанные с функцией контроля учетных записей (UAC) в Windows Vista. По умолчанию при запуске в Windows Vista с включенным UAC это приложение помечается для запуска с теми же привилегиями, что и процесс, который его запустил. Эта маркировка также запрещает запуск приложения с виртуализацией. Вы можете изменить настройки, связанные с UAC, на страницах свойств проекта.
  • Атрибут Detect64BitPortabilityProblems в VCCLCompilerTool не поддерживается в этой версии и был удален во время преобразования.
  • VCWebServiceProxyGeneratorTool больше не поддерживается. Инструмент был удален из настроек вашего проекта.
  • Переключатель /Og компилятора C/C++ объявлен устаревшим и удален из настроек вашего проекта. Вместо этого рекомендуется использовать /O1 или /O2.
  • VCConvertEngine не удалось преобразовать атрибут GlobalOptimizations = TRUE в инструменте VCCLCompilerTool.
  • Атрибут Detect64BitPortabilityProblems в VCCLCompilerTool не поддерживается в этой версии и был удален во время преобразования.
  • Атрибут OptimizeForWindows98 из VCLinkerTool не поддерживается в этой версии и был удален во время преобразования.
  • VCConvertEngine не удалось преобразовать атрибут GlobalOptimizations = TRUE в инструменте VCCLCompilerTool.
  • Атрибут Detect64BitPortabilityProblems в VCCLCompilerTool не поддерживается в этой версии и был удален во время преобразования.
  • Атрибут OptimizeForWindows98 из VCLinkerTool не поддерживается в этой версии и был удален во время преобразования.
  • Атрибут Detect64BitPortabilityProblems в VCCLCompilerTool не поддерживается в этой версии и был удален во время преобразования.
  • MSB8012: $(TargetName) ("NppAutoIndent") не соответствует значению свойства OutputFile компоновщика "..\build\NppAutoIndentA_D.dll" ("NppAutoIndentA_D") в конфигурации проекта "Debug|Win32". Это может привести к неправильной сборке вашего проекта. Чтобы исправить это, убедитесь, что значение свойства $(TargetName) соответствует значению, указанному в %(Link.OutputFile).
  • MSB8012: $(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Debug\NppAutoIndent.dll') не соответствует значению свойства OutputFile компоновщика '..\build\NppAutoIndentA_D.dll' ( 'C:[...]\NppAutoIndent\build\NppAutoIndentA_D.dll') в конфигурации проекта 'Debug|Win32'. Это может привести к неправильной сборке вашего проекта. Чтобы исправить это, убедитесь, что значение свойства $(TargetPath) соответствует значению, указанному в %(Link.OutputFile).
  • MSB8012: $(TargetName) ("NppAutoIndent") не соответствует значению свойства OutputFile компоновщика "..\build\NppAutoIndentA.dll" ("NppAutoIndentA") в конфигурации проекта "Release|Win32". Это может привести к неправильной сборке вашего проекта. Чтобы исправить это, убедитесь, что значение свойства $(TargetName) соответствует значению, указанному в %(Link.OutputFile).
  • MSB8012: $(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Release\NppAutoIndent.dll') не соответствует значению свойства OutputFile компоновщика '..\build\NppAutoIndentA.dll' ( «C:[...]\NppAutoIndent\build\NppAutoIndentA.dll») в конфигурации проекта «Release|Win32». Это может привести к неправильной сборке вашего проекта. Чтобы исправить это, убедитесь, что значение свойства $(TargetPath) соответствует значению, указанному в %(Link.OutputFile).
  • MSB8012: $(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Release Unicode\NppAutoIndent.dll') не соответствует значению свойства OutputFile компоновщика '..\build\NppAutoIndent.dll' ('C:[...]\NppAutoIndent\build\NppAutoIndent.dll') в конфигурации проекта "Выпуск Unicode|Win32". Это может привести к неправильной сборке вашего проекта. Чтобы исправить это, убедитесь, что значение свойства $(TargetPath) соответствует значению, указанному в %(Link.OutputFile).
  • MSB8012: $(TargetName) ("NppAutoIndent") не соответствует значению свойства OutputFile компоновщика "..\build\NppAutoIndent_D.dll" ("NppAutoIndent_D") в конфигурации проекта "Отладка Unicode | Win32". Это может привести к неправильной сборке вашего проекта. Чтобы исправить это, убедитесь, что значение свойства $(TargetName) соответствует значению, указанному в %(Link.OutputFile).
  • MSB8012: $(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Debug Unicode\NppAutoIndent.dll') не соответствует значению свойства OutputFile компоновщика '..\build\NppAutoIndent_D.dll' ('C:[...]\NppAutoIndent\build\NppAutoIndent_D.dll') в конфигурации проекта "Отладка Unicode|Win32". Это может привести к неправильной сборке вашего проекта. Чтобы исправить это, убедитесь, что значение свойства $(TargetPath) соответствует значению, указанному в %(Link.OutputFile).

person JAB    schedule 28.04.2011    source источник


Ответы (1)


Откройте проект VS 2003 в VS2010; диалоговое окно проведет вас через преобразование. Вам просто нужно прочитать инструкцию и нажать соответствующую кнопку.

Что касается отступов, перейдите в Инструменты ---> Параметры, выберите Язык (C++) и перейдите к форматированию. Вы можете увидеть множество вариантов там, изменить его в соответствии с вашими потребностями.

Для этого вам вообще не нужен Notepad++. Кстати, я активный пользователь Notepad++, и это мой любимый редактор.

Надеюсь это поможет.

person Sujay Ghosh    schedule 04.05.2011
comment
Я многое знал о процессе обращения; проблема в том, что проект NppAutoIndent, кажется, делает много ссылок на вещи, которых нет в VS 2010, и я недостаточно знаю, чтобы найти лучший способ их обновить или даже если они нуждаются в обновлении. (Многие из них кажутся переменными среды и т.п., я полагаю.) И изменение параметров отступа в VS 2010 здесь не проблема, это несколько аспектов NppAutoIndent, которые я хочу настроить. ... Я снова начну преобразование и вставлю конкретные предупреждения в свой ответ. - person JAB; 04.05.2011
comment
Большинство предупреждений касаются настроек. Итак, давайте попробуем таким образом. Если вы знаете тип проекта NppAutoIndent (консольное приложение/DLL/библиотека), то сначала создайте пустой проект (например, пустое консольное приложение/DLL/библиотека). Скопируйте все исходные файлы NPPAutoIndent в недавно созданный каталог проекта. Попробуйте добавить каждый файл/соответствующие заголовки в проект. Допустим, вы добавили abc.cpp/abc.h, затем скомпилируйте проект, он будет жаловаться, что xyz не может быть найден, затем добавьте xyz и так далее и тому подобное. Таким образом, вам не нужно беспокоиться о том, какие настройки устаревают. - person Sujay Ghosh; 04.05.2011