diff --git a/core/org.eclipse.cdt.core.tests/ChangeLog b/core/org.eclipse.cdt.core.tests/ChangeLog index 3f739b6eb8d..210ae683563 100644 --- a/core/org.eclipse.cdt.core.tests/ChangeLog +++ b/core/org.eclipse.cdt.core.tests/ChangeLog @@ -1,3 +1,6 @@ +2004-04-11 John Camelon + Updated clients for ISourceElementRequestor.createReader() updates. + 2004-04-10 John Camelon Updated ScannerTestCase to correspond with changes to IToken and its implementations. diff --git a/core/org.eclipse.cdt.core.tests/build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java b/core/org.eclipse.cdt.core.tests/build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java index de8719363a5..c003acc6dc1 100644 --- a/core/org.eclipse.cdt.core.tests/build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java +++ b/core/org.eclipse.cdt.core.tests/build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java @@ -1346,7 +1346,7 @@ public class ManagedBuildTests extends TestCase { ISourceElementRequestor callback = new NullSourceElementRequestor(); IScanner scanner = ParserFactory.createScanner( new StringReader( "#include \n int A::i = 1;" ), - "TEST", info, ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, callback, new NullLogService()); + "TEST", info, ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, callback, new NullLogService(), null); IParser parser = ParserFactory.createParser( scanner, callback, ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, null ); assertTrue( parser.parse() ); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/AutomatedTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/AutomatedTest.java index a1aeed0c6af..36dffc9487d 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/AutomatedTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/AutomatedTest.java @@ -58,7 +58,7 @@ public class AutomatedTest extends AutomatedFramework { String filePath = file.getCanonicalPath(); ParserLanguage language = ((String)natures.get( filePath )).equalsIgnoreCase("cpp") ? ParserLanguage.CPP : ParserLanguage.C; - parser = ParserFactory.createParser( ParserFactory.createScanner( new InputStreamReader (stream), filePath, new ScannerInfo(), ParserMode.QUICK_PARSE, language, nullCallback, null ), nullCallback, ParserMode.QUICK_PARSE, language, null); + parser = ParserFactory.createParser( ParserFactory.createScanner( new InputStreamReader (stream), filePath, new ScannerInfo(), ParserMode.QUICK_PARSE, language, nullCallback, null, null ), nullCallback, ParserMode.QUICK_PARSE, language, null); mapping = ParserFactory.createLineOffsetReconciler( new InputStreamReader( stream ) ); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/BaseASTTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/BaseASTTest.java index d5a78555f6e..e217b8ea277 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/BaseASTTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/BaseASTTest.java @@ -51,7 +51,7 @@ public class BaseASTTest extends TestCase { ParserMode mode = quick ? ParserMode.QUICK_PARSE : ParserMode.COMPLETE_PARSE; quickParseCallback = ParserFactory.createQuickParseCallback(); - parser = ParserFactory.createParser( ParserFactory.createScanner( new StringReader( code ), "code", new ScannerInfo(), mode, lang, quickParseCallback, new NullLogService()), quickParseCallback, mode, lang, null ); + parser = ParserFactory.createParser( ParserFactory.createScanner( new StringReader( code ), "code", new ScannerInfo(), mode, lang, quickParseCallback, new NullLogService(), null), quickParseCallback, mode, lang, null ); if( ! parser.parse() && throwExceptionOnError ) throw new ParserException("Parse failure"); return quickParseCallback.getCompilationUnit(); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/BaseScannerTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/BaseScannerTest.java index 05f170721dd..1340a22010f 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/BaseScannerTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/BaseScannerTest.java @@ -47,7 +47,7 @@ public class BaseScannerTest extends TestCase { protected void initializeScanner( String input, ParserMode mode, ISourceElementRequestor requestor ) throws ParserFactoryError { - scanner= ParserFactory.createScanner( new StringReader(input),"TEXT", new ScannerInfo(), mode, ParserLanguage.CPP, requestor, null ); + scanner= ParserFactory.createScanner( new StringReader(input),"TEXT", new ScannerInfo(), mode, ParserLanguage.CPP, requestor, null, null ); } protected void initializeScanner(String input) throws ParserFactoryError diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTSymbolIteratorTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTSymbolIteratorTest.java index f3274cf4aab..37cd90245fe 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTSymbolIteratorTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseASTSymbolIteratorTest.java @@ -67,7 +67,7 @@ public class CompleteParseASTSymbolIteratorTest extends CompleteParseBaseTest { callback = new CompilationUnitCallback(); IParser parser = ParserFactory.createParser( ParserFactory.createScanner( new StringReader( code ), "test-code", new ScannerInfo(), - ParserMode.COMPLETE_PARSE, language, callback, new NullLogService() ), callback, ParserMode.COMPLETE_PARSE, language, null + ParserMode.COMPLETE_PARSE, language, callback, new NullLogService(), null ), callback, ParserMode.COMPLETE_PARSE, language, null ); if( ! parser.parse() && throwOnError ) throw new ParserException( "FAILURE"); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseBaseTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseBaseTest.java index f8ead85b6ab..fd984dd7367 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseBaseTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompleteParseBaseTest.java @@ -677,8 +677,8 @@ public class CompleteParseBaseTest extends TestCase /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#createReader(java.lang.String) */ - public Reader createReader(String finalPath) { - return ParserUtil.createReader(finalPath); + public Reader createReader(String finalPath, Iterator workingCopies) { + return ParserUtil.createReader(finalPath,workingCopies); } /* (non-Javadoc) @@ -730,7 +730,7 @@ public class CompleteParseBaseTest extends TestCase callback = new FullParseCallback(); IParser parser = ParserFactory.createParser( ParserFactory.createScanner( new StringReader( code ), "test-code", new ScannerInfo(), - ParserMode.COMPLETE_PARSE, language, callback, new NullLogService() ), callback, ParserMode.COMPLETE_PARSE, language, null + ParserMode.COMPLETE_PARSE, language, callback, new NullLogService(), null ), callback, ParserMode.COMPLETE_PARSE, language, null ); if( ! parser.parse() && throwOnError ) throw new ParserException( "FAILURE"); return callback.getCompilationUnit(); diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompletionParseTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompletionParseTest.java index 6104d9355d6..b8cb780e275 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompletionParseTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/CompletionParseTest.java @@ -65,7 +65,7 @@ public class CompletionParseTest extends CompleteParseBaseTest { ParserMode.COMPLETION_PARSE, ParserLanguage.CPP, callback, - new NullLogService()), + new NullLogService(), null), callback, ParserMode.COMPLETION_PARSE, ParserLanguage.CPP, diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ExprEvalTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ExprEvalTest.java index c06aa2203f7..7cdd40d51f8 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ExprEvalTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ExprEvalTest.java @@ -28,7 +28,7 @@ public class ExprEvalTest extends TestCase { public void runTest(String code, int expectedValue) throws Exception { final NullSourceElementRequestor nullCallback = new NullSourceElementRequestor(); - IExpressionParser parser = InternalParserUtil.createExpressionParser(ParserFactory.createScanner( new StringReader( code ), getClass().getName(), new ScannerInfo(), null, ParserLanguage.CPP, nullCallback, new NullLogService() ), ParserLanguage.CPP, null ); + IExpressionParser parser = InternalParserUtil.createExpressionParser(ParserFactory.createScanner( new StringReader( code ), getClass().getName(), new ScannerInfo(), null, ParserLanguage.CPP, nullCallback, new NullLogService(), null ), ParserLanguage.CPP, null ); IASTExpression expression = parser.expression(null,null); assertEquals(expectedValue, expression.evaluateExpression()); } diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/FractionalAutomatedTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/FractionalAutomatedTest.java index fb7b309bde9..e2d3a5b4a05 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/FractionalAutomatedTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/FractionalAutomatedTest.java @@ -242,7 +242,7 @@ public class FractionalAutomatedTest extends AutomatedFramework { result = null; ParserLanguage language = cppNature ? ParserLanguage.CPP : ParserLanguage.C; IParser parser = ParserFactory.createParser( - ParserFactory.createScanner( new StringReader( code ), null, new ScannerInfo(), ParserMode.QUICK_PARSE, language, nullCallback, new NullLogService() ), nullCallback, ParserMode.QUICK_PARSE, language, null ); + ParserFactory.createScanner( new StringReader( code ), null, new ScannerInfo(), ParserMode.QUICK_PARSE, language, nullCallback, new NullLogService(), null ), nullCallback, ParserMode.QUICK_PARSE, language, null ); parser.parse(); } catch ( Exception e ){ diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/PreprocessorConditionalTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/PreprocessorConditionalTest.java index c605d096c41..704795164bf 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/PreprocessorConditionalTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/PreprocessorConditionalTest.java @@ -36,7 +36,7 @@ public class PreprocessorConditionalTest extends BaseScannerTest protected void initializeScanner(String input, Map definitions ) throws Exception { - scanner= ParserFactory.createScanner( new StringReader(input),"TEXT", new ScannerInfo( definitions ), ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, nullSourceElementRequestor, null ); + scanner= ParserFactory.createScanner( new StringReader(input),"TEXT", new ScannerInfo( definitions ), ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, nullSourceElementRequestor, null, null ); } diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/PreprocessorTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/PreprocessorTest.java index b8be417bb46..3d2fd89ecb6 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/PreprocessorTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/PreprocessorTest.java @@ -75,7 +75,7 @@ public class PreprocessorTest extends TestCase { public IPreprocessor setupPreprocessor( String text, List includePaths, Map defns, ISourceElementRequestor rq ) { IPreprocessor p = ParserFactory.createPreprocessor( new StringReader( text ), "test", new ScannerInfo( defns, - includePaths == null ? null : (String [])includePaths.toArray()), ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, rq, null ); + includePaths == null ? null : (String [])includePaths.toArray()), ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, rq, null, null ); return p; } } diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/SelectionParseTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/SelectionParseTest.java index 6067c85b71e..7505f6eb643 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/SelectionParseTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/SelectionParseTest.java @@ -43,7 +43,7 @@ public class SelectionParseTest extends CompleteParseBaseTest { ParserMode.SELECTION_PARSE, ParserLanguage.CPP, callback, - new NullLogService()), + new NullLogService(), null), callback, ParserMode.SELECTION_PARSE, ParserLanguage.CPP, diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/TortureTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/TortureTest.java index 8a8cb12d6ca..f85eb839b37 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/TortureTest.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/TortureTest.java @@ -281,7 +281,7 @@ public class TortureTest extends FractionalAutomatedTest { ParserMode parserMode = quickParse ? ParserMode.QUICK_PARSE : ParserMode.COMPLETE_PARSE; ParserLanguage language = cppNature ? ParserLanguage.CPP : ParserLanguage.C; parser = ParserFactory.createParser( - ParserFactory.createScanner( new StringReader( code ), null, new ScannerInfo(), parserMode, language, nullCallback, new NullLogService() ), nullCallback, parserMode, language, null); + ParserFactory.createScanner( new StringReader( code ), null, new ScannerInfo(), parserMode, language, nullCallback, new NullLogService(), null ), nullCallback, parserMode, language, null); mapping = ParserFactory.createLineOffsetReconciler( new StringReader( code ) ); diff --git a/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/ParseTestOnSearchFiles.java b/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/ParseTestOnSearchFiles.java index 64ed1688b2d..53bedba550a 100644 --- a/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/ParseTestOnSearchFiles.java +++ b/core/org.eclipse.cdt.core.tests/search/org/eclipse/cdt/core/search/tests/ParseTestOnSearchFiles.java @@ -62,7 +62,7 @@ public class ParseTestOnSearchFiles extends TestCase public void testParseOfAndrewsFile() throws Exception { ISourceElementRequestor requestor = new NullSourceElementRequestor(); - IScanner scanner = ParserFactory.createScanner( new InputStreamReader( fileIn ), fullPathName, new ScannerInfo(), ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, requestor, new NullLogService() ); + IScanner scanner = ParserFactory.createScanner( new InputStreamReader( fileIn ), fullPathName, new ScannerInfo(), ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, requestor, new NullLogService(), null ); IParser parser = ParserFactory.createParser( scanner, requestor, ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, null ); assertTrue( parser.parse() ); } diff --git a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/internal/core/browser/cache/TypeMatchLocator.java b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/internal/core/browser/cache/TypeMatchLocator.java index 1d7df8b2dda..f344a382a21 100644 --- a/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/internal/core/browser/cache/TypeMatchLocator.java +++ b/core/org.eclipse.cdt.core/browser/org/eclipse/cdt/internal/core/browser/cache/TypeMatchLocator.java @@ -377,8 +377,8 @@ public class TypeMatchLocator implements ISourceElementRequestor, ICSearchConsta /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#createReader(java.lang.String) */ - public Reader createReader(String finalPath) { - return ParserUtil.createReader(finalPath); + public Reader createReader(String finalPath, Iterator workingCopies) { + return ParserUtil.createReader(finalPath, workingCopies); } /* (non-Javadoc) @@ -499,7 +499,7 @@ public class TypeMatchLocator implements ISourceElementRequestor, ICSearchConsta IParser parser = null; try { - IScanner scanner = ParserFactory.createScanner( reader, realPath.toOSString(), scanInfo, ParserMode.COMPLETE_PARSE, language, this, ParserUtil.getScannerLogService() ); + IScanner scanner = ParserFactory.createScanner( reader, realPath.toOSString(), scanInfo, ParserMode.COMPLETE_PARSE, language, this, ParserUtil.getScannerLogService(), null ); parser = ParserFactory.createParser( scanner, this, ParserMode.STRUCTURAL_PARSE, language, ParserUtil.getParserLogService() ); } catch( ParserFactoryError pfe ) diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java index 02879914837..e031a407c66 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java @@ -97,7 +97,7 @@ public class SourceIndexer extends AbstractIndexer { BufferedInputStream inStream = new BufferedInputStream(resourceFile.getContents()); parser = ParserFactory.createParser( - ParserFactory.createScanner( new BufferedReader(new InputStreamReader(inStream)), resourceFile.getLocation().toOSString(), scanInfo, ParserMode.COMPLETE_PARSE, language, requestor, ParserUtil.getScannerLogService() ), + ParserFactory.createScanner( new BufferedReader(new InputStreamReader(inStream)), resourceFile.getLocation().toOSString(), scanInfo, ParserMode.COMPLETE_PARSE, language, requestor, ParserUtil.getScannerLogService(), null ), requestor, ParserMode.COMPLETE_PARSE, language, ParserUtil.getParserLogService() ); } catch( ParserFactoryError pfe ) { diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java index b2286e75d58..7cfbda08ba3 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexerRequestor.java @@ -15,7 +15,9 @@ package org.eclipse.cdt.internal.core.search.indexing; * @author bgheorgh */ + import java.io.Reader; +import java.util.Iterator; import java.util.LinkedList; import org.eclipse.cdt.core.model.ICModelMarker; @@ -525,8 +527,8 @@ public class SourceIndexerRequestor implements ISourceElementRequestor, IIndexCo /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#createReader(java.lang.String) */ - public Reader createReader(String finalPath) { - return ParserUtil.createReader(finalPath); + public Reader createReader(String finalPath, Iterator workingCopies) { + return ParserUtil.createReader(finalPath,workingCopies); } /** diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelBuilder.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelBuilder.java index 4464e59f5d5..8fc5e0c150d 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelBuilder.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelBuilder.java @@ -131,7 +131,7 @@ public class CModelBuilder { mode, language, quickParseCallback, - quickParseMode ? new NullLogService() : ParserUtil.getScannerLogService()) + quickParseMode ? new NullLogService() : ParserUtil.getScannerLogService(), null) ,quickParseCallback, mode, language, diff --git a/core/org.eclipse.cdt.core/parser/ChangeLog-parser b/core/org.eclipse.cdt.core/parser/ChangeLog-parser index 682e5415dd6..492099c3e9a 100644 --- a/core/org.eclipse.cdt.core/parser/ChangeLog-parser +++ b/core/org.eclipse.cdt.core/parser/ChangeLog-parser @@ -1,3 +1,7 @@ +2004-04-11 John Camelon + Fixed https://bugs.eclipse.org/bugs/show_bug.cgi?id=55785. + Fix required update to ISourceElementRequestor interface : clients updated accordingly. + 2004-04-11 John Camelon Updated errorhandling in Parser::translationUnit(). diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ISourceElementRequestor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ISourceElementRequestor.java index f88ad4409a5..8a80123d7d1 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ISourceElementRequestor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ISourceElementRequestor.java @@ -11,6 +11,7 @@ package org.eclipse.cdt.core.parser; import java.io.Reader; +import java.util.Iterator; import org.eclipse.cdt.core.parser.ast.IASTASMDefinition; import org.eclipse.cdt.core.parser.ast.IASTAbstractTypeSpecifierDeclaration; @@ -111,7 +112,7 @@ public interface ISourceElementRequestor { * @param finalPath * @return */ - public Reader createReader(String finalPath); + public Reader createReader(String finalPath, Iterator workingCopies ); /** * The parser asks the client if it wishes to time out * in case it is taking more than the expected time. diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/NullSourceElementRequestor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/NullSourceElementRequestor.java index b1ae5abd0ec..3ef432c9150 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/NullSourceElementRequestor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/NullSourceElementRequestor.java @@ -1,6 +1,8 @@ package org.eclipse.cdt.core.parser; + import java.io.Reader; +import java.util.Iterator; import org.eclipse.cdt.core.parser.ast.IASTASMDefinition; import org.eclipse.cdt.core.parser.ast.IASTAbstractTypeSpecifierDeclaration; @@ -457,7 +459,7 @@ public class NullSourceElementRequestor implements ISourceElementRequestor /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#createReader(java.lang.String) */ - public Reader createReader(String finalPath) { + public Reader createReader(String finalPath, Iterator workingCopies) { return InternalParserUtil.createFileReader( finalPath ); } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ParserFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ParserFactory.java index 1628ae2c703..a9312ef93a5 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ParserFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/parser/ParserFactory.java @@ -11,6 +11,7 @@ package org.eclipse.cdt.core.parser; import java.io.Reader; +import java.util.List; import org.eclipse.cdt.core.parser.ast.IASTFactory; import org.eclipse.cdt.core.parser.extension.ExtensionDialect; @@ -68,7 +69,7 @@ public class ParserFactory { return new QuickParser( scanner, ourCallback, language, logService ); } - public static IScanner createScanner( Reader input, String fileName, IScannerInfo config, ParserMode mode, ParserLanguage language, ISourceElementRequestor requestor, IParserLogService log ) throws ParserFactoryError + public static IScanner createScanner( Reader input, String fileName, IScannerInfo config, ParserMode mode, ParserLanguage language, ISourceElementRequestor requestor, IParserLogService log, List workingCopies ) throws ParserFactoryError { if( input == null ) throw new ParserFactoryError( ParserFactoryError.Kind.NULL_READER ); if( fileName == null ) throw new ParserFactoryError( ParserFactoryError.Kind.NULL_FILENAME ); @@ -77,11 +78,11 @@ public class ParserFactory { IParserLogService logService = ( log == null ) ? createDefaultLogService() : log; ParserMode ourMode = ( (mode == null )? ParserMode.COMPLETE_PARSE : mode ); ISourceElementRequestor ourRequestor = (( requestor == null) ? new NullSourceElementRequestor() : requestor ); - IScanner s = new Scanner( input, fileName, config, ourRequestor, ourMode, language, logService, extensionFactory.createScannerExtension() ); + IScanner s = new Scanner( input, fileName, config, ourRequestor, ourMode, language, logService, extensionFactory.createScannerExtension(), workingCopies ); return s; } - public static IPreprocessor createPreprocessor( Reader input, String fileName, IScannerInfo info, ParserMode mode, ParserLanguage language, ISourceElementRequestor requestor, IParserLogService logService ) + public static IPreprocessor createPreprocessor( Reader input, String fileName, IScannerInfo info, ParserMode mode, ParserLanguage language, ISourceElementRequestor requestor, IParserLogService logService, List workingCopies ) { if( input == null ) throw new ParserFactoryError( ParserFactoryError.Kind.NULL_READER ); if( fileName == null ) throw new ParserFactoryError( ParserFactoryError.Kind.NULL_FILENAME ); @@ -90,7 +91,7 @@ public class ParserFactory { IParserLogService log = ( logService == null ) ? createDefaultLogService() : logService; ParserMode ourMode = ( (mode == null )? ParserMode.COMPLETE_PARSE : mode ); ISourceElementRequestor ourRequestor = (( requestor == null) ? new NullSourceElementRequestor() : requestor ); - IPreprocessor s = new Preprocessor( input, fileName, info, ourRequestor, ourMode, language, log, extensionFactory.createScannerExtension() ); + IPreprocessor s = new Preprocessor( input, fileName, info, ourRequestor, ourMode, language, log, extensionFactory.createScannerExtension(), workingCopies ); return s; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/GCCScannerExtension.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/GCCScannerExtension.java index cd60b164448..775ffd58362 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/GCCScannerExtension.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/GCCScannerExtension.java @@ -137,7 +137,7 @@ public class GCCScannerExtension implements IScannerExtension { // search through include paths while (iter.hasNext()) { String path = (String)iter.next(); - duple = ScannerUtility.createReaderDuple( path, parsedDirective.getFilename(), scannerData.getClientRequestor() ); + duple = ScannerUtility.createReaderDuple( path, parsedDirective.getFilename(), scannerData.getClientRequestor(), scannerData.getWorkingCopies() ); if( duple != null ) break; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/IScannerData.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/IScannerData.java index b9b0c43a48f..0438308f0e0 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/IScannerData.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/IScannerData.java @@ -11,6 +11,7 @@ package org.eclipse.cdt.internal.core.parser.scanner; import java.io.Reader; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -80,4 +81,6 @@ public interface IScannerData { * @param empty_map */ public abstract void setDefinitions(Map map); + + public Iterator getWorkingCopies(); } \ No newline at end of file diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Preprocessor.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Preprocessor.java index aafa6f639c0..9cfebf72073 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Preprocessor.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Preprocessor.java @@ -11,6 +11,7 @@ package org.eclipse.cdt.internal.core.parser.scanner; import java.io.Reader; +import java.util.List; import org.eclipse.cdt.core.parser.EndOfFileException; import org.eclipse.cdt.core.parser.IParserLogService; @@ -34,8 +35,8 @@ public class Preprocessor extends Scanner implements IPreprocessor { * @param filename * @param defns */ - public Preprocessor(Reader reader, String filename, IScannerInfo info, ISourceElementRequestor requestor, ParserMode mode, ParserLanguage language, IParserLogService logService, IScannerExtension scannerExtension ) { - super(reader, filename, info, requestor, mode, language, logService, scannerExtension ); + public Preprocessor(Reader reader, String filename, IScannerInfo info, ISourceElementRequestor requestor, ParserMode mode, ParserLanguage language, IParserLogService logService, IScannerExtension scannerExtension, List workingCopies ) { + super(reader, filename, info, requestor, mode, language, logService, scannerExtension, workingCopies ); } public void process() diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Scanner.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Scanner.java index d185a54e580..fc96917f257 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Scanner.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/Scanner.java @@ -108,7 +108,7 @@ public class Scanner implements IScanner { Scanner( Reader reader, String filename, Map definitions, List includePaths, ISourceElementRequestor requestor, ParserMode mode, ParserLanguage language, IParserLogService log, IScannerExtension extension ) { String [] incs = (String [])includePaths.toArray(STRING_ARRAY); - scannerData = new ScannerData( this, log, requestor, mode, filename, reader, language, new ScannerInfo( definitions, incs ), new ContextStack( this, log ) ); + scannerData = new ScannerData( this, log, requestor, mode, filename, reader, language, new ScannerInfo( definitions, incs ), new ContextStack( this, log ), null ); scannerExtension = extension; if( scannerExtension instanceof GCCScannerExtension ) @@ -131,9 +131,9 @@ public class Scanner implements IScanner { } - public Scanner(Reader reader, String filename, IScannerInfo info, ISourceElementRequestor requestor, ParserMode parserMode, ParserLanguage language, IParserLogService log, IScannerExtension extension ) { + public Scanner(Reader reader, String filename, IScannerInfo info, ISourceElementRequestor requestor, ParserMode parserMode, ParserLanguage language, IParserLogService log, IScannerExtension extension, List workingCopies ) { - scannerData = new ScannerData( this, log, requestor, parserMode, filename, reader, language, info, new ContextStack( this, log ) ); + scannerData = new ScannerData( this, log, requestor, parserMode, filename, reader, language, info, new ContextStack( this, log ), workingCopies ); scannerExtension = extension; if( scannerExtension instanceof GCCScannerExtension ) @@ -535,7 +535,7 @@ public class Scanner implements IScanner { while (iter.hasNext()) { String path = (String)iter.next(); - duple = ScannerUtility.createReaderDuple( path, fileName, scannerData.getClientRequestor() ); + duple = ScannerUtility.createReaderDuple( path, fileName, scannerData.getClientRequestor(), scannerData.getWorkingCopies() ); if( duple != null ) break totalLoop; } @@ -546,7 +546,7 @@ public class Scanner implements IScanner { } else // local inclusion { - duple = ScannerUtility.createReaderDuple( new File( scannerData.getContextStack().getCurrentContext().getFilename() ).getParentFile().getAbsolutePath(), fileName, scannerData.getClientRequestor() ); + duple = ScannerUtility.createReaderDuple( new File( scannerData.getContextStack().getCurrentContext().getFilename() ).getParentFile().getAbsolutePath(), fileName, scannerData.getClientRequestor(), scannerData.getWorkingCopies() ); if( duple != null ) break totalLoop; useIncludePaths = true; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ScannerData.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ScannerData.java index 88c7293161e..842b8887eb7 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ScannerData.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ScannerData.java @@ -13,6 +13,7 @@ package org.eclipse.cdt.internal.core.parser.scanner; import java.io.Reader; import java.util.ArrayList; import java.util.Hashtable; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -23,11 +24,13 @@ import org.eclipse.cdt.core.parser.ISourceElementRequestor; import org.eclipse.cdt.core.parser.ParserLanguage; import org.eclipse.cdt.core.parser.ParserMode; import org.eclipse.cdt.core.parser.ast.IASTFactory; +import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator; import org.eclipse.cdt.internal.core.parser.problem.IProblemFactory; public class ScannerData implements IScannerData { + private final List workingCopies; private final ContextStack contextStack; private IASTFactory astFactory = null; private final ISourceElementRequestor requestor; @@ -42,7 +45,7 @@ public class ScannerData implements IScannerData private final IScanner scanner; private final IScannerInfo originalConfig; private List includePathNames = new ArrayList(); - + private static final Iterator EMPTY_ITERATOR = new EmptyIterator(); /** * @return Returns the contextStack. */ @@ -145,7 +148,7 @@ public class ScannerData implements IScannerData ParserMode parserMode, String filename, Reader reader, - ParserLanguage language, IScannerInfo info, ContextStack stack ) + ParserLanguage language, IScannerInfo info, ContextStack stack, List workingCopies ) { this.scanner = scanner; this.log = log; @@ -156,6 +159,7 @@ public class ScannerData implements IScannerData this.language = language; this.originalConfig = info; this.contextStack = stack; + this.workingCopies = workingCopies; } @@ -170,4 +174,13 @@ public class ScannerData implements IScannerData public void setDefinitions(Map map) { definitions = map; } + + /* (non-Javadoc) + * @see org.eclipse.cdt.internal.core.parser.scanner.IScannerData#getWorkingCopies() + */ + public Iterator getWorkingCopies() { + if( workingCopies != null ) + return workingCopies.iterator(); + return EMPTY_ITERATOR; + } } \ No newline at end of file diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ScannerUtility.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ScannerUtility.java index d1d3494fcf6..4c0796019ad 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ScannerUtility.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/scanner/ScannerUtility.java @@ -63,10 +63,10 @@ public class ScannerUtility { } - static CodeReader createReaderDuple( String path, String fileName, ISourceElementRequestor requestor ) + static CodeReader createReaderDuple( String path, String fileName, ISourceElementRequestor requestor, Iterator workingCopies ) { String finalPath = createReconciledPath(path, fileName); - Reader r = requestor.createReader( finalPath ); + Reader r = requestor.createReader( finalPath, workingCopies ); if( r != null ) return new CodeReader( finalPath, r ); return null; diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java index 0306ed1db6f..5d251cd2f4d 100644 --- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java +++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/CSearchPattern.java @@ -186,7 +186,7 @@ public abstract class CSearchPattern implements ICSearchConstants, ICSearchPatte ParserMode.QUICK_PARSE, ParserLanguage.CPP, callback, - nullLog); + nullLog, null); } catch (ParserFactoryError e) { } @@ -256,7 +256,7 @@ public abstract class CSearchPattern implements ICSearchConstants, ICSearchPatte new ScannerInfo(), ParserMode.QUICK_PARSE, ParserLanguage.CPP, - callback, nullLog); + callback, nullLog, null); } catch (ParserFactoryError e) { } @@ -298,7 +298,7 @@ public abstract class CSearchPattern implements ICSearchConstants, ICSearchPatte new ScannerInfo(), ParserMode.QUICK_PARSE, ParserLanguage.CPP, - callback, nullLog); + callback, nullLog, null); } catch (ParserFactoryError e) { } @@ -357,7 +357,7 @@ public abstract class CSearchPattern implements ICSearchConstants, ICSearchPatte new ScannerInfo(), ParserMode.QUICK_PARSE, ParserLanguage.CPP, - callback, nullLog ); + callback, nullLog, null ); } catch (ParserFactoryError e1) { } @@ -420,7 +420,7 @@ public abstract class CSearchPattern implements ICSearchConstants, ICSearchPatte new ScannerInfo(), ParserMode.QUICK_PARSE, ParserLanguage.CPP, - callback,new NullLogService()); + callback,new NullLogService(), null); } catch (ParserFactoryError e1) { } IQuickParseCallback callback = ParserFactory.createQuickParseCallback(); diff --git a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java index 12cd108cb12..bb81e6fdefd 100644 --- a/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java +++ b/core/org.eclipse.cdt.core/search/org/eclipse/cdt/internal/core/search/matching/MatchLocator.java @@ -446,7 +446,7 @@ public class MatchLocator implements ISourceElementRequestor, ICSearchConstants IParser parser = null; try { - IScanner scanner = ParserFactory.createScanner( reader, realPath.toOSString(), scanInfo, ParserMode.COMPLETE_PARSE, language, this, ParserUtil.getScannerLogService() ); + IScanner scanner = ParserFactory.createScanner( reader, realPath.toOSString(), scanInfo, ParserMode.COMPLETE_PARSE, language, this, ParserUtil.getScannerLogService(), null ); parser = ParserFactory.createParser( scanner, this, ParserMode.COMPLETE_PARSE, language, ParserUtil.getParserLogService() ); } catch( ParserFactoryError pfe ) @@ -605,8 +605,8 @@ public class MatchLocator implements ISourceElementRequestor, ICSearchConstants /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#createReader(java.lang.String) */ - public Reader createReader(String finalPath) { - return ParserUtil.createReader(finalPath); + public Reader createReader(String finalPath, Iterator workingCopies) { + return ParserUtil.createReader(finalPath,workingCopies); } /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#parserTimeout() diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/parser/ParserUtil.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/parser/ParserUtil.java index f26fbebf3f9..b81ea382970 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/parser/ParserUtil.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/parser/ParserUtil.java @@ -12,9 +12,12 @@ package org.eclipse.cdt.core.parser; import java.io.BufferedInputStream; import java.io.BufferedReader; +import java.io.CharArrayReader; import java.io.InputStreamReader; import java.io.Reader; +import java.util.Iterator; +import org.eclipse.cdt.core.model.IWorkingCopy; import org.eclipse.cdt.internal.core.model.IDebugLogConstants; import org.eclipse.cdt.internal.core.parser.InternalParserUtil; import org.eclipse.cdt.internal.core.parser.ParserLogService; @@ -48,7 +51,7 @@ public class ParserUtil return scannerLogService; } - public static Reader createReader( String finalPath ) + public static Reader createReader( String finalPath, Iterator workingCopies ) { // check to see if the file which this path points to points to an // IResource in the workspace @@ -60,11 +63,18 @@ public class ParserUtil if( workspace.getRoot().getLocation().isPrefixOf( path ) ) path = path.removeFirstSegments(workspace.getRoot().getLocation().segmentCount() ); - IResource result = workspace.getRoot().findMember(path); + IResource resultingResource = workspace.getRoot().findMember(path); - if( result != null && result.getType() == IResource.FILE ) + if( resultingResource != null && resultingResource.getType() == IResource.FILE ) { - BufferedInputStream bufferedStream = new BufferedInputStream( ((IFile) result).getContents() ); + // this is the file for sure + // check the working copy + if( workingCopies.hasNext() ) + { + Reader r = findWorkingCopy( resultingResource, workingCopies ); + if( r != null ) return r; + } + BufferedInputStream bufferedStream = new BufferedInputStream( ((IFile) resultingResource).getContents() ); InputStreamReader inputReader = new InputStreamReader( bufferedStream ); return new BufferedReader( inputReader ); } @@ -74,4 +84,31 @@ public class ParserUtil } return InternalParserUtil.createFileReader(finalPath); } + + /** + * @param resultingResource + * @param workingCopies + * @return + */ + protected static Reader findWorkingCopy(IResource resultingResource, Iterator workingCopies) { + if( parserLogService.isTracing() ) + parserLogService.traceLog( "Attempting to find the working copy for " + resultingResource.getName() ); + while( workingCopies.hasNext() ) + { + Object next = workingCopies.next(); + if( !( next instanceof IWorkingCopy)) continue; + IWorkingCopy copy = (IWorkingCopy) next; + if( copy.getResource().equals(resultingResource )) + { + CharArrayReader arrayReader = new CharArrayReader( copy.getContents() ); + if( parserLogService.isTracing() ) + parserLogService.traceLog( "Working copy found!!" ); + return new BufferedReader( arrayReader ); + } + } + if( parserLogService.isTracing() ) + parserLogService.traceLog( "Working copy not found." ); + + return null; + } } diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 152860c9d32..c469c387ea3 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,7 @@ +2004-04-11 John Camelon + Updated CompletionEngine to use shared working copies when parsing include files. + Updated clients for ISourceElementRequestor.createReader() updates. + 2004-04-07 John Camelon Updated CompletionEngine to use the extended IASTCompletionNode interface for FUNCTION_REFERENCE. diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java index 2e70c90dcd0..77cd31050a0 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/compare/CStructureCreator.java @@ -74,7 +74,7 @@ public class CStructureCreator implements IStructureCreator { //are bugs while parsing C files, we might want to create a separate Structure //compare for c files, but we'll never be completely right about .h files IScanner scanner = - ParserFactory.createScanner(new StringReader(s), "code", new ScannerInfo(), ParserMode.QUICK_PARSE, ParserLanguage.CPP, builder, new NullLogService()); //$NON-NLS-1$ + ParserFactory.createScanner(new StringReader(s), "code", new ScannerInfo(), ParserMode.QUICK_PARSE, ParserLanguage.CPP, builder, new NullLogService(), null); //$NON-NLS-1$ IParser parser = ParserFactory.createParser(scanner, builder, ParserMode.QUICK_PARSE, ParserLanguage.CPP, ParserUtil.getParserLogService() ); parser.parse(); } catch (Exception e) { diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/compare/SourceElementRequestorAdapter.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/compare/SourceElementRequestorAdapter.java index 56006c142c1..bbae0a5a32a 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/compare/SourceElementRequestorAdapter.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/compare/SourceElementRequestorAdapter.java @@ -12,6 +12,7 @@ package org.eclipse.cdt.internal.ui.compare; import java.io.Reader; +import java.util.Iterator; import org.eclipse.cdt.core.parser.DefaultProblemHandler; import org.eclipse.cdt.core.parser.IProblem; @@ -338,8 +339,8 @@ public class SourceElementRequestorAdapter implements ISourceElementRequestor { /* (non-Javadoc) * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#createReader(java.lang.String) */ - public Reader createReader(String finalPath) { - return ParserUtil.createReader(finalPath); + public Reader createReader(String finalPath, Iterator workingCopies) { + return ParserUtil.createReader(finalPath, workingCopies ); } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/FindAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/FindAction.java index dd2f6d7beed..128ae8c0555 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/FindAction.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/FindAction.java @@ -103,7 +103,7 @@ public abstract class FindAction extends Action { try { parser = ParserFactory.createParser( - ParserFactory.createScanner( reader, resourceFile.getLocation().toOSString(), scanInfo, ParserMode.SELECTION_PARSE, language, new NullSourceElementRequestor(), ParserUtil.getScannerLogService() ), + ParserFactory.createScanner( reader, resourceFile.getLocation().toOSString(), scanInfo, ParserMode.SELECTION_PARSE, language, new NullSourceElementRequestor(), ParserUtil.getScannerLogService(), null ), new NullSourceElementRequestor(), ParserMode.SELECTION_PARSE, language, ParserUtil.getParserLogService() ); } catch( ParserFactoryError pfe ){} diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java index 56b394d0998..8a0b9a00b7d 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/actions/OpenDeclarationsAction.java @@ -418,7 +418,7 @@ public class OpenDeclarationsAction extends Action implements IUpdate { try { parser = ParserFactory.createParser( - ParserFactory.createScanner( reader, resourceFile.getLocation().toOSString(), scanInfo, ParserMode.SELECTION_PARSE, language, new NullSourceElementRequestor(), ParserUtil.getScannerLogService() ), + ParserFactory.createScanner( reader, resourceFile.getLocation().toOSString(), scanInfo, ParserMode.SELECTION_PARSE, language, new NullSourceElementRequestor(), ParserUtil.getScannerLogService(), null ), new NullSourceElementRequestor(), ParserMode.SELECTION_PARSE, language, ParserUtil.getParserLogService() ); } catch( ParserFactoryError pfe ){} diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java index e89a0a5976f..64c35621e05 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java @@ -13,6 +13,7 @@ package org.eclipse.cdt.internal.ui.text.contentassist; import java.io.CharArrayReader; import java.io.Reader; import java.util.ArrayList; +import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -179,7 +180,7 @@ public class CompletionEngine implements RelevanceConstants { IScanner scanner = null; try { - scanner = ParserFactory.createScanner( reader, realPath.toOSString(), scanInfo, ParserMode.COMPLETION_PARSE, language, elementRequestor, ParserUtil.getScannerLogService() ); + scanner = ParserFactory.createScanner( reader, realPath.toOSString(), scanInfo, ParserMode.COMPLETION_PARSE, language, elementRequestor, ParserUtil.getScannerLogService(), Arrays.asList(CUIPlugin.getSharedWorkingCopies()) ); parser = ParserFactory.createParser( scanner, elementRequestor, ParserMode.COMPLETION_PARSE, language, ParserUtil.getParserLogService() ); } catch( ParserFactoryError pfe ) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/ContentAssistElementRequestor.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/ContentAssistElementRequestor.java index ac81f28c6d6..886c5b6c538 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/ContentAssistElementRequestor.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/ContentAssistElementRequestor.java @@ -10,10 +10,14 @@ ***********************************************************************/ package org.eclipse.cdt.internal.ui.text.contentassist; +import java.io.Reader; +import java.util.Iterator; + import org.eclipse.cdt.core.parser.NullSourceElementRequestor; +import org.eclipse.cdt.core.parser.ParserUtil; +import org.eclipse.cdt.utils.TimeOut; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.cdt.utils.TimeOut; /** * @@ -24,6 +28,14 @@ public class ContentAssistElementRequestor extends NullSourceElementRequestor im private static TimeOut timeoutThread = new TimeOut(); private IProgressMonitor pm = new NullProgressMonitor(); + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.ISourceElementRequestor#createReader(java.lang.String) + */ + public Reader createReader(String finalPath, Iterator workingCopies) { + return ParserUtil.createReader(finalPath, workingCopies ); + } + /** * */