Vscode: Fornecer suporte para sincronizar configurações entre máquinas

Criado em 5 fev. 2016  ·  129Comentários  ·  Fonte: microsoft/vscode

Existem algumas extensões silenciosas por aí para lidar com a sincronização de configurações entre vários computadores. E, na minha opinião, eles são muito importantes: como o vscode é muito personalizável com configurações, atalhos de teclado e extensão, é muito difícil sincronizar essas coisas entre várias estações de trabalho. E todas essas extensões não são soluções realmente limpas, porque o vscode não faz quase nada para suportá-las (por exemplo, os caminhos que o vscode usa não são expostos, veja #2741).

Então, aqui estão algumas ideias para tornar a sincronização limpa e extensível:

  • adicionar um ponto de contribuição para extensões de sincronização

    • Essas extensões não devem reunir todos os arquivos que precisam ser sincronizados. vscode deve fazer isso e depois passá-los para as extensões

    • O trabalho de tal extensão é apenas fazer upload/download dos arquivos, passados ​​para eles (para que possamos ter o gist upload / svn upload / git repo upload / dropbox / filesystem / onedrive / ftp / other services .

    • Ou talvez reúna todas as configurações em um grande objeto json e passe isso.

    • Suporte a extensões de versão e sem versão

  • adicione um remote_settings.json para construir sobre a pilha workspace-settings/user-settings.
  • permitir sincronização automática e acionada pelo usuário

Ok... apenas algumas ideias :smile:

config plan-item settings-sync

Comentários muito úteis

Proposta de design de sincronização de configurações:

Estamos planejando construir a sincronização de configurações dentro do VS Code da seguinte forma:

  • O VS Code forneceria a interface do usuário e o recurso para sincronizar configurações, atalhos de teclado, extensões e snippets.
  • O VS Code conversa com um ponto final de serviço para ler e gravar os dados

Ponto final do serviço de sincronização de configurações do VS Code

  • Fornece API ReST para ler e gravar dados (backend)
  • Fornece mecanismo de autenticação para os usuários efetuarem login.

Todos 129 comentários

Relacionado: https://github.com/Microsoft/vscode/issues/679

Esta é a minha solução para sincronizar atalhos de teclado e configurações no Linux e no Windows, se você estiver interessado. Eu ainda não olhei muito profundamente para fazer isso com extensões, mas arquivei https://github.com/Microsoft/vscode/issues/691 algum tempo atrás para ajudar com isso.

O plugin Sync Settings for Atom usa o GitHub Gist para fazer backup/sincronizar:

  • Definições
  • Pacotes
  • Mapa de teclas
  • _(Estilos)_
  • _(Iniciar)_
  • Trechos

O Atom também suporta pacotes estrelados diretamente no Github e depois os instala facilmente usando apm stars --user thedaniel --install .

Esta é uma prioridade muito baixa porque na maioria das vezes as configurações são substituídas pelas configurações do espaço de trabalho que são sincronizadas com o controle de versão de qualquer maneira.

As extensões @felixfbecker são, no entanto, uma daquelas coisas que não controlam a versão. Nem é o mapa de teclas.

@csholmq Esse é um problema separado. Por exemplo, pode haver um .vscode/extensions.json que especifica quais extensões devem ser instaladas para este projeto, como editorconfig ou um adaptador de depuração específico, com uma restrição de versão semver como um package.json.

Isso não está relacionado à solicitação de API original levantada neste problema, mas há uma extensão de sincronização que está usando Gists. https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync

@egamma Exatamente a funcionalidade que eu procurava. Mas, como @felixfbecker mencionou, talvez esse problema seja separado.

Também pode ser bom instalar uma extensão uma vez em uma máquina e fazer com que suas outras máquinas solicitem ou instalem automaticamente a mesma extensão em qualquer outro lugar.

O Atom tinha um navegador de pacotes online com "estrelas" e havia um comando que você podia executar para instalar tudo o que tinha marcado com estrela. Ainda não é automático, mas foi um começo.

Eu sei que outros podem se opor, mas pessoalmente não tenho nenhum problema em fazer login no VSCode com minha conta da Microsoft uma vez por máquina, se isso facilitar esse nível de conveniência. Talvez uma estrutura de sincronização ou algo possa ser oferecido, para que extensões específicas do provedor possam implementar autenticação e persistência na nuvem (por exemplo, uma para Microsoft, uma para Google Drive, Dropbox, etc).

Eu escrevi uma extensão há algum tempo ( aqui, também não foi atualizada há algum tempo ) que tentou ajudar a sincronizar extensões entre computadores usando serviços de sincronização de arquivos. Originalmente, eu só suportava a sincronização de temas porque a sincronização de extensões parecia um pouco confusa.

Acho que essa deve ser a maneira correta de manter extensões entre computadores. Mantenha uma lista de quais extensões estão instaladas onde, seja capaz de escolher quais extensões devem ser instaladas em qual computador e, em seguida, gerencie apenas as configurações de sincronização dessas extensões. Suponho que a maneira recomendada para as extensões gerenciarem as configurações é por meio disso ?

Concordo muito com você, Adicionar recursos - Conta e sincronização, manipulação de sincronização de configurações e sincronização de extensões (marcar extensões de propriedade), o que tornará muito mais fácil instalar e sincronizar o código VS entre vários computadores.
Outras extensões que sincronizam extensões: https://marketplace.visualstudio.com/items?itemName=golf1052.code-sync

Além desta ideia deve ser considerada. Separando extensões e configurações globais das específicas de um projeto. O mesmo que pacotes globais npm das dependências dos projetos.

@felixfbecker , é uma boa solução, mas por que o Shift + Alt + U não está sem resposta? Meu sistema de computador é Mac e a versão vscode é 1.18.0. Muito obrigado.

@chenxiaochun conflito com outra tecla de atalho em seu computador, talvez tecla de atalho do sistema, mas principalmente como conflito com tecla de atalho do aplicativo que você instalou em seu próprio Mac. Ctrl + Shift + P (show all command, mine is windows, you can check it in Mac), exctute sync selecionando command na lista. outro método, você pode modificar a tecla de atalho no vscode ou encontrar o aplicativo e modificar a tecla de atalho.

Eu quero as extensões que eu instalei. Eu tenho cerca de 30 extensões, como posso exportá-las para vários computadores?

como não há implementação oficial desse recurso no vscode - eu uso uma extensão chamada 'sincronização de configurações' que sincroniza configurações e extensões

ainda não há suporte para isso? :/
Eu adoraria ter configurações/extensão de VS Code de sincronização automática com minha conta da Microsoft

Acho que deveria ter mais prioridade. Muitos usuários têm várias máquinas ou configuração de inicialização dupla ou vscode na máquina de trabalho e na máquina doméstica.

É verdade que deveria ser um recurso obrigatório em tais aplicativos hoje em dia

Mais um voto para isso.

voto positivo

Eu não quero ver outro comentário 'upvote'. Dê um upvote na postagem original do problema no topo. Por favor, não encha a discussão com comentários de upvote.

Eu esperava que algo assim estivesse disponível agora, pois eu estava fazendo backup de minhas coisas não sincronizadas, preparando-me para um formato. Mesmo que não haja sincronização, deve haver pelo menos algo para exportar todo o perfil , que eu possa importar depois de formatar, ou para outro computador. Minha solução atual é:

  • code --list-extensions para obter uma lista de extensões, cole-a em um arquivo .txt em uma pasta sincronizada.
  • Copie e cole o JSON de configurações do usuário em um arquivo .txt em uma pasta sincronizada.
  • Copie e cole as associações de teclas JSON em um arquivo .txt em uma pasta sincronizada.

Não terrivelmente ruim, mas desleixado ainda. Não tenho 100% de certeza de que fiz backup de tudo em relação ao VScode, por exemplo.

Edit: Percebi que perdi um, felizmente antes de começar a formatar. Adicionado o terceiro item à lista.

Por que não apenas vincular os dois diretórios contendo extensões de configurações etc com o dropbox? Eu tenho feito isso com o átomo por anos sem problemas. Existe uma razão para isso falhar com o vscode?

Extensões @backspaces podem ter módulos nativos dentro delas, então compartilhar extensões entre Linux e Windows (por exemplo) pode não funcionar
É melhor compartilhar apenas a lista de IDs de extensão (em vez das próprias extensões), para que o Code (ou outra coisa) possa instalá-los

Além disso, seria uma experiência muito melhor se você simplesmente fizer login no VSCode e apenas marcar algumas caixas de seleção quando for solicitado: "Por favor, verifique o que você gostaria de importar/sincronizar:"

[x] extensions
[x] themes
[x] settings

Concordou! :)

Por favor, faça isso acontecer. Hoje temos a extensão de sincronização de configurações, mas é muito difícil configurar com essência e assim por diante. Algo integrado no VScode fora da caixa seria muito melhor e poderíamos nos beneficiar disso sem nos preocupar em instalar a extensão correta

@antoninadert bem dito

Por favor, use o botão de polegar para cima se você concordar com um comentário/questão. A maioria de nós assina os problemas para que possamos ser notificados sobre o progresso e os anúncios, e receber e-mails com comentários de colisão é, na melhor das hipóteses, irritante.

Seria bom saber se a Microsoft tem isso em seu roteiro. Imagino que seja complicado porque significará incluir algum código proprietário e a comunidade de código aberto se cagará quando uma parte do código ficar obscura. Mas talvez esse não seja o caso e a MS possa incluí-lo usando código aberto. De qualquer forma, uma atualização, nesse recurso tão solicitado, seria bom.

As soluções atualmente disponíveis (por exemplo, Sincronização de configurações, CodeSync) não funcionam bem ao desinstalar extensões devido a esse problema: https://github.com/Microsoft/vscode/issues/14444
Suponho que, se isso for corrigido, as soluções da comunidade serão menos problemáticas, mas ainda complicadas.

Alguém sabe se a MS tem um roteiro para o código em algum lugar?

Não importa, eu encontrei: https://github.com/Microsoft/vscode/wiki/Roadmap

E parece que nada a ver com as configurações de sincronização é mencionado. Dedos cruzados para o próximo ano. No entanto, todos nos lembramos do logotipo marrom; talvez, com votos suficientes, eles analisassem esse problema mais cedo.

Mencionei a solução da caixa de depósito anteriormente e concordo que há razões contra ela.

MAS: supondo que os dois computadores que estou sincronizando sejam macs da mesma versão do sistema operacional, há algum motivo para não usar a abordagem da caixa de depósito?

E notei que o código cli ainda tem uma maneira de alterar a pasta de extensão, para que possa estar diretamente no dropbox sem links simbólicos.

Como autor de "Settings Sync", concordo com a postagem real deste tópico.

Em vez de fornecer a solução de sincronização de ponta a ponta da própria Microsoft.
Seria ótimo fornecer maneiras de permitir que as extensões obtenham as informações necessárias.

Por exemplo:

  1. Permitir que os autores da extensão leiam qualquer arquivo dentro do diretório User . Eles se gerenciarão para fazer wrapper com GitHub, Google Drive, OneDrive, GitLab etc.
  2. Crie uma API mais personalizada para permitir eventos em determinados pontos, como atualmente o Settings Sync não possui upload automático em qualquer download de extensão. Abri o problema e tenho mais de 800 votos https://github.com/Microsoft/vscode/issues/14444 , mas ainda está pendente.
  3. Permitir que os autores de extensão habilitem/desabilitem extensões - https://github.com/Microsoft/vscode/issues/15466 e https://github.com/Microsoft/vscode/issues/37620

PS Estou sempre procurando melhorar a Sincronização de configurações - Sinta-se à vontade para discutir e me enviar um PR ou melhorar o Wiki Público

52739 é o meu pedido. Embora marcado como uma duplicata (estou bem com isso), acho importante notar que a principal diferença entre esta solicitação e a minha é que esta defende um melhor suporte de extensão (melhor) enquanto eu defendo o suporte interno ( best) como é feito no Visual Studio desde 2013.

Concordo totalmente com @Chiramisu : não queremos um melhor suporte a extensões. Queremos sincronização integrada.

Uma extensão de sincronização anula o propósito da sincronização, adicionando muita sobrecarga. Esta é a solução atual que temos.

Quão incrível seria fazer login no visual studio e baixar instantaneamente seu perfil, projetos, extensões, configurações? em qualquer máquina (pessoal, trabalho).

Bem, é o que o Google faz com o Chrome: eles sincronizam automaticamente extensões, credenciais, favoritos... quando você faz login.
Este é um recurso matador se você me perguntar.

@antoninadert Eu prefiro que o VSCode exponha APIs para extensões para fazer a sincronização, e com certeza uma delas pode ser da própria Microsoft usando OneDrive ou GitHub. Eu simplesmente não vejo uma razão para que haja sincronização integrada favorecendo um provedor de nuvem.

@gandalfsaxe Pelo motivo óbvio de que você pode tê-lo em uma nova instalação do Visual studio, em todas as máquinas e sem nenhuma configuração.

Se essas vantagens não falam com você eu não tenho noção...

@antoninadert Eu certamente não protestaria se eles fizessem isso, e eu o veria como melhor do que nada, mas ainda prefiro a API/extensão por dois motivos intimamente relacionados:

  1. Se eles fizerem isso integrado, talvez não tenhamos uma extensão de API para isso também, então podemos ficar presos à solução integrada por algum tempo sem alternativas. Poderia, em princípio, ser um problema de segurança para várias empresas se a única opção fosse OneDrive ou GitHub.
  2. Não favorecer um armazenamento/solução em nuvem em detrimento de outro. No entanto, não se importaria com uma extensão desenvolvida pela Microsoft bem suportada.

Mas se eles fornecerem funcionalidade integrada e API para outras extensões sincronizarem ao mesmo tempo, isso também seria ótimo.

Ainda estou pensando que uma API de sincronização é o caminho a percorrer. E sim, como @gandalfsaxe sugeriu, uma extensão de sincronização desenvolvida pela Microsoft com suporte também seria legal. Eu também não me importaria que a extensão fosse pré-instalada. Esse seria o compromisso perfeito entre conveniência e extensibilidade.

Eu acharia estranho começar a ter extensões pré-instaladas. Acho que o VSCode ainda deve vir com zero extensões prontas para uso. Se for importante/universal o suficiente, deve ser integrado. Caso contrário, deve estar no mercado como todo o resto. Seria estranho ter uma extensão de sincronização como exceção singular 🙂

Mas se eles fornecerem funcionalidade integrada e API para outras extensões sincronizarem ao mesmo tempo, isso também seria ótimo.

Também acho que essa seria a solução perfeita, portanto, se alguém tiver uma solução melhor que a nativa, poderá usá-la.

Mas tê-lo embutido ainda é a opção mais importante se você me perguntar

@gandalfsaxe

  1. Se eles fizerem isso integrado, talvez não tenhamos uma extensão de API para isso também, então podemos ficar presos à solução integrada por algum tempo sem alternativas. Poderia, em princípio, ser um problema de segurança para várias empresas se a única opção fosse OneDrive ou GitHub.

Embutido não significa "OneDrove opinativo. Deve oferecer opções.

  1. Não favorecer um armazenamento/solução em nuvem em detrimento de outro. No entanto, não se importaria com uma extensão desenvolvida pela Microsoft bem suportada.

Acho muito mais importante ter o seguinte fluxo: 1) instale o VSCode; 2) Entrar; 3) é isso
Portanto, deve haver uma solução embutida.

