-- Language Server Protocol settings
--
-- The profile settings here may be set with the corresponding --ls-* options
-- (see highlight -h for details).

-- The LSP features are subject to change.

Servers = {

  { Server="clangd", Exec="clangd", Syntax="c", Options={"--log=error"} },
  { Server="ccls", Exec="ccls", Syntax="c", Options={"-v=-3", "--"} },
  { Server="ccls-objc", Exec="ccls", Syntax="objc", Options={"-v=-3", "--"} },

  { Server="gopls", Exec="gopls", Syntax="go", Options={} },

  { Server="rls", Exec="rls", Syntax="rust", Options={} },
  { Server="rust-analyzer", Exec="rust-analyzer", Syntax="rust", Delay=250, Options={} },

  { Server="pyls", Exec="pyls", Syntax="python", Options={"--check-parent-process"} },
  { Server="pylsp", Exec="pylsp", Syntax="python", Options={"--check-parent-process"} },

  { Server="pyright", Exec="pyright-langserver", Syntax="python", Options={"--stdio"}, Legacy=true },

  { Server="R", Exec="R", Syntax="r", Options={"--slave", "-e", "languageserver::run()"} },

  { Server="typescript-language-server", Exec="typescript-language-server", Syntax="typescript", Options={"--stdio"}, Legacy=true },

  { Server="clojure-lsp", Exec="clojure-lsp", Syntax="clojure", Options={} },

  { Server="metals", Exec="metals", Syntax="scala", Options={}, Legacy=true },

  { Server="zls", Exec="zls", Syntax="zig", Options={} },
  { Server="bash-language-server", Exec="bash-language-server", Syntax="shellscript", Delay=250, Options={"start"}, Legacy=true },
  { Server="hls", Exec="haskell-language-server-wrapper", Syntax="haskell", Delay=250, Options={"--lsp", "--log-level=Error"}, Legacy=true },

  -- sample Windows config
  { Server="clangd-win", Exec="F:\\LLVM\\bin\\clangd.exe", Syntax="c", Options={"--log=error"} },

}
