void PythonSupportPart::maybeParse(const QString fileName) { QFileInfo fi(fileName); if (fi.extension() == "py") { if( codeModel()->hasFile(fileName) ) { emit aboutToRemoveSourceInfo( fileName ); codeModel()->removeFile( codeModel()->fileByName(fileName) ); } parse( fileName ); } }
void RubySupportPart::removedFilesFromProject(const QStringList &fileList) { kdDebug() << "removedFilesFromProject()" << endl; QStringList::ConstIterator it; for ( it = fileList.begin(); it != fileList.end(); ++it ) { QString fileName = project()->projectDirectory() + "/" + ( *it ); if( codeModel()->hasFile(fileName) ){ emit aboutToRemoveSourceInfo( fileName ); codeModel()->removeFile( codeModel()->fileByName(fileName) ); } } }
void BashSupportPart::parse(const QString &fileName) { QFileInfo fi(fileName); m_vars.clear(); if (fi.extension() == "sh") { if( codeModel()->hasFile(fileName) ){ emit aboutToRemoveSourceInfo( fileName ); codeModel()->removeFile( codeModel()->fileByName(fileName) ); } FileDom m_file = codeModel()->create<FileModel>(); m_file->setName( fileName ); m_vars.clear(); QFile f(QFile::encodeName(fileName)); if (!f.open(IO_ReadOnly)) return; QString rawline; QString line; uint lineNo = 0; //KRegExp methodre("\\b([\\d\\w]+[\\s]*)\\([\\s]*\\)"); QRegExp methodre("^\\s*(\\w+)\\s*\\(\\s*\\)"); QRegExp varre( "^\\s*(\\w+)[=]" ); QRegExp expvarre( "^export\\s*(\\w+)[=]" ); QRegExp forvarre("\\bfor[\\s]+([\\d\\w]+)[\\s]+in[\\s]+"); QTextStream stream(&f); while (!stream.atEnd()) { rawline = stream.readLine(); line = rawline.stripWhiteSpace().local8Bit(); kdDebug() << "Trying line: " << line << endl; if (methodre.search(line) != -1) { FunctionDom method = codeModel()->create<FunctionModel>(); method->setName(methodre.cap(1)); method->setFileName(fileName); method->setStartPosition(lineNo, 0); if( !m_file->hasFunction(method->name()) ){ kdDebug() << "Add global method " << method->name() << endl; m_file->addFunction( method ); } } else if(varre.search(line) != -1) { addAttribute(varre.cap(1), m_file, lineNo); } else if(expvarre.search(line) != -1) { addAttribute(expvarre.cap(1), m_file, lineNo); } else if(forvarre.search(line) != -1) { addAttribute(forvarre.cap(1), m_file, lineNo); } ++lineNo; } f.close(); kdDebug() << "Trying to add list..." << endl; codeModel()->addFile( m_file ); VariableList attrList = codeModel()->globalNamespace()->variableList(); for (VariableList::Iterator it = attrList.begin(); it != attrList.end(); ++it) { kdDebug() << "Adding " << (*it)->name() << endl; m_vars.append((*it)->name()); } m_cc->setVars(m_vars); codeModel()->addFile( m_file ); } }