untitled editor names 💄

上级 7320c851
......@@ -232,11 +232,11 @@ export class ResourcesDropHandler {
private async handleDirtyEditorDrop(droppedDirtyEditor: IDraggedEditor): Promise<boolean> {
const fileEditorFactory = Registry.as<IEditorInputFactoryRegistry>(EditorExtensions.EditorInputFactories).getFileEditorInputFactory();
// Untitled: always ensure that we open a new untitled editor for each file we drop
// Untitled: always ensure that we open a new untitled text editor for each file we drop
if (droppedDirtyEditor.resource.scheme === Schemas.untitled) {
const untitledEditorResource = this.editorService.createEditorInput({ mode: droppedDirtyEditor.mode, encoding: droppedDirtyEditor.encoding, forceUntitled: true }).resource;
if (untitledEditorResource) {
droppedDirtyEditor.resource = untitledEditorResource;
const untitledTextEditorResource = this.editorService.createEditorInput({ mode: droppedDirtyEditor.mode, encoding: droppedDirtyEditor.encoding, forceUntitled: true }).resource;
if (untitledTextEditorResource) {
droppedDirtyEditor.resource = untitledTextEditorResource;
}
}
......
......@@ -332,8 +332,8 @@ class DropOverlay extends Themable {
proposedFilePath = joinPath(defaultFilePath, name);
}
// Open as untitled file with the provided contents
const untitledEditor = this.editorService.createEditorInput({
// Open as untitled text file with the provided contents
const untitledTextEditor = this.editorService.createEditorInput({
resource: proposedFilePath,
forceUntitled: true,
contents: VSBuffer.wrap(new Uint8Array(event.target.result)).toString()
......@@ -343,7 +343,7 @@ class DropOverlay extends Themable {
targetGroup = ensureTargetGroup();
}
await targetGroup.openEditor(untitledEditor);
await targetGroup.openEditor(untitledTextEditor);
}
};
}
......@@ -355,9 +355,7 @@ class DropOverlay extends Themable {
else {
const dropHandler = this.instantiationService.createInstance(ResourcesDropHandler, { allowWorkspaceOpen: true /* open workspace instead of file if dropped */ });
dropHandler.handleDrop(event, () => ensureTargetGroup(), targetGroup => {
if (targetGroup) {
targetGroup.focus();
}
targetGroup?.focus();
});
}
}
......
......@@ -18,5 +18,5 @@ import './toggleMultiCursorModifier';
import './toggleRenderControlCharacter';
import './toggleRenderWhitespace';
import './toggleWordWrap';
import './untitledEditorHint';
import './untitledTextEditorHint';
import './workbenchReferenceSearch';
......@@ -21,13 +21,13 @@ import { registerEditorContribution } from 'vs/editor/browser/editorExtensions';
const $ = dom.$;
const untitledEditorHintSetting = 'workbench.editor.untitled.hint';
export class UntitledEditorHintContribution implements IEditorContribution {
const untitledTextEditorHintSetting = 'workbench.editor.untitledText.hint';
export class UntitledTextEditorHintContribution implements IEditorContribution {
public static readonly ID = 'editor.contrib.untitledHint';
public static readonly ID = 'editor.contrib.untitledTextEditorHint';
private toDispose: IDisposable[];
private untitledHintContentWidget: UntitledEditorHintContentWidget | undefined;
private untitledTextHintContentWidget: UntitledTextEditorHintContentWidget | undefined;
private experimentTreatment: 'text' | 'hidden' | undefined;
constructor(
......@@ -41,7 +41,7 @@ export class UntitledEditorHintContribution implements IEditorContribution {
this.toDispose.push(this.editor.onDidChangeModel(() => this.update()));
this.toDispose.push(this.editor.onDidChangeModelLanguage(() => this.update()));
this.toDispose.push(this.configurationService.onDidChangeConfiguration(e => {
if (e.affectsConfiguration(untitledEditorHintSetting)) {
if (e.affectsConfiguration(untitledTextEditorHintSetting)) {
this.update();
}
}));
......@@ -52,24 +52,24 @@ export class UntitledEditorHintContribution implements IEditorContribution {
}
private update(): void {
this.untitledHintContentWidget?.dispose();
const configValue = this.configurationService.getValue<'text' | 'hidden' | 'default'>(untitledEditorHintSetting);
this.untitledTextHintContentWidget?.dispose();
const configValue = this.configurationService.getValue<'text' | 'hidden' | 'default'>(untitledTextEditorHintSetting);
const untitledHintMode = configValue === 'default' ? (this.experimentTreatment || 'text') : configValue;
const model = this.editor.getModel();
if (model && model.uri.scheme === Schemas.untitled && model.getModeId() === PLAINTEXT_MODE_ID && untitledHintMode === 'text') {
this.untitledHintContentWidget = new UntitledEditorHintContentWidget(this.editor, this.commandService, this.configurationService);
this.untitledTextHintContentWidget = new UntitledTextEditorHintContentWidget(this.editor, this.commandService, this.configurationService);
}
}
dispose(): void {
dispose(this.toDispose);
this.untitledHintContentWidget?.dispose();
this.untitledTextHintContentWidget?.dispose();
}
}
class UntitledEditorHintContentWidget implements IContentWidget {
class UntitledTextEditorHintContentWidget implements IContentWidget {
private static readonly ID = 'editor.widget.untitledHint';
......@@ -100,7 +100,7 @@ class UntitledEditorHintContentWidget implements IContentWidget {
}
getId(): string {
return UntitledEditorHintContentWidget.ID;
return UntitledTextEditorHintContentWidget.ID;
}
// Select a language to get started. Start typing to dismiss, or don't show this again.
......@@ -134,7 +134,7 @@ class UntitledEditorHintContentWidget implements IContentWidget {
}));
this.toDispose.push(dom.addDisposableListener(dontShow, 'click', () => {
this.configurationService.updateValue(untitledEditorHintSetting, 'hidden');
this.configurationService.updateValue(untitledTextEditorHintSetting, 'hidden');
this.dispose();
this.editor.focus();
}));
......@@ -175,4 +175,4 @@ registerThemingParticipant((theme, collector) => {
}
});
registerEditorContribution(UntitledEditorHintContribution.ID, UntitledEditorHintContribution);
registerEditorContribution(UntitledTextEditorHintContribution.ID, UntitledTextEditorHintContribution);
......@@ -143,15 +143,15 @@ suite('Files - TextFileEditorTracker', () => {
test('dirty untitled text file model opens as editor', async function () {
const accessor = await createTracker();
const untitledEditor = accessor.editorService.createEditorInput({ forceUntitled: true }) as UntitledTextEditorInput;
const model = disposables.add(await untitledEditor.resolve());
const untitledTextEditor = accessor.editorService.createEditorInput({ forceUntitled: true }) as UntitledTextEditorInput;
const model = disposables.add(await untitledTextEditor.resolve());
assert.ok(!accessor.editorService.isOpened(untitledEditor));
assert.ok(!accessor.editorService.isOpened(untitledTextEditor));
model.textEditorModel?.setValue('Super Good');
await awaitEditorOpening(accessor.editorService);
assert.ok(accessor.editorService.isOpened(untitledEditor));
assert.ok(accessor.editorService.isOpened(untitledTextEditor));
});
function awaitEditorOpening(editorService: IEditorService): Promise<void> {
......
......@@ -1022,7 +1022,7 @@ export class EditorService extends Disposable implements EditorServiceImpl {
// Untitled file support
const untitledInput = input as IUntitledTextResourceEditorInput;
if (untitledInput.forceUntitled || !untitledInput.resource || (untitledInput.resource && untitledInput.resource.scheme === Schemas.untitled)) {
if (untitledInput.forceUntitled || !untitledInput.resource || (untitledInput.resource.scheme === Schemas.untitled)) {
const untitledOptions = {
mode: untitledInput.mode,
initialValue: untitledInput.contents,
......
......@@ -107,23 +107,23 @@ suite('WorkingCopyBackupTracker (browser)', function () {
async function untitledBackupTest(untitled: IUntitledTextResourceEditorInput = {}): Promise<void> {
const { accessor, cleanup, workingCopyBackupService } = await createTracker();
const untitledEditor = (await accessor.editorService.openEditor(untitled))?.input as UntitledTextEditorInput;
const untitledTextEditor = (await accessor.editorService.openEditor(untitled))?.input as UntitledTextEditorInput;
const untitledModel = await untitledEditor.resolve();
const untitledTextModel = await untitledTextEditor.resolve();
if (!untitled?.contents) {
untitledModel.textEditorModel?.setValue('Super Good');
untitledTextModel.textEditorModel?.setValue('Super Good');
}
await workingCopyBackupService.joinBackupResource();
assert.strictEqual(workingCopyBackupService.hasBackupSync(untitledModel), true);
assert.strictEqual(workingCopyBackupService.hasBackupSync(untitledTextModel), true);
untitledModel.dispose();
untitledTextModel.dispose();
await workingCopyBackupService.joinDiscardBackup();
assert.strictEqual(workingCopyBackupService.hasBackupSync(untitledModel), false);
assert.strictEqual(workingCopyBackupService.hasBackupSync(untitledTextModel), false);
cleanup();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册