Skip to content

Commit

Permalink
Fix bugs with close of markdown docs (#164942)
Browse files Browse the repository at this point in the history
There are two bugs here:

- Something in the lsp is converting a value from `undefined` to `null`. To fix this, I've updated us just to check for falsy values instead
- The `hasInMemoryDoc` implementation was incorrect. It needs to verify that the value of `this.inMemoryDoc` is not null/undefined
  • Loading branch information
mjbvz authored Oct 29, 2022
1 parent d65cc6a commit 7cb1b9d
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions extensions/markdown-language-features/server/src/workspace.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class VsCodeDocument implements md.ITextDocument {
}

hasInMemoryDoc(): boolean {
return !this.inMemoryDoc;
return !!this.inMemoryDoc;
}

isDetached(): boolean {
Expand Down Expand Up @@ -176,7 +176,7 @@ export class VsCodeClientWorkspace implements md.IWorkspaceWithWatching {
// Check that if file has been deleted on disk.
// This can happen when directories are renamed / moved. VS Code's file system watcher does not
// notify us when this happens.
if (await this.statBypassingCache(uri) === undefined) {
if (!(await this.statBypassingCache(uri))) {
if (this._documentCache.get(uri) === doc && !doc.hasInMemoryDoc()) {
this.doDeleteDocument(uri);
return;
Expand Down Expand Up @@ -355,7 +355,8 @@ export class VsCodeClientWorkspace implements md.IWorkspaceWithWatching {
if (this.documents.get(uri)) {
return { isDirectory: false };
}
return this.connection.sendRequest(protocol.fs_stat, { uri });
const fsResult = await this.connection.sendRequest(protocol.fs_stat, { uri });
return fsResult ?? undefined; // Force convert null to undefined
}

async readDirectory(resource: URI): Promise<[string, md.FileStat][]> {
Expand Down

0 comments on commit 7cb1b9d

Please sign in to comment.