我正在将Eclipse CDT用于具有自定义makefile的C项目,并且我想使用问题739230的答案中建议的非活动代码突出显示。自动发现活动/已定义符号不适用于我的makefile。相反,我为列出活动符号的每个构建目标创建了一个文本文件。
所以我的问题是:
直接编辑.cproject文件并添加这样的行:
<listOptionValue builtIn="false" value="HIRES_OUTPUT"/>
但是,只有我通过GUI为每个构建目标创建第一个键。我更愿意创建构建目标并在一个操作中导入符号。
从头开始编写Eclipse插件对于此任务来说似乎有些过分。
有什么想法可以更聪明地做到这一点吗?
答案 0 :(得分:3)
导入/导出向导可以处理符号定义。使用文件 - >导入,然后选择C / C ++项目设置。
导入向导所需的XML格式可以使用一个小的丢弃脚本从活动符号的文本文件中创建。
我使用了以下python脚本:
#
# Tool to import a list of defined symbols into Eclipse IDE for code highlighting.
#
# Takes a _cdef.txt file (generated during library build) and converts to an XML file
# suitable for import into Eclipse
# Use stdin and stdout for input and output.
import sys
import string
header = [
'<?xml version="1.0" encoding="UTF-8"?>',
'<cdtprojectproperties>'
,
'<section name="org.eclipse.cdt.internal.ui.wizards.settingswizards.Macros">',
'<language name="holder for library settings">',
'',
'</language>',
'<language name="GNU C++">',
'',
'</language>',
'<language name="GNU C">',
''
]
sys.stdout.write (string.join(header, '\n'))
text=sys.stdin.readlines()
tokens = string.split(string.strip(text[0]),',')
for curtok in tokens:
lines = ['<macro>',
'<name>' + string.strip(curtok) + '</name><value></value>',
'</macro>', '']
sys.stdout.write(string.join(lines, '\n'))
footer = [
'',
'</language>',
'<language name="Assembly">',
'',
'</language>',
'</section>',
'</cdtprojectproperties>',
'']
sys.stdout.write (string.join(footer, '\n'))
脚本的输入是一个带有逗号分隔的活动符号的文本文件,全部在第一行。
答案 1 :(得分:0)
另一种方法是使用项目设置XML并在那里添加所有必需的宏。您可以通过
生成基本XML文件右键单击Project - &gt;转到属性 - &gt; C / C ++一般 - &gt;路径和符号 在符号选项卡中,为GNU C或GNU C ++添加一些预处理器,并使用&#34;导出设置&#34;将这些设置导出为文件。窗口底部的链接。然后手动编辑新文件的XML文件并使用&#34;导入设置导入&#34;上面选项中的按钮。
将保存的文件用作所有其他项目的模板,并在项目创建时将其导入一次。