message: Fix a bug of resolving schema.json path
diff: +import path = require('path');
  import * as ts from 'typescript/lib/tsserverlibrary';
  export class SchamaJsonManager {
  @@ -12,9 +13,11 @@ export class SchamaJsonManager {
  getSchema() {
  if (!this._schemaPath || typeof this._schemaPath !== 'string') return;
  try {
  - const isExists = this._info.languageServiceHost.fileExists(this._schemaPath);
  + const resolvedSchmaPath = this.getAbsoluteSchemaPath(this._info.project.getProjectRootPath(), this._schemaPath);
  + this._log('Read schema from ' + resolvedSchmaPath);
  + const isExists = this._info.languageServiceHost.fileExists(resolvedSchmaPath);
  if (!isExists) return;
  - return JSON.parse(this._info.languageServiceHost.readFile(this._schemaPath, 'utf-8'));
  + return JSON.parse(this._info.languageServiceHost.readFile(resolvedSchmaPath, 'utf-8'));
  } catch (e) {
  this._log('Fail to read schema file...');
  this._log(e.message);
  @@ -22,6 +25,11 @@ export class SchamaJsonManager {
  }
  }
  + getAbsoluteSchemaPath(projectRootPath: string, schemaPath: string) {
  + if (path.isAbsolute(schemaPath)) return schemaPath;
  + return path.resolve(projectRootPath, schemaPath);
  + }
  +
  registerOnChange(cb: (schema: any) => void) {
  this._onChanges.push(cb);
  return () => {
  @@ -31,7 +39,8 @@ export class SchamaJsonManager {
  startWatch(interval: number = 100) {
  try {
  - this._watcher = this._info.serverHost.watchFile(this._schemaPath, () => {
  + const resolvedSchmaPath = this.getAbsoluteSchemaPath(this._info.project.getProjectRootPath(), this._schemaPath);
  + this._watcher = this._info.serverHost.watchFile(resolvedSchmaPath, () => {
  this._log('Change schema file.');
  if (this._onChanges.length) {
  const schema = this.getSchema();
  