Skip to content

Commit fe64125

Browse files
authored
Merge pull request #26 from slamdata/compiler/0.12
Compiler/0.12
2 parents c303b23 + 5b01e6d commit fe64125

24 files changed

+784
-820
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@
66
/node_modules/
77
/output/
88
/example/example.js
9+
package-lock.json

bower.json

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,17 @@
1919
"package.json"
2020
],
2121
"dependencies": {
22-
"purescript-console": "^3.0.0",
23-
"purescript-dom": "^4.0.0",
24-
"purescript-arrays": "^4.0.0",
25-
"purescript-foreign": "^4.0.0",
26-
"purescript-nullable": "^3.0.0",
27-
"purescript-prelude": "^3.0.0"
22+
"purescript-effect": "^2.0.0",
23+
"purescript-web-html": "^1.0.0",
24+
"purescript-web-uievents": "^1.0.0",
25+
"purescript-arrays": "^5.0.0",
26+
"purescript-foreign": "^5.0.0",
27+
"purescript-nullable": "^4.0.0",
28+
"purescript-prelude": "^4.0.0"
2829
},
2930
"devDependencies": {
31+
"purescript-console": "^4.1.0",
3032
"ace-builds": "^1.2.6",
31-
"purescript-refs": "^3.0.0"
33+
"purescript-refs": "^4.1.0"
3234
}
3335
}

example/src/Main.purs

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,13 @@ module Main where
22

33
import Prelude
44

5-
import Control.Monad.Eff (Eff)
6-
import Control.Monad.Eff.Console (log, CONSOLE)
7-
import Control.Monad.Eff.Ref (newRef, readRef, writeRef, REF)
8-
9-
import Data.Array.ST (pushSTArray)
10-
import Data.Maybe (Maybe(..))
11-
import Data.Traversable (for_)
12-
13-
import DOM (DOM)
14-
155
import Ace as Ace
166
import Ace.Anchor as Anchor
177
import Ace.BackgroundTokenizer as BackgroundTokenizer
188
import Ace.Config as Config
199
import Ace.Document as Document
20-
import Ace.Editor as Editor
2110
import Ace.EditSession as Session
11+
import Ace.Editor as Editor
2212
import Ace.Ext.LanguageTools as LanguageTools
2313
import Ace.Ext.LanguageTools.Completer as Completer
2414
import Ace.KeyBinding as KeyBinding
@@ -28,11 +18,17 @@ import Ace.Search as Search
2818
import Ace.Selection as Selection
2919
import Ace.TokenIterator as TokenIterator
3020
import Ace.UndoManager as UndoManager
21+
import Data.Array.ST as AST
22+
import Data.Maybe (Maybe(..))
23+
import Data.Traversable (for_)
24+
import Effect (Effect)
25+
import Effect.Console (log)
26+
import Effect.Ref as Ref
3127

3228
foreign import rules :: Ace.Rules
33-
foreign import onLoad :: forall e. Eff e Unit -> Eff e Unit
29+
foreign import onLoad :: Effect Unit -> Effect Unit
3430

35-
main :: forall e. Eff (ref ::REF, console :: CONSOLE, ace :: Ace.ACE, dom :: DOM|e) Unit
31+
main :: Effect Unit
3632
main = onLoad $ do
3733
_ <- Config.set Config.basePath "foo"
3834

@@ -54,10 +50,10 @@ main = onLoad $ do
5450
"string"
5551
false
5652
session
57-
>>= newRef
53+
>>= Ref.new
5854

5955
let rerenderMarker _ = do
60-
readRef markerRef >>= flip Session.removeMarker session
56+
Ref.read markerRef >>= flip Session.removeMarker session
6157
Ace.Position {row: startRow, column: startColumn}
6258
<- Anchor.getPosition startAnchor
6359
Ace.Position {row: endRow, column: endColumn}
@@ -74,7 +70,7 @@ main = onLoad $ do
7470
false
7571
session
7672

77-
writeRef markerRef newMId
73+
Ref.write newMId markerRef
7874
pure unit
7975

8076
Anchor.onChange startAnchor rerenderMarker
@@ -148,7 +144,7 @@ main = onLoad $ do
148144
Anchor.detach anchor
149145

150146
-- Add a dynamic marker
151-
Session.addDynamicMarker (\html _ -> pushSTArray html "<i>!</i>") true session
147+
Session.addDynamicMarker (\html _ -> AST.push "<i>lulz</i>" html) true session
152148

