@@ -31,41 +31,10 @@ import { after, afterEach, before } from "mocha";
31
31
import { Ruby , ManagerIdentifier } from "../../ruby" ;
32
32
import Client from "../../client" ;
33
33
import { WorkspaceChannel } from "../../workspaceChannel" ;
34
- import { RUBY_VERSION , MAJOR , MINOR } from "../rubyVersion" ;
34
+ import { MAJOR , MINOR } from "../rubyVersion" ;
35
35
36
- import { FAKE_TELEMETRY } from "./fakeTelemetry" ;
37
-
38
- class FakeLogger {
39
- receivedMessages = "" ;
40
-
41
- trace ( message : string , ..._args : any [ ] ) : void {
42
- this . receivedMessages += message ;
43
- }
44
-
45
- debug ( message : string , ..._args : any [ ] ) : void {
46
- this . receivedMessages += message ;
47
- }
48
-
49
- info ( message : string , ..._args : any [ ] ) : void {
50
- this . receivedMessages += message ;
51
- }
52
-
53
- warn ( message : string , ..._args : any [ ] ) : void {
54
- this . receivedMessages += message ;
55
- }
56
-
57
- error ( error : string | Error , ..._args : any [ ] ) : void {
58
- this . receivedMessages += error . toString ( ) ;
59
- }
60
-
61
- append ( value : string ) : void {
62
- this . receivedMessages += value ;
63
- }
64
-
65
- appendLine ( value : string ) : void {
66
- this . receivedMessages += value ;
67
- }
68
- }
36
+ import { FAKE_TELEMETRY , FakeLogger } from "./fakeTelemetry" ;
37
+ import { createRubySymlinks } from "./helpers" ;
69
38
70
39
async function launchClient ( workspaceUri : vscode . Uri ) {
71
40
const workspaceFolder : vscode . WorkspaceFolder = {
@@ -85,6 +54,8 @@ async function launchClient(workspaceUri: vscode.Uri) {
85
54
const fakeLogger = new FakeLogger ( ) ;
86
55
const outputChannel = new WorkspaceChannel ( "fake" , fakeLogger as any ) ;
87
56
57
+ let managerConfig ;
58
+
88
59
// Ensure that we're activating the correct Ruby version on CI
89
60
if ( process . env . CI ) {
90
61
await vscode . workspace
@@ -94,54 +65,12 @@ async function launchClient(workspaceUri: vscode.Uri) {
94
65
. getConfiguration ( "rubyLsp" )
95
66
. update ( "linters" , [ "rubocop_internal" ] , true ) ;
96
67
97
- if ( os . platform ( ) === "linux" ) {
98
- await vscode . workspace
99
- . getConfiguration ( "rubyLsp" )
100
- . update (
101
- "rubyVersionManager" ,
102
- { identifier : ManagerIdentifier . Chruby } ,
103
- true ,
104
- ) ;
105
-
106
- fs . mkdirSync ( path . join ( os . homedir ( ) , ".rubies" ) , { recursive : true } ) ;
107
- fs . symlinkSync (
108
- `/opt/hostedtoolcache/Ruby/${ RUBY_VERSION } /x64` ,
109
- path . join ( os . homedir ( ) , ".rubies" , RUBY_VERSION ) ,
110
- ) ;
111
- } else if ( os . platform ( ) === "darwin" ) {
112
- await vscode . workspace
113
- . getConfiguration ( "rubyLsp" )
114
- . update (
115
- "rubyVersionManager" ,
116
- { identifier : ManagerIdentifier . Chruby } ,
117
- true ,
118
- ) ;
119
-
120
- fs . mkdirSync ( path . join ( os . homedir ( ) , ".rubies" ) , { recursive : true } ) ;
121
- fs . symlinkSync (
122
- `/Users/runner/hostedtoolcache/Ruby/${ RUBY_VERSION } /arm64` ,
123
- path . join ( os . homedir ( ) , ".rubies" , RUBY_VERSION ) ,
124
- ) ;
68
+ createRubySymlinks ( ) ;
69
+
70
+ if ( os . platform ( ) === "win32" ) {
71
+ managerConfig = { identifier : ManagerIdentifier . RubyInstaller } ;
125
72
} else {
126
- await vscode . workspace
127
- . getConfiguration ( "rubyLsp" )
128
- . update (
129
- "rubyVersionManager" ,
130
- { identifier : ManagerIdentifier . RubyInstaller } ,
131
- true ,
132
- ) ;
133
-
134
- fs . symlinkSync (
135
- path . join (
136
- "C:" ,
137
- "hostedtoolcache" ,
138
- "windows" ,
139
- "Ruby" ,
140
- RUBY_VERSION ,
141
- "x64" ,
142
- ) ,
143
- path . join ( "C:" , `Ruby${ MAJOR } ${ MINOR } -${ os . arch ( ) } ` ) ,
144
- ) ;
73
+ managerConfig = { identifier : ManagerIdentifier . Chruby } ;
145
74
}
146
75
}
147
76
@@ -151,7 +80,7 @@ async function launchClient(workspaceUri: vscode.Uri) {
151
80
outputChannel ,
152
81
FAKE_TELEMETRY ,
153
82
) ;
154
- await ruby . activateRuby ( ) ;
83
+ await ruby . activateRuby ( managerConfig ) ;
155
84
ruby . env . RUBY_LSP_BYPASS_TYPECHECKER = "true" ;
156
85
157
86
const virtualDocuments = new Map < string , string > ( ) ;
0 commit comments