5

カスタム makefile を含む C プロジェクトに Eclipse CDT を使用しています。質問739230への回答で提案されている非アクティブ コードの強調表示を使用したいと考えています。アクティブ/定義済みシンボルの自動検出が、makefile で機能しません。代わりに、ビルド ターゲットごとに、アクティブなシンボルをリストするテキスト ファイルを作成しました。

だから私の質問は:

  1. GUI を介さずにこれらの設定をプロジェクトにロードするにはどうすればよいですか (フォルダー プロパティ -> パスとシンボル -> シンボル)。
  2. また、シンボルを追加する構成/ビルド ターゲットを選択するにはどうすればよいですか?

.cproject ファイルを直接編集し、次のような行を追加すると機能します。

<listOptionValue builtIn="false" value="HIRES_OUTPUT"/>

ただし、GUI を使用して各ビルド ターゲットの最初のキーを作成する場合に限ります。1 回の操作でビルド ターゲットを作成し、シンボルをインポートしたいと考えています。

Eclipse プラグインをゼロから作成するのは、このタスクにとってやり過ぎのように思えます。

これを行うためのよりスマートな方法についてのアイデアはありますか?

4

2 に答える 2

3

インポート/エクスポート ウィザードは、シンボル定義を処理できます。File->Import を使用し、C/C++ Project Settings を選択します。

インポート ウィザードで必要な 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'))

スクリプトへの入力は、カンマで区切られたアクティブ シンボルをすべて最初の行に含むテキスト ファイルです。

于 2009-09-08T15:30:00.050 に答える