Merge pull request #56 from jowido/detect-visualstudio-files

Detect visualstudio files
This commit is contained in:
Joshua Peek
2011-07-26 13:16:33 -07:00
3 changed files with 49 additions and 1 deletions

View File

@@ -171,6 +171,7 @@ module Linguist
#
# Includes:
# - XCode project XML files
# - Visual Studio project XNL files
# - Minified JavaScript
#
# Please add additional test coverage to
@@ -178,7 +179,7 @@ module Linguist
#
# Return true or false
def generated?
if ['.xib', '.nib', '.pbxproj', '.xcworkspacedata', '.xcuserstate'].include?(extname)
if xcode_project_file? || visual_studio_project_file?
true
elsif generated_coffeescript? || minified_javascript?
true
@@ -187,6 +188,36 @@ module Linguist
end
end
# Internal: Is the blob an XCode project file?
#
# Generated if the file extension is an XCode project
# file extension.
#
# Returns true of false.
def xcode_project_file?
if ['.xib', '.nib', '.pbxproj', '.xcworkspacedata', '.xcuserstate'].include?(extname)
true
else
false
end
end
# Internal: Is the blob a Visual Studio project file?
#
# Generated if the file extension is a Visual Studio project
# file extension.
#
# Returns true of false.
def visual_studio_project_file?
if ['.csproj', '.dbproj', '.fsproj', '.pyproj', '.rbproj', '.vbproj', '.vcxproj', '.wixproj', '.resx', '.sln', '.vdproj', '.isproj'].include?(extname)
true
else
false
end
end
# Internal: Is the blob minified JS?
#
# Consider JS minified if the average line length is

View File

@@ -937,7 +937,11 @@ XML:
- .rdf
- .rss
- .svg
- .wxi
- .wxl
- .wxs
- .wsdl
- .xaml
- .xml
- .xsd
- .xsl

View File

@@ -123,6 +123,19 @@ class TestBlob < Test::Unit::TestCase
assert blob("MainMenu.nib").generated?
assert blob("project.pbxproj").generated?
# Visual Studio Files
assert blob("project.csproj").generated?
assert blob("project.dbproj").generated?
assert blob("project.isproj").generated?
assert blob("project.pyproj").generated?
assert blob("project.rbproj").generated?
assert blob("project.vbproj").generated?
assert blob("project.vdproj").generated?
assert blob("project.vcxproj").generated?
assert blob("project.wixproj").generated?
assert blob("project.resx").generated?
assert blob("project.sln").generated?
# Long line
assert !blob("uglify.js").generated?