diff --git a/extensions/typescript-language-features/src/features/fileConfigurationManager.ts b/extensions/typescript-language-features/src/features/fileConfigurationManager.ts index aae8d16b728..0d54ccea22a 100644 --- a/extensions/typescript-language-features/src/features/fileConfigurationManager.ts +++ b/extensions/typescript-language-features/src/features/fileConfigurationManager.ts @@ -10,29 +10,16 @@ import API from '../utils/api'; import { Disposable } from '../utils/dispose'; import * as fileSchemes from '../utils/fileSchemes'; import { isTypeScriptDocument } from '../utils/languageModeIds'; +import { equals } from '../utils/objects'; import { ResourceMap } from '../utils/resourceMap'; - -function objsAreEqual(a: T, b: T): boolean { - let keys = Object.keys(a); - for (const key of keys) { - if ((a as any)[key] !== (b as any)[key]) { - return false; - } - } - return true; -} - interface FileConfiguration { readonly formatOptions: Proto.FormatCodeSettings; readonly preferences: Proto.UserPreferences; } function areFileConfigurationsEqual(a: FileConfiguration, b: FileConfiguration): boolean { - return ( - objsAreEqual(a.formatOptions, b.formatOptions) - && objsAreEqual(a.preferences, b.preferences) - ); + return equals(a, b); } export default class FileConfigurationManager extends Disposable {