import { getNodeFSRequestService } from './nodeFs' ; import { ExtensionContext , extensions } from 'vscode' ; import { startClient , LanguageClientConstructor } from '../cssClient' ; import { ServerOptions , TransportKind , LanguageClientOptions , LanguageClient } from 'vscode-languageclient/node' ; import { TextDecoder } from 'util' ; export function activate ( context ) { const clientMain = extensions . getExtension ( 'vscode.css-language-features' ) ?. packageJSON ?. main || '' ; const serverMain = `./server/${ clientMain . indexOf ( '/dist/' ) !== - 1 ? 'dist' : 'out' }/node/cssServerMain` ; const serverModule = context . asAbsolutePath ( serverMain ) ; const debugOptions = { execArgv : [ '--nolazy' , '--inspect=' + ( 7000 + Math . round ( Math . random ( ) * 999 ) ) ] } ; const serverOptions = { run : { module : serverModule , transport : TransportKind . ipc } , debug : { module : serverModule , transport : TransportKind . ipc , options : debugOptions } } ; const newLanguageClient = ( id , name , clientOptions ) => { return new LanguageClient ( id , name , serverOptions , clientOptions ) ; } ; startClient ( context , newLanguageClient , { fs : getNodeFSRequestService ( ) , TextDecoder } ) ; }