Change:
Issue Type: <bBug</bWhen pressing F8 in editor without error markers in current file, tab will switch to another opened file with error. Is it possible to prevent tab switching when F8 is pressed and there is no errors in current file? VS Code version: Code 1.22.0 (, 2018-04-05T17:25:43.982Z) OS version: Darwin x64 16.7.0 <!-- generated by issue reporter --
It's caused by a change in behavior in 1.22 (). I think it's a change to the worse: it's very easy to get used to hitting F8 to get a quick feedback for whether the current file has any errors, and this change breaks this workflow in a very noisy way. It also punishes those who work on 'dirty' projects with lots of errors and prefer to concentrate on one file at a time. I think it would be great to have a config switch for "F8 checks all files/current file", or at least a pair of keyboard bindings for the old behavior. I'm actually surprised that it wasn't implemented with this change.
Understood. The goal was to keep the number of setting low, but I understand the different use-cases and muscle memory. Until then, a workaround, albeit weak, is to hit Shift+F8 which takes to back to the file.
Yeah, I agree that "convention over configuration" has its benefits, and it seems that the suggestion that caused this change was quite popular, but IMO this warrants at least a pair of shortcut bindings. Speaking about conventions, I've just checked that for example similar shortcuts in PyCharm (and I assume all other JetBrains IDEs) only jump through errors in the current file. One upside of the old behavior was that when the current file had no errors, there were no visual changes after pressing F8, and the cursor stayed where it was. Now in this case Shift+F8 after F8 won't even bring you back to that file, it would jump to another file with errors. "Go Back" or "Open Next Recently Used Editor" works though. It was also very useful that F8 would wrap around and bring you to the first error in the current file if you are working near the end of it and did some changes that e.g. made some imports or vars unused. I think I was relying on this behavior 80% of times when I pressed F8. And now it's become quite difficult to predict whether F8 or Shift-F8 would keep you in the current file or move to another one.
We have the two old commands back (in addition to the new commands). That means there is now "Go to Next Problem" and "Go to Next Problem In Files" as well as the other direction. We have not changed the keybindings, so F8/Shift-F8 walks across the project and you would need to reassign the them to get old, old behaviour back.
Wow, I didn't expect this minor issue to get resolved so quickly! Big thanks to the team, it's really a marvel to witness the development of this amazing project.
Thanks to
I verified the new command works as expected, however is the name "in Files" really clear what it does. Why not "across Files"?
We chose "in Files" to match "Find in Files". "across Files" makes sense too though and might be clearer for users who haven't used "Find in Files" before.

Discussion:
private _isNext: boolean; <del> constructor(next: boolean, opts: IActionOptions) { </del> <ins> private _multiFile: boolean; constructor(next: boolean, multiFile: boolean, opts: IActionOptions) { </ins> super(opts); this._isNext = next; <ins> this._multiFile = multiFile; </ins> } public run(accessor: ServicesAccessor, editor: ICodeEditor): TPromise<void> {

} const model = controller.getOrCreateModel(); <del> const atEdge = model.move(this._isNext, false); if (!atEdge) { </del> <ins> const atEdge = model.move(this._isNext, !this._multiFile); if (!atEdge || !this._multiFile) { </ins> return undefined; }

class NextMarkerAction extends MarkerNavigationAction { constructor() { <del> super(true, { </del> <ins> super(true, false, { </ins> id: 'editor.action.marker.next', label: nls.localize('markerAction.next.label', "Go to Next Problem (Error, Warning, Info)"), alias: 'Go to Next Error or Warning', <ins> precondition: EditorContextKeys.writable }); } } class PrevMarkerAction extends MarkerNavigationAction { constructor() { super(false, false, { id: 'editor.action.marker.prev', label: nls.localize('markerAction.previous.label', "Go to Previous Problem (Error, Warning, Info)"), alias: 'Go to Previous Error or Warning', precondition: EditorContextKeys.writable }); } } class NextMarkerInFilesAction extends MarkerNavigationAction { constructor() { super(true, true, { id: 'editor.action.marker.nextInFiles', label: nls.localize('markerAction.nextInFiles.label', "Go to Next Problem in Files (Error, Warning, Info)"), alias: 'Go to Next Error or Warning in Files', </ins> precondition: EditorContextKeys.writable, kbOpts: { kbExpr: EditorContextKeys.focus,

} } <del> class PrevMarkerAction extends MarkerNavigationAction { </del> <ins> class PrevMarkerInFilesAction extends MarkerNavigationAction { </ins> constructor() { <del> super(false, { id: 'editor.action.marker.prev', label: nls.localize('markerAction.previous.label', "Go to Previous Problem (Error, Warning, Info)"), alias: 'Go to Previous Error or Warning', </del> <ins> super(false, true, { id: 'editor.action.marker.prevInFiles', label: nls.localize('markerAction.previousInFiles.label', "Go to Previous Problem in Files (Error, Warning, Info)"), alias: 'Go to Previous Error or Warning in Files', </ins> precondition: EditorContextKeys.writable, kbOpts: { kbExpr: EditorContextKeys.focus,

registerEditorContribution(MarkerController); registerEditorAction(NextMarkerAction); registerEditorAction(PrevMarkerAction); <ins> registerEditorAction(NextMarkerInFilesAction); registerEditorAction(PrevMarkerInFilesAction); </ins> const CONTEXT_MARKERS_NAVIGATION_VISIBLE = new RawContextKey<boolean>('markersNavigationVisible', false);