2012-10-12 3 views
2

프로그램에 포함 경로를 프로젝트에 추가하는 eclipse-java 플러그인을 개발 중입니다. 제가 사용한 코드의 일부는 다음과 같습니다. Eclipse - CDT가 프로그래밍 방식으로 추가되어 경로가 포함되지 않음

String includePath = null; 
ICProjectDescription projectDescription = CoreModel.getDefault().getProjectDescription(project, true); 
ICConfigurationDescription configDecriptions[] = projectDescription.getConfigurations(); 
for (ICConfigurationDescription configDescription : configDecriptions) { 
ICFolderDescription projectRoot = configDescription.getRootFolderDescription(); 
ICLanguageSetting[] settings = projectRoot.getLanguageSettings(); 
for (ICLanguageSetting setting : settings) { 
    if (!"org.eclipse.cdt.core.gcc".equals(setting.getLanguageId())) { 
    continue; 
    } 
    List<ICLanguageSettingEntry> includes = new ArrayList<ICLanguageSettingEntry>(); 
     includes.addAll(setting.getSettingEntriesList(ICSettingEntry.INCLUDE_PATH)); 
    for (int i = 0; i < tableViewer.getTable().getItemCount(); i++) { 
     includePath = tableViewer.getTable().getItem(i).getText(); 
     includes.add(new CIncludePathEntry(includePath, ICSettingEntry.LOCAL)); 
    } 
    setting.setSettingEntries(ICSettingEntry.INCLUDE_PATH, includes); 
    } 
} 
CoreModel.getDefault().setProjectDescription(project, projectDescription); 

I가 ICLanguageSetting.getSettingEntries (반환 된 값을 출력

)는 상기 경로가 포함 succeessfully 첨가된다. 그러나 속성 -> C/C++ 일반 -> 경로 & 심볼 대화 상자 또는 프로젝트 탐색기 뷰에 반영되지 않습니다.

업데이트() 또는 새로 고침()이 누락 되었습니까?

답변

0

3 개월이 지나면 관련이 있습니다.

내 코드는 본인과 거의 같지만 포함 경로는 속성 -> C/C++ 일반 -> 경로 & 기호 및 작동에 표시됩니다. 그래서 각 라인을 통해 가서 내가 볼 수있는 하나의 큰 차이가 있습니다 :

새로운 CIncludePathEntry 구축을 위해, 나는에 전달하는 첫 번째 인수는 IFolder 아닌 String, 그래서 다른 생성자를 사용하고 있습니다. 나머지 프로그램이 어떻게 구성되어 있는지 잘 모르겠지만 아마도 IProject.getFolder(String)으로 전화하여 대신 그 프로그램을 사용해보십시오.

관련 문제