@MrCroft Claro que seria incrível se a equipe do VSCode pudesse priorizar o suporte interno para 3-10 serviços em nuvem. Minha sugestão foi da minha suposição de que a equipe do VSCode não tem esse problema como um problema específico de alta prioridade.

A meu ver, a solução poderia ser feita em duas etapas:

  1. Solução agora: exponha APIs relevantes para que uma extensão possa sincronizar todas as coisas relevantes usando um serviço de nuvem arbitrário.

  2. Solução de longo prazo: 1) instale o VSCode; 2) Entrar.

Eu ficaria feliz com qualquer solução embora. Usar a multiplataforma do VSCode é um pouco complicado no momento.

@gandalfsaxe Entendo totalmente seu ponto (e de outros) em relação ao argumento da API e concordo em muitos aspectos. De qualquer forma, eu pessoalmente preferiria ter uma opção da Microsoft, pois sincronizo com minha conta da Microsoft e, portanto, confio inerentemente a eles com esses dados. No entanto, sou a favor das pessoas que têm opções. Deixe a melhor extensão vencer.

A sincronização de ambientes é um valor agregado substancial para mim porque tenho o VSCode e o VSCode Insiders instalados em nada menos que dois dispositivos e 3-4 ambientes no total, incluindo VMs locais (Windows e Linux).

