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