gopls/protocol: remove stub special cases

This CL removes all the trivial special cases from generate.tables.go.

The custom unmarshalers return an exported error, so that
json_test.go can still do some checking.

Change-Id: I6f1d67b029200c6ce147539410195ecebdb24ab9
Reviewed-on: https://go-review.googlesource.com/c/tools/+/469515
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Peter Weinberger <pjw@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
diff --git a/gopls/internal/lsp/general.go b/gopls/internal/lsp/general.go
index d55e103..31b5124 100644
--- a/gopls/internal/lsp/general.go
+++ b/gopls/internal/lsp/general.go
@@ -136,32 +136,32 @@
 
 	return &protocol.InitializeResult{
 		Capabilities: protocol.ServerCapabilities{
-			CallHierarchyProvider: true,
+			CallHierarchyProvider: &protocol.Or_ServerCapabilities_callHierarchyProvider{Value: true},
 			CodeActionProvider:    codeActionProvider,
 			CodeLensProvider:      &protocol.CodeLensOptions{}, // must be non-nil to enable the code lens capability
 			CompletionProvider: protocol.CompletionOptions{
 				TriggerCharacters: []string{"."},
 			},
-			DefinitionProvider:         true,
-			TypeDefinitionProvider:     true,
-			ImplementationProvider:     true,
-			DocumentFormattingProvider: true,
-			DocumentSymbolProvider:     true,
-			WorkspaceSymbolProvider:    true,
+			DefinitionProvider:         &protocol.Or_ServerCapabilities_definitionProvider{Value: true},
+			TypeDefinitionProvider:     &protocol.Or_ServerCapabilities_typeDefinitionProvider{Value: true},
+			ImplementationProvider:     &protocol.Or_ServerCapabilities_implementationProvider{Value: true},
+			DocumentFormattingProvider: &protocol.Or_ServerCapabilities_documentFormattingProvider{Value: true},
+			DocumentSymbolProvider:     &protocol.Or_ServerCapabilities_documentSymbolProvider{Value: true},
+			WorkspaceSymbolProvider:    &protocol.Or_ServerCapabilities_workspaceSymbolProvider{Value: true},
 			ExecuteCommandProvider: protocol.ExecuteCommandOptions{
 				Commands: options.SupportedCommands,
 			},
-			FoldingRangeProvider:      true,
-			HoverProvider:             true,
-			DocumentHighlightProvider: true,
+			FoldingRangeProvider:      &protocol.Or_ServerCapabilities_foldingRangeProvider{Value: true},
+			HoverProvider:             &protocol.Or_ServerCapabilities_hoverProvider{Value: true},
+			DocumentHighlightProvider: &protocol.Or_ServerCapabilities_documentHighlightProvider{Value: true},
 			DocumentLinkProvider:      protocol.DocumentLinkOptions{},
 			InlayHintProvider:         protocol.InlayHintOptions{},
-			ReferencesProvider:        true,
+			ReferencesProvider:        &protocol.Or_ServerCapabilities_referencesProvider{Value: true},
 			RenameProvider:            renameOpts,
-			SelectionRangeProvider:    protocol.SelectionRangeRegistrationOptions{},
+			SelectionRangeProvider:    &protocol.Or_ServerCapabilities_selectionRangeProvider{Value: true},
 			SemanticTokensProvider: protocol.SemanticTokensOptions{
-				Range: true,
-				Full:  true,
+				Range: &protocol.Or_SemanticTokensOptions_range{Value: true},
+				Full:  &protocol.Or_SemanticTokensOptions_full{Value: true},
 				Legend: protocol.SemanticTokensLegend{
 					TokenTypes:     s.session.Options().SemanticTypes,
 					TokenModifiers: s.session.Options().SemanticMods,