git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
[psc-ide] Return qualifier from explicit/hiding imports (#2317)
commita84f7f36ee321be675626db83200310ba34214e6 authorNicholas Wolverson <nicholas.wolverson@gmail.com> dateFri 23 Sep 2016, 05:21 (10 years ago) parentd41994a
2 files changed+45−20
psc-ide-server/PROTOCOL.md+33−8 src/Language/PureScript/Ide/Types.hs+12−12
psc-ide-server/PROTOCOL.md+33−8
@@ -68,7 +68,7 @@ The `complete` command looks up possible completions/corrections.
6868
6969 If no matcher is given every candidate, that passes the filters, is returned
7070 in no particular order.
71−
71+
7272```json
7373{
7474 "command": "complete",
@@ -106,7 +106,7 @@ couldn't be extracted from a source file.
106106```
107107
108108
109−### CaseSplit
109+### CaseSplit
110110
111111The CaseSplit command takes a line of source code, an area in that line of code
112112and replaces it with all patterns for a given type. The parameter `annotations`
@@ -250,9 +250,9 @@ Example:
250250 "importCommand": {
251251 "importCommand": "addImport",
252252 "identifier": "bind"
253− }
253+ }
254254 }
255−}
255+}
256256```
257257
258258### Rebuild
@@ -381,7 +381,7 @@ The list commmand can also list the imports for a given file.
381381
382382The list import command returns a list of imports where imports are of the following form:
383383
384−Implicit Import(`import Data.Array`):
384+Implicit Import (`import Data.Array`):
385385```json
386386[
387387 {
@@ -391,7 +391,7 @@ Implicit Import(`import Data.Array`):
391391]
392392```
393393
394−Implicit qualified Import(`import qualified Data.Array as A`):
394+Implicit qualified Import (`import Data.Array as A`):
395395```json
396396[
397397 {
@@ -402,7 +402,7 @@ Implicit qualified Import(`import qualified Data.Array as A`):
402402]
403403```
404404
405−Explicit Import(`import Data.Array (filter, filterM, join)`):
405+Explicit Import (`import Data.Array (filter, filterM, join)`):
406406```json
407407[
408408 {
@@ -413,7 +413,19 @@ Explicit Import(`import Data.Array (filter, filterM, join)`):
413413]
414414```
415415
416−Hiding Import(`import Data.Array hiding (filter, filterM, join)`):
416+Explicit qualified Import (`import Data.Array (filter, filterM, join) as A`):
417+```json
418+[
419+ {
420+ "module": "Data.Array",
421+ "importType": "explicit",
422+ "identifiers": ["filter", "filterM", "join"],
423+ "qualifier": "A"
424+ }
425+]
426+```
427+
428+Hiding Import (`import Data.Array hiding (filter, filterM, join)`):
417429```json
418430[
419431 {
@@ -423,6 +435,19 @@ Hiding Import(`import Data.Array hiding (filter, filterM, join)`):
423435 }
424436]
425437```
438+
439+Qualified Hiding Import (`import Data.Array hiding (filter, filterM, join) as A`):
440+```json
441+[
442+ {
443+ "module": "Data.Array",
444+ "importType": "hiding",
445+ "identifiers": ["filter", "filterM", "join"],
446+ "qualifier": "A"
447+ }
448+]
449+```
450+
426451### Cwd/Quit/Reset
427452`cwd` returns the working directory of the server(should be your project root).
428453
src/Language/PureScript/Ide/Types.hs+12−12
@@ -21,7 +21,7 @@ import Protolude
2121
2222import Control.Concurrent.STM
2323import Data.Aeson
24−import Data.Map.Lazy as M
24+import qualified Data.Map.Lazy as M
2525import qualified Language.PureScript.Errors.JSON as P
2626import qualified Language.PureScript as P
2727import Language.PureScript.Ide.Conversions
@@ -146,17 +146,17 @@ instance ToJSON ModuleImport where
146146 toJSON (ModuleImport mn P.Implicit qualifier) =
147147 object $ [ "module" .= mn
148148 , "importType" .= ("implicit" :: Text)
149− ] ++ fmap (\x -> "qualifier" .= x) (maybeToList qualifier)
150− toJSON (ModuleImport mn (P.Explicit refs) _) =
151− object [ "module" .= mn
152− , "importType" .= ("explicit" :: Text)
153− , "identifiers" .= (identifierFromDeclarationRef <$> refs)
154− ]
155− toJSON (ModuleImport mn (P.Hiding refs) _) =
156− object [ "module" .= mn
157− , "importType" .= ("hiding" :: Text)
158− , "identifiers" .= (identifierFromDeclarationRef <$> refs)
159− ]
149+ ] ++ map (\x -> "qualifier" .= x) (maybeToList qualifier)
150+ toJSON (ModuleImport mn (P.Explicit refs) qualifier) =
151+ object $ [ "module" .= mn
152+ , "importType" .= ("explicit" :: Text)
153+ , "identifiers" .= (identifierFromDeclarationRef <$> refs)
154+ ] ++ map (\x -> "qualifier" .= x) (maybeToList qualifier)
155+ toJSON (ModuleImport mn (P.Hiding refs) qualifier) =
156+ object $ [ "module" .= mn
157+ , "importType" .= ("hiding" :: Text)
158+ , "identifiers" .= (identifierFromDeclarationRef <$> refs)
159+ ] ++ map (\x -> "qualifier" .= x) (maybeToList qualifier)
160160
161161identifierFromDeclarationRef :: P.DeclarationRef -> Text
162162identifierFromDeclarationRef (P.TypeRef name _) = runProperNameT name