153149
-- Get the background tokenizer and trace the tokens and state on the first line
154150
backgroundTokenizer <- Session.getBackgroundTokenizer session
@@ -214,7 +210,7 @@ main = onLoad $ do
214210
pure unit
215211

216212

217-
miscTests :: forall e. Eff (console :: CONSOLE, ace :: Ace.ACE |e) Unit
213+
miscTests :: Effect Unit
218214
miscTests = void do
219215
editor <- Ace.edit "tests" Ace.ace
220216
session <- Editor.getSession editor

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
"test": "pulp build -I example/src"
77
},
88
"devDependencies": {
9-
"eslint": "^3.8.1",
10-
"pulp": "^11.0.0",
11-
"purescript": "^0.11.0",
12-
"purescript-psa": "^0.5.0",
13-
"rimraf": "^2.5.4"
9+
"eslint": "^4.19.1",
10+
"pulp": "^12.2.0",
11+
"purescript": "slamdata/node-purescript#0.12",
12+
"purescript-psa": "^0.6.0",
13+
"rimraf": "^2.6.2"
1414
}
1515
}

src/Ace.purs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,28 @@ module Ace
88
) where
99

1010
import Ace.Types
11-
import Control.Monad.Eff (Eff)
11+
import Effect (Effect)
1212
import Data.Function.Uncurried (Fn2, runFn2, Fn3, runFn3)
13-
import DOM.HTML.Types (HTMLElement)
13+
import Web.HTML.HTMLElement (HTMLElement)
1414

1515
foreign import ace :: Ace
1616

17-
foreign import editImpl :: forall eff. Fn2 String Ace (Eff (ace :: ACE | eff) Editor)
17+
foreign import editImpl :: Fn2 String Ace (Effect Editor)
1818

19-
edit :: forall eff. String -> Ace -> Eff (ace :: ACE | eff) Editor
19+
edit :: String -> Ace -> Effect Editor
2020
edit el self = runFn2 editImpl el self
2121

22-
foreign import editNodeImpl :: forall eff. Fn2 HTMLElement Ace (Eff (ace :: ACE | eff) Editor)
22+
foreign import editNodeImpl :: Fn2 HTMLElement Ace (Effect Editor)
2323

24-
editNode :: forall eff. HTMLElement -> Ace -> Eff (ace :: ACE | eff) Editor
24+
editNode :: HTMLElement -> Ace -> Effect Editor
2525
editNode el self = runFn2 editNodeImpl el self
2626

27-
foreign import createEditSessionForDocumentImpl :: forall eff. Fn3 Document TextMode Ace (Eff (ace :: ACE | eff) EditSession)
27+
foreign import createEditSessionForDocumentImpl :: Fn3 Document TextMode Ace (Effect EditSession)
2828

29-
createEditSessionForDocument :: forall eff. Document -> TextMode -> Ace -> Eff (ace :: ACE | eff) EditSession
29+
createEditSessionForDocument :: Document -> TextMode -> Ace -> Effect EditSession
3030
createEditSessionForDocument text mode self = runFn3 createEditSessionForDocumentImpl text mode self
3131

32-
foreign import createEditSessionImpl :: forall eff. Fn3 String TextMode Ace (Eff (ace :: ACE | eff) EditSession)
32+
foreign import createEditSessionImpl :: Fn3 String TextMode Ace (Effect EditSession)
3333

34-
createEditSession :: forall eff. String -> TextMode -> Ace -> Eff (ace :: ACE | eff) EditSession
34+
createEditSession :: String -> TextMode -> Ace -> Effect EditSession
3535
createEditSession text mode self = runFn3 createEditSessionImpl text mode self

src/Ace/Anchor.purs

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,40 +11,38 @@ module Ace.Anchor
1111

1212
import Prelude
1313

14-
import Ace.Types (ACE, Anchor, Document, Position, AnchorEvent)
15-
import Control.Monad.Eff (Eff)
14+
import Ace.Types (Anchor, Document, Position, AnchorEvent)
15+
import Effect (Effect)
1616
import Data.Function.Uncurried (Fn2, runFn2, Fn3, runFn3, Fn4, runFn4)
1717

1818
foreign import onChangeImpl
19-
:: forall eff a
19+
:: forall a
2020
. Fn2 Anchor
21-
(AnchorEvent -> Eff (ace :: ACE | eff) a)
22-
(Eff (ace :: ACE | eff) Unit)
21+
(AnchorEvent -> Effect a)
22+
(Effect Unit)
2323

