1
- import { ILogger } from " ./logging" ;
2
- import { IGhci } from " ./ghci" ;
1
+ import { ILogger } from ' ./logging' ;
2
+ import { IGhci } from ' ./ghci' ;
3
3
import * as vscode from 'vscode' ;
4
4
5
-
6
5
/**
7
6
* Provides an interface to send instructions to the current Tidal instance.
8
7
*/
@@ -12,11 +11,16 @@ export interface ITidal {
12
11
13
12
export class Tidal implements ITidal {
14
13
tidalBooted : boolean = false ;
15
- lineEnding = vscode . workspace . getConfiguration ( 'files' , null ) . get ( 'eol' , '\n' ) ;
14
+ lineEnding = vscode . workspace
15
+ . getConfiguration ( 'files' , null )
16
+ . get ( 'eol' , '\n' ) ;
16
17
17
- constructor ( private logger : ILogger , private ghci : IGhci ,
18
- private bootTidalPath : string | null , private useBootFileInCurrentDirectory : boolean ) {
19
- }
18
+ constructor (
19
+ private logger : ILogger ,
20
+ private ghci : IGhci ,
21
+ private bootTidalPath : string | null ,
22
+ private useBootFileInCurrentDirectory : boolean
23
+ ) { }
20
24
21
25
private async bootTidal ( ) : Promise < boolean > {
22
26
if ( this . tidalBooted ) {
@@ -34,10 +38,14 @@ export class Tidal implements ITidal {
34
38
const folders = vscode . workspace . workspaceFolders ;
35
39
36
40
if ( folders !== undefined && folders . length > 0 ) {
37
- uri = vscode . Uri . parse ( `file://${ folders [ 0 ] . uri . path } /BootTidal.hs` ) ;
41
+ uri = vscode . Uri . parse (
42
+ `file://${ folders [ 0 ] . uri . path } /BootTidal.hs`
43
+ ) ;
38
44
} else {
39
- this . logger . warning ( 'You must open a folder or workspace in order to use the Tidal \
40
- useBootFileInCurrentDirectory setting.' ) ;
45
+ this . logger . warning (
46
+ 'You must open a folder or workspace in order to use the Tidal \
47
+ useBootFileInCurrentDirectory setting.'
48
+ ) ;
41
49
}
42
50
} else if ( bootTidalPath ) {
43
51
uri = vscode . Uri . file ( `${ bootTidalPath } ` ) ;
@@ -61,7 +69,7 @@ export class Tidal implements ITidal {
61
69
}
62
70
63
71
public async sendTidalExpression ( expression : string ) {
64
- if ( ! await this . bootTidal ( ) ) {
72
+ if ( ! ( await this . bootTidal ( ) ) ) {
65
73
this . logger . error ( 'Could not boot Tidal' ) ;
66
74
return ;
67
75
}
@@ -74,69 +82,73 @@ export class Tidal implements ITidal {
74
82
this . ghci . writeLn ( ':}' ) ;
75
83
}
76
84
77
- private async getBootCommandsFromFile ( uri : vscode . Uri ) : Promise < string [ ] | null > {
78
-
85
+ private async getBootCommandsFromFile (
86
+ uri : vscode . Uri
87
+ ) : Promise < string [ ] | null > {
79
88
this . logger . log ( `Using Tidal boot file on disk at ${ uri . fsPath } ` ) ;
80
89
81
90
let doc : vscode . TextDocument ;
82
91
try {
83
- doc = await vscode . workspace . openTextDocument ( uri ) ;
92
+ doc = await vscode . workspace . openTextDocument ( uri ) ;
84
93
return doc . getText ( ) . split ( / [ \r \n ] + / ) ;
85
94
} catch ( e ) {
86
95
this . logger . error ( `Failed to load boot commands from ${ uri . fsPath } ` ) ;
87
96
return null ;
88
97
}
89
98
}
90
99
91
- bootCommands : string [ ] =
92
- [
93
- ':set -XOverloadedStrings' ,
94
- ':set prompt ""' ,
95
- ':set prompt-cont ""' ,
96
- 'import Sound.Tidal.Context' ,
97
- 'tidal <- startTidal (superdirtTarget {oLatency = 0.1, oAddress = "127.0.0.1", oPort = 57120}) (defaultConfig {cFrameTimespan = 1/20})' ,
98
- 'let p = streamReplace tidal' ,
99
- 'let hush = streamHush tidal' ,
100
- 'let list = streamList tidal' ,
101
- 'let mute = streamMute tidal' ,
102
- 'let unmute = streamUnmute tidal' ,
103
- 'let solo = streamSolo tidal' ,
104
- 'let unsolo = streamUnsolo tidal' ,
105
- 'let once = streamOnce tidal False' ,
106
- 'let asap = streamOnce tidal True' ,
107
- 'let nudgeAll = streamNudgeAll tidal' ,
108
- 'let setcps = asap . cps' ,
109
- 'let xfade i = transition tidal (Sound.Tidal.Transition.xfadeIn 4) i' ,
110
- 'let xfadeIn i t = transition tidal (Sound.Tidal.Transition.xfadeIn t) i' ,
111
- 'let histpan i t = transition tidal (Sound.Tidal.Transition.histpan t) i' ,
112
- 'let wait i t = transition tidal (Sound.Tidal.Transition.wait t) i' ,
113
- 'let waitT i f t = transition tidal (Sound.Tidal.Transition.waitT f t) i' ,
114
- 'let jump i = transition tidal (Sound.Tidal.Transition.jump) i' ,
115
- 'let jumpIn i t = transition tidal (Sound.Tidal.Transition.jumpIn t) i' ,
116
- 'let jumpIn\' i t = transition tidal (Sound.Tidal.Transition.jumpIn\' t) i' ,
117
- 'let jumpMod i t = transition tidal (Sound.Tidal.Transition.jumpMod t) i' ,
118
- 'let mortal i lifespan release = transition tidal (Sound.Tidal.Transition.mortal lifespan release) i' ,
119
- 'let interpolate i = transition tidal (Sound.Tidal.Transition.interpolate) i' ,
120
- 'let interpolateIn i t = transition tidal (Sound.Tidal.Transition.interpolateIn t) i' ,
121
- 'let clutch i = transition tidal (Sound.Tidal.Transition.clutch) i' ,
122
- 'let clutchIn i t = transition tidal (Sound.Tidal.Transition.clutchIn t) i' ,
123
- 'let anticipate i = transition tidal (Sound.Tidal.Transition.anticipate) i' ,
124
- 'let anticipateIn i t = transition tidal (Sound.Tidal.Transition.anticipateIn t) i' ,
125
- 'let d1 = p 1' ,
126
- 'let d2 = p 2' ,
127
- 'let d3 = p 3' ,
128
- 'let d4 = p 4' ,
129
- 'let d5 = p 5' ,
130
- 'let d6 = p 6' ,
131
- 'let d7 = p 7' ,
132
- 'let d8 = p 8' ,
133
- 'let d9 = p 9' ,
134
- 'let d10 = p 10' ,
135
- 'let d11 = p 11' ,
136
- 'let d12 = p 12' ,
137
- 'let d13 = p 13' ,
138
- 'let d14 = p 14' ,
139
- 'let d15 = p 15' ,
140
- 'let d16 = p 16' ,
141
- ':set prompt "tidal> "' ] ;
142
- }
100
+ bootCommands : string [ ] = [
101
+ ':set -XOverloadedStrings' ,
102
+ ':set prompt ""' ,
103
+ ':set prompt-cont ""' ,
104
+ 'import Sound.Tidal.Context' ,
105
+ 'tidal <- startTidal (superdirtTarget {oLatency = 0.1, oAddress = "127.0.0.1", oPort = 57120}) (defaultConfig {cFrameTimespan = 1/20})' ,
106
+ 'let p = streamReplace tidal' ,
107
+ 'let hush = streamHush tidal' ,
108
+ 'let list = streamList tidal' ,
109
+ 'let mute = streamMute tidal' ,
110
+ 'let unmute = streamUnmute tidal' ,
111
+ 'let solo = streamSolo tidal' ,
112
+ 'let unsolo = streamUnsolo tidal' ,
113
+ 'let once = streamOnce tidal' ,
114
+ 'let asap = once' ,
115
+ 'let nudgeAll = streamNudgeAll tidal' ,
116
+ 'let all = streamAll tidal' ,
117
+ 'let resetCycles = streamResetCycles tidal' ,
118
+ 'let setcps = asap . cps' ,
119
+ 'let xfade i = transition tidal True (Sound.Tidal.Transition.xfadeIn 4) i' ,
120
+ 'let xfadeIn i t = transition tidal True (Sound.Tidal.Transition.xfadeIn t) i' ,
121
+ 'let histpan i t = transition tidal True (Sound.Tidal.Transition.histpan t) i' ,
122
+ 'let wait i t = transition tidal True (Sound.Tidal.Transition.wait t) i' ,
123
+ 'let waitT i f t = transition tidal True (Sound.Tidal.Transition.waitT f t) i' ,
124
+ 'let jump i = transition tidal True (Sound.Tidal.Transition.jump) i' ,
125
+ 'let jumpIn i t = transition tidal True (Sound.Tidal.Transition.jumpIn t) i' ,
126
+ "let jumpIn' i t = transition tidal True (Sound.Tidal.Transition.jumpIn' t) i" ,
127
+ 'let jumpMod i t = transition tidal True (Sound.Tidal.Transition.jumpMod t) i' ,
128
+ 'let mortal i lifespan release = transition tidal True (Sound.Tidal.Transition.mortal lifespan release) i' ,
129
+ 'let interpolate i = transition tidal True (Sound.Tidal.Transition.interpolate) i' ,
130
+ 'let interpolateIn i t = transition tidal True (Sound.Tidal.Transition.interpolateIn t) i' ,
131
+ 'let clutch i = transition tidal True (Sound.Tidal.Transition.clutch) i' ,
132
+ 'let clutchIn i t = transition tidal True (Sound.Tidal.Transition.clutchIn t) i' ,
133
+ 'let anticipate i = transition tidal True (Sound.Tidal.Transition.anticipate) i' ,
134
+ 'let anticipateIn i t = transition tidal True (Sound.Tidal.Transition.anticipateIn t) i' ,
135
+ 'let forId i t = transition tidal False (Sound.Tidal.Transition.mortalOverlay t) i' ,
136
+ 'let d1 = p 1' ,
137
+ 'let d2 = p 2' ,
138
+ 'let d3 = p 3' ,
139
+ 'let d4 = p 4' ,
140
+ 'let d5 = p 5' ,
141
+ 'let d6 = p 6' ,
142
+ 'let d7 = p 7' ,
143
+ 'let d8 = p 8' ,
144
+ 'let d9 = p 9' ,
145
+ 'let d10 = p 10' ,
146
+ 'let d11 = p 11' ,
147
+ 'let d12 = p 12' ,
148
+ 'let d13 = p 13' ,
149
+ 'let d14 = p 14' ,
150
+ 'let d15 = p 15' ,
151
+ 'let d16 = p 16' ,
152
+ ':set prompt "tidal> "'
153
+ ] ;
154
+ }
0 commit comments