- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Atomineer 7.31 来格式化我的 C++ 文件,但我无法为不同的文件类型创建单独的行为。例如,我想用某些信息填充我的 .cpp 文件,例如包括与该文件同名的 .h 文件,并包括我的内存跟踪器,我希望 .h 文件有一个定义守卫和类的基础知识。
我想要的 .h 文件示例:
//! \file ExampleFile.h
//! \brief Declares an ExampleFile
//! Company legal information etc.
#ifndef EXAMPLEFILE_H
#define EXAMPLEFILE_H
class ExampleFile
{
};
#endif // EXAMPLEFILE_H
还有一个我想要的 .cpp 文件的例子:
//! \file ExampleFile.cpp
//! \brief Implements ExampleFile
//! Company legal information etc.
#include <ExampleFile.h>
// Memory tracking. Do not include anything beneath this!
#include <debug_new.h>
我希望在空白文件的顶部插入 3 个正斜杠时(我相信这是默认的 Atomineer 行为)出现上述每个行为(基于正在使用的文件类型)。我已经看过 http://www.atomineerutils.com/rulesguide.php ,以及 Atomineer 附带的 .xml 文件(File.xml、Namespace.xml、DoxygenTemplates.xml、UserVariables.xml 等),但我找不到任何迹象表明我是否可以做我需要的。
File.xml 中有一个小示例,文件顶部的注释中使用了不同的信息(例如,头文件将显示“声明类 xxx”,而 .cpp/.c 文件将显示“实现类 xxx” ");但我无法模仿这种行为。
我知道可以使用 %extension% 变量和 < If/> 命令,但我似乎无法获得我想要的东西。我还尝试过以与 File.xml 类似的方式使用 Namespace.xml 文件(File.xml 声明要使用的 %fileDescription% 变量,这是处理文件是“声明类 xxx”还是“实现类 xxx"),但我无法让 Namespace.xml 显示任何内容。
File.xml 示例:
<File>
<!-- Rules for generating auto-documentation for file header comments. The results of executing this rule are placed in %fileDescription% when adding file comments. -->
<If extension=".c" desc="" />
<If sNameRaw="I #" desc="Declares the %name% interface" />
<If extension=".h,.hpp" continue="y" desc="Declares the " />
<If extension=".cs,.cpp,.java" continue="y" desc="Implements the " />
<If sName="# dialog,# dialogue" desc="%match:noPrefix:LCase% Dialog" />
<If sName="# form,# window" desc="%match:noPrefix:LCase% Windows Form" />
<Set desc="%sname:noPrefix:LCase% class" />
</File>
然后在 DoxygenTemplates.xml 中使用该信息:
<file>
//! \file %projectpathname%
//! \brief %fileDescription%
//!
//----------------------------------------------------------------------------------------------------------------------
// (c) Copyright 2015 by %company%
//----------------------------------------------------------------------------------------------------------------------
%ip%
</file>
我尝试在 %ip%(输入位置:鼠标光标出现的位置)上方插入几项内容,但无济于事。我觉得也许部分问题是我无法让 Namespace.xml 显示任何内容。例如,在 %ip% 上方我放置了 %namespaceDescription% 并且我在 Namespace.xml 中有一个简单的 < Set desc="Hi"/>,但它没有显示。如果能帮我解决这个问题,我将不胜感激!
最佳答案
是的,Atomineer 可以做到这一点! 适当的功能已添加到我将要讨论的更高版本中,但要回答您的问题,您可以将 DoxygenTemplate.xml 更改为:
<file>
%fileDescription%
</file>
然后将所有内容添加到您的 File.xml 中,如下所示:
<File>
<!-- Filename/path -->
<Set desc="//! \file %projectpathname%
//! \brief "
continue="y"
/>
<!-- \brief about the class -->
<!-- Header files -->
<If extension=".h" continue="y" desc="Declares the " />
<!-- Source files -->
<If extension=".cpp" continue="y" desc="Implements the " />
<Set desc="%sname:noPrefix:LCase% class" continue="y"/>
<!-- Company legal -->
<Set desc="
//! Company legal information etc.
" continue ="y" />
<!-- Include guard for header files -->
<If extension=".h" continue="y">
<Set desc="
#ifndef %leafname:UCase%_H
#define %leafname:UCase%_H
class %leafname%
{
};" continue ="y" />
</If>
<!-- Include header.h and memory tracker in source files -->
<If extension=".cpp" desc="
#include <%leafname%.h>
// Memory tracking. Do not include anything beneath this!
#include <debug_new.h>" continue="y" />
<!-- Include guard for header files -->
<If extension=".h">
<Set desc="
#endif // %leafname:UCase%_H" />
</If>
<!-- For non header files, end with nothing -->
<Set desc="" />
</File>
也就是说,proper support was added用于 Atomineer 7.36 中的此类功能。
7.36
- File and File-footer comments can now be targetted to specific file extensions, to allow different headers to be added to (for example)
.cpp and .h files, and adding a file header can optionally add a file footer at the same time. The default templates now contain an example that can be used to add a #ifndef ... #endif 'include once' mechanism to header files using these features.
实现此目标所需的信息在 documentation 中:
Further control of file header/footer comments can be achieved using
the following attributes:_filetypes=".h.hpp": Target a template to specific set of file extensions, so you can use a different header style in .h and .cpp files, for example. The first template that matches the filetype will be used, so this must precede any file template that doesn't specify any specific filetypes.
如果你有 Atomineer 7.36 或更高版本,你可以在你的 DoxygenTemplates.xml 文件中编写以下内容(如果你有 Atomineer 7.36 或更高版本,它看起来好像默认模板带有一个包含保护的示例):
对于头文件:
<file _filetypes=".h">
#ifndef %leafname:UCase%_H
#define %leafname:UCase%_H
class %leafname%
{
};
#endif // %leafname%_H
</file>
对于 cpp 文件:
<file _filetypes=".cpp">
#include <%leafname%.h>
#include <debug_new.h>
</file>
确保它们都出现在任何泛型之上
<file>
</file>
因为 Atomineer 文档指出
The first template that matches the filetype will be used, so this must precede any file template that doesn't specify any specific filetypes.
关于 Namespace.xml 和 %namespaceDescription% 不工作的问题,你把它放在了错误的地方。 File.xml 包含
关于c++ - 使用 Atomineer 时,每个文件类型都有单独的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29111206/
我知道我应该指定 argtypes对于我的 C/C++ 函数,因为我的某些调用会导致堆栈损坏。 myCfunc.argtypes = [ct.c_void_p, ct.POINTER(ct.c
我正在从 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators 学习 Itera
在我的数据库中,我有一个类别表。类别可以有父类别,使其成为递归关系 我还有一个产品表。每个产品都属于一个类别。 例如,我有一棵树,如下所示: Category Sub-Category 1
定义列表要求每个 会有标签? 例子: option1 每个 存在他的如果 空: value1 name2 value2 选项 2 每个 不存在他的如果空: value1 name2 value
我制作了一个脚本,它在开始时检查操作系统版本。 它读取/etc/os-release 文件,并检查操作系统是否为 CentOS 7。 但我不确定我是否可以确保每个 CentOS 7 都有那个文件。 其
我一直在使用 webapi 设置一个 mvc 项目。我可以正常工作,但我不知道为什么我的 GET 调用的 URL 中有附加部分。 示例: /api/User/Zholen?_=137349028082
我创建了具有 ACTIVE BOOL 的基类 class BaseTest{ public: bool active = false; BaseTest(){ // make
.parent { background-color: yellow; display: flex; justify-content: space-evenly; } .parent >
完整的错误是: AttributeError: Neither 'ColumnClause' object nor 'Comparator' object has an attribute 'desc
我的 GUI 中有一些功能可以随着时间的推移更新给定的文本组件。理想情况下,我希望它接受任何具有 getText/setText 方法的内容。使用 JTextField 和 JTextPane 可以轻
我是一名优秀的程序员,十分优秀!