diff --git a/src/backends/julia/juliasession.h b/src/backends/julia/juliasession.h --- a/src/backends/julia/juliasession.h +++ b/src/backends/julia/juliasession.h @@ -20,6 +20,7 @@ #pragma once #include +#include #include "session.h" @@ -113,6 +114,7 @@ /// Variable management model Cantor::DefaultVariableModel *m_variableModel; + static const QRegularExpression typeVariableInfo; /// Cache to speedup modules whos calls QMap m_whos_cache; @@ -169,4 +171,8 @@ * Updates variable model by querying all modules in scope with whos command */ void listVariables(); + + // Transfrom julia output about variable to standart Cantor variable style + // More info: https://bugs.kde.org/show_bug.cgi?id=377771 + QString clearJuliaType(QString& value); }; diff --git a/src/backends/julia/juliasession.cpp b/src/backends/julia/juliasession.cpp --- a/src/backends/julia/juliasession.cpp +++ b/src/backends/julia/juliasession.cpp @@ -36,6 +36,8 @@ #include "juliacompletionobject.h" #include +const QRegularExpression JuliaSession::typeVariableInfo = QRegularExpression(QLatin1String("\\w+\\[")); + JuliaSession::JuliaSession(Cantor::Backend *backend) : Session(backend) , m_process(nullptr) @@ -335,14 +337,19 @@ } // Register variable - m_variableModel->addVariable(name, value); + m_variableModel->addVariable(name, clearJuliaType(value)); JuliaKeywords::instance()->addVariable(name); } } emit updateHighlighter(); } +QString JuliaSession::clearJuliaType(QString& value) +{ + return value.replace(typeVariableInfo,QLatin1String("[")); +} + QAbstractItemModel *JuliaSession::variableModel() { return m_variableModel;