@@ -5,6 +5,10 @@ import { connect } from "node:net";
55const outputChannel : OutputChannel = window . createOutputChannel ( "Unison" ) ;
66const clients : Map < string , LanguageClient > = new Map ( ) ;
77
8+ function log ( msg : string ) {
9+ outputChannel . appendLine ( msg )
10+ }
11+
812exports . activate = function ( ) {
913 workspace . workspaceFolders ?. forEach ( ( folder ) => addWorkspaceFolder ( folder ) ) ;
1014 workspace . onDidChangeWorkspaceFolders ( ( { added, removed } ) => {
@@ -27,15 +31,16 @@ async function addWorkspaceFolder(workspaceFolder: WorkspaceFolder) {
2731 documentSelector : [ { language : "unison" } ] ,
2832 } ) ;
2933
34+ log ( `Activating unison language server at ${ folderPath } ` )
3035 clients . set ( folderPath , client ) ;
31-
3236 await client . start ( ) ;
3337}
3438
3539async function removeWorkspaceFolder ( workspaceFolder : WorkspaceFolder ) {
3640 let folderPath = workspaceFolder . uri . fsPath ;
3741 let client = clients . get ( folderPath ) ;
3842 if ( client ) {
43+ log ( `Deactivating unison language server at ${ folderPath } ` )
3944 clients . delete ( folderPath ) ;
4045 await client . stop ( ) ;
4146 }
@@ -49,22 +54,26 @@ async function connectToServer() {
4954 let haveShownError = false ;
5055 while ( true ) {
5156 try {
57+ const host = "127.0.0.1" ;
5258 const port = workspace . getConfiguration ( "unison" ) . lspPort ;
59+ log ( `Trying to connect to ucm lsp server at ${ host } :${ port } ` ) ;
5360 let socket = connect ( { port, host : "127.0.0.1" } ) ;
5461 await new Promise ( ( resolve , reject ) =>
5562 socket . once ( "connect" , resolve ) . once ( "error" , reject )
5663 ) ;
5764 // Show a success message, but only if we were in an error state
65+ const okMsg = `Unison: Connected to Language Server at ${ host } :${ port } .` ;
66+ log ( okMsg ) ;
5867 if ( haveShownError ) {
59- window . showInformationMessage ( "Unison: Connected to Language Server." ) ;
68+ window . showInformationMessage ( okMsg ) ;
6069 }
6170 return { reader : socket , writer : socket } ;
6271 } catch ( e ) {
72+ const errMsg = "Language server failed to connect" ;
73+ log ( `${ errMsg } , cause: ${ e } ` )
6374 if ( ! haveShownError ) {
6475 haveShownError = true ;
65- window . showErrorMessage (
66- "Unison: Language server failed to connect, is there a UCM running? (version M4a or later)"
67- ) ;
76+ window . showErrorMessage ( `Unison: ${ errMsg } , is there a UCM running? (version M4a or later)` ) ;
6877 }
6978 await sleep ( 2000 ) ;
7079 continue ;
0 commit comments