override console.log/error and catch unhandled rejections
parent
6868884346
commit
f6971ca001
|
@ -17,6 +17,7 @@ import normalizePath from 'normalize-path'
|
|||
import { withUserEnvironment } from './environment'
|
||||
import execa from 'execa'
|
||||
import { klona } from 'klona/full'
|
||||
import { formatError } from '../lsp/util/formatError'
|
||||
|
||||
function arraysEqual(arr1, arr2) {
|
||||
return (
|
||||
|
@ -238,7 +239,7 @@ export default async function getClassNames(
|
|||
result = await run()
|
||||
console.log('Initialised successfully.')
|
||||
} catch (error) {
|
||||
console.error('Failed to initialise:', error)
|
||||
console.error(formatError('Failed to initialise:', error))
|
||||
return null
|
||||
}
|
||||
|
||||
|
|
|
@ -36,12 +36,20 @@ import {
|
|||
import { createEmitter } from '../lib/emitter'
|
||||
import { registerDocumentColorProvider } from './providers/documentColorProvider'
|
||||
import { TextDocument } from 'vscode-languageserver-textdocument'
|
||||
import { formatError } from './util/formatError'
|
||||
|
||||
let connection = createConnection(ProposedFeatures.all)
|
||||
const state: State = { enabled: false, emitter: createEmitter(connection) }
|
||||
let documents = new TextDocuments(TextDocument)
|
||||
let workspaceFolder: string | null
|
||||
|
||||
console.log = connection.console.log.bind(connection.console)
|
||||
console.error = connection.console.error.bind(connection.console)
|
||||
|
||||
process.on('unhandledRejection', (e: any) => {
|
||||
connection.console.error(formatError(`Unhandled exception`, e))
|
||||
})
|
||||
|
||||
const defaultSettings: Settings = {
|
||||
tabSize: 2,
|
||||
emmetCompletions: false,
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
// https://github.com/vscode-langservers/vscode-json-languageserver/blob/master/src/utils/runner.ts
|
||||
export function formatError(message: string, err: any): string {
|
||||
if (err instanceof Error) {
|
||||
let error = <Error>err
|
||||
return `${message}: ${error.message}\n${error.stack}`
|
||||
} else if (typeof err === 'string') {
|
||||
return `${message}: ${err}`
|
||||
} else if (err) {
|
||||
return `${message}: ${err.toString()}`
|
||||
}
|
||||
return message
|
||||
}
|
Loading…
Reference in New Issue