mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Add .mm as an XML extension with heuristic rule
This commit is contained in:
@@ -34,6 +34,9 @@ module Linguist
|
||||
if languages.all? { |l| ["AsciiDoc", "AGS Script"].include?(l) }
|
||||
result = disambiguate_asc(data, languages)
|
||||
end
|
||||
if languages.all? { |l| ["XML", "Objective-C++"].include?(l) }
|
||||
result = disambiguate_mm(data, languages)
|
||||
end
|
||||
return result
|
||||
end
|
||||
end
|
||||
@@ -124,6 +127,16 @@ module Linguist
|
||||
matches
|
||||
end
|
||||
|
||||
def self.disambiguate_mm(data, languages)
|
||||
matches = []
|
||||
if /<map version="[^"]+">/.match(data)
|
||||
matches << Language["XML"]
|
||||
else
|
||||
matches << Language["Objective-C++"]
|
||||
end
|
||||
matches
|
||||
end
|
||||
|
||||
def self.active?
|
||||
!!ACTIVE
|
||||
end
|
||||
|
||||
@@ -2771,6 +2771,7 @@ XML:
|
||||
- .jelly
|
||||
- .kml
|
||||
- .launch
|
||||
- .mm
|
||||
- .mxml
|
||||
- .nproj
|
||||
- .nuspec
|
||||
|
||||
89
samples/XML/some-ideas.mm
Normal file
89
samples/XML/some-ideas.mm
Normal file
@@ -0,0 +1,89 @@
|
||||
<map version="0.9.0">
|
||||
<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
|
||||
<node COLOR="#000000" CREATED="1385819664217" ID="ID_1105859543" MODIFIED="1385820134114" TEXT="Some ideas on demexp">
|
||||
<font NAME="SansSerif" SIZE="20"/>
|
||||
<hook NAME="accessories/plugins/AutomaticLayout.properties"/>
|
||||
<node COLOR="#0033ff" CREATED="1385819753503" ID="ID_1407588370" MODIFIED="1385819767173" POSITION="right" TEXT="User Interface">
|
||||
<edge STYLE="sharp_bezier" WIDTH="8"/>
|
||||
<font NAME="SansSerif" SIZE="18"/>
|
||||
<node COLOR="#00b439" CREATED="1385819771320" ID="ID_1257512743" MODIFIED="1385819783131" TEXT="Text file">
|
||||
<edge STYLE="bezier" WIDTH="thin"/>
|
||||
<font NAME="SansSerif" SIZE="16"/>
|
||||
</node>
|
||||
<node COLOR="#00b439" CREATED="1385819783831" ID="ID_997633499" MODIFIED="1385819786761" TEXT="Web">
|
||||
<edge STYLE="bezier" WIDTH="thin"/>
|
||||
<font NAME="SansSerif" SIZE="16"/>
|
||||
</node>
|
||||
<node COLOR="#00b439" CREATED="1385819787041" ID="ID_204106158" MODIFIED="1385819794885" TEXT="Graphical interface">
|
||||
<edge STYLE="bezier" WIDTH="thin"/>
|
||||
<font NAME="SansSerif" SIZE="16"/>
|
||||
</node>
|
||||
<node COLOR="#00b439" CREATED="1385819795339" ID="ID_768498137" MODIFIED="1385819800338" TEXT="Email">
|
||||
<edge STYLE="bezier" WIDTH="thin"/>
|
||||
<font NAME="SansSerif" SIZE="16"/>
|
||||
</node>
|
||||
<node COLOR="#00b439" CREATED="1385819801043" ID="ID_1660630451" MODIFIED="1385819802441" TEXT="SMS">
|
||||
<edge STYLE="bezier" WIDTH="thin"/>
|
||||
<font NAME="SansSerif" SIZE="16"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#0033ff" CREATED="1385819872899" ID="ID_281388957" MODIFIED="1385819878444" POSITION="left" TEXT="Cordorcet voting module">
|
||||
<edge STYLE="sharp_bezier" WIDTH="8"/>
|
||||
<font NAME="SansSerif" SIZE="18"/>
|
||||
<node COLOR="#00b439" CREATED="1385819880540" ID="ID_1389666909" MODIFIED="1385819948101" TEXT="Input">
|
||||
<edge STYLE="bezier" WIDTH="thin"/>
|
||||
<font NAME="SansSerif" SIZE="16"/>
|
||||
<node COLOR="#990000" CREATED="1385819893834" ID="ID_631111389" MODIFIED="1385819901697" TEXT="Number of votes">
|
||||
<font NAME="SansSerif" SIZE="14"/>
|
||||
</node>
|
||||
<node COLOR="#990000" CREATED="1385819902442" ID="ID_838201093" MODIFIED="1385819910452" TEXT="Number of possible choices">
|
||||
<font NAME="SansSerif" SIZE="14"/>
|
||||
</node>
|
||||
<node COLOR="#990000" CREATED="1385819910703" ID="ID_1662888975" MODIFIED="1385819933316" TEXT="For a vote: number of votes and list of choices">
|
||||
<font NAME="SansSerif" SIZE="14"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#00b439" CREATED="1385819949027" ID="ID_1504837261" MODIFIED="1385819952198" TEXT="Format">
|
||||
<edge STYLE="bezier" WIDTH="thin"/>
|
||||
<font NAME="SansSerif" SIZE="16"/>
|
||||
<node COLOR="#990000" CREATED="1385819955105" ID="ID_647722151" MODIFIED="1385819962151" TEXT="A single file?">
|
||||
<font NAME="SansSerif" SIZE="14"/>
|
||||
</node>
|
||||
<node COLOR="#990000" CREATED="1385819962642" ID="ID_1374756253" MODIFIED="1385819976939" TEXT="Several files (parameters + 1 per vote)?">
|
||||
<font NAME="SansSerif" SIZE="14"/>
|
||||
</node>
|
||||
<node COLOR="#990000" CREATED="1385819977578" ID="ID_979556559" MODIFIED="1385819984309" TEXT="JSON?">
|
||||
<font NAME="SansSerif" SIZE="14"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#0033ff" CREATED="1385820005408" ID="ID_1886566753" MODIFIED="1385820009909" POSITION="right" TEXT="Technologies">
|
||||
<edge STYLE="sharp_bezier" WIDTH="8"/>
|
||||
<font NAME="SansSerif" SIZE="18"/>
|
||||
<node COLOR="#00b439" CREATED="1385820011913" ID="ID_1291489552" MODIFIED="1385820014698" TEXT="SPARK 2014">
|
||||
<edge STYLE="bezier" WIDTH="thin"/>
|
||||
<font NAME="SansSerif" SIZE="16"/>
|
||||
</node>
|
||||
<node COLOR="#00b439" CREATED="1385820015481" ID="ID_1825929484" MODIFIED="1385820017935" TEXT="Frama-C">
|
||||
<edge STYLE="bezier" WIDTH="thin"/>
|
||||
<font NAME="SansSerif" SIZE="16"/>
|
||||
</node>
|
||||
<node COLOR="#00b439" CREATED="1385820018603" ID="ID_253774957" MODIFIED="1385820027363" TEXT="Why3 -> OCaml">
|
||||
<edge STYLE="bezier" WIDTH="thin"/>
|
||||
<font NAME="SansSerif" SIZE="16"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#0033ff" CREATED="1385820136808" ID="ID_1002115371" MODIFIED="1385820139813" POSITION="left" TEXT="Vote storage">
|
||||
<edge STYLE="sharp_bezier" WIDTH="8"/>
|
||||
<font NAME="SansSerif" SIZE="18"/>
|
||||
<node COLOR="#00b439" CREATED="1385820141400" ID="ID_1882609124" MODIFIED="1385820145261" TEXT="Database">
|
||||
<edge STYLE="bezier" WIDTH="thin"/>
|
||||
<font NAME="SansSerif" SIZE="16"/>
|
||||
</node>
|
||||
<node COLOR="#00b439" CREATED="1385820146138" ID="ID_1771403777" MODIFIED="1385820154334" TEXT="Text file (XML?)">
|
||||
<edge STYLE="bezier" WIDTH="thin"/>
|
||||
<font NAME="SansSerif" SIZE="16"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</map>
|
||||
@@ -122,4 +122,16 @@ class TestHeuristcs < Test::Unit::TestCase
|
||||
results = Heuristics.disambiguate_sc(fixture("Scala/node11.sc"), languages)
|
||||
assert_equal Language["Scala"], results.first
|
||||
end
|
||||
|
||||
def test_mm_objective_cpp_by_heuristics
|
||||
languages = ["XML", "Objective-C++"]
|
||||
results = Heuristics.disambiguate_mm(fixture("Objective-C++/objsql.mm"), languages)
|
||||
assert_equal Language["Objective-C++"], results.first
|
||||
end
|
||||
|
||||
def test_mm_xml_by_heuristics
|
||||
languages = ["XML", "Objective-C++"]
|
||||
results = Heuristics.disambiguate_mm(fixture("XML/some-ideas.mm"), languages)
|
||||
assert_equal Language["XML"], results.first
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user