@@ -32,7 +32,6 @@ import qualified HaskellDo.Compilation.Types as Compilation
32
32
import qualified HaskellDo.Toolbar.State as Toolbar
33
33
import qualified HaskellDo.Toolbar.Types as Toolbar
34
34
import qualified Foreign.JQuery as JQuery
35
- import qualified Foreign.Highlight as Highlight
36
35
37
36
initialAppState :: AppState
38
37
initialAppState = AppState
@@ -42,7 +41,19 @@ initialAppState = AppState
42
41
}
43
42
44
43
update :: Action -> AppState -> Cloud AppState
45
- update (CodeMirrorAction action) appState = do
44
+ update action appState = _preUpdate action appState >>= _update action >>= _postUpdate action
45
+
46
+ _preUpdate :: Action -> AppState -> Cloud AppState
47
+ _preUpdate _ appState = do
48
+ let cs = compilationState appState
49
+ newCS = cs { Compilation. dirtyCompile = False }
50
+ return appState { compilationState = newCS }
51
+
52
+ _postUpdate :: Action -> AppState -> Cloud AppState
53
+ _postUpdate _ = return
54
+
55
+ _update :: Action -> AppState -> Cloud AppState
56
+ _update (CodeMirrorAction action) appState = do
46
57
newCodeMirrorState <- CodeMirror. update action (codeMirrorState appState)
47
58
let newContent = CodeMirror. content newCodeMirrorState
48
59
_ <- atRemote $ Compilation. update
@@ -53,12 +64,10 @@ update (CodeMirrorAction action) appState = do
53
64
{ codeMirrorState = newCodeMirrorState
54
65
}
55
66
if compileShortcutPressed
56
- then do
57
- localIO Highlight. askForHighlight
58
- update (ToolbarAction Toolbar. Compile ) newState
67
+ then update (ToolbarAction Toolbar. Compile ) newState
59
68
else return newState
60
69
61
- update (ToolbarAction Toolbar. Compile ) appState = do
70
+ _update (ToolbarAction Toolbar. Compile ) appState = do
62
71
let tbState = toolbarState appState
63
72
if Toolbar. projectOpened tbState
64
73
then do
@@ -74,7 +83,7 @@ update (ToolbarAction Toolbar.Compile) appState = do
74
83
localIO Toolbar. shakeErrorDisplay
75
84
return appState
76
85
77
- update (ToolbarAction Toolbar. LoadProject ) appState = do
86
+ _update (ToolbarAction Toolbar. LoadProject ) appState = do
78
87
localIO $ JQuery. hide " #dependencyMessage"
79
88
let tbState = toolbarState appState
80
89
let cmpState = compilationState appState
@@ -116,7 +125,7 @@ update (ToolbarAction Toolbar.LoadProject) appState = do
116
125
localIO $ JQuery. show " #errorDisplay" -- Show it after they finished
117
126
return newState
118
127
119
- update (ToolbarAction Toolbar. LoadPackageYaml ) appState = do
128
+ _update (ToolbarAction Toolbar. LoadPackageYaml ) appState = do
120
129
let projectPath = Compilation. projectPath (compilationState appState)
121
130
contents <- atRemote $ localIO $ readFile (projectPath </> " package.yaml" )
122
131
let tbState = toolbarState appState
@@ -125,7 +134,7 @@ update (ToolbarAction Toolbar.LoadPackageYaml) appState = do
125
134
_ <- Toolbar. update Toolbar. LoadPackageYaml tbState
126
135
return appState { toolbarState = tbState' }
127
136
128
- update (ToolbarAction Toolbar. SavePackage ) appState = do
137
+ _update (ToolbarAction Toolbar. SavePackage ) appState = do
129
138
let projectPath = Compilation. projectPath (compilationState appState)
130
139
let tbState = toolbarState appState
131
140
atRemote $ localIO $ writeFile (projectPath </> " package.yaml" ) (Toolbar. projectConfig tbState)
@@ -135,7 +144,7 @@ update (ToolbarAction Toolbar.SavePackage) appState = do
135
144
localIO $ JQuery. hide " #dependencyMessage"
136
145
return newState
137
146
138
- update (ToolbarAction action) appState = do
147
+ _update (ToolbarAction action) appState = do
139
148
newToolbarState <- Toolbar. update action (toolbarState appState)
140
149
let cs = compilationState appState
141
150
let newCompilationState = cs
0 commit comments