66import { editor , Environment , Uri } from 'monaco-editor/esm/vs/editor/editor.api.js' ;
77import { initialize as initializeMonacoService } from 'vscode/services' ;
88import { initialize as initializeVscodeExtensions } from 'vscode/extensions' ;
9- import type { OpenEditor } from 'vscode/service-override/modelEditor ' ;
9+ import type { OpenEditor } from 'vscode/service-override/editor ' ;
1010
1111interface MonacoEnvironmentEnhanced extends Environment {
1212 vscodeApiInitialised : boolean ;
@@ -15,13 +15,13 @@ interface MonacoEnvironmentEnhanced extends Environment {
1515export type InitializeServiceConfig = {
1616 enableDialogService ?: boolean ;
1717 enableNotificationService ?: boolean ;
18- enableModelEditorService ?: boolean ;
19- modelEditorServiceConfig ?: {
20- useDefaultFunction : boolean ;
18+ enableModelService ?: boolean ;
19+ configureEditorOrViewsServiceConfig ?: {
20+ enableViewsService : boolean ;
21+ useDefaultOpenEditorFunction : boolean ;
2122 openEditorFunc ?: OpenEditor
2223 } ;
23- enableConfigurationService ?: boolean
24- configurationServiceConfig ?: {
24+ configureConfigurationServiceConfig ?: {
2525 defaultWorkspaceUri : string ;
2626 } ;
2727 enableThemeService ?: boolean ;
@@ -32,7 +32,7 @@ export type InitializeServiceConfig = {
3232 enableDebugService ?: boolean ;
3333 enablePreferencesService ?: boolean ;
3434 enableSnippetsService ?: boolean ;
35- enableViewsService ?: boolean ;
35+ enableQuickaccessService ?: boolean ;
3636 userServices ?: editor . IEditorOverrideServices ;
3737 debugLogging ?: boolean ;
3838} ;
@@ -75,10 +75,22 @@ const importAllServices = async (config?: InitializeServiceConfig) => {
7575 // files service is required
7676 addService ( 'files' , import ( 'vscode/service-override/files' ) ) ;
7777
78- if ( lc . enableModelEditorService === true && lc . modelEditorServiceConfig !== undefined ) {
79- addService ( 'modelEditor ' , import ( 'vscode/service-override/modelEditor ' ) ) ;
78+ if ( lc . enableModelService === true ) {
79+ addService ( 'model ' , import ( 'vscode/service-override/model ' ) ) ;
8080 }
81- if ( lc . enableConfigurationService === true && lc . configurationServiceConfig !== undefined ) {
81+ if ( lc . configureEditorOrViewsServiceConfig !== undefined ) {
82+ if ( lc . configureEditorOrViewsServiceConfig . enableViewsService ) {
83+ addService ( 'views' , import ( 'vscode/service-override/views' ) ) ;
84+ } else {
85+ addService ( 'editor' , import ( 'vscode/service-override/editor' ) ) ;
86+ }
87+ }
88+ if ( lc . enableQuickaccessService === true ) {
89+ addService ( 'quickaccess' , import ( 'vscode/service-override/quickaccess' ) ) ;
90+ // quickaccess requires keybindings
91+ lc . enableKeybindingsService = true ;
92+ }
93+ if ( lc . configureConfigurationServiceConfig !== undefined ) {
8294 addService ( 'configuration' , import ( 'vscode/service-override/configuration' ) ) ;
8395 }
8496 if ( lc . enableDialogService === true ) {
@@ -113,9 +125,6 @@ const importAllServices = async (config?: InitializeServiceConfig) => {
113125 if ( lc . enableSnippetsService === true ) {
114126 addService ( 'snippets' , import ( 'vscode/service-override/snippets' ) ) ;
115127 }
116- if ( lc . enableViewsService === true ) {
117- addService ( 'views' , import ( 'vscode/service-override/views' ) ) ;
118- }
119128
120129 const reportServiceLoading = ( origin : string , services : editor . IEditorOverrideServices , debugLogging : boolean ) => {
121130 for ( const serviceName of Object . keys ( services ) ) {
@@ -146,19 +155,18 @@ const importAllServices = async (config?: InitializeServiceConfig) => {
146155 }
147156
148157 let services : editor . IEditorOverrideServices = { } ;
149- if ( serviceName === 'modelEditor' && lc . enableModelEditorService ) {
150- const defaultOpenEditorFunc : OpenEditor = async ( model , options , sideBySide ) => {
151- console . log ( 'Trying to open a model' , model , options , sideBySide ) ;
152- return undefined ;
153- } ;
154-
155- if ( lc . modelEditorServiceConfig ?. useDefaultFunction ) {
158+ if ( serviceName === 'editor' || serviceName === 'views' ) {
159+ if ( lc . configureEditorOrViewsServiceConfig ! . useDefaultOpenEditorFunction ) {
160+ const defaultOpenEditorFunc : OpenEditor = async ( model , options , sideBySide ) => {
161+ console . log ( 'Trying to open a model' , model , options , sideBySide ) ;
162+ return undefined ;
163+ } ;
156164 services = loadedImport . default ( defaultOpenEditorFunc ) ;
157- } else if ( lc . modelEditorServiceConfig ?. openEditorFunc ) {
158- services = loadedImport . default ( lc . modelEditorServiceConfig . openEditorFunc ) ;
165+ } else if ( lc . configureEditorOrViewsServiceConfig ?. openEditorFunc ) {
166+ services = loadedImport . default ( lc . configureEditorOrViewsServiceConfig . openEditorFunc ) ;
159167 }
160- } else if ( serviceName === 'configuration' && lc . enableConfigurationService ) {
161- const uri = Uri . file ( lc . configurationServiceConfig ! . defaultWorkspaceUri ) ;
168+ } else if ( serviceName === 'configuration' ) {
169+ const uri = Uri . file ( lc . configureConfigurationServiceConfig ! . defaultWorkspaceUri ) ;
162170 services = loadedImport . default ( uri ) ;
163171 } else {
164172 services = loadedImport . default ( ) ;
0 commit comments