diff --git a/src/vs/workbench/contrib/scm/browser/repositoryPane.ts b/src/vs/workbench/contrib/scm/browser/repositoryPane.ts index 681749602b8d2..6c4e0fefe8470 100644 --- a/src/vs/workbench/contrib/scm/browser/repositoryPane.ts +++ b/src/vs/workbench/contrib/scm/browser/repositoryPane.ts @@ -72,6 +72,7 @@ import { LinkDetector } from 'vs/editor/contrib/links/links'; import { IOpenerService } from 'vs/platform/opener/common/opener'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { IListAccessibilityProvider } from 'vs/base/browser/ui/list/listWidget'; +import { IModeService } from 'vs/editor/common/services/modeService'; type TreeElement = ISCMResourceGroup | IResourceNode | ISCMResource; @@ -649,6 +650,7 @@ export class RepositoryPane extends ViewPane { @IMenuService protected menuService: IMenuService, @IStorageService private storageService: IStorageService, @IModelService private modelService: IModelService, + @IModeService private modeService: IModeService, @IOpenerService openerService: IOpenerService, @ITelemetryService telemetryService: ITelemetryService, ) { @@ -786,7 +788,9 @@ export class RepositoryPane extends ViewPane { }); this.configurationService.updateValue('editor.wordBasedSuggestions', false, { resource: uri }, ConfigurationTarget.MEMORY); - this.inputModel = this.modelService.getModel(uri) || this.modelService.createModel('', null, uri); + + const mode = this.modeService.create('scminput'); + this.inputModel = this.modelService.getModel(uri) || this.modelService.createModel('', mode, uri); this.inputEditor.setModel(this.inputModel); this._register(this.inputEditor.onDidChangeCursorPosition(triggerValidation)); diff --git a/src/vs/workbench/contrib/scm/browser/scm.contribution.ts b/src/vs/workbench/contrib/scm/browser/scm.contribution.ts index fd371ac79b05d..ca87f4502b41e 100644 --- a/src/vs/workbench/contrib/scm/browser/scm.contribution.ts +++ b/src/vs/workbench/contrib/scm/browser/scm.contribution.ts @@ -26,6 +26,7 @@ import { SCMService } from 'vs/workbench/contrib/scm/common/scmService'; import { IViewContainersRegistry, ViewContainerLocation, Extensions as ViewContainerExtensions } from 'vs/workbench/common/views'; import { SCMViewPaneContainer } from 'vs/workbench/contrib/scm/browser/scmViewlet'; import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; +import { ModesRegistry } from 'vs/editor/common/modes/modesRegistry'; class OpenSCMViewletAction extends ShowViewletAction { @@ -37,6 +38,12 @@ class OpenSCMViewletAction extends ShowViewletAction { } } +ModesRegistry.registerLanguage({ + id: 'scminput', + extensions: [], + mimetypes: ['text/x-scm-input'] +}); + Registry.as(WorkbenchExtensions.Workbench) .registerWorkbenchContribution(DirtyDiffWorkbenchController, LifecyclePhase.Restored);