Skip to content

Commit b6bc548

Browse files
authored
Merge pull request #12 from nwolverson/nate-add-qualified-imp
add qualified import, fix versions
2 parents 7edf967 + c4c6a06 commit b6bc548

File tree

4 files changed

+18
-4
lines changed

4 files changed

+18
-4
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
/node_modules/
33
/.pulp-cache/
44
/output/
5-
/.psci*
5+
/.psc*
66
/src/.webpack.js

bower.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@
1313
"purescript-console": "^3.0.0",
1414
"purescript-maybe": "^3.0.0",
1515
"purescript-either": "^3.0.0",
16+
"purescript-errors": "^3.0.0",
1617
"purescript-arrays": "^4.0.1",
1718
"purescript-aff": "^3.0.0",
19+
"purescript-affjax": "^4.0.0",
1820
"purescript-argonaut": "^3.0.0",
1921
"purescript-strings": "^3.0.0",
20-
"purescript-psc-ide": "^10.0.0",
22+
"purescript-psc-ide": "^10.1.0",
2123
"purescript-refs": "^3.0.0",
2224
"purescript-nullable": "^3.0.0",
2325
"purescript-node-fs": "^4.0.0",

src/IdePurescript/Modules.purs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ module IdePurescript.Modules (
1111
, findImportInsertPos
1212
, addModuleImport
1313
, addExplicitImport
14+
, addQualifiedImport
1415
, ImportResult(..)
1516
) where
1617

@@ -197,3 +198,13 @@ addExplicitImport state port fileName text moduleName qualifier identifier =
197198
shouldAddMatch mn (Module { moduleName: moduleName', qualifier: Nothing, importType: Hiding idents })
198199
| moduleName' == mn = identifier `elem` idents
199200
shouldAddMatch _ _ = true
201+
202+
addQualifiedImport :: forall eff. State -> Int -> String -> String -> String -> String
203+
-> Aff (net :: P.NET, fs :: FS | eff) { state :: State, result :: ImportResult }
204+
addQualifiedImport state port fileName text moduleName qualifier =
205+
if not isThisModule
206+
then { state, result: _ } <$> withTempFile fileName text addImport
207+
else pure { state, result: FailedImport }
208+
where
209+
addImport tmpFile = P.qualifiedImport port tmpFile (Just tmpFile) moduleName qualifier
210+
isThisModule = Just moduleName == state.main

src/IdePurescript/PscIde.purs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import Control.Monad.Aff (Aff)
1010
import Control.Monad.Error.Class (throwError)
1111
import Data.Argonaut.Decode (class DecodeJson, decodeJson)
1212
import Data.Argonaut.Decode.Combinators ((.?))
13-
import Data.Array (head)
13+
import Data.Array (head, null)
1414
import Data.Either (Either(Right, Left))
1515
import Data.Maybe (maybe, Maybe(..))
1616
import Data.Nullable (toNullable, Nullable)
@@ -87,7 +87,8 @@ getCompletion' :: forall eff. Maybe C.Matcher -> Array C.Filter -> Int -> Maybe
8787
getCompletion' matcher mainFilter port currentModule modulePrefix unqualModules getQualifiedModule opts =
8888
eitherToErr $ P.complete port (mainFilter <> moduleFilters) matcher currentModule opts
8989
where
90-
moduleFilters = [ C.ModuleFilter $ maybe unqualModules getQualifiedModule modulePrefix ]
90+
modules = maybe unqualModules getQualifiedModule modulePrefix
91+
moduleFilters = [ C.ModuleFilter $ if null modules then unqualModules else modules ]
9192

9293
loadDeps :: forall eff. Int -> String
9394
-> Aff (net :: P.NET | eff) String

0 commit comments

Comments
 (0)