File indexing completed on 2024-12-01 09:37:27
0001 /* 0002 SPDX-License-Identifier: GPL-2.0-or-later 0003 SPDX-FileCopyrightText: 2016 Ivan Lakhtanov <ivan.lakhtanov@gmail.com> 0004 */ 0005 #include "juliakeywords.h" 0006 0007 #include <KSyntaxHighlighting/Repository> 0008 #include <KSyntaxHighlighting/Definition> 0009 0010 JuliaKeywords::JuliaKeywords() 0011 { 0012 KSyntaxHighlighting::Repository m_repository; 0013 KSyntaxHighlighting::Definition definition = m_repository.definitionForName(QLatin1String("Julia")); 0014 0015 m_keywords = definition.keywordList(QLatin1String("block_begin")); 0016 m_keywords << definition.keywordList(QLatin1String("block_eb")); 0017 m_keywords << definition.keywordList(QLatin1String("block_end")); 0018 m_keywords << definition.keywordList(QLatin1String("keywords")); 0019 0020 //TODO: Upstream pull request to julia.xml from KSyntaxHighlighting? 0021 // https://bugs.kde.org/show_bug.cgi?id=403901 0022 // Add new list to julia.syntax with constans? 0023 m_variables << QLatin1String("false"); 0024 m_variables << QLatin1String("Inf"); 0025 m_variables << QLatin1String("NaN"); 0026 m_variables << QLatin1String("nothing"); 0027 m_variables << QLatin1String("true"); 0028 } 0029 0030 JuliaKeywords *JuliaKeywords::instance() 0031 { 0032 static JuliaKeywords *inst = nullptr; 0033 if (inst == nullptr) { 0034 inst = new JuliaKeywords(); 0035 } 0036 0037 return inst; 0038 } 0039 0040 void JuliaKeywords::addVariable(const QString &variable) 0041 { 0042 if (!m_variables.contains(variable)) { 0043 m_variables << variable; 0044 } 0045 } 0046 0047 void JuliaKeywords::clearVariables() 0048 { 0049 m_removedVariables = m_variables; 0050 m_variables.clear(); 0051 } 0052 0053 void JuliaKeywords::addFunction(const QString &function) 0054 { 0055 if (!m_functions.contains(function)) { 0056 m_functions << function; 0057 } 0058 } 0059 0060 void JuliaKeywords::clearFunctions() 0061 { 0062 m_removedFunctions = m_functions; 0063 m_functions.clear(); 0064 }