Tentei usar a extensão Setting Sync de Shan Khan, que de outra forma seria promissora, mas não é compatível com a versão portátil do VSCode. Por que não? Acho que porque ele está esperando que o VSCode forneça uma API para expor caminhos de arquivos para que ele possa fazer isso com mais segurança e não precise codificar vários caminhos.

Atualmente, não há identificador para extensão para saber se o código está sendo executado como modo portátil.
Para suportar o modo portátil, o Settings Sync precisa saber se o código está sendo executado nele ( https://github.com/Microsoft/vscode/issues/54824 ) e vários caminhos que até o usuário mudou ( https://github.com/ Microsoft/vscode/issues/2741 ) como @GandalfSaxe mencionado.

@shanalikhan Poderia uma alternância manual entre solução portátil/não portátil ser uma solução provisória temporária?

por favor, integre com a conta da microsoft ou/e github para sincronizar todos os itens. :)

s2 Vscode! a melhor ideia já feita!

Se o vscode for integrado às contas da Microsoft ou ao Github, pode haver melhorias no visualizador de extensão, como a capacidade de revisar uma extensão do Code. Também pode haver uma opção para relatar problemas que geram automaticamente informações de extensão.

Como a Microsoft é proprietária do Github, também seria lucrativo, pois incentivaria as pessoas a manter suas contas no Github. A integração git superior realmente motivaria as pessoas a deixar outros editores de texto para trás e adotar o Code.

