当前位置: 首页 > 知识库问答 >
问题:

通过修改Eclipse CDT中的AST停止代码格式化

易自珍
2023-03-14

我是通过在Eclipse CDT中编辑AST来实用地编辑cod,在使用change#perform方法执行重构之后,我发现了要格式化的代码,这里的示例我只是将一个函数调用转换为void

//Old code
Publish(Author_id, Content);

//New code
(void) Publish(
                Author_id,
                Content);

如您所见,该方法已被格式化为3行,如何停止此操作?

进行重构的代码示例

            INodeFactory factory = ast.getASTNodeFactory();     
            IASTNode newNode = rewriter.createLiteralNode("( void )"+selectedNode.getRawSignature());
            rewriter.replace(selectedNode, newNode, null);
            Change change = rewriter.rewriteAST();
            change = change.perform(new NullProgressMonitor());

共有1个答案

姬俊远
2023-03-14

我相信你有两个选择:

>

  • 配置CDT的内置格式化程序,以按您喜欢的方式格式化代码。在这种情况下,根据“新代码”的外观,看起来像是将行包装->函数调用->参数->行包装策略设置为“包装所有元素”选项之一。你可以把它改成你更喜欢的东西。

    实现org.eclipse.cdt.core.codeFormatter扩展点,以提供一个行为不同于默认代码格式化程序的替代格式化程序(例如,它什么也不能做)。

    1. 编写扩展org.eclipse.cdt.core.formatter.codeFormatter的类,并实现format()方法
    2. 标记添加到插件的plugin.xml中,引用您的类

  •  类似资料:
    • 问题内容: 当我使用Eclipse重新格式化代码时,它会变成这样的方法标题: 变成这样的方法标题: 当我来到这里时,我以前从未使用过Eclipse,而是导入了其他人提供的项目设置。我已经看到在我使用Eclipse的小型新项目中没有这样做,因此它必须在我导入的设置中。但是我已经遍历了所有可以找到的面板,以及我可以在工作区中找到的每个隐藏文件,而且我不知道是什么原因造成的。 如何关闭它?我不希望在方法

    • 该怎么修改代码 验证通过

    • 我在Vaadin7做一个项目。因为我需要改变一个页面的主题。 但在Vaadin 7里,我找不到这样的。 我知道会有办法做到的。 以及当我更改主题时如何在UI上应用更改?

    • 1、修改AndroidManifest.xml文件 1.添加权限和服务,参考demo <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission androi

    • 好的,我已经在互联网上搜索了一下,试图弄清楚我必须在PhpStorm中更改哪一点才能让它停止这样做。 现在,当我在一些PHP上运行“重新格式化代码”时,它也决定为我优化导入。虽然通常我会说“哎呀,太好了”——在某些情况下,PhpStom并没有意识到它认为未使用的一些导入实际上已经使用过了。 注释作为代码等等。 请告诉我有人知道如何让PhpStom停止这样做。每当我自动格式化代码时,我都必须撤消对导

    • 我有一些旧代码,我试图在VisualStudio代码中编辑。它混合了HTML和C#EG: 它有点像Razor,但不一样。我已经尝试了许多格式C#、Razor、超文本标记语言等。所有这些都以这样或那样的方式破坏代码。 如果我在Visual Studio(2019)中格式化它,那就太好了。有没有办法在Visual Studio Code中使用Visual Studio的格式化程序? 我知道简单的答案是