{ pkgs, ... }: {
  programs.neovim = {
    extraLuaConfig = /*lua*/ ''
      local vue_language_server_path = '${pkgs.vue-language-server}/lib/language-tools/packages/language-server'
      vim.lsp.config('vtsls', {
        settings = {
          vtsls = {
            tsserver = {
              globalPlugins = {
                {
                  name = '@vue/typescript-plugin',
                  location = vue_language_server_path,
                  languages = { 'vue' },
                  configNamespace = 'typescript',
                },
              },
            },
          },
        },
        filetypes = { 'javascript', 'javascriptreact', 'typescript', 'typescriptreact', 'vue' },
      })
      vim.lsp.enable('vtsls')
      vim.lsp.enable('vue_ls')
    '';
    extraPackages = [ pkgs.vue-language-server pkgs.vtsls ];
  };
}