Estou pensando em alterar a visualização de configuração de atividade para que ela funcione como um gerente de contas? Ele pode listar suas notificações, configurações de conta e muito mais. Ele basicamente substituiria o menu de contexto, criando uma interface mais simplificada.

Eu realmente prefiro que o vscode procure uma pasta .vscode no meu diretório inicial e carregue as configurações de lá, se existir. Isso me permitiria decidir com qual serviço decidir sincronizá-lo e como isso acontece completamente fora do próprio aplicativo. Se eu quiser usar o git: eu faço do .vscode um repositório do git, se eu quiser usar o dropbox: eu posso fazer um link simbólico, etc...

Muitos editores suportam dotfiles de atom a vim e tudo mais. Muitas dessas ferramentas até procuram por dotfiles no Windows, então não vejo por que esse padrão seria ignorado aqui.

@fishpen0 Como isso funcionaria para a versão portátil?

Se houver um diretório .vscode no mesmo caminho do executável, carregue-o com a maior preferência.

@fishpen0 Acho que é uma boa ideia: use o arquivo em .vscode se existir (talvez adicione uma linha para decidir a prioridade: .vscode sobre sincronização, .vscode com sincronização (tente misturar), .sync sobre .vscode)
Para que tenhamos o melhor dos dois mundos

Algumas ótimas coisas aqui.
Eu ficaria feliz com um arquivo .vscode contendo todas as informações que eu gostaria de "portátil"... desta forma eu posso manter essa pasta em um repositório Git... alterando um pouco meu método preferido em #56850 , mas aceitável.

Então seria algo como:

  1. Instale o VSCode
  2. Clone o repositório Git .vscode para o local .vscode que o VSCode procura.
  3. Reinicie o VSCode e veja-o voltar com todas as minhas configurações, instalação de extensões e repositórios Git vinculados.

É uma dor enorme configurar outra instância do VSCode em outro computador. Há muitas extensões para reinstalar, muitos repositórios Git para clonar novamente, muitas configurações para refazer.

Deve ser capaz de pelo menos exportar/importar uma lista de extensões, que deve ser fácil de implementar.

Desejando adicionar configurações de importação e exportação ou fazer upload de configurações para a conta da Microsoft.

Se integrar com a conta da Microsoft seria difícil. Talvez possa ser implementado a princípio como os perfis do navegador, separar todas as configurações do usuário em uma única pasta apenas. Então, o usuário poderia criar, por exemplo, um repositório git para sincronizá-lo em outros lugares. A sincronização é algo que o Git faz bem e pode ser integrado a qualquer sistema de nuvem como Bitbucket, Gitlab, etc.

Realmente surpreso que a sincronização de contas não tenha sido incorporada ao Code desde o primeiro dia. Parece um acéfalo.

De @SrTobi

Então, aqui estão algumas ideias para tornar a sincronização limpa e extensível:

  • adicionar um ponto de contribuição para extensões de sincronização

SIM!!! Torna possível ser agradável e limpo.

Eu acrescentaria uma consideração. Herança de configurações com substituições com base na fonte de configuração. Não quero que minha configuração seja a mesma em todos os projetos. Ao trabalhar no Vim, é comum ter configurações baseadas em projetos para macros/atalhos de atalhos de teclas, embora o Vim seja muito parecido com o oeste selvagem nesse sentido, e é por isso que gosto de sua ideia de tornar isso possível através de um ponto de contribuição. O Eclipse permite isso também para todos os tipos de configurações, embora não seja muito limpo no Eclipse.

+1

Existem alguns recursos nos quais eu não confiaria em nenhuma extensão de terceiros. A sincronização de contas é definitivamente uma delas!!

O Visual Studio 'regular' tem esse recurso: você faz login com sua conta da Microsoft e sincroniza as configurações. Ele existe desde pelo menos o Visual Studio 2015. Seria ótimo ter isso no VS Code também. Gostaria de saber se poderia até mesmo reutilizar o mesmo sistema de back-end?

Da perspectiva de configurar uma nova máquina, essa extensão me força a passar pelo processo de instalação dessa extensão e adicionar chaves do github ao vscode antes que eu possa sincronizar minhas configurações. Nesse ponto, eu poderia estar copiando manualmente minhas configurações de um arquivo na caixa de depósito ou algo assim.

Tudo o que eu quero é um diretório que eu possa soltar meus arquivos de configurações e plugins nos carregamentos automáticos do vscode para que eu possa gerenciá-lo usando qualquer ferramenta ou processo que eu quiser.

Vou reiterar minha sugestão de usar o padrão dotfile folder in my home directory que todos os editores que já usei antes (vim, sublime, atom, jetbrains, emacs) também suportam.

Percebo que esse padrão pode ser confuso ou novo para pessoas provenientes de ambientes Windows, mas é altamente eficaz para resolver esse problema. Por favor, dê uma olhada em https://dotfiles.github.io/ para centenas de exemplos de pessoas usando dotfiles para gerenciar suas configurações entre máquinas e ambientes.

