8000 Switch over to using lingo for language detection by tclem · Pull Request #230 · github/semantic · GitHub
[go: up one dir, main page]

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

Switch over to using lingo for language detection #230

Merged
merged 6 commits into from
Aug 26, 2019
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Replace supportedExts
  • Loading branch information
tclem committed Aug 15, 2019
commit 0aab5ebd55804f5fbe41ab8f892c33eb439ad85d
1 change: 1 addition & 0 deletions semantic.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -361,6 +361,7 @@ test-suite test
, Data.Functor.Listable
, Data.Graph.Spec
, Data.Mergeable
, Data.Language.Spec
, Data.Range.Spec
, Data.Scientific.Spec
, Data.Semigroup.App.Spec
Expand Down
8 changes: 7 additions & 1 deletion src/Data/Language.hs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ module Data.Language
import Data.Aeson
import qualified Data.Languages as Lingo
import qualified Data.Text as T
import qualified Data.Map.Strict as Map
import Prologue
import System.FilePath.Posix

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

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

codeNavLanguages :: [Language]
codeNavLanguages = [Go, Ruby, Python, JavaScript, TypeScript, PHP]
Expand Down
12 changes: 12 additions & 0 deletions test/Data/Language/Spec.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module Data.Language.Spec (spec) where

import Data.Language
import SpecHelpers

spec :: Spec
spec = describe "Data.Language" $ do
it "supportedExts returns expected list" $
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"]

it "codeNavLanguages returns expected list" $
codeNavLanguages `shouldBe` [Go, Ruby, Python, JavaScript, TypeScript, PHP]
2 changes: 2 additions & 0 deletions test/Spec.hs
< 8D8A th scope="col">Original file line number
Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import qualified Data.Abstract.Name.Spec
import qualified Data.Abstract.Path.Spec
import qualified Data.Functor.Classes.Generic.Spec
import qualified Data.Graph.Spec
import qualified Data.Language.Spec
import qualified Data.Range.Spec
import qualified Data.Scientific.Spec
import qualified Data.Semigroup.App.Spec
Expand Down Expand Up @@ -78,6 +79,7 @@ legacySpecs = parallel $ do
describe "Data.Abstract.Path" Data.Abstract.Path.Spec.spec
describe "Data.Abstract.Name" Data.Abstract.Name.Spec.spec
describe "Data.Functor.Classes.Generic" Data.Functor.Classes.Generic.Spec.spec
describe "Data.Language" Data.Language.Spec.spec
describe "Data.Range" Data.Range.Spec.spec
describe "Data.Scientific" Data.Scientific.Spec.spec
describe "Data.Semigroup.App" Data.Semigroup.App.Spec.spec
Expand Down
0