Description: Prepare for default LSP completers set by Debian
 Debian ships some LSP completers we can enable out of the box for
 easier access even if upstream doesn't official support them and
 only provides some unofficial instructions via
 https://github.com/ycm-core/lsp-examples
 .
 This patch add just the infrastructure, the LSP completers are
 added individually in later patches.
Author: David Kalnischkies <donkult@debian.org>
Forwarded: not-needed

--- a/ycmd/server_state.py
+++ b/ycmd/server_state.py
@@ -23,8 +23,7 @@
 from ycmd.utils import LOGGER
 
 
-def _GetGenericLSPCompleter( user_options, filetype ):
-  custom_lsp = user_options[ 'language_server' ]
+def _GetLSPCompleterFromSettings( user_options, filetype, custom_lsp ):
   for server_settings in custom_lsp:
     if filetype in server_settings[ 'filetypes' ]:
       try:
@@ -37,6 +36,17 @@
   return None
 
 
+def _GetGenericLSPCompleter( user_options, filetype ):
+  return _GetLSPCompleterFromSettings( user_options, filetype, user_options[ 'language_server' ] )
+
+
+# Allow LSP completers to be hardcoded by Debian,
+# which do not override user or upstream completers
+def _GetDebianLSPCompleter( user_options, filetype ):
+  return _GetLSPCompleterFromSettings( user_options, filetype, [
+  ])
+
+
 class ServerState:
   def __init__( self, user_options ):
     self._user_options = user_options
@@ -75,6 +85,9 @@
         except ImportError:
           completer = None
 
+      if completer is None:
+          completer = _GetDebianLSPCompleter( self._user_options, filetype )
+
       supported_filetypes = { filetype }
       if completer:
         supported_filetypes.update( completer.SupportedFiletypes() )
