mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Merge pull request #2298 from github/add-proximity-test
Add proximity test for colors
This commit is contained in:
@@ -23,4 +23,5 @@ Gem::Specification.new do |s|
|
||||
s.add_development_dependency 'pry'
|
||||
s.add_development_dependency 'rake'
|
||||
s.add_development_dependency 'yajl-ruby'
|
||||
s.add_development_dependency 'color-proximity', '~> 0.2.1'
|
||||
end
|
||||
|
||||
@@ -46,7 +46,7 @@ AGS Script:
|
||||
|
||||
AMPL:
|
||||
type: programming
|
||||
color: "#00008B"
|
||||
color: "#E6EFBB"
|
||||
extensions:
|
||||
- .ampl
|
||||
tm_scope: source.ampl
|
||||
@@ -61,7 +61,7 @@ ANTLR:
|
||||
|
||||
APL:
|
||||
type: programming
|
||||
color: "#8a0707"
|
||||
color: "#5A8164"
|
||||
extensions:
|
||||
- .apl
|
||||
- .dyalog
|
||||
@@ -101,7 +101,7 @@ ATS:
|
||||
ActionScript:
|
||||
type: programming
|
||||
tm_scope: source.actionscript.3
|
||||
color: "#e3491a"
|
||||
color: "#882B0F"
|
||||
search_term: as3
|
||||
aliases:
|
||||
- actionscript 3
|
||||
@@ -125,7 +125,7 @@ Ada:
|
||||
|
||||
Agda:
|
||||
type: programming
|
||||
color: "#467C91"
|
||||
color: "#315665"
|
||||
extensions:
|
||||
- .agda
|
||||
ace_mode: text
|
||||
@@ -175,7 +175,7 @@ AppleScript:
|
||||
|
||||
Arc:
|
||||
type: programming
|
||||
color: "#ca2afe"
|
||||
color: "#aa2afe"
|
||||
extensions:
|
||||
- .arc
|
||||
tm_scope: none
|
||||
@@ -201,7 +201,7 @@ AsciiDoc:
|
||||
|
||||
AspectJ:
|
||||
type: programming
|
||||
color: "#1957b0"
|
||||
color: "#a957b0"
|
||||
extensions:
|
||||
- .aj
|
||||
tm_scope: none
|
||||
@@ -240,7 +240,7 @@ AutoHotkey:
|
||||
|
||||
AutoIt:
|
||||
type: programming
|
||||
color: "#36699B"
|
||||
color: "#1C3552"
|
||||
aliases:
|
||||
- au3
|
||||
- AutoIt3
|
||||
@@ -498,14 +498,14 @@ ChucK:
|
||||
|
||||
Cirru:
|
||||
type: programming
|
||||
color: "#aaaaff"
|
||||
color: "#ccccff"
|
||||
ace_mode: cirru
|
||||
extensions:
|
||||
- .cirru
|
||||
|
||||
Clean:
|
||||
type: programming
|
||||
color: "#3a81ad"
|
||||
color: "#3F85AF"
|
||||
extensions:
|
||||
- .icl
|
||||
- .dcl
|
||||
@@ -645,7 +645,7 @@ Creole:
|
||||
|
||||
Crystal:
|
||||
type: programming
|
||||
color: "#76EEF5"
|
||||
color: "#776791"
|
||||
extensions:
|
||||
- .cr
|
||||
ace_mode: ruby
|
||||
@@ -705,7 +705,7 @@ D-ObjDump:
|
||||
|
||||
DM:
|
||||
type: programming
|
||||
color: "#075ff1"
|
||||
color: "#447265"
|
||||
extensions:
|
||||
- .dm
|
||||
aliases:
|
||||
@@ -737,7 +737,7 @@ Darcs Patch:
|
||||
|
||||
Dart:
|
||||
type: programming
|
||||
color: "#98BAD6"
|
||||
color: "#00B4AB"
|
||||
extensions:
|
||||
- .dart
|
||||
ace_mode: dart
|
||||
@@ -772,7 +772,7 @@ Dogescript:
|
||||
|
||||
Dylan:
|
||||
type: programming
|
||||
color: "#3ebc27"
|
||||
color: "#6c616e"
|
||||
extensions:
|
||||
- .dylan
|
||||
- .dyl
|
||||
@@ -799,7 +799,7 @@ ECL:
|
||||
|
||||
Eagle:
|
||||
type: markup
|
||||
color: "#3994bc"
|
||||
color: "#814C05"
|
||||
extensions:
|
||||
- .sch
|
||||
- .brd
|
||||
@@ -857,7 +857,7 @@ Emacs Lisp:
|
||||
|
||||
EmberScript:
|
||||
type: programming
|
||||
color: "#f64e3e"
|
||||
color: "#FFF4F3"
|
||||
extensions:
|
||||
- .em
|
||||
- .emberscript
|
||||
@@ -866,7 +866,7 @@ EmberScript:
|
||||
|
||||
Erlang:
|
||||
type: programming
|
||||
color: "#0faf8d"
|
||||
color: "#B83998"
|
||||
extensions:
|
||||
- .erl
|
||||
- .es
|
||||
@@ -895,7 +895,7 @@ F#:
|
||||
|
||||
FLUX:
|
||||
type: programming
|
||||
color: "#33CCFF"
|
||||
color: "#88ccff"
|
||||
extensions:
|
||||
- .fx
|
||||
- .flux
|
||||
@@ -1045,7 +1045,7 @@ GLSL:
|
||||
|
||||
Game Maker Language:
|
||||
type: programming
|
||||
color: "#8ad353"
|
||||
color: "#8fb200"
|
||||
extensions:
|
||||
- .gml
|
||||
tm_scope: source.c++
|
||||
@@ -1119,7 +1119,7 @@ Go:
|
||||
|
||||
Golo:
|
||||
type: programming
|
||||
color: "#f6a51f"
|
||||
color: "#88562A"
|
||||
extensions:
|
||||
- .golo
|
||||
tm_scope: source.golo
|
||||
@@ -1158,7 +1158,7 @@ Grammatical Framework:
|
||||
extensions:
|
||||
- .gf
|
||||
searchable: true
|
||||
color: "#ff0000"
|
||||
color: "#79aa7a"
|
||||
tm_scope: source.haskell
|
||||
ace_mode: haskell
|
||||
|
||||
@@ -1326,7 +1326,7 @@ Haxe:
|
||||
Hy:
|
||||
type: programming
|
||||
ace_mode: text
|
||||
color: "#7891b1"
|
||||
color: "#7790B2"
|
||||
extensions:
|
||||
- .hy
|
||||
aliases:
|
||||
@@ -1335,7 +1335,7 @@ Hy:
|
||||
|
||||
IDL:
|
||||
type: programming
|
||||
color: "#e3592c"
|
||||
color: "#a3522f"
|
||||
extensions:
|
||||
- .pro
|
||||
- .dlm
|
||||
@@ -1420,7 +1420,7 @@ Ioke:
|
||||
|
||||
Isabelle:
|
||||
type: programming
|
||||
color: "#fdcd00"
|
||||
color: "#FEFE00"
|
||||
extensions:
|
||||
- .thy
|
||||
tm_scope: source.isabelle.theory
|
||||
@@ -1428,7 +1428,7 @@ Isabelle:
|
||||
|
||||
J:
|
||||
type: programming
|
||||
color: "#2d8abd"
|
||||
color: "#9EEDFF"
|
||||
extensions:
|
||||
- .ijs
|
||||
tm_scope: source.j
|
||||
@@ -1556,7 +1556,7 @@ Julia:
|
||||
|
||||
KRL:
|
||||
type: programming
|
||||
color: "#f5c800"
|
||||
color: "#28431f"
|
||||
extensions:
|
||||
- .krl
|
||||
tm_scope: none
|
||||
@@ -1627,7 +1627,7 @@ LabVIEW:
|
||||
|
||||
Lasso:
|
||||
type: programming
|
||||
color: "#2584c3"
|
||||
color: "#999999"
|
||||
extensions:
|
||||
- .lasso
|
||||
- .las
|
||||
@@ -1787,7 +1787,7 @@ M:
|
||||
|
||||
MTML:
|
||||
type: markup
|
||||
color: "#0095d9"
|
||||
color: "#b7e1f4"
|
||||
extensions:
|
||||
- .mtml
|
||||
tm_scope: text.html.basic
|
||||
@@ -1882,7 +1882,7 @@ Maven POM:
|
||||
|
||||
Max:
|
||||
type: programming
|
||||
color: "#ce279c"
|
||||
color: "#c4a79c"
|
||||
aliases:
|
||||
- max/msp
|
||||
- maxmsp
|
||||
@@ -1906,7 +1906,7 @@ MediaWiki:
|
||||
|
||||
Mercury:
|
||||
type: programming
|
||||
color: "#abcdef"
|
||||
color: "#ff2b2b"
|
||||
ace_mode: prolog
|
||||
interpreters:
|
||||
- mmi
|
||||
@@ -1987,14 +1987,14 @@ NSIS:
|
||||
|
||||
Nemerle:
|
||||
type: programming
|
||||
color: "#0d3c6e"
|
||||
color: "#3d3c6e"
|
||||
extensions:
|
||||
- .n
|
||||
ace_mode: text
|
||||
|
||||
NetLinx:
|
||||
type: programming
|
||||
color: "#0000ff"
|
||||
color: "#0aa0ff"
|
||||
extensions:
|
||||
- .axs
|
||||
- .axi
|
||||
@@ -2003,7 +2003,7 @@ NetLinx:
|
||||
|
||||
NetLinx+ERB:
|
||||
type: programming
|
||||
color: "#407fff"
|
||||
color: "#747faa"
|
||||
extensions:
|
||||
- .axs.erb
|
||||
- .axi.erb
|
||||
@@ -2012,7 +2012,7 @@ NetLinx+ERB:
|
||||
|
||||
NetLogo:
|
||||
type: programming
|
||||
color: "#ff2b2b"
|
||||
color: "#ff6375"
|
||||
extensions:
|
||||
- .nlogo
|
||||
tm_scope: source.lisp
|
||||
@@ -2021,7 +2021,7 @@ NetLogo:
|
||||
NewLisp:
|
||||
type: programming
|
||||
lexer: NewLisp
|
||||
color: "#eedd66"
|
||||
color: "#87AED7"
|
||||
extensions:
|
||||
- .nl
|
||||
- .lisp
|
||||
@@ -2058,7 +2058,7 @@ Ninja:
|
||||
|
||||
Nit:
|
||||
type: programming
|
||||
color: "#0d8921"
|
||||
color: "#009917"
|
||||
extensions:
|
||||
- .nit
|
||||
tm_scope: source.nit
|
||||
@@ -2066,7 +2066,7 @@ Nit:
|
||||
|
||||
Nix:
|
||||
type: programming
|
||||
color: "#7070ff"
|
||||
color: "#7e7eff"
|
||||
extensions:
|
||||
- .nix
|
||||
aliases:
|
||||
@@ -2138,7 +2138,7 @@ Objective-C:
|
||||
Objective-C++:
|
||||
type: programming
|
||||
tm_scope: source.objc++
|
||||
color: "#4886FC"
|
||||
color: "#6866fb"
|
||||
aliases:
|
||||
- obj-c++
|
||||
- objc++
|
||||
@@ -2229,7 +2229,7 @@ Ox:
|
||||
|
||||
Oxygene:
|
||||
type: programming
|
||||
color: "#5a63a3"
|
||||
color: "#cdd0e3"
|
||||
extensions:
|
||||
- .oxygene
|
||||
tm_scope: none
|
||||
@@ -2237,7 +2237,7 @@ Oxygene:
|
||||
|
||||
Oz:
|
||||
type: programming
|
||||
color: "#fcaf3e"
|
||||
color: "#fab738"
|
||||
extensions:
|
||||
- .oz
|
||||
tm_scope: source.oz
|
||||
@@ -2373,7 +2373,7 @@ Perl:
|
||||
|
||||
Perl6:
|
||||
type: programming
|
||||
color: "#0298c3"
|
||||
color: "#0000fb"
|
||||
extensions:
|
||||
- .6pl
|
||||
- .6pm
|
||||
@@ -2403,7 +2403,7 @@ PigLatin:
|
||||
|
||||
Pike:
|
||||
type: programming
|
||||
color: "#066ab2"
|
||||
color: "#005390"
|
||||
extensions:
|
||||
- .pike
|
||||
- .pmod
|
||||
@@ -2449,7 +2449,7 @@ PowerShell:
|
||||
|
||||
Processing:
|
||||
type: programming
|
||||
color: "#2779ab"
|
||||
color: "#0096D8"
|
||||
extensions:
|
||||
- .pde
|
||||
ace_mode: text
|
||||
@@ -2468,7 +2468,7 @@ Prolog:
|
||||
|
||||
Propeller Spin:
|
||||
type: programming
|
||||
color: "#2b446d"
|
||||
color: "#7fa2a7"
|
||||
extensions:
|
||||
- .spin
|
||||
tm_scope: source.spin
|
||||
@@ -2494,7 +2494,7 @@ Public Key:
|
||||
|
||||
Puppet:
|
||||
type: programming
|
||||
color: "#cc5555"
|
||||
color: "#332A77"
|
||||
extensions:
|
||||
- .pp
|
||||
filenames:
|
||||
@@ -2520,7 +2520,7 @@ PureBasic:
|
||||
|
||||
PureScript:
|
||||
type: programming
|
||||
color: "#bcdc53"
|
||||
color: "#1D222D"
|
||||
extensions:
|
||||
- .purs
|
||||
tm_scope: source.haskell
|
||||
@@ -2529,7 +2529,7 @@ PureScript:
|
||||
Python:
|
||||
type: programming
|
||||
ace_mode: python
|
||||
color: "#3581ba"
|
||||
color: "#3572A5"
|
||||
extensions:
|
||||
- .py
|
||||
- .cgi
|
||||
@@ -2647,7 +2647,7 @@ RMarkdown:
|
||||
|
||||
Racket:
|
||||
type: programming
|
||||
color: "#ae17ff"
|
||||
color: "#22228f"
|
||||
extensions:
|
||||
- .rkt
|
||||
- .rktd
|
||||
@@ -2660,7 +2660,7 @@ Racket:
|
||||
|
||||
Ragel in Ruby Host:
|
||||
type: programming
|
||||
color: "#ff9c2e"
|
||||
color: "#e17600"
|
||||
extensions:
|
||||
- .rl
|
||||
aliases:
|
||||
@@ -2791,7 +2791,7 @@ Rust:
|
||||
|
||||
SAS:
|
||||
type: programming
|
||||
color: "#1E90FF"
|
||||
color: "#B34936"
|
||||
extensions:
|
||||
- .sas
|
||||
tm_scope: source.sas
|
||||
@@ -2815,7 +2815,7 @@ SPARQL:
|
||||
|
||||
SQF:
|
||||
type: programming
|
||||
color: "#FFCB1F"
|
||||
color: "#3F3F3F"
|
||||
extensions:
|
||||
- .sqf
|
||||
- .hqf
|
||||
@@ -2992,7 +2992,7 @@ Slash:
|
||||
Slim:
|
||||
group: HTML
|
||||
type: markup
|
||||
color: "#ff8877"
|
||||
color: "#ff8f77"
|
||||
extensions:
|
||||
- .slim
|
||||
ace_mode: text
|
||||
@@ -3015,7 +3015,7 @@ Smarty:
|
||||
|
||||
SourcePawn:
|
||||
type: programming
|
||||
color: "#f69e1d"
|
||||
color: "#5c7611"
|
||||
aliases:
|
||||
- sourcemod
|
||||
extensions:
|
||||
@@ -3083,7 +3083,7 @@ Swift:
|
||||
|
||||
SystemVerilog:
|
||||
type: programming
|
||||
color: "#343761"
|
||||
color: "#DAE1C2"
|
||||
extensions:
|
||||
- .sv
|
||||
- .svh
|
||||
@@ -3208,7 +3208,7 @@ Twig:
|
||||
|
||||
TypeScript:
|
||||
type: programming
|
||||
color: "#31859c"
|
||||
color: "#2b7489"
|
||||
aliases:
|
||||
- ts
|
||||
extensions:
|
||||
@@ -3220,7 +3220,7 @@ Unified Parallel C:
|
||||
type: programming
|
||||
group: C
|
||||
ace_mode: c_cpp
|
||||
color: "#755223"
|
||||
color: "#4e3617"
|
||||
extensions:
|
||||
- .upc
|
||||
tm_scope: source.c
|
||||
@@ -3234,8 +3234,8 @@ UnrealScript:
|
||||
ace_mode: java
|
||||
|
||||
VCL:
|
||||
group: Perl
|
||||
type: programming
|
||||
color: "#0298c3"
|
||||
extensions:
|
||||
- .vcl
|
||||
tm_scope: source.varnish.vcl
|
||||
@@ -3243,7 +3243,7 @@ VCL:
|
||||
|
||||
VHDL:
|
||||
type: programming
|
||||
color: "#543978"
|
||||
color: "#adb2cb"
|
||||
extensions:
|
||||
- .vhdl
|
||||
- .vhd
|
||||
@@ -3257,7 +3257,7 @@ VHDL:
|
||||
|
||||
Vala:
|
||||
type: programming
|
||||
color: "#ee7d06"
|
||||
color: "#fbe5cd"
|
||||
extensions:
|
||||
- .vala
|
||||
- .vapi
|
||||
@@ -3265,7 +3265,7 @@ Vala:
|
||||
|
||||
Verilog:
|
||||
type: programming
|
||||
color: "#848bf3"
|
||||
color: "#b2b7f8"
|
||||
extensions:
|
||||
- .v
|
||||
- .veo
|
||||
@@ -3273,7 +3273,7 @@ Verilog:
|
||||
|
||||
VimL:
|
||||
type: programming
|
||||
color: "#199c4b"
|
||||
color: "#199f4b"
|
||||
search_term: vim
|
||||
aliases:
|
||||
- vim
|
||||
@@ -3309,7 +3309,7 @@ Visual Basic:
|
||||
|
||||
Volt:
|
||||
type: programming
|
||||
color: "#0098db"
|
||||
color: "#1F1F1F"
|
||||
extensions:
|
||||
- .volt
|
||||
tm_scope: source.d
|
||||
@@ -3317,7 +3317,7 @@ Volt:
|
||||
|
||||
Web Ontology Language:
|
||||
type: markup
|
||||
color: "#3994bc"
|
||||
color: "#9cc9dd"
|
||||
extensions:
|
||||
- .owl
|
||||
tm_scope: text.xml
|
||||
@@ -3433,7 +3433,7 @@ XProc:
|
||||
|
||||
XQuery:
|
||||
type: programming
|
||||
color: "#2700e2"
|
||||
color: "#5232e7"
|
||||
extensions:
|
||||
- .xquery
|
||||
- .xq
|
||||
@@ -3516,7 +3516,7 @@ desktop:
|
||||
|
||||
eC:
|
||||
type: programming
|
||||
color: "#4A4773"
|
||||
color: "#913960"
|
||||
search_term: ec
|
||||
extensions:
|
||||
- .ec
|
||||
@@ -3548,7 +3548,7 @@ mupad:
|
||||
|
||||
nesC:
|
||||
type: programming
|
||||
color: "#ffce3b"
|
||||
color: "#94B0C7"
|
||||
extensions:
|
||||
- .nc
|
||||
ace_mode: text
|
||||
@@ -3581,7 +3581,7 @@ wisp:
|
||||
|
||||
xBase:
|
||||
type: programming
|
||||
color: "#3a4040"
|
||||
color: "#403a40"
|
||||
extensions:
|
||||
- .prg
|
||||
tm_scope: none
|
||||
|
||||
@@ -2,6 +2,7 @@ require "bundler/setup"
|
||||
require "minitest/autorun"
|
||||
require "mocha/setup"
|
||||
require "linguist"
|
||||
require 'color-proximity'
|
||||
|
||||
def fixtures_path
|
||||
File.expand_path("../fixtures", __FILE__)
|
||||
|
||||
23
test/test_color_proximity.rb
Normal file
23
test/test_color_proximity.rb
Normal file
@@ -0,0 +1,23 @@
|
||||
require_relative "./helper"
|
||||
|
||||
class TestColorProximity < Minitest::Test
|
||||
include Linguist
|
||||
|
||||
def cut_hash(color)
|
||||
color[1..-1] if color.start_with?('#')
|
||||
end
|
||||
|
||||
def test_color_proximity
|
||||
langs_with_colors = Language.all.reject { |language| language.color.nil? }
|
||||
cp = ColorProximity.new(0.05, langs_with_colors.map { |lang| cut_hash(lang.color) })
|
||||
failing_threshold = langs_with_colors.map do |lang|
|
||||
state = cp.past_threshold?(cut_hash(lang.color))
|
||||
if !state.first && lang.color != "##{state.last.first}"
|
||||
"- #{lang} (#{lang.color}) is too close to #{state.last}"
|
||||
end
|
||||
end.compact
|
||||
message = "The following #{failing_threshold.length} languages have failing color thresholds. Please modify the hex color.\n#{failing_threshold.join("\n")}"
|
||||
|
||||
assert failing_threshold.empty?, message
|
||||
end
|
||||
end
|
||||
@@ -286,9 +286,9 @@ class TestLanguage < Minitest::Test
|
||||
|
||||
def test_color
|
||||
assert_equal '#701516', Language['Ruby'].color
|
||||
assert_equal '#3581ba', Language['Python'].color
|
||||
assert_equal '#3572A5', Language['Python'].color
|
||||
assert_equal '#f1e05a', Language['JavaScript'].color
|
||||
assert_equal '#31859c', Language['TypeScript'].color
|
||||
assert_equal '#2b7489', Language['TypeScript'].color
|
||||
assert_equal '#3d9970', Language['LSL'].color
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user