@@ -60,13 +60,6 @@ function safeString(value: unknown): string {
6060 return value != null ? String ( value ) : "" ;
6161}
6262
63- const defaultKeymaps = keymap . of ( [
64- ...formatKeymap ,
65- ...acodeRenameKeymap ,
66- ...jumpToDefinitionKeymap ,
67- ...findReferencesKeymap ,
68- ] ) ;
69-
7063interface BuiltinExtensionsResult {
7164 extensions : Extension [ ] ;
7265 diagnosticsExtension : Extension | LSPClientExtension | null ;
@@ -83,14 +76,25 @@ function buildBuiltinExtensions(
8376 diagnostics : includeDiagnostics = true ,
8477 inlayHints : includeInlayHints = true ,
8578 documentHighlights : includeDocumentHighlights = true ,
79+ formatting : includeFormatting = true ,
8680 } = config ;
8781
8882 const extensions : Extension [ ] = [ ] ;
8983 let diagnosticsExtension : Extension | LSPClientExtension | null = null ;
9084
9185 if ( includeCompletion ) extensions . push ( serverCompletion ( ) ) ;
9286 if ( includeHover ) extensions . push ( hoverTooltips ( ) ) ;
93- if ( includeKeymaps ) extensions . push ( defaultKeymaps ) ;
87+ if ( includeKeymaps ) {
88+ const bindings = [
89+ ...( includeFormatting ? formatKeymap : [ ] ) ,
90+ ...acodeRenameKeymap ,
91+ ...jumpToDefinitionKeymap ,
92+ ...findReferencesKeymap ,
93+ ] ;
94+ if ( bindings . length ) {
95+ extensions . push ( keymap . of ( bindings ) ) ;
96+ }
97+ }
9498 if ( includeSignature ) extensions . push ( signatureHelp ( ) ) ;
9599 if ( includeDiagnostics ) {
96100 const diagExt = serverDiagnostics ( ) ;
@@ -263,6 +267,7 @@ export class LspClientManager {
263267 if ( ! servers . length ) return false ;
264268
265269 for ( const server of servers ) {
270+ if ( ! supportsBuiltinFormatting ( server ) ) continue ;
266271 try {
267272 const context : RootUriContext = {
268273 uri : normalizedUri ,
@@ -912,6 +917,10 @@ function resolveIndentWidth(unit: string): number {
912917 return width || 4 ;
913918}
914919
920+ function supportsBuiltinFormatting ( server : LspServerDefinition ) : boolean {
921+ return server . clientConfig ?. builtinExtensions ?. formatting !== false ;
922+ }
923+
915924const defaultManager = new LspClientManager ( ) ;
916925
917926export default defaultManager ;
0 commit comments