| 3477 | } |
| 3478 | |
| 3479 | int BfAutoComplete::FixitGetMemberInsertPos(BfTypeDef* typeDef) |
| 3480 | { |
| 3481 | BfTypeDeclaration* typeDecl = typeDef->mTypeDeclaration; |
| 3482 | BfTokenNode* openNode = NULL; |
| 3483 | BfTokenNode* closeNode = NULL; |
| 3484 | if (auto blockNode = BfNodeDynCast<BfBlock>(typeDecl->mDefineNode)) |
| 3485 | { |
| 3486 | openNode = blockNode->mOpenBrace; |
| 3487 | closeNode = blockNode->mCloseBrace; |
| 3488 | } |
| 3489 | |
| 3490 | int insertPos = -1; |
| 3491 | BfParserData* parser = typeDef->mTypeDeclaration->GetSourceData()->ToParserData(); |
| 3492 | if ((parser != NULL) && (closeNode != NULL)) |
| 3493 | { |
| 3494 | int startPos = openNode->mSrcStart + 1; |
| 3495 | insertPos = closeNode->mSrcStart; |
| 3496 | while (insertPos > startPos) |
| 3497 | { |
| 3498 | char prevC = parser->mSrc[insertPos - 1]; |
| 3499 | if (prevC == '\n') |
| 3500 | break; |
| 3501 | insertPos--; |
| 3502 | } |
| 3503 | if (insertPos > startPos) |
| 3504 | insertPos--; |
| 3505 | } |
| 3506 | return insertPos; |
| 3507 | } |
| 3508 | |
| 3509 | void BfAutoComplete::CheckInterfaceFixit(BfTypeInstance* typeInstance, BfAstNode* node) |
| 3510 | { |
nothing calls this directly
no test coverage detected