2424
onChange
25-
:: forall eff a
25+
:: forall a
2626
. Anchor
27-
-> (AnchorEvent -> Eff (ace :: ACE | eff) a)
28-
-> Eff (ace :: ACE | eff) Unit
27+
-> (AnchorEvent -> Effect a)
28+
-> Effect Unit
2929
onChange self fn = runFn2 onChangeImpl self fn
3030

31-
foreign import getPosition :: forall eff. Anchor -> Eff (ace :: ACE | eff) Position
31+
foreign import getPosition :: Anchor -> Effect Position
3232

33-
foreign import getDocument :: forall eff. Anchor -> Eff (ace :: ACE | eff) Document
33+
foreign import getDocument :: Anchor -> Effect Document
3434

35-
foreign import setPositionImpl :: forall eff. Fn4 Int Int Boolean Anchor (Eff (ace :: ACE | eff) Unit)
35+
foreign import setPositionImpl :: Fn4 Int Int Boolean Anchor (Effect Unit)
3636

37-
setPosition :: forall eff. Int -> Int -> Boolean -> Anchor -> Eff (ace :: ACE | eff) Unit
37+
setPosition :: Int -> Int -> Boolean -> Anchor -> Effect Unit
3838
setPosition row column noClip self = runFn4 setPositionImpl row column noClip self
3939

40-
foreign import detach :: forall eff. Anchor -> Eff (ace :: ACE | eff) Unit
40+
foreign import detach :: Anchor -> Effect Unit
4141

42-
foreign import createImpl :: forall eff. Fn3 Document Int Int (Eff (ace :: ACE | eff) Anchor)
42+
foreign import createImpl :: Fn3 Document Int Int (Effect Anchor)
4343

44-
create :: forall eff. Document -> Int -> Int -> Eff (ace :: ACE | eff) Anchor
44+
create :: Document -> Int -> Int -> Effect Anchor
4545
create doc row column = runFn3 createImpl doc row column
4646

47-
foreign import getInsertRight :: forall eff. Anchor -> Eff (ace :: ACE |eff) Boolean
48-
foreign import setInsertRight
49-
:: forall eff
50-
. Boolean -> Anchor -> Eff (ace :: ACE|eff) Unit
47+
foreign import getInsertRight :: Anchor -> Effect Boolean
48+
foreign import setInsertRight :: Boolean -> Anchor -> Effect Unit

src/Ace/BackgroundTokenizer.purs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,48 +12,48 @@ module Ace.BackgroundTokenizer
1212

1313
import Prelude
1414

15-
import Ace.Types (BackgroundTokenizer, ACE, Editor, Tokenizer, TokenInfo, Document, BackgroundTokenizerEvent)
16-
import Control.Monad.Eff (Eff)
15+
import Ace.Types (BackgroundTokenizer, Editor, Tokenizer, TokenInfo, Document, BackgroundTokenizerEvent)
16+
import Effect (Effect)
1717
import Data.Function.Uncurried (Fn2, runFn2, Fn3, runFn3)
1818

19-
foreign import onUpdateImpl :: forall eff a. Fn2 BackgroundTokenizer (BackgroundTokenizerEvent -> Eff (ace :: ACE | eff) a) (Eff (ace :: ACE | eff) Unit)
19+
foreign import onUpdateImpl :: forall a. Fn2 BackgroundTokenizer (BackgroundTokenizerEvent -> Effect a) (Effect Unit)
2020

21-
onUpdate :: forall eff a. BackgroundTokenizer -> (BackgroundTokenizerEvent -> Eff (ace :: ACE | eff) a) -> Eff (ace :: ACE | eff) Unit
21+
onUpdate :: forall a. BackgroundTokenizer -> (BackgroundTokenizerEvent -> Effect a) -> Effect Unit
2222
onUpdate self fn = runFn2 onUpdateImpl self fn
2323

24-
foreign import setTokenizerImpl :: forall eff. Fn2 Tokenizer BackgroundTokenizer (Eff (ace :: ACE | eff) Unit)
24+
foreign import setTokenizerImpl :: Fn2 Tokenizer BackgroundTokenizer (Effect Unit)
2525

26-
setTokenizer :: forall eff. Tokenizer -> BackgroundTokenizer -> Eff (ace :: ACE | eff) Unit
26+
setTokenizer :: Tokenizer -> BackgroundTokenizer -> Effect Unit
2727
setTokenizer tokenizer self = runFn2 setTokenizerImpl tokenizer self
2828

