From 7a650036790698c1c434ce81a7559e885bd59414 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Thu, 13 Aug 2020 07:00:49 -0700 Subject: [PATCH] Added Interface colorization type --- IDE/src/Settings.bf | 5 +++++ IDE/src/ui/SourceEditWidgetContent.bf | 1 + IDE/src/ui/SourceViewPanel.bf | 1 + IDEHelper/Compiler/BfModuleTypeUtils.cpp | 10 +++++----- IDEHelper/Compiler/BfSourceClassifier.h | 1 + 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/IDE/src/Settings.bf b/IDE/src/Settings.bf index 44de8b9f..d24c965a 100644 --- a/IDE/src/Settings.bf +++ b/IDE/src/Settings.bf @@ -280,6 +280,7 @@ namespace IDE public Color mMethod = 0XFFA6E22A; public Color mType = 0XFF66D9EF; public Color mRefType = 0XFF66D9EF; + public Color mInterface = 0XFF66D9EF; public Color mNamespace = 0xFF7BEEB7; public Color mDisassemblyText = 0xFFB0B0B0; public Color mDisassemblyFileName = 0XFFFF0000; @@ -316,8 +317,11 @@ namespace IDE GetColor("Type", ref mType); if (!sd.Contains("RefType")) mRefType = mType; + if (!sd.Contains("Interface")) + mInterface = mType; } GetColor("RefType", ref mRefType); + GetColor("Interface", ref mInterface); GetColor("Namespace", ref mNamespace); GetColor("DisassemblyText", ref mDisassemblyText); GetColor("DisassemblyFileName", ref mDisassemblyFileName); @@ -337,6 +341,7 @@ namespace IDE SourceEditWidgetContent.sTextColors[(.)SourceElementType.Method] = mMethod; SourceEditWidgetContent.sTextColors[(.)SourceElementType.Type] = mType; SourceEditWidgetContent.sTextColors[(.)SourceElementType.RefType] = mRefType; + SourceEditWidgetContent.sTextColors[(.)SourceElementType.Interface] = mInterface; SourceEditWidgetContent.sTextColors[(.)SourceElementType.Namespace] = mNamespace; SourceEditWidgetContent.sTextColors[(.)SourceElementType.Disassembly_Text] = mDisassemblyText; SourceEditWidgetContent.sTextColors[(.)SourceElementType.Disassembly_FileName] = mDisassemblyFileName; diff --git a/IDE/src/ui/SourceEditWidgetContent.bf b/IDE/src/ui/SourceEditWidgetContent.bf index 7a47efec..ab486075 100644 --- a/IDE/src/ui/SourceEditWidgetContent.bf +++ b/IDE/src/ui/SourceEditWidgetContent.bf @@ -203,6 +203,7 @@ namespace IDE.ui 0xFFA6E22A, // Method 0xFF66D9EF, // Type 0xFF66D9EF, // RefType + 0xFF66D9EF, // Interface 0xFF7BEEB7, // Namespace 0xFFB0B0B0, // Disassembly_Text diff --git a/IDE/src/ui/SourceViewPanel.bf b/IDE/src/ui/SourceViewPanel.bf index 8a4276a4..36ae76b1 100644 --- a/IDE/src/ui/SourceViewPanel.bf +++ b/IDE/src/ui/SourceViewPanel.bf @@ -31,6 +31,7 @@ namespace IDE.ui Method, Type, RefType, + Interface, Namespace, Disassembly_Text, diff --git a/IDEHelper/Compiler/BfModuleTypeUtils.cpp b/IDEHelper/Compiler/BfModuleTypeUtils.cpp index 1174e6b0..f3ad5119 100644 --- a/IDEHelper/Compiler/BfModuleTypeUtils.cpp +++ b/IDEHelper/Compiler/BfModuleTypeUtils.cpp @@ -6712,8 +6712,8 @@ BfType* BfModule::ResolveTypeResult(BfTypeReference* typeRef, BfType* resolvedTy while (auto qualifiedTypeRef = BfNodeDynCast(checkTypeRef)) { - if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) && (resolvedTypeRef->IsObject())) - mCompiler->mResolvePassData->mSourceClassifier->SetElementType(qualifiedTypeRef->mRight, BfSourceElementType_RefType); + if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) && (resolvedTypeRef->IsObjectOrInterface())) + mCompiler->mResolvePassData->mSourceClassifier->SetElementType(qualifiedTypeRef->mRight, resolvedTypeRef->IsInterface() ? BfSourceElementType_Interface : BfSourceElementType_RefType); StringView leftString = qualifiedTypeRef->mLeft->ToStringView(); BfSizedAtomComposite leftComposite; @@ -6745,16 +6745,16 @@ BfType* BfModule::ResolveTypeResult(BfTypeReference* typeRef, BfType* resolvedTy auto checkNameNode = namedTypeRef->mNameNode; bool setType = false; - if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) && (resolvedTypeRef->IsObject())) + if ((mCompiler->mResolvePassData->mSourceClassifier != NULL) && (resolvedTypeRef->IsObjectOrInterface())) { if (auto qualifiedNameNode = BfNodeDynCast(checkNameNode)) { - mCompiler->mResolvePassData->mSourceClassifier->SetElementType(qualifiedNameNode->mRight, BfSourceElementType_RefType); + mCompiler->mResolvePassData->mSourceClassifier->SetElementType(qualifiedNameNode->mRight, resolvedTypeRef->IsInterface() ? BfSourceElementType_Interface : BfSourceElementType_RefType); } else { setType = true; - mCompiler->mResolvePassData->mSourceClassifier->SetElementType(checkNameNode, BfSourceElementType_RefType); + mCompiler->mResolvePassData->mSourceClassifier->SetElementType(checkNameNode, resolvedTypeRef->IsInterface() ? BfSourceElementType_Interface : BfSourceElementType_RefType); } } diff --git a/IDEHelper/Compiler/BfSourceClassifier.h b/IDEHelper/Compiler/BfSourceClassifier.h index 56bd77ce..8a8372cf 100644 --- a/IDEHelper/Compiler/BfSourceClassifier.h +++ b/IDEHelper/Compiler/BfSourceClassifier.h @@ -17,6 +17,7 @@ enum BfSourceElementType BfSourceElementType_Method, BfSourceElementType_Type, BfSourceElementType_RefType, + BfSourceElementType_Interface, BfSourceElementType_Namespace };