Skip to content
This repository was archived by the owner on Apr 1, 2025. It is now read-only.

Commit 0aab5eb

Browse files
committed
Replace supportedExts
1 parent 2510df0 commit 0aab5eb

File tree

4 files changed

+22
-1
lines changed

4 files changed

+22
-1
lines changed

semantic.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,7 @@ test-suite test
361361
, Data.Functor.Listable
362362
, Data.Graph.Spec
363363
, Data.Mergeable
364+
, Data.Language.Spec
364365
, Data.Range.Spec
365366
, Data.Scientific.Spec
366367
, Data.Semigroup.App.Spec

src/Data/Language.hs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ module Data.Language
1414
import Data.Aeson
1515
import qualified Data.Languages as Lingo
1616
import qualified Data.Text as T
17+
import qualified Data.Map.Strict as Map
1718
import Prologue
1819
import System.FilePath.Posix
1920

@@ -129,7 +130,12 @@ languageForFilePath path = case Lingo.languageName <$> Lingo.languageForPath pat
129130
_ -> Unknown
130131

131132
supportedExts :: [String]
132-
supportedExts = [".go", ".py", ".rb", ".js", ".mjs", ".ts", ".php", ".phpt"]
133+
supportedExts = foldr append mempty supportedLanguages
134+
where
135+
append (Just l) b = fmap T.unpack (Lingo.languageExtensions l) <> b
136+
append Nothing b = b
137+
supportedLanguages = fmap lookup ["Go", "Ruby", "Python", "JavaScript", "TypeScript", "PHP"]
138+
lookup k = Map.lookup k Lingo.languages
133139

134140
codeNavLanguages :: [Language]
135141
codeNavLanguages = [Go, Ruby, Python, JavaScript, TypeScript, PHP]

test/Data/Language/Spec.hs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
module Data.Language.Spec (spec) where
2+
3+
import Data.Language
4+
import SpecHelpers
5+
6+
spec :: Spec
7+
spec = describe "Data.Language" $ do
8+
it "supportedExts returns expected list" $
9+
supportedExts `shouldBe` [".go",".rb",".builder",".eye",".fcgi",".gemspec",".god",".jbuilder",".mspec",".pluginspec",".podspec",".rabl",".rake",".rbuild",".rbw",".rbx",".ru",".ruby",".spec",".thor",".watchr",".py",".bzl",".cgi",".fcgi",".gyp",".gypi",".lmi",".py3",".pyde",".pyi",".pyp",".pyt",".pyw",".rpy",".spec",".tac",".wsgi",".xpy",".js","._js",".bones",".es",".es6",".frag",".gs",".jake",".jsb",".jscad",".jsfl",".jsm",".jss",".mjs",".njs",".pac",".sjs",".ssjs",".xsjs",".xsjslib",".ts",".php",".aw",".ctp",".fcgi",".inc",".php3",".php4",".php5",".phps",".phpt"]
10+
11+
it "codeNavLanguages returns expected list" $
12+
codeNavLanguages `shouldBe` [Go, Ruby, Python, JavaScript, TypeScript, PHP]

test/Spec.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import qualified Data.Abstract.Name.Spec
1414
import qualified Data.Abstract.Path.Spec
1515
import qualified Data.Functor.Classes.Generic.Spec
1616
import qualified Data.Graph.Spec
17+
import qualified Data.Language.Spec
1718
import qualified Data.Range.Spec
1819
import qualified Data.Scientific.Spec
1920
import qualified Data.Semigroup.App.Spec
@@ -78,6 +79,7 @@ legacySpecs = parallel $ do
7879
describe "Data.Abstract.Path" Data.Abstract.Path.Spec.spec
7980
describe "Data.Abstract.Name" Data.Abstract.Name.Spec.spec
8081
describe "Data.Functor.Classes.Generic" Data.Functor.Classes.Generic.Spec.spec
82+
describe "Data.Language" Data.Language.Spec.spec
8183
describe "Data.Range" Data.Range.Spec.spec
8284
describe "Data.Scientific" Data.Scientific.Spec.spec
8385
describe "Data.Semigroup.App" Data.Semigroup.App.Spec.spec

0 commit comments

Comments
 (0)