Skip to content

Commit ae8f5b3

Browse files
committed
Expose Workspace.currentlyOpenReferences
1 parent 9609707 commit ae8f5b3

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

src/Code/FullyQualifiedNameSet.elm

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
11
module Code.FullyQualifiedNameSet exposing
22
( FQNSet
33
, empty
4+
, fromList
5+
, fromReference
6+
, fromReferenceList
47
, insert
58
, member
69
, remove
10+
, singleton
711
, size
812
, toList
913
, toggle
1014
)
1115

16+
import Code.Definition.Reference as Reference exposing (Reference)
1217
import Code.FullyQualifiedName as FQN exposing (FQN)
18+
import Maybe.Extra as MaybeE
1319
import Set exposing (Set)
1420
import Set.Extra
1521

@@ -32,6 +38,11 @@ empty =
3238
FQNSet Set.empty
3339

3440

41+
singleton : FQN -> FQNSet
42+
singleton fqn =
43+
FQNSet (fqn |> FQN.toString |> Set.singleton)
44+
45+
3546
insert : FQN -> FQNSet -> FQNSet
3647
insert fqn (FQNSet set) =
3748
FQNSet (Set.insert (FQN.toString fqn) set)
@@ -47,6 +58,26 @@ member fqn (FQNSet set) =
4758
Set.member (FQN.toString fqn) set
4859

4960

61+
fromList : List FQN -> FQNSet
62+
fromList fqns =
63+
FQNSet (fqns |> List.map FQN.toString |> Set.fromList)
64+
65+
66+
fromReference : Reference -> FQNSet
67+
fromReference ref =
68+
Reference.fqn ref
69+
|> Maybe.map singleton
70+
|> Maybe.withDefault empty
71+
72+
73+
fromReferenceList : List Reference -> FQNSet
74+
fromReferenceList refs =
75+
refs
76+
|> List.map Reference.fqn
77+
|> MaybeE.values
78+
|> fromList
79+
80+
5081
toList : FQNSet -> List FQN
5182
toList (FQNSet set) =
5283
set

src/Code/Workspace.elm

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module Code.Workspace exposing
22
( Model
33
, Msg
44
, OutMsg(..)
5+
, currentlyOpenReferences
56
, init
67
, open
78
, replaceWorkspaceItemReferencesWithHashOnly
@@ -576,6 +577,15 @@ handleKeyboardShortcut model shortcut =
576577

577578

578579

580+
-- HELPERS
581+
582+
583+
currentlyOpenReferences : Model -> List Reference
584+
currentlyOpenReferences model =
585+
WorkspaceItems.references model.workspaceItems
586+
587+
588+
579589
-- EFFECTS
580590

581591

0 commit comments

Comments
 (0)