function deactivate () {
  typeHoverDisposable.dispose()
  kindHoverDisposable.dispose()
  fqnHoverDisposable.dispose()
  docHoverDisposable.dispose()
  typeCompletionDisposable.dispose()
  scopeCompletionDisposable.dispose()
  definitionProviderDisposable.dispose()
  clearInterval(errorRefreshIntervalObj)
  clearInterval(checkServerIntervalObj)
  clearInterval(startServerIntervalObj)
  statusBarItem.dispose()
  if (serverProcess !== null) {
    try {
      serverProcess.stdin.write('x') // any input will stop the server
      serverProcess.stdin.end()
    } catch (err) {}
  }
}
// this method is called when your extension is deactivated
this method is called when your extension is deactivated
this method is called when your extension is deactivated
function deactivate () {
  typeHoverDisposable.dispose()
  kindHoverDisposable.dispose()
  fqnHoverDisposable.dispose()
  docHoverDisposable.dispose()
  typeCompletionDisposable.dispose()
  scopeCompletionDisposable.dispose()
  definitionProviderDisposable.dispose()
  clearInterval(errorRefreshIntervalObj)
  clearInterval(checkServerIntervalObj)
  clearInterval(startServerIntervalObj)
  statusBarItem.dispose()
  if (serverProcess !== null) {
    try {
      serverProcess.stdin.write('x') 
      serverProcess.stdin.end()
    } catch (err) {}
  }
}
function deactivate ( ) { typeHoverDisposable . dispose ( ) kindHoverDisposable . dispose ( ) fqnHoverDisposable . dispose ( ) docHoverDisposable . dispose ( ) typeCompletionDisposable . dispose ( ) scopeCompletionDisposable . dispose ( ) definitionProviderDisposable . dispose ( ) clearInterval ( errorRefreshIntervalObj ) clearInterval ( checkServerIntervalObj ) clearInterval ( startServerIntervalObj ) statusBarItem . dispose ( ) if ( serverProcess !== null ) { try { serverProcess . stdin . write ( 'x' ) serverProcess . stdin . end ( ) } catch ( err ) { } } }
this method is called when your extension is deactivated
this method is called when your extension is deactivated
// any input will stop the server