@@ -148,18 +148,18 @@ void ParseJob::run()
148148 m_duContext = builder.build (filename, m_ast);
149149 setDuChain (m_duContext);
150150
151+ UseBuilder usebuilder ( &editor );
152+ usebuilder.buildUses (m_ast);
153+
151154 {
152155 DUChainWriteLocker lock (DUChain::lock ());
156+ m_duContext->clearProblems ();
153157 ParsingEnvironmentFilePointer parsingEnvironmentFile = m_duContext->parsingEnvironmentFile ();
154158 parsingEnvironmentFile->clearModificationRevisions ();
155159 parsingEnvironmentFile->setModificationRevision (contents ().modification );
156160 DUChain::self ()->updateContextEnvironment (m_duContext, parsingEnvironmentFile.data ());
157- m_duContext->clearProblems ();
158161 }
159162
160- UseBuilder usebuilder ( &editor );
161- usebuilder.buildUses (m_ast);
162-
163163 kDebug () << " ----Parsing Succeded---***" ;
164164
165165 if ( m_parent && m_parent->codeHighlighting () ) {
@@ -181,21 +181,27 @@ void ParseJob::run()
181181 static const IndexedString langString (" python" );
182182 file->setLanguage (langString);
183183 m_duContext = new TopDUContext (document (), RangeInRevision (0 , 0 , INT_MAX , INT_MAX ), file);
184- DUChain::self ()->addDocumentChain (m_duContext);
184+ // DUChain::self()->addDocumentChain(m_duContext);
185185 }
186186 {
187187 m_duContext->parsingEnvironmentFile ()->clearModificationRevisions ();
188188 m_duContext->parsingEnvironmentFile ()->setModificationRevision (contents ().modification );
189189 m_duContext->clearProblems ();
190190 DUChain::self ()->updateContextEnvironment (m_duContext, m_duContext->parsingEnvironmentFile ().data ());
191191 }
192-
192+
193193 foreach ( ProblemPointer p, m_session->m_problems ) {
194194 kDebug () << " Added problem to context" ;
195195 m_duContext->addProblem (p);
196196 }
197197 setDuChain (m_duContext);
198198 }
199+
200+ DUChainWriteLocker lock (DUChain::lock ());
201+ if ( ! DUChain::self ()->chainForDocument (document ()) && m_duContext ) {
202+ DUChain::self ()->addDocumentChain (m_duContext);
203+ }
204+
199205}
200206
201207ParseSession *ParseJob::parseSession () const
0 commit comments