8000 Merge branch 'incremental-stack-graphs' of github.com:github/semantic… · github/semantic@79e8498 · 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.

Commit 79e8498

Browse files
committed
Merge branch 'incremental-stack-graphs' of github.com:github/semantic into incremental-stack-graphs
2 parents 711618c + fb8620a commit 79e8498

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

semantic-python/src/Language/Python/ScopeGraph.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import Data.List.NonEmpty (NonEmpty (..))
3636
import qualified Data.List.NonEmpty as NonEmpty
3737
import Data.Monoid (getAp)
3838
import qualified Data.ScopeGraph as ScopeGraph
39+
import qualified Data.Text as Text
3940
import GHC.Records
4041
import GHC.TypeLits
4142
import qualified Language.Python.AST as Py
@@ -282,7 +283,7 @@ instance ToScopeGraph Py.FunctionDefinition where
282283
modify (Stack.addEdge formalParametersScope paramNode)
283284

284285
-- Add the parent scope pointing to the formal parameters node
285-
let parentScopeName = Name.name "ParentScope"
286+
let parentScopeName = Name.name (Text.pack "ParentScope" <> name)
286287
parentScope = Stack.Scope parentScopeName
287288
modify (Stack.addEdge parentScope formalParametersScope)
288289

src/Semantic/Api/StackGraph.hs

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,31 @@
33
{-# LANGUAGE LambdaCase #-}
44
{-# LANGUAGE OverloadedStrings #-}
55
{-# LANGUAGE RecordWildCards #-}
6+
{-# LANGUAGE TypeApplications #-}
67

78
module Semantic.Api.StackGraph
89
( parseStackGraph,
910
parseStackGraphBuilder,
11+
testStackGraph,
1012
TempStackGraph (..),
1113
SGNode (..),
1214
SGPath (..),
1315
)
1416
where
1517

1618
import qualified Algebra.Graph as Graph
19+
import qualified Analysis.File as File
1720
import qualified Analysis.Name as Name
21+
import Control.Carrier.Parse.Measured
22+
import Control.Carrier.Reader
1823
import qualified Control.Carrier.Sketch.ScopeGraph as ScopeGraph
1924
import Control.Effect.Error
20-
import Control.Effect.Parse
21-
import Control.Effect.Reader
2225
import Control.Exception
2326
import Control.Lens hiding ((|>))
2427
import Control.Monad.ST
2528
import Data.Blob
2629
import Data.ByteString.Builder
30+
import Data.Flag
2731
import Data.Foldable
2832
import Data.Functor.Tagged
2933
import Data.Int
@@ -46,12 +50,14 @@ import Proto.Semantic_Fields as P
4650
import Proto.Semantic_JSON ()
4751
import qualified Scope.Graph.Convert as Graph
4852
import Semantic.Api.Bridge
49-
import Semantic.Config
53+
import Semantic.Config as Config
5054
import Semantic.Task
55+
import Semantic.Task.Files
5156
import Serializing.Format (Format)
5257
import Source.Loc as Loc
5358
import qualified Stack.Graph as Stack
5459
import qualified Stack.Path as Path
60+
import qualified System.Path as SystemPath
5561

5662
parseStackGraphBuilder ::
5763
( Effect sig,
@@ -67,6 +73,29 @@ parseStackGraphBuilder ::
6773
parseStackGraphBuilder format blobs =
6874
parseStackGraph blobs >>= serialize format
6975

76+
testOptions :: Config.Options
77+
testOptions =
78+
defaultOptions
79+
{ optionsFailOnWarning = flag FailOnWarning True,
80+
optionsLogLevel = Nothing
81+
}
82+
83+
parseStackGraphFilePath ::
84+
( Has (Error SomeException) sig m,
85+
Has Distribute sig m,
86+
Has Parse sig m,
87+
Has Files sig m,
88+
Effect sig
89+
) =>
90+
SystemPath.RelFile ->
91+
m StackGraphResponse
92+
parseStackGraphFilePath path = readBlob (File.fromPath path) >>= runReader preciseLanguageModes . parseStackGraph . pure @[]
93+
94+
testStackGraph :: SystemPath.RelFile -> IO (Either SomeException StackGraphResponse)
95+
testStackGraph path = withOptions testOptions $ \config logger statter -> do
96+
let session = TaskSession config "-" False logger statter
97+
runTask session (runParse (parseStackGraphFilePath path))
98+
7099
parseStackGraph ::
71100
( Has (Error SomeException) sig m,
72101
Effect sig,

0 commit comments

Comments
 (0)
0