Você está olhando para um lead time de configuração de qualquer maneira. Não estou dizendo "essa ideia é uma merda", estou apenas me certificando de que aqueles que procuram essa funcionalidade estejam realmente cientes de que ela existe por meio de extensão. Pode não ser suficiente para você; pode ser o suficiente para eles.

Prefiro fazer login na minha conta do MS e sincronizar tudo como o Google Chrome sincroniza tudo.


De: cmcit-bferg [email protected]
Enviado: quarta-feira, 3 de abril de 2019 22:04:23
Para: Microsoft/vscode
Cc: tjgruber; Comente
Assunto: Re: [Microsoft/vscode] Fornecer suporte para sincronizar configurações entre máquinas (#2743)

Você está olhando para um lead time de configuração de qualquer maneira. Não estou dizendo "essa ideia é uma merda", estou apenas me certificando de que aqueles que procuram essa funcionalidade estejam realmente cientes de que ela existe por meio de extensão. Pode não ser suficiente para você; pode ser o suficiente para eles.


Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub https://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode%2Fissues%2F2743%23issuecomment-479638007&data=02 % 7C01% 7C% 7C56f78e59d2884cb592d308d6b86f9245% 7C84df9e7fe9f640afb435aaaaaaaaaaaa% 7C1% 7C0% & 7C636899186661366632 sdata = ITS3% 2B7c1ZmJWka4q1yS3O% 2BfpoSl6sjCs7d4ERESn% 2F% 2Fk% 3D & reservados = 0 , ou cortar o fio https://eur02.safelinks.protection.outlook.com/?url= https% 3A% 2F% 2Fgithub.com% 2Fnotifications% 2Funsubscribe-auth% 2FAO2oZ6E6OqvvTlOgQKwld4j5RhDr9vtVks5vdQlHgaJpZM4HUeqZ & dados = 02% 7C01% 7C% 7C56f78e59d2884cb592d308d6b86f9245% 7C84df9e7fe9f640afb435aaaaaaaaaaaa% 7C1% 7C0% 7C636899186661376637 & sdata = CQb0niUDYXXvo% 2BcstXiyu5zxZ3h% 2BHpFNV7% 2BGbiM3WAA% 3D & reservados = 0 .

Eu realmente espero que vocês possam apoiar o login. quando eu mudo meu computador, eu deveria reescrever minha configuração. Eu odeio esse sentimento.

O Settings Sync agora fornece GUI para integrar e sincronizar perfeitamente suas configurações em apenas um login no Github e selecionando o GIST nas listas de GUI Gist.

O que vocês acham disso, como podemos melhorar muito mais.

Para aqueles que continuam insistindo em usar uma extensão de TERCEIROS, acho que estão perdendo o ponto. Mesmo que a API seja segura, mesmo que eu revise o código-fonte em um ponto fixo no tempo para garantir que nenhum negócio engraçado esteja acontecendo, é improvável que continue fazendo isso indefinidamente.

Portanto, para qualquer conta que eu tenha em qualquer serviço, confio apenas nesse provedor com as informações relacionadas à minha conta. Na verdade, eles também podem escorregar, mas prefiro mitigar esse risco não introduzindo uma extensão de terceiros como outra variável e potencial vulnerabilidade de segurança. Quando se trata de segurança,

Eu sempre me esforço para tomar decisões sábias e informadas, e usar um aplicativo de terceiros para sincronizar dados em minha conta seria exatamente o oposto.

Não estou me sentindo bem em usar nenhuma extensão para sincronizar todas as minhas configurações. Deve ser um recurso interno do Visual Code. Faça login com GitHub ou conta da Microsoft e salve todos os dados como:

  • Extensões
  • Configurações (Configurações)
    e etc

Eu concordo. a extensão funciona bem, no entanto, parece uma oportunidade perdida de ser muito mais amigável ao ter tudo vinculado à Microsoft ou ao GitHub

Esta é provavelmente uma daquelas coisas em que a Microsoft será inútil! Caberá a alguns desenvolvedores criar uma extensão para isso... provavelmente será concluída muito mais rapidamente e de melhor qualidade.

Mesmo que não seja sincronizar as configurações, pelo menos uma maneira confiável de exportar tudo e importar tudo. Eu uso configurações e extensões diferentes dependendo se é relacionado à empresa ou pessoal, então para mim exportar/importar seria melhor do que sincronizar. Mas ambos seriam bons!

Para aqueles que continuam insistindo em usar uma extensão de TERCEIROS, acho que estão perdendo o ponto. Mesmo que a API seja segura, mesmo que eu revise o código-fonte em um ponto fixo no tempo para garantir que nenhum negócio engraçado esteja acontecendo, é improvável que continue fazendo isso indefinidamente.

Portanto, para qualquer conta que eu tenha em qualquer serviço, confio apenas nesse provedor com as informações relacionadas à minha conta. Na verdade, eles também podem escorregar, mas prefiro mitigar esse risco não introduzindo uma extensão de terceiros como outra variável e potencial vulnerabilidade de segurança. Quando se trata de segurança,

Eu sempre me esforço para tomar decisões sábias e informadas, e usar um aplicativo de terceiros para sincronizar dados em minha conta seria exatamente o oposto.

Exatamente o que eu pensei. Eu mal entendo por que não há um módulo de sincronização embutido no VSCode.

Acabei de começar a manter minhas configurações e lista de extensões em um repositório (com um script de configuração da estação de trabalho):

https://gitlab.com/aztek-io/vscode-settings

Concordo totalmente que seria bom que o vscode se comportasse como o Google Chrome, onde você apenas faz login com sua conta e tudo está do jeito que você configurou em uma infinidade de estações de trabalho.

Por que alguém simplesmente não escreve uma extensão para automatizar o gerenciamento de seu
configurações em um repositório Git, fazendo commits e pushes/pulls sempre que você
fazer uma mudança? O VSCode envia (ou pelo menos sugere a presença de) todos os
ferramenta que você precisa para construir isso. Então alguém pode sincronizar as configurações onde quer que
eles gostam, privado ou público, sem necessidade de conta da Microsoft. Claro que podemos
principalmente fazemos isso sozinhos, mas eu não uso o VSCode o suficiente para saber o que fazer
versão e o que é específico do SO/plataforma. Então, se alguém pudesse embalar
esse conhecimento em uma extensão chamada algo como o
Sincronização de configurações do Git amigável para pesquisa, eu agradeceria muito. :)

