fisheva / Eva-Theme

A comfortable and semantic theme.
https://marketplace.visualstudio.com/items?itemName=fisheva.eva-theme
MIT License
452 stars 38 forks source link

Use different colors to distinguish classes from interfaces #63

Closed pasqualedante closed 2 years ago

pasqualedante commented 3 years ago

At this moment class and interface use the same color. From UX point of view, it would be better to have two different colors. Thanks in advance.

image

fisheva commented 3 years ago

Hi, @pasqualedante

Sorry for reply late. There are three reasons for this setting:

1) Vscode does not correctly distinguish between Interface and Class everywhere. For example, the scope values of Class and Interface in the following screenshot are exactly the same. 企业微信截图_20210917104400 企业微信截图_20210917104410

2) There are no other colors available for the Interface currently. At present, other colors have their own stable meaning. Changing to other colors will interfere with their semantics too. And creating a new color is not easy. The newly created color shall meet the following requirements:

3) The current colors of Class, Interface and Struct are the same. If set a separate color for the Interface, should Struct also set a color? Because of the second constraint, the semantic richness of the code is much more than the number of colors we can use. The semantics, writing methods and usage of Class, Interface and Struct are similar, so I temporarily give them the same color. Maybe I will find a better way to distinguish them in the future.


Can you copy the code and context in your picture for me to test? I want to see why "public class" is pink. Thanks!

pasqualedante commented 3 years ago
namespace Edigit.Views.Pannello2.ViewModels {
    using AutoMapper;
    using DevExpress.Data;
    using DevExpress.Mvvm;
    using DevExpress.Mvvm.DataAnnotations;
    using DevExpress.Mvvm.POCO;
    using DevExpress.Xpf.Bars;
    using DevExpress.Xpf.Grid;
    //...
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.IO;
    using System.Linq;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Media;

    [POCOViewModel]
    public class Pannello2ViewModel
        : ILicenseAware
        , ICiceroAware
        , IAppStatusbarBarManager {
//...
}