提交 bbc5b9e6 编写于 作者: S Sandeep Somavarapu

tweaks

上级 5ed816b5
......@@ -7,21 +7,49 @@ import { URI } from 'vs/base/common/uri';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { ITextResourcePropertiesService } from 'vs/editor/common/services/resourceConfiguration';
import { OperatingSystem, OS } from 'vs/base/common/platform';
import { IRemoteAgentService, IRemoteAgentEnvironment } from 'vs/workbench/services/remote/node/remoteAgentService';
import { Schemas } from 'vs/base/common/network';
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
import { IWindowService } from 'vs/platform/windows/common/windows';
export class TextResourcePropertiesService implements ITextResourcePropertiesService {
_serviceBrand: any;
private remoteEnvironment: IRemoteAgentEnvironment | null = null;
constructor(
@IConfigurationService private configurationService: IConfigurationService
) { }
@IConfigurationService private configurationService: IConfigurationService,
@IRemoteAgentService remoteAgentService: IRemoteAgentService,
@IWindowService private windowService: IWindowService,
@IStorageService private storageService: IStorageService
) {
const remoteAgentConnection = remoteAgentService.getConnection();
if (remoteAgentConnection) {
remoteAgentConnection.getEnvironment().then(remoteEnv => this.remoteEnvironment = remoteEnv);
}
}
getEOL(resource: URI, language?: string): string {
const filesConfiguration = this.configurationService.getValue<{ eol: string }>('files', { overrideIdentifier: language, resource });
if (filesConfiguration && filesConfiguration.eol && filesConfiguration.eol !== 'auto') {
return filesConfiguration.eol;
}
return OS === OperatingSystem.Linux || OS === OperatingSystem.Macintosh ? '\n' : '\r\n';
const os = this.getOS(resource);
return os === OperatingSystem.Linux || os === OperatingSystem.Macintosh ? '\n' : '\r\n';
}
private getOS(resource: URI): OperatingSystem {
let os = OS;
const remoteAuthority = this.windowService.getConfiguration().remoteAuthority;
if (remoteAuthority) {
if (resource.scheme !== Schemas.file) {
const osCacheKey = `resource.authority.os.${remoteAuthority}`;
os = this.remoteEnvironment ? this.remoteEnvironment.os : /* Get it from cache */ this.storageService.getInteger(osCacheKey, StorageScope.WORKSPACE, OS);
this.storageService.store(osCacheKey, os, StorageScope.WORKSPACE);
}
}
return os;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册