o dele parece bastante fácil, e estou surpreso que ainda não tenha sido feito. Nós
não tem as APIs/permissões necessárias para fazer isso em um complemento?

@ndarilek existe - é chamado SettingsSync, mas queremos isso nativo no aplicativo e não em uma extensão

Isso não sincroniza com uma essência, que é a) pública eb) específica do GitHub?
Lembro-me de exigir uma grande quantidade de configuração manual também, embora eu
acho que isso pode ter mudado recentemente.

A maioria de nós tem acesso a algum VCS ou outro, e mesmo assim a alguns
mecanismo para hospedar um repositório privado, mesmo que seja via SSH em um VPS barato.
Dado isso, não estou claro por que precisaríamos vincular a sincronização à Microsoft,
GitHub, ou mesmo um VCS específico.

Provavelmente vou tentar fazer isso quando o VSCode se tornar acessível em
Linux. A partir de agora eu não sou um usuário do VSCode, mas não entendo por que isso
não é uma opção viável. Nada contra a Microsoft, mas as configurações são sincronizadas
não é particularmente complicado, e eu prefiro hospedar esses dados.

Apenas alguns pontos de dados:
1- Github é Microsoft
2- VSCode está no Linux
3- o problema com extensões de terceiros é a confiança quando se trata de mais
informações confidenciais, como logins que seriam usados ​​para armazenar o
informação necessária.

Na quinta-feira, 12 de setembro de 2019 às 10h37, Nolan Darilek [email protected]
escrevi:

Isso não sincroniza com uma essência, que é a) pública eb) específica do GitHub?
Lembro-me de exigir uma grande quantidade de configuração manual também, embora eu
acho que isso pode ter mudado recentemente.

A maioria de nós tem acesso a algum VCS ou outro, e mesmo assim a alguns
mecanismo para hospedar um repositório privado, mesmo que seja via SSH em um VPS barato.
Dado isso, não estou claro por que precisaríamos vincular a sincronização à Microsoft,
GitHub, ou mesmo um VCS específico.

Provavelmente vou tentar fazer isso quando o VSCode se tornar acessível em
Linux. A partir de agora eu não sou um usuário do VSCode, mas não entendo por que isso
não é uma opção viável. Nada contra a Microsoft, mas as configurações são sincronizadas
não é particularmente complicado, e eu prefiro hospedar esses dados.


Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/microsoft/vscode/issues/2743?email_source=notifications&email_token=AAFNROZZY2TJGCV2GS7XBI3QJJH33A5CNFSM4B2R5KM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6SDL6Q#issuecom5WW2ZLOORPWSZGOD6SDL6Q#issuecom
ou silenciar o thread
https://github.com/notifications/unsubscribe-auth/AAFNRO547VFY2VLO6BH7WQLQJJH33ANCNFSM4B2R5KMQ
.

  1. Eu sei. A questão é que temos a capacidade de ter sincronização de terceiros
    sem contas/provedores externos envolvidos, exceto por algo como
    mínimo como acesso SSH em algum lugar. Microsoft ou não-Microsoft é apenas um
    fator na medida em que eles são um provedor de uma conta. eu sentiria o mesmo
    sobre como vincular a sincronização ao GitHub como faria ao GitLab, Google ou Owncloud.
    E o pessoal tem versionado as configurações do editor via Git há anos, assim como
    já foi apontado. Eu só queria saber como poderíamos capturar isso
    conhecimento em uma extensão, porque agora eu teria que pesquisar no Google como
    configurar algo e fazer o trabalho sozinho. Capturando isso
    conhecimento/processo em uma extensão economizaria tempo.

  2. Pode ser no Linux, mas sou cego e os aplicativos Electron são principalmente
    inacessível neste momento. Daí o "eu não estou trabalhando nisso agora, mas
    adoraria se outra pessoa pudesse" palavras de doninha - eu só uso VSCode
    em VMs do Windows para determinadas tarefas, e a latência a mata por apenas
    sobre qualquer outra coisa. A acessibilidade do elétron/cromo está chegando, mas o IIRC
    A Microsoft modificou alguns Electron. Se isso for verdade, espero que o
    fork pode capitalizar o trabalho upstream atual que está acontecendo em
    Cromo/Cromo.

  3. Ponto justo, mas se o problema for falta de confiança na extensão
    mecanismo, então por que se preocupar com vetores de ataque relacionados à sincronização?
    Que tal exfiltrar código ou outros arquivos por literalmente qualquer outro
    extensão que você instalou? Ou se você está preocupado com as configurações
    especificamente, eu não poderia escrever uma extensão não relacionada a configurações que
    carregou suas configurações para o meu próprio servidor? Não trollagem genuína
    pergunta - não sei como funciona o mecanismo de extensão, mas não
    acho que sandboxes qualquer coisa, não é?

Obrigado.

Apenas fyi @ndarilek Settings Sync pode sincronizar com um gist privado, você só precisa fornecer um token de acesso. É simples de usar. Mas suas preocupações com a confiança são válidas e seria ideal se o vscode adicionasse sua própria funcionalidade de sincronização de configurações federadas

Proposta de design de sincronização de configurações:

