Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
3f26fb90
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3f26fb90
编写于
11月 25, 2019
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
💄
上级
198a94ae
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
26 addition
and
22 deletion
+26
-22
src/vs/platform/userDataSync/common/keybindingsSync.ts
src/vs/platform/userDataSync/common/keybindingsSync.ts
+26
-22
未找到文件。
src/vs/platform/userDataSync/common/keybindingsSync.ts
浏览文件 @
3f26fb90
...
...
@@ -57,7 +57,7 @@ export class KeybindingsSynchroniser extends Disposable implements ISynchroniser
}
private
async
onDidChangeKeybindings
():
Promise
<
void
>
{
const
localFileContent
=
await
this
.
getLocal
File
Content
();
const
localFileContent
=
await
this
.
getLocalContent
();
const
lastSyncData
=
await
this
.
getLastSyncUserData
();
if
(
localFileContent
&&
lastSyncData
)
{
if
(
localFileContent
.
value
.
toString
()
!==
lastSyncData
.
content
)
{
...
...
@@ -161,16 +161,16 @@ export class KeybindingsSynchroniser extends Disposable implements ISynchroniser
}
if
(
hasLocalChanged
)
{
this
.
logService
.
info
(
'
Keybindings: Updating local keybindings
'
);
await
this
.
writeToLocal
(
content
,
fileContent
);
await
this
.
updateLocalContent
(
content
,
fileContent
);
}
if
(
hasRemoteChanged
)
{
this
.
logService
.
info
(
'
Keybindings: Updating remote keybindings
'
);
const
ref
=
await
this
.
writeToRemote
(
content
,
remoteUserData
.
ref
);
const
ref
=
await
this
.
updateRemoteContent
(
content
,
remoteUserData
.
ref
);
remoteUserData
=
{
ref
,
content
};
}
if
(
remoteUserData
.
content
)
{
this
.
logService
.
info
(
'
Keybindings: Updating last synchronised keybindings
'
);
await
this
.
updateLastSync
Value
(
remoteUserData
);
await
this
.
updateLastSync
UserData
(
remoteUserData
);
}
// Delete the preview
...
...
@@ -199,10 +199,10 @@ export class KeybindingsSynchroniser extends Disposable implements ISynchroniser
private
async
generatePreview
(
token
:
CancellationToken
):
Promise
<
ISyncPreviewResult
>
{
const
lastSyncData
=
await
this
.
getLastSyncUserData
();
const
remoteUserData
=
await
this
.
userDataSyncStoreService
.
read
(
KeybindingsSynchroniser
.
EXTERNAL_USER_DATA_KEYBINDINGS_KEY
,
lastSyncData
);
const
remoteUserData
=
await
this
.
getRemoteContent
(
lastSyncData
);
const
remoteContent
:
string
|
null
=
remoteUserData
.
content
;
// Get file content last to get the latest
const
fileContent
=
await
this
.
getLocal
File
Content
();
const
fileContent
=
await
this
.
getLocalContent
();
let
hasLocalChanged
:
boolean
=
false
;
let
hasRemoteChanged
:
boolean
=
false
;
let
hasConflicts
:
boolean
=
false
;
...
...
@@ -245,16 +245,7 @@ export class KeybindingsSynchroniser extends Disposable implements ISynchroniser
return
{
fileContent
,
remoteUserData
,
hasLocalChanged
,
hasRemoteChanged
,
hasConflicts
};
}
private
async
getLastSyncUserData
():
Promise
<
IUserData
|
null
>
{
try
{
const
content
=
await
this
.
fileService
.
readFile
(
this
.
lastSyncKeybindingsResource
);
return
JSON
.
parse
(
content
.
value
.
toString
());
}
catch
(
error
)
{
return
null
;
}
}
private
async
getLocalFileContent
():
Promise
<
IFileContent
|
null
>
{
private
async
getLocalContent
():
Promise
<
IFileContent
|
null
>
{
try
{
return
await
this
.
fileService
.
readFile
(
this
.
environmentService
.
keybindingsResource
);
}
catch
(
error
)
{
...
...
@@ -262,11 +253,7 @@ export class KeybindingsSynchroniser extends Disposable implements ISynchroniser
}
}
private
async
writeToRemote
(
content
:
string
,
ref
:
string
|
null
):
Promise
<
string
>
{
return
this
.
userDataSyncStoreService
.
write
(
KeybindingsSynchroniser
.
EXTERNAL_USER_DATA_KEYBINDINGS_KEY
,
content
,
ref
);
}
private
async
writeToLocal
(
newContent
:
string
,
oldContent
:
IFileContent
|
null
):
Promise
<
void
>
{
private
async
updateLocalContent
(
newContent
:
string
,
oldContent
:
IFileContent
|
null
):
Promise
<
void
>
{
if
(
oldContent
)
{
// file exists already
await
this
.
fileService
.
writeFile
(
this
.
environmentService
.
keybindingsResource
,
VSBuffer
.
fromString
(
newContent
),
oldContent
);
...
...
@@ -276,7 +263,24 @@ export class KeybindingsSynchroniser extends Disposable implements ISynchroniser
}
}
private
async
updateLastSyncValue
(
remoteUserData
:
IUserData
):
Promise
<
void
>
{
private
async
getLastSyncUserData
():
Promise
<
IUserData
|
null
>
{
try
{
const
content
=
await
this
.
fileService
.
readFile
(
this
.
lastSyncKeybindingsResource
);
return
JSON
.
parse
(
content
.
value
.
toString
());
}
catch
(
error
)
{
return
null
;
}
}
private
async
updateLastSyncUserData
(
remoteUserData
:
IUserData
):
Promise
<
void
>
{
await
this
.
fileService
.
writeFile
(
this
.
lastSyncKeybindingsResource
,
VSBuffer
.
fromString
(
JSON
.
stringify
(
remoteUserData
)));
}
private
async
getRemoteContent
(
lastSyncData
:
IUserData
|
null
):
Promise
<
IUserData
>
{
return
this
.
userDataSyncStoreService
.
read
(
KeybindingsSynchroniser
.
EXTERNAL_USER_DATA_KEYBINDINGS_KEY
,
lastSyncData
);
}
private
async
updateRemoteContent
(
content
:
string
,
ref
:
string
|
null
):
Promise
<
string
>
{
return
this
.
userDataSyncStoreService
.
write
(
KeybindingsSynchroniser
.
EXTERNAL_USER_DATA_KEYBINDINGS_KEY
,
content
,
ref
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录