@Override public CsmFunctionDefinition getDefinition() { return declaration.getDefinition(); }
@Override public CharSequence getSignature() { return declaration.getSignature(); }
private boolean isInDeclaration(CsmFunction func, CsmFile csmFile, int offset) { CsmFunctionDefinition def; CsmFunction decl; if (CsmKindUtilities.isFunctionDefinition(func)) { def = (CsmFunctionDefinition) func; decl = def.getDeclaration(); } else { decl = func; def = func.getDefinition(); } if (def != null) { if (csmFile.equals(def.getContainingFile()) && (def.getStartOffset() <= offset && offset <= def.getBody().getStartOffset())) { return true; } } if (decl != null) { // just declaration if (csmFile.equals(decl.getContainingFile()) && (decl.getStartOffset() <= offset && offset <= decl.getEndOffset())) { return true; } } return false; }
private FunctionUIN(CsmProject project, CsmFunction root) { this.project = project; functionUin = root.getUniqueName(); fileUid = UIDs.get(root.getContainingFile()); }
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; } }
private SourceFileInfo findFunction(CsmProject csmProject, String name, int lineNumber) { CsmFunction function = getFunction(csmProject, name); if (function == null) { return null; } String sourceFile = function.getContainingFile().getAbsolutePath().toString(); int startOffset = function.getStartOffset(); if (lineNumber > 0) { return new SourceFileInfo(sourceFile, lineNumber, 0); } return new SourceFileInfo(sourceFile, startOffset); //) + offset); }
while (funcs.hasNext() && !cancelled.get()) { CsmFunction func = funcs.next(); if (nameAcceptor.accept(func.getName())) { if (CsmKindUtilities.isFunctionDefinition(func)) { // which is unlikely, but just in case if(CsmVisibilityQuery.isVisible(func)) { CsmFunctionDefinition definition = func.getDefinition(); if (definition != null ) { if(CsmVisibilityQuery.isVisible(definition)) { CsmOffsetableDeclaration decl = declarations.next(); if (nameAcceptor.accept(decl.getName())) { if (CsmKindUtilities.isFunctionDefinition(decl) && ((CsmFunction)decl).isStatic()) { CsmFunction func = (CsmFunction) decl; if (func.equals(func.getDeclaration()) && CsmKindUtilities.isFile(func.getScope())) { if(CsmVisibilityQuery.isVisible(func)) { symbols.add(new CppSymbolDescriptor(func));
private void initTableData() { Collection<CsmParameter> pars = functionObj.getParameters(); CsmFunctionDefinition definition = csmFunction.getDefinition(); if (definition != null) { allFunctions.add(definition); CsmFile containingFile = currentMethod.getContainingFile(); for (CsmParameter par: currentMethod.getParameters()) { CsmType desc = par.getType(); String typeRepresentation;
private void removeFunctionDeclaration(final CsmOffsetableDeclaration decl) { CsmFunction fun = (CsmFunction)decl; CsmFile file = fun.getContainingFile(); if (file != null && file.isValid()){ CsmOffsetableDeclaration other = (CsmOffsetableDeclaration) file.getProject().findDeclaration(fun.getUniqueName()); if (other != null) { PersistentKey otherKey = PersistentKey.createKey(other); if (!myKeys.containsKey(otherKey)) { myKeys.put(otherKey,getSortedName(other)); myChanges.remove(otherKey); return; } } } CsmFunctionDefinition def = fun.getDefinition(); if (def != null && def != decl){ file = fun.getContainingFile(); if (file != null && file.isValid() && file.getProject().findDeclaration(def.getUniqueName()) != null){ PersistentKey defKey = PersistentKey.createKey(def); if (!myKeys.containsKey(defKey)) { myKeys.put(defKey,getSortedName(def)); myChanges.remove(defKey); } } } }
@Override public String getName() { return ((CsmFunction)decl).getName().toString(); } @Override
public static CsmImplementsMethodCompletionItem createExtractBodyItem(int substitutionOffset, int caretOffset, CsmClass cls, CsmFunction item) { String sortItemText = item.getName().toString(); String rightText = createRightName(item); String coloredItemText = createDisplayName(item, cls, NbBundle.getMessage(CsmImplementsMethodCompletionItem.class, "extract.txt")); //NOI18N CsmFile containingFile = item.getContainingFile(); CsmCompoundStatement body = ((CsmFunctionDefinition)item).getBody(); if (item.getStartOffset() == body.getStartOffset()) { final int methodStartOffset = item.getStartOffset(); if (CsmKindUtilities.isConstructor(item)) { CsmConstructor con = (CsmConstructor) item;
if (CsmKindUtilities.isFunction(o)) { CsmFunction decl = (CsmFunction) o; if (decl.getName().equals(name)) { if (decl.getParameters().size() == paramsNumber) { if (!FunctionImplEx.isFakeFunction(decl)) { if (FunctionImpl.isObjectVisibleInFile(getContainingFile(), decl)) {
txt.append(fun.getReturnType().getText()).append(' '); // NOI18N txt.append(fun.getName()); txt.append('('); @SuppressWarnings("unchecked") Iterator<CsmParameter> params = fun.getParameters().iterator(); while(params.hasNext()) { CsmParameter param = params.next();
private String createHtmlDisplayName() { String displayName; if (CallGraphPreferences.isShowParameters()) { displayName = function.getSignature().toString(); } else { displayName = function.getName().toString();
protected final CsmFunction chooseDeclaration(Collection<CsmDeclaration> decls) { CsmFunction out = null; if (decls.size() == 1) { out = (CsmFunction) decls.iterator().next(); } else { // choose declaration based on file name CsmFile sortFile = null; for (CsmDeclaration decl : decls) { CsmFunction fun = (CsmFunction) decl; CsmFile containingFile = fun.getContainingFile(); if (sortFile == null) { sortFile = containingFile; out = fun; } else if (CharSequences.comparator().compare(sortFile.getAbsolutePath(), containingFile.getAbsolutePath()) > 0) { sortFile = containingFile; out = fun; } } } return out; }
public MethodResultItem(CsmFunction mtd, CsmCompletionExpression substituteExp, int priotity, boolean isDeclaration, boolean instantiateTypes) { super(mtd, substituteExp, priotity, isDeclaration, instantiateTypes); typeName = CsmResultItem.getTypeName(mtd.getReturnType(), instantiateTypes); typeColor = CsmResultItem.getTypeColor(mtd.getReturnType()); }
CsmFunction fun = (CsmFunction) ref.getReferencedObject(); if (fun != null) { if (fun.getDeclaration() == fun.getDefinition()) { defValueInSignature = true;
CsmFunction method = (CsmFunction) element; if (CsmKindUtilities.isConstructor(method)) { htmlHeader = method.getSignature().toString(); } else { htmlHeader = method.getSignature() + " : " + method.getReturnType().getText(); //NOI18N
private static void addSignature(CsmFunction item, StringBuilder sb) { //sb.append(item.getSignature()); sb.append(item.getName()); //sb.append(parameterList.getText()); sb.append('('); //NOI18N boolean first = true; for(CsmParameter param : ((CsmFunction)item).getParameterList().getParameters()) { if (!first) { sb.append(','); //NOI18N sb.append(' '); //NOI18N } first = false; if (param.isVarArgs()) { sb.append("..."); // NOI18N } else { CsmType type = param.getType(); if (type != null) { sb.append(type.getText()); sb.append(' '); sb.append(param.getName()); } } } sb.append(')'); //NOI18N if(CsmKindUtilities.isMethod(item) && ((CsmMethod)item).isConst()) { sb.append(" const"); // NOI18N } }
private List<CsmType> createFunctionParams(Collection<AST> targetFunParamsAsts, CsmFunction context) { List<CsmType> params = new ArrayList<>(); for (AST paramAst : targetFunParamsAsts) { if (paramAst != null) { AST paramTypeStart = paramAst.getFirstChild(); while (paramTypeStart != null && !AstUtil.isTypeNode(paramTypeStart) && !AstRenderer.isQualifier(paramTypeStart.getType())) { paramTypeStart = paramTypeStart.getNextSibling(); } if (paramTypeStart != null && AstRenderer.isQualifier(paramTypeStart.getType())) { AST typeAst = AstRenderer.getFirstSiblingSkipQualifiers(paramTypeStart); if (!AstUtil.isTypeNode(typeAst)) { paramTypeStart = null; } } if (paramTypeStart != null) { AST ptrOperator = AstUtil.findSiblingOfType(paramTypeStart, CPPTokenTypes.CSM_PTR_OPERATOR); // TODO: AST has wrong offsets here! CsmType type = TypeFactory.createType(paramTypeStart, context.getContainingFile(), ptrOperator, 0, context.getScope()); params.add(type); } } } return params; }