       (confirm_extra_conf . 1)
       (server_keep_logfiles . 1)
       (global_ycm_extra_conf . ,global-config)
-      (extra_conf_globlist . [])
+      (extra_conf_globlist . ,extra-conf-whitelist)
       (hmac_secret . ,hmac-secret)
       (collect_identifiers_from_tags_files . 0)
       (filetype_specific_completion_to_disable (gitcommit . 1))

instance. This function effectively produces the contents of that
file."
  (let ((hmac-secret (base64-encode-string hmac-secret))
        (global-config (or ycmd-global-config "")))
    `((filetype_blacklist (vimwiki . 1) (mail . 1) (qf . 1) (tagbar . 1) (unite . 1) (infolog . 1) (notes . 1) (text . 1) (pandoc . 1) (markdown . 1))
      (auto_start_csharp_server . 1)
      (filetype_whitelist (* . 1))

;;
;; Basic usage:
;;
;; First you'll want to configure a few things. If you've got a global ycmd config file, you can specify that with
;; ycmd-global-config:
;;
;;   (set-variable 'ycmd-global-config "/path/to/global_conf.py")
;;
;; Then you'll want to configure your "extra-config whitelist"
;; patterns. These patterns determine which extra-conf files will get
;; loaded automatically by ycmd. So, for example, if you want to make
;; sure that ycmd will automatically load all of the extra-conf files
;; underneath your "~/projects" directory, do this:
;;
;;   (set-variable 'ycmd-extra-conf-whitelist '("~/projects/*"))
;;
;; Now, wo start a ycmd server, use 'ycmd-open. Then you can use
;; 'ycmd-get-completions to get completions at some point in a
;; file. For example:
;;
;;   (ycmd-open)
;;   (ycmd-get-completions)
;;
;; You can use 'ycmd-display-completions to toy around with completion
