@@ -1100,38 +1100,37 @@ public void registerCapability(RegistrationParams params) {
11001100 }
11011101 break ;
11021102 case "workspace/executeCommand" : //$NON-NLS-1$
1103- final var gson = new Gson (); // TODO? retrieve the GSon used by LS
1104- ExecuteCommandOptions executeCommandOptions = castNonNull (gson .fromJson ((JsonObject ) reg .getRegisterOptions (),
1105- ExecuteCommandOptions .class ));
1106- List <String > newCommands = executeCommandOptions .getCommands ();
1107- if (!newCommands .isEmpty ()) {
1108- addRegistration (reg , () -> unregisterCommands (newCommands ));
1109- registerCommands (newCommands );
1103+ try {
1104+ ExecuteCommandOptions executeCommandOptions = castNonNull (new Gson ().fromJson ((JsonObject ) reg .getRegisterOptions (),
1105+ ExecuteCommandOptions .class ));
1106+ List <String > newCommands = executeCommandOptions .getCommands ();
1107+ if (!newCommands .isEmpty ()) {
1108+ addRegistration (reg , () -> unregisterCommands (newCommands ));
1109+ registerCommands (newCommands );
1110+ }
1111+ } catch (final Exception ex ) {
1112+ LanguageServerPlugin .logError (ex );
11101113 }
11111114 break ;
11121115 case "textDocument/formatting" : //$NON-NLS-1$
11131116 Either <Boolean , DocumentFormattingOptions > documentFormattingProvider = serverCapabilities
11141117 .getDocumentFormattingProvider ();
11151118 if (documentFormattingProvider == null || documentFormattingProvider .isLeft ()) {
11161119 serverCapabilities .setDocumentFormattingProvider (Boolean .TRUE );
1117- addRegistration (reg , () -> serverCapabilities .setDocumentFormattingProvider (documentFormattingProvider ));
11181120 } else {
11191121 serverCapabilities .setDocumentFormattingProvider (documentFormattingProvider .getRight ());
1120- addRegistration (reg , () -> serverCapabilities .setDocumentFormattingProvider (documentFormattingProvider ));
11211122 }
1123+ addRegistration (reg , () -> serverCapabilities .setDocumentFormattingProvider (documentFormattingProvider ));
11221124 break ;
11231125 case "textDocument/rangeFormatting" : //$NON-NLS-1$
11241126 Either <Boolean , DocumentRangeFormattingOptions > documentRangeFormattingProvider = serverCapabilities
11251127 .getDocumentRangeFormattingProvider ();
11261128 if (documentRangeFormattingProvider == null || documentRangeFormattingProvider .isLeft ()) {
11271129 serverCapabilities .setDocumentRangeFormattingProvider (Boolean .TRUE );
1128- addRegistration (reg , () -> serverCapabilities
1129- .setDocumentRangeFormattingProvider (documentRangeFormattingProvider ));
11301130 } else {
11311131 serverCapabilities .setDocumentRangeFormattingProvider (documentRangeFormattingProvider .getRight ());
1132- addRegistration (reg , () -> serverCapabilities
1133- .setDocumentRangeFormattingProvider (documentRangeFormattingProvider ));
11341132 }
1133+ addRegistration (reg , () -> serverCapabilities .setDocumentRangeFormattingProvider (documentRangeFormattingProvider ));
11351134 break ;
11361135 case "textDocument/codeAction" : //$NON-NLS-1$
11371136 final Either <Boolean , CodeActionOptions > beforeRegistration = serverCapabilities .getCodeActionProvider ();
@@ -1160,11 +1159,10 @@ public void registerCapability(RegistrationParams params) {
11601159 .getSelectionRangeProvider ();
11611160 if (selectionRangeProvider == null || selectionRangeProvider .isLeft ()) {
11621161 serverCapabilities .setSelectionRangeProvider (Boolean .TRUE );
1163- addRegistration (reg , () -> serverCapabilities .setSelectionRangeProvider (selectionRangeProvider ));
11641162 } else {
11651163 serverCapabilities .setSelectionRangeProvider (selectionRangeProvider .getRight ());
1166- addRegistration (reg , () -> serverCapabilities .setSelectionRangeProvider (selectionRangeProvider ));
11671164 }
1165+ addRegistration (reg , () -> serverCapabilities .setSelectionRangeProvider (selectionRangeProvider ));
11681166 break ;
11691167 case "textDocument/typeHierarchy" : //$NON-NLS-1$
11701168 final Either <Boolean , TypeHierarchyRegistrationOptions > typeHierarchyBeforeRegistration = serverCapabilities .getTypeHierarchyProvider ();
0 commit comments