29-
foreign import setDocumentImpl :: forall eff. Fn2 Document BackgroundTokenizer (Eff (ace :: ACE | eff) Unit)
29+
foreign import setDocumentImpl :: Fn2 Document BackgroundTokenizer (Effect Unit)
3030

31-
setDocument :: forall eff. Document -> BackgroundTokenizer -> Eff (ace :: ACE | eff) Unit
31+
setDocument :: Document -> BackgroundTokenizer -> Effect Unit
3232
setDocument doc self = runFn2 setDocumentImpl doc self
3333

34-
foreign import fireUpdateEventImpl :: forall eff. Fn3 Int Int BackgroundTokenizer (Eff (ace :: ACE | eff) Unit)
34+
foreign import fireUpdateEventImpl :: Fn3 Int Int BackgroundTokenizer (Effect Unit)
3535

36-
fireUpdateEvent :: forall eff. Int -> Int -> BackgroundTokenizer -> Eff (ace :: ACE | eff) Unit
36+
fireUpdateEvent :: Int -> Int -> BackgroundTokenizer -> Effect Unit
3737
fireUpdateEvent firstRow lastRow self = runFn3 fireUpdateEventImpl firstRow lastRow self
3838

39-
foreign import startImpl :: forall eff. Fn2 Int BackgroundTokenizer (Eff (ace :: ACE | eff) Unit)
39+
foreign import startImpl :: Fn2 Int BackgroundTokenizer (Effect Unit)
4040

41-
start :: forall eff. Int -> BackgroundTokenizer -> Eff (ace :: ACE | eff) Unit
41+
start :: Int -> BackgroundTokenizer -> Effect Unit
4242
start startRow self = runFn2 startImpl startRow self
4343

44-
foreign import stop :: forall eff. BackgroundTokenizer -> (Eff (ace :: ACE | eff) Unit)
44+
foreign import stop :: BackgroundTokenizer -> (Effect Unit)
4545

46-
foreign import getTokensImpl :: forall eff. Fn2 Int BackgroundTokenizer (Eff (ace :: ACE | eff) (Array TokenInfo))
46+
foreign import getTokensImpl :: Fn2 Int BackgroundTokenizer (Effect (Array TokenInfo))
4747

48-
getTokens :: forall eff. Int -> BackgroundTokenizer -> Eff (ace :: ACE | eff) (Array TokenInfo)
48+
getTokens :: Int -> BackgroundTokenizer -> Effect (Array TokenInfo)
4949
getTokens row self = runFn2 getTokensImpl row self
5050

51-
foreign import getStateImpl :: forall eff. Fn2 Int BackgroundTokenizer (Eff (ace :: ACE | eff) String)
51+
foreign import getStateImpl :: Fn2 Int BackgroundTokenizer (Effect String)
5252

53-
getState :: forall eff. Int -> BackgroundTokenizer -> Eff (ace :: ACE | eff) String
53+
getState :: Int -> BackgroundTokenizer -> Effect String
5454
getState row self = runFn2 getStateImpl row self
5555

56-
foreign import createImpl :: forall eff. Fn2 Tokenizer Editor (Eff (ace :: ACE | eff) BackgroundTokenizer)
56+
foreign import createImpl :: Fn2 Tokenizer Editor (Effect BackgroundTokenizer)
5757

58-
create :: forall eff. Tokenizer -> Editor -> Eff (ace :: ACE | eff) BackgroundTokenizer
58+
create :: Tokenizer -> Editor -> Effect BackgroundTokenizer
5959
create tokenizer editor = runFn2 createImpl tokenizer editor

src/Ace/Config.purs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ module Ace.Config
1010
) where
1111

1212
import Ace.Types
13-
import Control.Monad.Eff (Eff)
13+
import Effect (Effect)
1414
import Data.Function.Uncurried (Fn2, runFn2)
1515

1616
newtype ConfigOption a = ConfigOption String
1717

18-
foreign import setImpl :: forall a eff. Fn2 (ConfigOption a) a (Eff (ace :: ACE | eff) Ace)
18+
foreign import setImpl :: forall a. Fn2 (ConfigOption a) a (Effect Ace)
1919

20-
set :: forall a eff. ConfigOption a -> a -> Eff (ace :: ACE | eff) Ace
20+
set :: forall a. ConfigOption a -> a -> Effect Ace
2121
set key value = runFn2 setImpl key value
2222

2323
packaged :: ConfigOption Boolean

0 commit comments

Comments
 (0)