private String getLocalIncludeDerectiveByHeaderFilePath(FSPath path, CsmObject item) { CsmFile incFile = ((CsmOffsetable) item).getContainingFile(); if(incFile.isHeaderFile()) { String incFilePath = incFile.getAbsolutePath().toString(); StringBuilder includeDirective = new StringBuilder("#include "); // NOI18N includeDirective.append("\""); // NOI18N String projectPath = path.getPath(); if (!incFilePath.startsWith(projectPath)) { projectPath = ""; // NOI18N } includeDirective.append(CndPathUtilities.toRelativePath(projectPath, incFilePath)); if (!projectPath.equals("")) // NOI18N { includeDirective.append("\""); // NOI18N return includeDirective.toString(); } } return ""; }
public void setFile(CsmFile file) { if (file != null) { object = UIDs.get(file); if (file.isHeaderFile()) { recursive = false; plain = true; whoIncludes = true; } else { recursive = true; plain = false; whoIncludes = false; } } update(file); }
/** * * @param clazz * @return { declaration file, definition file } definition file could be the same as declaration */ public static CsmFile[] getDeclarationDefinitionFiles(CsmClass clazz) { CsmFile declFile = CsmRefactoringUtils.getCsmFile(clazz); CsmFile defFile = declFile; if (declFile.isHeaderFile()) { Iterator<CsmFunction> extDefs = getAllOutOfClassMethodDefinitions(clazz).iterator(); boolean found = false; while (extDefs.hasNext() && !found) { CsmFunction def = extDefs.next(); defFile = CsmRefactoringUtils.getCsmFile(def); if (!declFile.equals(defFile)) { found = true; } } if (!found) { CsmFile source = findSource(declFile); if (source != null) { defFile = source; } } } return new CsmFile[] { declFile, defFile }; }
@Override public String getIncludeDirective(CsmFile currentFile, CsmObject item) { if (CsmKindUtilities.isOffsetable(item)) { CsmFile file = ((CsmOffsetable) item).getContainingFile(); if (file != null) { if (file.equals(currentFile) || file.isHeaderFile()) { return getIncludeDirectiveByFile(currentFile, item).replace('\\', '/'); // NOI18N; } else if (file.isSourceFile() && CsmKindUtilities.isGlobalVariable(item)) { Collection<CsmOffsetableDeclaration> decls = file.getProject().findDeclarations(((CsmVariable) item).getUniqueName() + " (EXTERN)"); // NOI18N if (!decls.isEmpty()) { return getIncludeDirectiveByFile(currentFile, decls.iterator().next()).replace('\\', '/'); // NOI18N; } } } else { System.err.println("can not find for item " + item); // NOI18N; } } else if (!CsmKindUtilities.isNamespace(item)) { System.err.println("not yet handled object " + item); // NOI18N; } return ""; // NOI18N }
private static CsmFile getTarget(DataObject dobj) { CsmFile f = CsmUtilities.getCsmFile(dobj, false, false); CsmFile target = null; if (f != null) { if (f.isHeaderFile()) { target = findSource(f); } else if (f.isSourceFile()) { target = findHeader(f); } } return target; }
@Override public String getLocalIncludeDerectiveByFilePath(FSPath path, CsmObject item) { if (CsmKindUtilities.isOffsetable(item)) { CsmFile incFile = ((CsmOffsetable) item).getContainingFile(); if (incFile != null) { if (incFile.isHeaderFile()) { return getLocalIncludeDerectiveByHeaderFilePath(path, item).replace('\\', '/'); // NOI18N; } else if (incFile.isSourceFile() && CsmKindUtilities.isGlobalVariable(item)) { Collection<CsmOffsetableDeclaration> decls = incFile.getProject().findDeclarations(((CsmVariable) item).getUniqueName() + " (EXTERN)"); // NOI18N if (!decls.isEmpty()) { return getLocalIncludeDerectiveByHeaderFilePath(path, decls.iterator().next()).replace('\\', '/'); // NOI18N; } } else if (incFile.isSourceFile() && CsmKindUtilities.isFunctionDefinition(item)) { return getLocalIncludeDerectiveByHeaderFilePath(path, ((CsmFunction) item).getDeclaration()).replace('\\', '/'); // NOI18N; } } else { System.err.println("can not find for item " + item); // NOI18N; } } else if (!CsmKindUtilities.isNamespace(item)) { System.err.println("not yet handled object " + item); // NOI18N; } return ""; // NOI18N }
getObjectFile(found, file.getAbsolutePath().toString(), buf); if (file.isHeaderFile()) { List<CsmInclude> list = CsmFileInfoQuery.getDefault().getIncludeStack(file); if (list.size() > 0) {
if (file != null) { if (!file.equals(currentFile)) { if (file.isHeaderFile()) { if (((ProjectBase) currentFile.getProject()).getGraphStorage().isFileIncluded(currentFile, file)) { return true; if (!file.equals(currentFile)) { if (file.isHeaderFile()) { if (((ProjectBase) currentFile.getProject()).getGraphStorage().isFileIncluded(currentFile, file)) { return true;