Estamos planejando construir a sincronização de configurações dentro do VS Code da seguinte forma:

  • O VS Code forneceria a interface do usuário e o recurso para sincronizar configurações, atalhos de teclado, extensões e snippets.
  • O VS Code conversa com um ponto final de serviço para ler e gravar os dados

Ponto final do serviço de sincronização de configurações do VS Code

  • Fornece API ReST para ler e gravar dados (backend)
  • Fornece mecanismo de autenticação para os usuários efetuarem login.

Kamino clonou este problema para ChaseKnwlden/vscode

@ sandy081 a proposta de design dará suporte à sincronização de/para uma conta da Microsoft?

Olá equipe VSCode,

Como isso vai acontecer, eu adoraria sugerir que o Azure AD e as contas pessoais da Microsoft tenham a capacidade de autenticação.
Outros provedores OAuth também seriam apreciados (por exemplo, Google, GitHub, etc.)

Obrigado!

@nmoinvaz @elliot-labs consulte https://github.com/microsoft/vscode/issues/84332#issuecomment -579016636

Talvez você possa até sincronizar essas configurações com o Visual Studio Online! Meus 2 centavos :-)

Acabei de ver a visualização e queria informar que os snippets de sincronização também devem ser incluídos.

A sincronização de snippets e estado global está planejada para o marco de março - https://github.com/microsoft/vscode/issues/86678

Tudo, Como você sabe em nossa versão mais recente, o recurso Sincronização de configurações é visualizado em insiders. Então, por favor, experimente o recurso usando nossos especialistas e nos forneça o feedback - https://code.visualstudio.com/insiders/

<3 Desejo que esses recursos sejam estáveis

Antes de gastar tempo para fazer uma extensão que sincronize tudo, acho que seria mais benéfico gastar algum tempo curando quais seriam os melhores arquivos .gitignore para incluir por padrão nas pastas do VS Code, então as pessoas podem começar inicializando repositórios git e confirmando as coisas com confiança.

No momento, eu basicamente confirmo tudo na minha pasta ~/.vscode , incluindo extensões e caches, porque honestamente não sei o que não confirmar.

Não deveríamos ter que comprometer todas as extensões. Como exemplo, como @felixfbecker mencionou, seria ótimo se houvesse um arquivo extensions.json dentro da pasta VS Code do usuário para que possamos confirmar isso em vez de confirmar todas as extensões. Com isso em vigor, a equipe do VS Code simplesmente precisaria enviar um bom arquivo .gitignore (que ignora extensões, mas não extensions.json , etc), e então todos nós estaremos em nossos caminhos felizes.

Depois que esse controle de versão básico estiver em vigor, será muito mais fácil criar extensões de "sincronização" em cima dele.

@ sandy081 Isso permite configurações de sincronização para o github para pessoas que não têm uma conta MS?

Você também pode usar sua conta do GitHub para fazer login, mas ela sincronizará os dados com o back-end do MS Azure. Veja o documento aqui - https://code.visualstudio.com/docs/editor/settings-sync#_enabling -settings-sync

@ sandy081 Ainda precisa ter uma conta do Azure ou Outlook.

Não podemos simplesmente usar gist como configuração-sincronização ? para que os usuários não precisem criar novas contas.

Não podemos simplesmente usar a essência como a sincronização de configuração? para que os usuários não precisem criar novas contas.

Não. Os Gists Privados não estão listados, mas são públicos se você conseguir adivinhar o URL. É perigoso. Não gostaria de nenhuma preferência ou token relacionado a credenciais acidentalmente confirmado em uma essência.

Seria conveniente usar a conta do Github, sem o MS Azure.

Embora eu aprecie esse recurso, honestamente não estou interessado em criar uma conta MS ou usar gists do GitHub para manter minhas configurações, extensões etc. do VSCode sincronizadas.

Eu sempre mantive minha configuração para Sublime Text e Atom com versão feliz e totalmente sincronizada com o Git em meus dotfiles. Embora eu já faça isso para o VSCode, não encontrei uma maneira de sincronizar também as extensões. No Atom, usei package-sync . Isso me permitiu manter a lista de extensões em um arquivo packages.cson . IIRC, Sublime Text fez algo semelhante fora da caixa.

Eu ficaria feliz em ver algo semelhante construído no VSCode, pois essa me parece a abordagem mais sã. Mas, se não for provável que tenha esse recurso embutido, talvez haja uma extensão que faça isso e escapou das minhas habilidades no Google-fu?

A essência privada tem funcionado muito bem para mim usando o addon Settings Sync de Shan Khan, bem como mais de 1,5 milhão de outras pessoas. Esse é bom o suficiente IMHO, não precisa de mais nada.

@OmeGak Meu script para sincronizar extensões via bash/dotfiles:

https://github.com/ithinkihaveacat/dotfiles/blob/8a3c9b2cc0e88bcdc6d8c3e3faf47c6f3cc11d1c/update#L390 -L399

Não é a abordagem mais fácil de usar, mas ei, combina comigo. (E não exige que eu crie uma conta.)

Novamente, estou dizendo que precisamos de uma maneira de sincronizar as configurações sem uma conta MS (usando uma conta GH já existente)

Eu apoio ter uma opção de sincronização primária. Eu tenho usado a sincronização de configurações de Shan Khan e, embora seja bom, recentemente encontrei dois problemas.

  1. Gists privados não são bloqueados por autenticação. Se alguém adivinhar seu hash de essência, eles podem ver suas informações.
  2. A extensão começou recentemente a desinstalar a extensão interna do TypeScript do meu VSCode e tive que desativar a opção remover extensões para corrigi-la. Isso causou algumas horas de interrupção no trabalho para mim.

Este recurso estará disponível no vscode OSS?
Estou usando um sistema Linux baseado em musl e FreeBSD, e ambos não têm uma versão oficial do Electron.

