Fix "open in vscode" on Windows

- fixes #3489
This commit is contained in:
Mattias Granlund 2024-04-11 20:29:39 +02:00
parent 150acb0abf
commit f0097846e4
3 changed files with 11 additions and 6 deletions

View File

@ -32,6 +32,10 @@ export class Project {
ok_with_force_push!: boolean;
omit_certificate_check: boolean | undefined;
use_diff_context: boolean | undefined;
get vscodePath() {
return this.path.includes('\\') ? '/' + this.path.replace('\\', '/') : this.path;
}
}
export type CloudProject = {
@ -65,7 +69,7 @@ export class ProjectService {
}
async getProject(projectId: string) {
return await invoke<Project>('get_project', { id: projectId });
return plainToInstance(Project, await invoke('get_project', { id: projectId }));
}
async updateProject(params: {
@ -76,12 +80,12 @@ export class ProjectService {
okWithForcePush?: boolean;
omitCertificateCheck?: boolean;
}) {
await invoke<Project>('update_project', { project: params });
plainToInstance(Project, await invoke<Project>('update_project', { project: params }));
this.reload();
}
async add(path: string) {
const project = await invoke<Project>('add_project', { path });
const project = plainToInstance(Project, await invoke<Project>('add_project', { path }));
await this.reload();
return project;
}

View File

@ -144,8 +144,8 @@
class="empty-board__suggestions__link"
role="button"
tabindex="0"
on:keypress={() => open(`vscode://file${project.path}/?windowId=_blank`)}
on:click={() => open(`vscode://file${project.path}/?windowId=_blank`)}
on:keypress={() => open(`vscode://file${project.vscodePath}/?windowId=_blank`)}
on:click={() => open(`vscode://file${project.vscodePath}/?windowId=_blank`)}
>
<div class="empty-board__suggestions__link__icon">
<Icon name="vscode" />

View File

@ -41,9 +41,10 @@
function updateContextMenu(filePath: string) {
if (popupMenu) popupMenu.$destroy();
console.log('hello', project.vscodePath);
return new HunkContextMenu({
target: document.body,
props: { projectPath: project.path, filePath }
props: { projectPath: project.vscodePath, filePath }
});
}