【问题标题】:Tweaking NppAutoIndent, or is there a good customizable alternative?调整 NppAutoIndent,还是有一个很好的可定制替代方案?
【发布时间】:2011-04-28 19:39:36
【问题描述】:

我最近开始使用 Notepad++ 的 NppAutoIndent 插件,并且对智能缩进模式相当满意,但我发现它缺乏可自定义的首选项很烦人,因为我喜欢智能缩进模式下的一些行为调整/修改。我想过修改插件的源代码并重新编译它以尝试获得我想要的行为,但我有 Visual Studio 2010 和 the project for the plugin 似乎是一个 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,"")”。如果您的项目已经通过资源 (.rc) 文件在 RT_MANIFEST 资源部分中嵌入了清单,则可能需要先注释掉该行,然后才能正确构建项目。
  • 由于 C++ 编译器中的一致性更改,可能需要更改代码才能构建项目而不会出现错误。以前版本的 C++ 编译器允许通过成员函数名称(例如 MemberFunctionName)指定成员函数指针。 C++ 标准要求使用地址运算符的完全限定名称(例如 &ClassName::MemberFunctionName)。如果您的项目包含在 Windows 窗体设计器中使用的窗体或控件,则您可能必须更改 InitializeComponent 中的代码,因为设计器生成的代码在委托构造中使用了不一致的语法(用于事件处理程序)。
  • 此应用程序已更新为包括与 Windows Vista 的用户帐户控制 (UAC) 功能相关的设置。默认情况下,当在启用了 UAC 的 Windows Vista 上运行时,此应用程序被标记为使用与启动它的进程相同的权限运行。此标记还禁止应用程序使用虚拟化运行。您可以从项目的属性页更改 UAC 相关设置。
  • 此版本不支持“VCCLCompilerTool”的属性“Detect64BitPortabilityProblems”,并且在转换过程中已将其删除。
  • VCWebServiceProxyGeneratorTool 不再受支持。该工具已从您的项目设置中删除。
  • C/C++ 编译器开关 /Og 已被弃用,并已从您的项目设置中删除。建议您改用 /O1 或 /O2。
  • VCConvertEngine 无法在工具 VCCLCompilerTool 下转换属性 GlobalOptimizations = TRUE。
  • 此版本不支持“VCCLCompilerTool”的属性“Detect64BitPortabilityProblems”,并且在转换过程中已将其删除。
  • 此版本不支持“VCLinkerTool”的属性“OptimizeForWindows98”,并在转换过程中被删除。
  • VCConvertEngine 无法在工具 VCCLCompilerTool 下转换属性 GlobalOptimizations = TRUE。
  • 此版本不支持“VCCLCompilerTool”的属性“Detect64BitPortabilityProblems”,并且在转换过程中已将其删除。
  • 此版本不支持“VCLinkerTool”的属性“OptimizeForWindows98”,并在转换过程中被删除。
  • 此版本不支持“VCCLCompilerTool”的属性“Detect64BitPortabilityProblems”,并且在转换过程中已将其删除。
  • MSB8012:$(TargetName) ('NppAutoIndent') 与项目配置 'Debug|Win32' 中链接器的 OutputFile 属性值 '..\build\NppAutoIndentA_D.dll' ('NppAutoIndentA_D') 不匹配。这可能会导致您的项目构建不正确。要更正此问题,请确保 $(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') 与项目配置 'Release|Win32' 中链接器的 OutputFile 属性值 '..\build\NppAutoIndentA.dll' ('NppAutoIndentA') 不匹配。这可能会导致您的项目构建不正确。要更正此问题,请确保 $(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')在项目配置'Release Unicode|Win32'中。这可能会导致您的项目构建不正确。要更正此问题,请确保 $(TargetPath) 属性值与 %(Link.OutputFile) 中指定的值匹配。
  • MSB8012:$(TargetName) ('NppAutoIndent') 与项目配置 'Debug Unicode|Win32' 中的链接器的 OutputFile 属性值 '..\build\NppAutoIndent_D.dll' ('NppAutoIndent_D') 不匹配。这可能会导致您的项目构建不正确。要更正此问题,请确保 $(TargetName) 属性值与 %(Link.OutputFile) 中指定的值匹配。
  • MSB8012:$(TargetPath) ('C:[...]\NppAutoIndent\project..\build\Debug Unicode\NppAutoIndent.dll') 与链接器的 OutputFile 属性值 '..\build\NppAutoIndent_D 不匹配.dll' ('C:[...]\NppAutoIndent\build\NppAutoIndent_D.dll') 在项目配置'Debug Unicode|Win32'中。这可能会导致您的项目构建不正确。要更正此问题,请确保 $(TargetPath) 属性值与 %(Link.OutputFile) 中指定的值匹配。

【问题讨论】:

    标签: visual-c++ plugins notepad++ auto-indent


    【解决方案1】:

    在VS2010中打开VS 2003项目;一个对话框将引导您完成转换。您只需阅读说明并单击相应的按钮。

    关于缩进,转到 Tools ---> Options ,选择 Language (C++) 并转到格式化。您可以在那里看到一堆选项,根据您的需要进行更改。

    你根本不需要 Notepad++。顺便说一句,我是 Notepad++ 的狂热用户,也是我最喜欢的编辑器。

    希望这会有所帮助。

    【讨论】:

    • 我对转换过程了解很多;问题是 NppAutoIndent 项目似乎引用了很多 VS 2010 中不存在的东西,我不知道如何找到更新这些内容的最佳方法,或者即使有任何需要更新。 (其中很多似乎是环境变量等,我相信。)在 VS 2010 中更改缩进选项不是这里的问题,我想调整 NppAutoIndent 的一些方面。 ...我将再次开始转换并将特定警告粘贴到我的答案中。
    • 大部分警告都与设置有关。所以让我们试试这种方式。如果您知道 NppAutoIndent 是什么类型的项目(控制台应用程序/DLL/库),那么首先创建一个空项目(例如,空的控制台应用程序/DLL/Lib)。将所有 NPPAutoIndent 源文件复制到最近创建的项目目录中。尝试将每个文件/匹配的标题添加到项目中。假设你添加了abc.cpp / abc.h,然后编译项目,它会抱怨找不到xyz,然后添加xyz,依此类推。这样,您就不必担心哪些设置会折旧。
    猜你喜欢
    • 2011-01-06
    • 2011-01-29
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 2018-01-21
    相关资源
    最近更新 更多