diff --git a/src/backends/sage/sagecompletionobject.cpp b/src/backends/sage/sagecompletionobject.cpp index dec0c8f..a132295 100644 --- a/src/backends/sage/sagecompletionobject.cpp +++ b/src/backends/sage/sagecompletionobject.cpp @@ -52,7 +52,7 @@ void SageCompletionObject::fetchCompletions() //cache the value of the "_" variable into __hist_tmp__, so we can restore the previous result //after complete() was evaluated - m_expression=session()->evaluateExpression("__hist_tmp__=_; __IPYTHON__.complete(\""+command()+"\");_=__hist_tmp__"); + m_expression=session()->evaluateExpression("__hist_tmp__=_; __CANTOR_IPYTHON_SHELL__.complete(\""+command()+"\");_=__hist_tmp__"); connect(m_expression, SIGNAL(gotResult()), this, SLOT(extractCompletions())); @@ -71,11 +71,19 @@ void SageCompletionObject::extractCompletions() kDebug()<<"something went wrong fetching tab completion"; return; } - + //the result looks like "['comp1', 'comp2']" parse it + + //for sage version 5.7 this looks like + //('s1', ['comp1','comp2']) where s1 is the string we called complete with + QString txt=res->toHtml().trimmed(); + txt.remove("
"); + txt=txt.mid(txt.indexOf(command())+command().length()+2).trimmed(); txt=txt.mid(1); //remove [ - txt.chop(1); //remove ] + txt.chop(2); //remove ] + + kDebug()<<"completion string: "<name(); - if(type->name().contains("image")) + if(m_imagePath.isEmpty()||type->name().contains("image")||path.endsWith(".png")||path.endsWith(".gif")) { - kDebug()<<"adding file "<is("image/gif")) setResult( new Cantor::AnimationResult( KUrl(m_imagePath ),i18n("Result of %1" , command() ) ) ); else diff --git a/src/backends/sage/sagesession.cpp b/src/backends/sage/sagesession.cpp index a535277..d8ac325 100644 --- a/src/backends/sage/sagesession.cpp +++ b/src/backends/sage/sagesession.cpp @@ -38,10 +38,13 @@ const QByteArray SageSession::SageAlternativePrompt="....: "; //Text, sage outpu static QByteArray initCmd="os.environ['PAGER'] = 'cat' \n "\ "sage.misc.pager.EMBEDDED_MODE = True \n "\ "sage.misc.viewer.BROWSER='' \n "\ + "sage.misc.viewer.viewer.png_viewer('') \n" \ "sage.plot.plot3d.base.SHOW_DEFAULTS['viewer'] = 'tachyon' \n"\ "sage.misc.latex.EMBEDDED_MODE = True \n "\ "os.environ['PAGER'] = 'cat' \n "\ - " __IPYTHON__.shell.autoindent=False \n "\ + "%colors nocolor \n "\ + "__CANTOR_IPYTHON_SHELL__=get_ipython() \n "\ + "__CANTOR_IPYTHON_SHELL__.autoindent=False \n "\ "print '____TMP_DIR____', sage.misc.misc.SAGE_TMP\n"\ "print '____END_OF_INIT____' \n "; @@ -277,6 +280,7 @@ void SageSession::waitForNextPrompt() void SageSession::fileCreated( const QString& path ) { + kDebug()<<"got a file "<addFileResult( path ); @@ -290,9 +294,9 @@ void SageSession::setTypesettingEnabled(bool enable) //the _ and __IP.outputcache() are needed to keep the // _ operator working if (enable) - evaluateExpression("sage.misc.latex.pretty_print_default(true);_;__IP.outputcache()", Cantor::Expression::DeleteOnFinish); + evaluateExpression("sage.misc.latex.pretty_print_default(true)", Cantor::Expression::DeleteOnFinish); else - evaluateExpression("sage.misc.latex.pretty_print_default(false);_;__IP.outputcache()", Cantor::Expression::DeleteOnFinish); + evaluateExpression("sage.misc.latex.pretty_print_default(false)", Cantor::Expression::DeleteOnFinish); } Cantor::CompletionObject* SageSession::completionFor(const QString& command, int index)