A melhor maneira do IMHO de sincronizar as configurações é através de um repositório git
ex: repositório de configurações da JetBrains
Benefícios

  • Não são necessárias novas contas, pode usar qualquer serviço git (GitHub, Bitbucket, GitLab) que a maioria dos desenvolvedores já possui
  • Pode manter as configurações privadas usando um repositório privado

Se a privacidade é uma preocupação, tudo o que realmente precisa é um recurso de exportação/importação (que realmente deve ser fornecido quando entra em estável),
pois não precisa armazenar coisas em um local externo. (que incluiria o git se você usasse um servidor remoto)

Mas se eu quiser sincronizar as coisas, prefiro tê-lo através da empresa que construiu o aplicativo em primeiro lugar,
se eu não confio naquele (pelo menos até certo ponto), então por que eu consideraria usar o aplicativo deles?

Sem mencionar que a MS também possui o github agora, então realmente não importa se você usa uma conta MS ou uma conta do github. (com essências, como mencionado sendo bastante inseguras, e é por isso que ainda não usei e estou aguardando ansiosamente que esse próximo recurso seja estável)

Como o @neico disse também permitir que os usuários exportem, importem suas configurações como um arquivo zip.

Eu recomendaria criar problemas separados para requisitos separados. Esses podem não ser rastreados de outra forma. Então, por favor, crie questões separadas para seus desejos.

Seria conveniente usar a conta do Github, sem o MS Azure.

Para desenvolvedores na China, não é conveniente.

Seria conveniente usar a conta do Github, sem o MS Azure.

Para desenvolvedores na China, não é conveniente.

Por quê? Eu posso usar o GitHub na China e parece ser mais estável que o MS Azure.

@ sandy081 Abriu questões separadas para

Usar uma conta do Github é útil se você não tiver o MS Azure.

Isso não é conveniente para desenvolvedores chineses.

Por quê? Eu posso usar o GitHub na China e parece ser mais estável que o MS Azure.

Será mais lento em alguns momentos especiais
MS Azure deve ser suficiente

Comecei a usar a sincronização de configurações do vscode-insiders. Mas imediatamente me deparei com um problema. Quando tento sincronizar configurações entre vscode-wsl e visual studio online, não consigo usar uma variável de ambiente para corrigir nomes de pastas para determinadas pastas do espaço de trabalho, como leetcode. Eu tentei definir "leetcode.workspaceFolder": "${ env:HOME }/go/src/github.com/rafee/leetcode", mas não funciona. Isso é anteriormente referido em # 2809

Não é recomendado sincronizar configurações específicas de caminho, a menos que a extensão que possui essa configuração possa tratá-las com variáveis ​​de ambiente.

A sincronização de configurações poderá sincronizar arquivos de configuração ssh?

Não a partir de agora.

qual método é seguro por enquanto para sincronizar

https://gist.github.com/wonderbeyond/661c686b64cb0cabb77a43b49b16b26e

ou

https://mikefrobbins.com/2019/03/21/backup-and-synchronize-vscode-settings-with-a-github-gist/#comment -39448

Eu pessoalmente uso esta extensão:
shan.code-settings-sync
É super incrível e mantém minhas configurações privadas em uma essência privada do github.

@elliot-labs conforme discutido anteriormente neste tópico, gists secretas do github não são privadas. A documentação do Github confirma tanto https://docs.github.com/en/github/writing-on-github/creating-gists

Eu usei a mesma extensão, mas retirei algumas informações confidenciais das minhas configurações depois de descobrir que não eram privadas.

Oh droga! Eu senti falta disso! 😬

@elliot-labs e @haugerbr
obrigado,
Eu também não sei que a essência não é privada
então agora estou pensando em escrever alguns scripts para fazer upload de configurações para a nuvem
e um script para baixar e instalar

Eu também criei um programa que me mostra scripts na inicialização
para que eu possa colocar esses scripts lá.

Pessoal, a sincronização de vscode-insiders não é uma opção?

Concordo com @escape0707. Vs code insiders agora tem sincronização de configurações que em breve chegará ao lançamento público. Este é efetivamente um problema não e foi abordado.

@escape0707 @jakobhviid Estou ciente disso e é exatamente o que estou planejando usar assim que passar para as compilações normais do VSCode. Por enquanto, ainda estou usando a sincronização de configurações enquanto espero.

O recurso Sincronização de configurações (visualização) chegou a estável (1,48), portanto, fechando isso.

Por favor, crie problemas separados para outras solicitações ou bugs.

@sandy081 é ter perfis separados na mesma conta um recurso que já foi solicitado? Por exemplo, se eu quiser usar minha conta do github para o método de autenticação, mas quiser perfis de trabalho/pessoais separados. Por enquanto, uso contas separadas que gosto mais para separação pessoal/trabalho, mas posso ver um caso de uso em que as pessoas desejam vários perfis pessoais. Vou abrir uma solicitação de recurso para ele, se ele ainda não existir.

Consulte os problemas de sincronização de configurações existentes e crie um caso não exista.

Encontrei. Marcando aqui caso alguém lendo este tópico também esteja interessado em rastreá-lo #92393

Por favor, junte-se a mim em uma bela salva de palmas e mostre grande apreço por adicionar esse recurso (a partir de 1.48 ). Estou emocionada e eufórica! Muito obrigado equipe VS Code!! 👏🏼👏🏼👏🏼

Excited Guy

No entanto, se você pudesse me permitir apenas duas pequenas queixas:

  1. Parece que tenho que autenticar novamente após um tempo limite muito curto (um dia talvez?) e uma reinicialização do VS Code.
  2. A autenticação ocorre em um navegador, e como eu tenho tabite e às vezes não tenho meu navegador aberto, isso se torna um pouco... irritante.

Obrigado.

Sugiro abrir novos problemas para os problemas que você está enfrentando com as etapas de reprodução.

Esta página foi útil?
0 / 5 - 0 avaliações