[prev in list] [next in list] [prev in thread] [next in thread]
List: kdevelop-devel
Subject: [Bug 80671] code completion not working in try/catch code blocks
From: Adam Treat <manyoso () yahoo ! com>
Date: 2005-03-11 18:04:37
Message-ID: 20050311180437.12842.qmail () ktown ! kde ! org
[Download RAW message or body]
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=80671
manyoso yahoo com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
------- Additional Comments From manyoso yahoo com 2005-03-11 19:04 -------
CVS commit by treat:
* Add support for completion in try/catch blocks
BUGS:80671
M +37 -0 cppcodecompletion.cpp 1.164
M +3 -0 cppcodecompletion.h 1.56
--- kdevelop/languages/cpp/cppcodecompletion.cpp #1.163:1.164
@ -1480,4 +1480,7 @ void CppCodeCompletion::computeContext(
computeContext( ctx, static_cast<SwitchStatementAST*>( stmt ), line, \
col ); break;
+ case NodeType_TryBlockStatement:
+ computeContext( ctx, static_cast<TryBlockStatementAST*>( stmt ), \
line, col ); + break;
case NodeType_DeclarationStatement:
computeContext( ctx, static_cast<DeclarationStatementAST*>( stmt ), \
line, col ); @ -1554,4 +1557,38 @ void CppCodeCompletion::computeContext(
}
+void CppCodeCompletion::computeContext( SimpleContext*& ctx, TryBlockStatementAST* \
ast, int line, int col ) +{
+ if ( !inContextScope( ast, line, col ) )
+ return;
+
+ computeContext( ctx, ast->statement(), line, col );
+ computeContext( ctx, ast->catchStatementList(), line, col );
+}
+
+void CppCodeCompletion::computeContext( SimpleContext*& ctx, CatchStatementListAST* \
ast, int line, int col ) +{
+ if ( !inContextScope( ast, line, col, false, true ) )
+ return;
+
+ QPtrList<CatchStatementAST> l( ast->statementList() );
+ QPtrListIterator<CatchStatementAST> it( l );
+ while ( it.current() )
+ {
+ CatchStatementAST * stmt = it.current();
+ ++it;
+
+ computeContext( ctx, stmt, line, col );
+ }
+}
+
+void CppCodeCompletion::computeContext( SimpleContext*& ctx, CatchStatementAST* ast, \
int line, int col ) +{
+ if ( !inContextScope( ast, line, col ) )
+ return;
+
+ computeContext( ctx, ast->condition(), line, col );
+ computeContext( ctx, ast->statement(), line, col );
+}
+
void CppCodeCompletion::computeContext( SimpleContext*& ctx, \
DeclarationStatementAST* ast, int line, int col ) {
--- kdevelop/languages/cpp/cppcodecompletion.h #1.55:1.56
@ -129,4 +129,7 @ private:
void computeContext( SimpleContext*& ctx, WhileStatementAST* ast, int line, \
int col );
void computeContext( SimpleContext*& ctx, SwitchStatementAST* ast, int line, \
int col ); + void computeContext( SimpleContext*& ctx, TryBlockStatementAST* \
ast, int line, int col ); + void computeContext( SimpleContext*& ctx, \
CatchStatementListAST* ast, int line, int col ); + void computeContext( \
SimpleContext*& ctx, CatchStatementAST* ast, int line, int col );
void computeContext( SimpleContext*& ctx, DeclarationStatementAST* ast, int \
line, int col );
void computeContext( SimpleContext*& ctx, ConditionAST* ast, int line, int \
col );
_______________________________________________
KDevelop-devel mailing list
KDevelop-devel@barney.cs.uni-potsdam.de
http://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic