3
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
4
*--------------------------------------------------------------------------------------------*/
5
5
6
- import 'vs/css!./media/mergeEditor' ;
7
- import './colors' ;
8
6
import { $ , Dimension , reset } from 'vs/base/browser/dom' ;
9
7
import { Direction , Grid , IView , SerializableGrid } from 'vs/base/browser/ui/grid/grid' ;
10
8
import { Orientation , Sizing } from 'vs/base/browser/ui/splitview/splitview' ;
@@ -14,6 +12,7 @@ import { Color } from 'vs/base/common/color';
14
12
import { BugIndicatingError } from 'vs/base/common/errors' ;
15
13
import { DisposableStore } from 'vs/base/common/lifecycle' ;
16
14
import { URI } from 'vs/base/common/uri' ;
15
+ import 'vs/css!./media/mergeEditor' ;
17
16
import { ICodeEditor , isCodeEditor } from 'vs/editor/browser/editorBrowser' ;
18
17
import { CodeEditorWidget } from 'vs/editor/browser/widget/codeEditorWidget' ;
19
18
import { IEditorOptions as ICodeEditorOptions } from 'vs/editor/common/config/editorOptions' ;
@@ -38,15 +37,16 @@ import { EditorInput } from 'vs/workbench/common/editor/editorInput';
38
37
import { applyTextEditorOptions } from 'vs/workbench/common/editor/editorOptions' ;
39
38
import { autorunWithStore } from 'vs/workbench/contrib/audioCues/browser/observable' ;
40
39
import { MergeEditorInput } from 'vs/workbench/contrib/mergeEditor/browser/mergeEditorInput' ;
41
- import { MergeEditorModel } from 'vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel' ;
42
40
import { DocumentMapping , getOppositeDirection , MappingDirection } from 'vs/workbench/contrib/mergeEditor/browser/model/mapping' ;
43
- import { ReentrancyBarrier } from 'vs/workbench/contrib/mergeEditor/browser/utils' ;
41
+ import { MergeEditorModel } from 'vs/workbench/contrib/mergeEditor/browser/model/mergeEditorModel' ;
42
+ import { ReentrancyBarrier , thenIfNotDisposed } from 'vs/workbench/contrib/mergeEditor/browser/utils' ;
43
+ import { MergeEditorViewModel } from 'vs/workbench/contrib/mergeEditor/browser/view/viewModel' ;
44
44
import { settingsSashBorder } from 'vs/workbench/contrib/preferences/common/settingsEditorColorRegistry' ;
45
45
import { IEditorGroup , IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService' ;
46
46
import { IEditorService } from 'vs/workbench/services/editor/common/editorService' ;
47
+ import './colors' ;
47
48
import { InputCodeEditorView } from './editors/inputCodeEditorView' ;
48
49
import { ResultCodeEditorView } from './editors/resultCodeEditorView' ;
49
- import { MergeEditorViewModel } from 'vs/workbench/contrib/mergeEditor/browser/view/viewModel' ;
50
50
51
51
export const ctxIsMergeEditor = new RawContextKey < boolean > ( 'isMergeEditor' , false ) ;
52
52
export const ctxUsesColumnLayout = new RawContextKey < boolean > ( 'mergeEditorUsesColumnLayout' , false ) ;
@@ -235,6 +235,16 @@ export class MergeEditor extends AbstractTextEditor<any> {
235
235
this . inputResultView . setModel ( viewModel , model . result , localize ( 'result' , 'Result' , ) , this . _labelService . getUriLabel ( model . result . uri , { relative : true } ) , undefined ) ;
236
236
this . _ctxBaseResourceScheme . set ( model . base . uri . scheme ) ;
237
237
238
+ this . _sessionDisposables . add ( thenIfNotDisposed ( model . onInitialized , ( ) => {
239
+ const firstConflict = model . modifiedBaseRanges . get ( ) . find ( r => r . isConflicting ) ;
240
+ if ( ! firstConflict ) {
241
+ return ;
242
+ }
243
+
244
+ this . input1View . editor . revealLineInCenter ( firstConflict . input1Range . startLineNumber ) ;
245
+ } ) ) ;
246
+
247
+
238
248
this . _sessionDisposables . add ( autorunWithStore ( ( reader , store ) => {
239
249
const input1ViewZoneIds : string [ ] = [ ] ;
240
250
const input2ViewZoneIds : string [ ] = [ ] ;
0 commit comments