ColorSenseRainbow, 用于显示颜色并允许你修改它们的Xcode插件

分享于 

7分钟阅读

GitHub

  繁體 雙語
A plugin for Xcode that shows colours and allows you to modify them.
  • 源代码名称:ColorSenseRainbow
  • 源代码网址:http://www.github.com/NorthernRealities/ColorSenseRainbow
  • ColorSenseRainbow源代码文档
  • ColorSenseRainbow源代码下载
  • Git URL:
    git://www.github.com/NorthernRealities/ColorSenseRainbow.git
    Git Clone代码到本地:
    git clone http://www.github.com/NorthernRealities/ColorSenseRainbow
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/NorthernRealities/ColorSenseRainbow
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    ColorSenseRainbow

    用于显示颜色并允许你修改它们的Xcode插件。 它在 Swift 和 objective-c 中都适用于UIColor和 NSColor。

    当在一些代码上声明一个颜色的代码时,代码将被框架并且一个小 rectangle 将显示在右边的文本。 这允许你查看颜色。 我不知道你,但是除了一些简单的情况,我不知道什么颜色是通过查看数字。 例如下面的例子让我困惑:

    
    UIColor( red: 143.0/255, green: 87.0/255.0, blue: 233.0/255.0, alpha: 1.0 )
    
    
    
    

    但有了这个插件,它变成了:

    Demo of the plugin

    如果你单击颜色,则显示颜色选取器。 当你选择颜色时,代码会被更新。 首先要注意的是,如果选择了预定义颜色并开始改变颜色,那么代码就会变成RGB值。 在它的他情况下,尽管尽可以能多地改变小数位数,但我试图保持不破坏。 当alpha没有指定( 它不是彩虹库的一部分,因为我将它设置为默认值 1.0 ) 时,插件不会向代码中添加alpha组件。 如果在 2015年05月29日 中更改颜色选择器中的值,插件现在将为你添加 Swift 组件。

    这个项目是从颜色的角度激发的。 事实上它看起来像( 我认为它的行为)。 但是我在 Swift 中完全构建了它,尽管我在Mac方面还没有做过任何项目,但是我使用了这个项目。

    安装

    安装插件有三种方法。

    • 下载代码并构建它。 Xcode将在正确的目录中安装插件。 重启 Xcode。
    • 下载插件并将它的放置在 ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins 目录中。 重启 Xcode。
    • 使用插件 Alcatraz插件安装并重启 Xcode。
    • 为什么重写?

    在扩展使用我的彩虹彩虹Creator库时,我遇到了问题。 我刚刚认识到,当我学习插件的工作方式时,我已经学到了足够的重新构建它。 有几个设计决定,我不赞同。 不是说他们错了,他们只是和我在版本中选择的不一样。

    我非常感谢 Ole on对于原版本以及以后在它的中工作的所有版本。 我不能用他们的版本写我的版本。 我不知道插件。颜色井或者许多我在写作时所学到的它的他一些东西。

    扩展

    我试图使代码非常模块化和可以扩展。 我将介绍如何扩展功能的两个示例。 使用一系列 正规表达式 来发现颜色。 每个人都尽可能简单地做一个特定的任务。 我创建了一些简单的搜索,而不是一些过于复杂的搜索。 例如我可以用一个正则表达式处理浮点值( 0.0 -1.0 )。计算值( 45/255 ) 和整数值( 45 ),该值是可选的。 相反,我把它放在了3 个 正规表达式 子。 我觉得这个决定很大程度上降低了新颜色( 生成器类) 代码的代码,提高了可以读性。

    当添加新的颜色创建方法时,你应该看看它是否与插件已经做过的事情相似。 相似是用同样的参数创造一种颜色。

    目前彩虹制作库只在 Swift 中工作。 在UIColor和NSColor的扩展中,允许你创建颜色,而不必将整数值分为 255.0. 如果我在 objective-c 中实现这个库,那么我还需要更新这个插件。 因为使用库的objective-c 代码与 Swift 代码非常相似,所以更新这个插件的最佳位置是RainbowIntSeeker类。 在这种情况下,需要做的是创建新的正规表达式 和测试。

    用新颜色信息替换代码的类解析字符串并改变值而不是从头创建代码。 这种方法可以保持用户在( 我喜欢额外的空间) 中放置的格式,并且避免编写一堆语句来检查语言是否为 Swift 或者 objective-c,如果颜色是NSColor或者 UIColor。 缺点是有些函数仍然使用 NSRange,并且可能会导致使用包含扩展字符等扩展字符的问题。

    假设你想扩展插件,并且这不是一些简单的东西,那么你需要更多的工作。 但希望不要太多。 以下是使用色调。饱和度和亮度( HSB ) 添加颜色的处理的步骤。 当重写以下函数metioned时,将其他类作为模板来查看。 它们都遵循类似的Pattern。

    • 在SearchResult类中的CSRColorCreationType中添加值
    • 创建新的导引头子类
    • 重写init方法以定义所需的正规表达式
    • 重写processMatch方法以在创建 MATCH 时存储值并创建颜色。 记住将搜索结果的创建类型更改为你在第一步中所做的值。 ( 同时你将创建一个带有oab值的颜色,在插件上以后的颜色中可以获得颜色)。 如果你不这样做,它会使崩溃
    • 将新的导引头子类对象添加到ColorFinder中找到的array。 最好是在最终的性能方面做这件事。 定义颜色最常见的方法应该在前面,以便首先减少搜索量。
    • 创建ColorBuilder的新子类
    • 重写函数 stringForColor
    • 将新的ColorBuilder子类添加到ColorBuilderFactory中的switch 语句中。

    plugin  COL  显示  MODI  colour  colours