{ config, pkgs, ... }: let cfg = { config = { "language.typescript" = { command = "typescript-language-server"; args = ["--stdio"]; }; "language.javascript" = { command = "javascript-typescript-stdio"; args = ["--stdio"]; }; "language.css" = { command = "css-languageserver"; args = ["--stdio"]; }; "language.scss" = { command = "css-languageserver"; args = ["--stdio"]; }; "language.html" = { command = "html-languageserver"; args = ["--stdio"]; }; "language.dockerfile" = { command = "docker-langserver"; args = ["--stdio"]; }; "language.yaml" = { command = "yaml-language-server"; args = ["--stdio"]; }; "language.haskell" = { command = "hie"; args = ["--stdio"]; }; }; }; configFile = config: pkgs.runCommand "TabNine.toml" { buildInputs = [ pkgs.remarshal ]; preferLocalBuild = true; allowSubstitutes = false; } '' remarshal -if json -of toml \ < ${pkgs.writeText "config.json" (builtins.toJSON cfg.config)} \ > $out ''; in { xdg.configFile."TabNine/TabNine.toml" = { source = configFile cfg.config; }; }