mirror of
https://github.com/github/semantic.git
synced 2024-11-24 08:54:07 +03:00
Add Data.Loc.fromTSSpan.
We'll probably change this so that Unmarshal can do this for us, but this implementation will suffice for now.
This commit is contained in:
parent
3d488ec7e7
commit
60fa4c82ab
@ -51,6 +51,7 @@ library
|
||||
, semigroupoids ^>= 5.3
|
||||
, text ^>= 1.2.3.1
|
||||
, transformers ^>= 0.5.6
|
||||
, tree-sitter == 0.3.0.0
|
||||
, trifecta ^>= 2
|
||||
, unordered-containers ^>= 0.2.10
|
||||
hs-source-dirs: src
|
||||
|
@ -1,7 +1,9 @@
|
||||
{-# LANGUAGE FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, OverloadedStrings, RecordWildCards, TypeOperators, UndecidableInstances #-}
|
||||
{-# LANGUAGE FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, OverloadedStrings, RecordWildCards,
|
||||
TypeOperators, UndecidableInstances #-}
|
||||
module Data.Loc
|
||||
( Loc(..)
|
||||
, interactive
|
||||
, fromTSSpan
|
||||
, Span(..)
|
||||
, emptySpan
|
||||
, Pos(..)
|
||||
@ -11,15 +13,16 @@ module Data.Loc
|
||||
, runFailWithLoc
|
||||
) where
|
||||
|
||||
import Control.Applicative
|
||||
import Control.Effect.Carrier
|
||||
import Control.Effect.Error
|
||||
import Control.Effect.Fail
|
||||
import Control.Effect.Reader
|
||||
import Data.Text (Text, pack)
|
||||
import Data.Text.Prettyprint.Doc (Pretty (..))
|
||||
import GHC.Stack
|
||||
import Prelude hiding (fail)
|
||||
import Control.Applicative
|
||||
import Control.Effect.Carrier
|
||||
import Control.Effect.Error
|
||||
import Control.Effect.Fail
|
||||
import Control.Effect.Reader
|
||||
import Data.Text (Text, pack)
|
||||
import Data.Text.Prettyprint.Doc (Pretty (..))
|
||||
import GHC.Stack
|
||||
import Prelude hiding (fail)
|
||||
import qualified TreeSitter.Span as TreeSitter
|
||||
|
||||
data Loc = Loc
|
||||
{ locPath :: !Text
|
||||
@ -27,6 +30,10 @@ data Loc = Loc
|
||||
}
|
||||
deriving (Eq, Ord, Show)
|
||||
|
||||
fromTSSpan :: TreeSitter.Span -> Loc
|
||||
fromTSSpan (TreeSitter.Span (TreeSitter.Pos a b) (TreeSitter.Pos c d))
|
||||
= Loc mempty (Span (Pos a b) (Pos c d))
|
||||
|
||||
interactive :: Loc
|
||||
interactive = Loc "<interactive>" emptySpan
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user