Skip to content

Commit 01400a7

Browse files
committed
refactor: move isOpenAndDirty to general utils
1 parent ef3623a commit 01400a7

File tree

4 files changed

+24
-5
lines changed

4 files changed

+24
-5
lines changed

packages/core/src/amazonq/util/files.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,3 @@ export function registerNewFiles(
299299

300300
return result
301301
}
302-
303-
export function isFileOpenAndDirty(uri: vscode.Uri) {
304-
return vscode.workspace.textDocuments.some((document) => document.uri.fsPath === uri.fsPath && document.isDirty)
305-
}

packages/core/src/codewhisperer/util/zipUtil.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import { ZipStream } from '../../shared/utilities/zipStream'
2828
import { getTextContent } from '../../shared/utilities/textDocumentUtilities'
2929
import { ChildProcess, ChildProcessOptions } from '../../shared/utilities/processUtils'
3030
import { removeAnsi } from '../../shared/utilities/textUtilities'
31-
import { isFileOpenAndDirty } from '../../amazonq/util/files'
31+
import { isFileOpenAndDirty } from '../../shared/utilities/vsCodeUtils'
3232

3333
export interface ZipMetadata {
3434
rootDir: string

packages/core/src/shared/utilities/vsCodeUtils.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,3 +254,7 @@ export function subscribeOnce<T>(event: vscode.Event<T>): vscode.Event<T> {
254254
return result
255255
}
256256
}
257+
258+
export function isFileOpenAndDirty(uri: vscode.Uri) {
259+
return vscode.workspace.textDocuments.some((document) => document.uri.fsPath === uri.fsPath && document.isDirty)
260+
}

packages/core/src/test/shared/utilities/vscodeUtils.test.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import { VSCODE_EXTENSION_ID } from '../../../shared/extensions'
88
import * as vscodeUtil from '../../../shared/utilities/vsCodeUtils'
99
import * as vscode from 'vscode'
1010
import { getExcludePattern } from '../../../shared/fs/watchedFiles'
11+
import { TestFolder } from '../../testUtil'
12+
import path from 'path'
1113

1214
describe('vscodeUtils', async function () {
1315
it('activateExtension(), isExtensionActive()', async function () {
@@ -119,3 +121,20 @@ describe('buildMissingExtensionMessage()', function () {
119121
)
120122
})
121123
})
124+
125+
describe('isOpenAndDirty', function () {
126+
it('updates as file status changes ', async function () {
127+
const testFolder = await TestFolder.create()
128+
await testFolder.write('file1.md', 'test content')
129+
const document = await vscode.workspace.openTextDocument(path.join(testFolder.path, '/file1.md'))
130+
assert.strictEqual(vscodeUtil.isFileOpenAndDirty(document.uri), false)
131+
await vscode.window.showTextDocument(document)
132+
assert.strictEqual(vscodeUtil.isFileOpenAndDirty(document.uri), false)
133+
await vscode.window.activeTextEditor?.edit((editBuilder) => {
134+
editBuilder.insert(new vscode.Position(0, 0), '// a comment\n')
135+
})
136+
assert.strictEqual(vscodeUtil.isFileOpenAndDirty(document.uri), true)
137+
await document.save()
138+
assert.strictEqual(vscodeUtil.isFileOpenAndDirty(document.uri), false)
139+
})
140+
})

0 commit comments

Comments
 (0)