File indexing completed on 2023-05-30 11:20:06
0001 /* 0002 SPDX-FileCopyrightText: 2010 Milian Wolff 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "phphighlighting.h" 0008 #include <language/duchain/declaration.h> 0009 0010 #include "duchain/declarations/variabledeclaration.h" 0011 0012 using namespace KDevelop; 0013 using namespace Php; 0014 0015 //BEGIN HighlightingInstance 0016 0017 class HighlightingInstance : public CodeHighlightingInstance { 0018 public: 0019 HighlightingInstance(const CodeHighlighting* highlighting); 0020 CodeHighlightingType typeForDeclaration(KDevelop::Declaration* decl, KDevelop::DUContext* context) const override; 0021 bool useRainbowColor( Declaration* dec ) const override; 0022 }; 0023 0024 HighlightingInstance::HighlightingInstance(const CodeHighlighting* highlighting) 0025 : CodeHighlightingInstance(highlighting) 0026 { 0027 } 0028 0029 CodeHighlightingType HighlightingInstance::typeForDeclaration(Declaration* decl, DUContext* context) const 0030 { 0031 if (decl && !decl->isFunctionDeclaration() && decl->abstractType() 0032 && decl->abstractType()->modifiers() & AbstractType::ConstModifier 0033 && !dynamic_cast<VariableDeclaration*>(decl) ) 0034 { 0035 return CodeHighlightingType::Enum; 0036 } else { 0037 return CodeHighlightingInstance::typeForDeclaration(decl, context); 0038 } 0039 } 0040 0041 bool HighlightingInstance::useRainbowColor( Declaration* dec ) const 0042 { 0043 return dynamic_cast<VariableDeclaration*>(dec); 0044 } 0045 0046 //BEGIN Highlighting 0047 0048 Highlighting::Highlighting(QObject* parent) 0049 : CodeHighlighting(parent) 0050 { 0051 0052 } 0053 0054 CodeHighlightingInstance* Highlighting::createInstance() const 0055 { 0056 return new HighlightingInstance(this); 0057 }