提交 952faa48 编写于 作者: M Matt Bierner

Strict null checks

上级 3ec0cb43
......@@ -549,6 +549,7 @@
"./vs/workbench/common/viewlet.ts",
"./vs/workbench/common/views.ts",
"./vs/workbench/electron-browser/resources.ts",
"./vs/workbench/parts/backup/common/backupRestorer.ts",
"./vs/workbench/parts/cli/electron-browser/cli.contribution.ts",
"./vs/workbench/parts/codeEditor/browser/menuPreventer.ts",
"./vs/workbench/parts/codeEditor/browser/simpleEditorOptions.ts",
......@@ -582,6 +583,7 @@
"./vs/workbench/parts/extensions/electron-browser/extensionsActivationProgress.ts",
"./vs/workbench/parts/extensions/electron-browser/extensionsUtils.ts",
"./vs/workbench/parts/extensions/test/common/extensionQuery.test.ts",
"./vs/workbench/parts/localizations/electron-browser/localizationsActions.ts",
"./vs/workbench/parts/logs/common/logConstants.ts",
"./vs/workbench/parts/logs/electron-browser/logs.contribution.ts",
"./vs/workbench/parts/logs/electron-browser/logsActions.ts",
......@@ -647,11 +649,15 @@
"./vs/workbench/parts/welcome/gettingStarted/electron-browser/gettingStarted.ts",
"./vs/workbench/parts/welcome/gettingStarted/test/common/gettingStarted.test.ts",
"./vs/workbench/parts/welcome/page/electron-browser/vs_code_welcome_page.ts",
"./vs/workbench/parts/welcome/walkThrough/electron-browser/editor/editorWalkThrough.ts",
"./vs/workbench/parts/welcome/walkThrough/node/walkThroughContentProvider.ts",
"./vs/workbench/parts/welcome/walkThrough/node/walkThroughInput.ts",
"./vs/workbench/parts/welcome/walkThrough/node/walkThroughUtils.ts",
"./vs/workbench/services/actions/electron-browser/menusExtensionPoint.ts",
"./vs/workbench/services/activity/common/activity.ts",
"./vs/workbench/services/backup/common/backup.ts",
"./vs/workbench/services/backup/node/backupFileService.ts",
"./vs/workbench/services/bulkEdit/electron-browser/bulkEditService.ts",
"./vs/workbench/services/commands/common/commandService.ts",
"./vs/workbench/services/configuration/common/configuration.ts",
"./vs/workbench/services/configuration/common/configurationExtensionPoint.ts",
......
......@@ -1115,7 +1115,7 @@ export interface ResourceTextEdit {
}
export interface WorkspaceEdit {
edits?: Array<ResourceTextEdit | ResourceFileEdit>;
edits: Array<ResourceTextEdit | ResourceFileEdit>;
}
export interface Rejection {
......
......@@ -69,7 +69,7 @@ class RenameSkeleton {
if (i >= this._provider.length) {
return {
edits: undefined,
edits: [],
rejectReason: rejects.join('\n')
};
}
......
......@@ -5355,7 +5355,7 @@ declare namespace monaco.languages {
}
export interface WorkspaceEdit {
edits?: Array<ResourceTextEdit | ResourceFileEdit>;
edits: Array<ResourceTextEdit | ResourceFileEdit>;
}
export interface Rejection {
......
......@@ -28,13 +28,13 @@ export class BackupRestorer implements IWorkbenchContribution {
this.lifecycleService.when(LifecyclePhase.Restored).then(() => this.doRestoreBackups());
}
private doRestoreBackups(): Thenable<URI[]> {
private doRestoreBackups(): Thenable<URI[] | undefined> {
// Find all files and untitled with backups
return this.backupFileService.getWorkspaceFileBackups().then(backups => {
// Resolve backups that are opened
return this.doResolveOpenedBackups(backups).then(unresolved => {
return this.doResolveOpenedBackups(backups).then((unresolved): Thenable<URI[] | undefined> | undefined => {
// Some failed to restore or were not opened at all so we open and resolve them manually
if (unresolved.length > 0) {
......
......@@ -36,11 +36,11 @@ export class ConfigureLocaleAction extends Action {
super(id, label);
}
public run(event?: any): Thenable<IEditor> {
public run(event?: any): Thenable<IEditor | undefined> {
const file = URI.file(join(this.environmentService.appSettingsHome, 'locale.json'));
return this.fileService.resolveFile(file).then(void 0, (error) => {
return this.fileService.createFile(file, ConfigureLocaleAction.DEFAULT_CONTENT);
}).then((stat) => {
}).then((stat): Thenable<IEditor | undefined> | undefined => {
if (!stat) {
return undefined;
}
......
......@@ -84,7 +84,7 @@ export class WalkThroughSnippetContentProvider implements ITextModelContentProvi
const markdown = textBuffer.getValueInRange(range, EndOfLinePreference.TextDefined);
marked(markdown, { renderer });
const languageId = this.modeService.getModeIdForLanguageName(languageName);
const languageId = this.modeService.getModeIdForLanguageName(languageName) || '';
const languageSelection = this.modeService.create(languageId);
codeEditorModel = this.modelService.createModel(codeSnippet, languageSelection, resource);
} else {
......
......@@ -50,7 +50,7 @@ export class WalkThroughInput extends EditorInput {
private disposables: IDisposable[] = [];
private promise: Thenable<WalkThroughModel>;
private promise: Thenable<WalkThroughModel> | null;
private maxTopScroll = 0;
private maxBottomScroll = 0;
......
......@@ -121,9 +121,11 @@ class EditorEditTask extends ModelEditTask {
this._editor.pushUndoStop();
}
if (this._newEol !== undefined) {
this._editor.pushUndoStop();
this._editor.getModel().pushEOL(this._newEol);
this._editor.pushUndoStop();
if (this._editor.hasModel()) {
this._editor.pushUndoStop();
this._editor.getModel().pushEOL(this._newEol);
this._editor.pushUndoStop();
}
}
}
}
......@@ -132,13 +134,13 @@ class BulkEditModel implements IDisposable {
private _textModelResolverService: ITextModelService;
private _edits = new Map<string, ResourceTextEdit[]>();
private _editor: ICodeEditor;
private _editor: ICodeEditor | undefined;
private _tasks: ModelEditTask[];
private _progress: IProgress<void>;
constructor(
textModelResolverService: ITextModelService,
editor: ICodeEditor,
editor: ICodeEditor | undefined,
edits: ResourceTextEdit[],
progress: IProgress<void>
) {
......@@ -180,7 +182,7 @@ class BulkEditModel implements IDisposable {
}
let task: ModelEditTask;
if (this._editor && this._editor.getModel().uri.toString() === model.textEditorModel.uri.toString()) {
if (this._editor && this._editor.hasModel() && this._editor.getModel().uri.toString() === model.textEditorModel.uri.toString()) {
task = new EditorEditTask(ref, this._editor);
} else {
task = new ModelEditTask(ref);
......@@ -221,12 +223,12 @@ export type Edit = ResourceFileEdit | ResourceTextEdit;
export class BulkEdit {
private _edits: Edit[] = [];
private _editor: ICodeEditor;
private _progress: IProgressRunner;
private _editor: ICodeEditor | undefined;
private _progress?: IProgressRunner;
constructor(
editor: ICodeEditor,
progress: IProgressRunner,
editor: ICodeEditor | undefined,
progress: IProgressRunner | undefined,
@ILogService private readonly _logService: ILogService,
@ITextModelService private readonly _textModelService: ITextModelService,
@IFileService private readonly _fileService: IFileService,
......@@ -264,7 +266,7 @@ export class BulkEdit {
let total = 0;
const groups: Edit[][] = [];
let group: Edit[];
let group: Edit[] | undefined;
for (const edit of this._edits) {
if (!group
|| (isResourceFileEdit(group[0]) && !isResourceFileEdit(edit))
......@@ -285,8 +287,10 @@ export class BulkEdit {
// define total work and progress callback
// for child operations
this._progress.total(total);
let progress: IProgress<void> = { report: _ => this._progress.worked(1) };
if (this._progress) {
this._progress.total(total);
}
let progress: IProgress<void> = { report: _ => this._progress && this._progress.worked(1) };
// do it.
for (const group of groups) {
......@@ -400,7 +404,7 @@ export class BulkEditService implements IBulkEditService {
}
}
const bulkEdit = new BulkEdit(options.editor, options.progress, this._logService, this._textModelService, this._fileService, this._textFileService, this._labelService, this._configurationService);
const bulkEdit = new BulkEdit(codeEditor, options.progress, this._logService, this._textModelService, this._fileService, this._textFileService, this._labelService, this._configurationService);
bulkEdit.add(edits);
return bulkEdit.perform().then(() => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册