private static CharSequence toString(CsmFunction func) { StringBuilder sb = new StringBuilder(); sb.append(func.getClass().getSimpleName()); sb.append(' '); sb.append(func.getQualifiedName()); sb.append(" ["); // NOI18N sb.append(func.getContainingFile().getName()); sb.append(':'); sb.append(func.getStartPosition().getLine()); sb.append(']'); return sb; } }
@Override protected CharSequence findQualifiedName() { CsmFunction declaration = _getDeclaration(); if (declaration != null) { return declaration.getQualifiedName(); } return super.findQualifiedName(); }
private Map<String, Set<SourceFileInfo>> initStaticFunctions(CsmProject project){ Map<String, Set<SourceFileInfo>> res = new HashMap<String, Set<SourceFileInfo>>(); for(CsmFile file : project.getAllFiles()){ for(CsmOffsetableDeclaration decl : file.getDeclarations()) { if (CsmKindUtilities.isFileLocalFunction(decl)) { CsmFunction func = (CsmFunction) decl; String name = func.getQualifiedName().toString(); Set<SourceFileInfo> set = res.get(name); if (set == null) { set = new HashSet<SourceFileInfo>(); res.put(name, set); } set.add(new SourceFileInfo(file.getAbsolutePath().toString(), func.getStartPosition().getOffset())); } } } return res; } }
public static CompletionDocumentation getDocumentation(CsmObject obj, CsmFile file) throws IOException { if (CsmKindUtilities.isFunction(obj) && !CsmKindUtilities.isClassMember(obj)) { CsmFunction function = (CsmFunction) obj; return getDoc(function.getQualifiedName().toString(), file); } else if (CsmKindUtilities.isClass(obj)) { CsmClass cls = (CsmClass) obj; return getDoc(cls.getQualifiedName().toString(), file); } else if (CsmKindUtilities.isClassMember(obj)) { CsmScope scope = ((CsmMember) obj).getScope(); if (CsmKindUtilities.isClass(scope)) { CsmClass cls = (CsmClass) scope; return getDoc(cls.getQualifiedName().toString(), file); } } return null; }
@Override public CharSequence getQualifiedName() { CsmScope s = getScope(); if (CsmKindUtilities.isFunction(s)) { return CharSequences.create(CharSequenceUtils.concatenate(((CsmFunction)s).getQualifiedName(),"::",name)); // NOI18N } else if (CsmKindUtilities.isClass(s)) { return CharSequences.create(CharSequenceUtils.concatenate(((CsmClass)s).getQualifiedName(),"::",name)); // NOI18N } return name; }