Vscode: Barra de rolagem aprimorada (adicionar minimapa)

Criado em 1 abr. 2016  ·  105Comentários  ·  Fonte: microsoft/vscode

Solicitação de recurso

Adicione o recurso Enhanced Scrollbar do VS 2013 e VS 2015 no VS Code. É uma maneira extremamente eficiente de se mover dentro de um arquivo e seria um ótimo recurso no VS Code.

Se já é uma extensão ou opção, não consegui encontrar.

editor feature-request

Comentários muito úteis

Uma atualização sobre isso

Estamos trabalhando para poder implementar este recurso:

  • parte do trabalho é concluída em vscode-textmate no ramo next - https://github.com/Microsoft/vscode-textmate/tree/next
  • lá, agora podemos obter (em um formato codificado em binário) o resultado da tokenização + correspondência de tema. ou seja, estamos obtendo cores diretas, estilo de fonte, etc., do tokenizer que agora pode obter as informações do tema (ou seja, a aplicação do tema pode ser feita em código em vez de CSS)
  • precisamos adotar esse novo formato em vscode .

    • isso significa que precisamos adotar esse novo formato também para os outros provedores de tokenização (há 3 no total: textmate, monarch e manual). Os dois últimos entram em jogo no monaco-editor .

    • estamos limpando os tokens de editor autônomo .css que possam ser transformados em uma estrutura de dados JS (consulte https://github.com/Microsoft/vscode/commits/master/src/vs/editor/browser/ standalone / media / standalone-tokens.css)

    • já terminamos de alinhar os tokens monaco-languages forma que todos eles emitam tokens de estilo clássico.

deixou de fazer:

  • [x] transformar tokenizers monarca / manuais para usar a correspondência de tema em JS (não em CSS) e para gerar o mesmo formato binário que vscode-textmate .
  • [x] adotar novo formato binário de tokenização no modelo do editor
  • [x] adotar novo formato de tokenização na visualização do editor
  • [x] começar a implementar este recurso

TL; DR Estamos trabalhando nisso, mas às vezes dá muito trabalho nos bastidores antes de chegarmos às coisas chamativas.

Todos 105 comentários

@jschraub Você pode apontar recursos específicos que você gosta ou que o ajudam a se mover com mais eficiência na barra de rolagem aprimorada do VS 2013/2015?

Com certeza, @alexandrudima. A capacidade de obter rapidamente uma representação visual de seu documento / código. Ter uma "visualização de 10.000 pés" facilita a visualização de seu documento e o clique imediato no trecho de código que você está procurando. Embora a barra de rolagem aprimorada do VS 2013/2015 ofereça mais recursos do que isso, não uso muitos deles.

Muitos outros editores de código têm recursos semelhantes, incluindo Sublime e Atom e todos eles têm diferentes sub-recursos, mas acho que ter uma oferta para uma "visualização de 10.000 pés" de seu documento em uma rápida olhada, dá uma grande vantagem sobre Editores de Texto que fazem não tem um recurso correspondente.

Por favor, deixe-me saber se é isso que você estava procurando ou se você precisa de detalhes melhores / diferentes.

Ótima descrição! Obrigado!

Olá @alexandrudima , alguém do VSCode está trabalhando nisso para o próximo lançamento? Isso é algo com que a comunidade pode contribuir para a barra de rolagem?

Suponho que será algum tipo de leitura do modelo do editor e desenho de uma representação de minimapa dele em uma tela. wdyt?

@nojvek Vamos rascunhar e lançar o plano de setembro no final da próxima semana. Dado que este problema está chegando ao topo da consulta, usamos para rastrear solicitações da comunidade (https://github.com/Microsoft/vscode/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc ), tem uma grande mudança para entrar no plano de setembro.

Por favor fique atento :)

Beta bits, por favor! É meu recurso favorito e a única coisa que me mantém preso ao Sublime Text.

Soon ™

👍 o recurso de minimapa faz muita falta

Eu também sinto muita falta disso.

+ Infinito

@ + 1 Minimap é um dos recursos indispensáveis ​​para mim, ele funciona muito bem no Atom com muitos addons.

veja o minimapa de Kate, que vejo como um bom exemplo sobre este assunto: https://docs.kde.org/trunk5/en/applications/katepart/kate-part-scrollbar-minimap.html

1 para o Minimapa. Um 'botão do meio do mouse pressionado' (botão da barra de rolagem) para rolar também seria ótimo

Se tivermos status git, erros, outra ocorrência da palavra atual, resultados de busca, indicação da janela de visualização prévia, basicamente todos os minimapa do Sublime + tudo que a barra de rolagem atual do VSCode possui, será enorme!

slice

capture

Não vejo por que o VS Code não pode, se o VS pode.

esta seria uma grande vitória e uma das últimas características que faltavam para os sublimes remanescentes

Recentemente descobri o uso, não posso esperar até que seja implementado

+1 não pode esperar para que isso seja implementado no VSCode ...

+1 Por favor, adicione em breve.

+1 Por favor, adicione MiniMap

Eu não posso acreditar que isso não era um recurso do primeiro lançamento ?!

Adicione MiniMap para VSCode

+1 Por favor, adicione MiniMap

+1 para isso

Estou tão triste que isso não foi feito em 1.6.0 :( adicione isso o mais rápido possível

Também não parece ter feito o plano de outubro. Dedos cruzados para novembro, eu acho. Parece que agora está no topo da lista de solicitações, o que é muito empolgante.

+1

+10

+1

+1

Por favor, não mais +1 comentário. Em vez disso, vote positivamente no problema original.
As pessoas inscritas neste tópico desejam ser notificadas quando houver progresso, não quando você marcar com +1.

Vocês podem bloquear a conversa para colaboradores.

Obrigado e cumprimentos,
Deepu

Na quinta-feira, 13 de outubro de 2016 às 21h13, Pine [email protected] escreveu:

Por favor, não mais +1 comentário. Em vez disso, vote positivamente no problema original.
As pessoas inscritas neste tópico desejam ser notificadas quando o progresso tiver
foi feito, não quando você +1.

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Microsoft/vscode/issues/4865#issuecomment -253552567,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/ABDlF49KaIi-Lgu1cKv8Zhn1Tjoa-Hruks5qzlGkgaJpZM4H93xs
.

+1

Mesmo quando eu realmente não sinto falta do minimapa no @code , se eu precisar escolher posso dizer que realmente gosto da abordagem do minimapa no Atom (além disso, o código é o SO). Não é uma versão reduzida do código, mas uma representação esquemática. Isso é inteligente, porque o que você quer é identificar rapidamente as seções do código e não o código em si, e você pode melhorar visualmente os principais elementos que tornam isso possível, como cor, comprimento da linha, espaço em branco ...

2016-10-21_09h34_59

Praticamente só esperando por isso antes de fazer a troca.

E também poderia mostrar o git diff e destacar a posição atual?

Uma atualização rápida sobre isso:

Atualmente, a renderização de uma linha de código-fonte funciona por:

1. Renderize muitos spans e cada um obtém como nome de classe os escopos TM gerados:

<span class="token block ts meta arrow expr var leading whitespace" style="width:38.53125px">→&nbsp;&nbsp;&nbsp;</span>
<span class="token block ts meta other constant arrow expr var">TO_USER_SETTINGS_MAP</span>
<span class="token block ts meta arrow brace square expr array literal var">[</span>
<span class="token block ts meta variable other arrow object expr array literal var">KeyCode</span>
<span class="token block ts punctuation meta arrow accessor expr array literal var">.</span>
<span class="token block ts meta variable other arrow property expr array literal var">DownArrow</span>
<span class="token block ts meta arrow brace square expr array literal var">]</span>
<span class="token block ts meta arrow expr var">&nbsp;</span>
<span class="token block ts meta keyword operator arrow assignment expr var">=</span>
<span class="token block ts meta arrow expr var">&nbsp;</span>
<span class="token block ts punctuation definition string quoted single begin meta arrow expr var">'</span>
<span class="token block ts string quoted single meta arrow expr var">Down</span>
<span class="token block ts punctuation definition string quoted single end meta arrow expr var">'</span>
<span class="token block ts punctuation terminator statement meta arrow expr var">;</span>

2. Gere muitas regras de css a partir dos temas TM

.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.comment { color: rgba(117, 113, 94, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.string { color: rgba(230, 219, 116, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.constant.numeric { color: rgba(174, 129, 255, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.constant.language { color: rgba(174, 129, 255, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.constant.character { color: rgba(174, 129, 255, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.constant.other { color: rgba(174, 129, 255, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.variable {  }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.keyword { color: rgba(249, 38, 114, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.storage { color: rgba(249, 38, 114, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.storage.type { font-style: italic; color: rgba(102, 217, 239, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.entity.name.type.class { text-decoration: underline; color: rgba(166, 226, 46, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.entity.other.inherited-class { font-style: italic; text-decoration: underline; color: rgba(166, 226, 46, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.entity.name.function { color: rgba(166, 226, 46, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.variable.parameter { font-style: italic; color: rgba(253, 151, 31, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.entity.name.tag { color: rgba(249, 38, 114, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.entity.other.attribute-name { color: rgba(166, 226, 46, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.support.function { color: rgba(102, 217, 239, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.support.constant { color: rgba(102, 217, 239, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.support.type { font-style: italic; color: rgba(102, 217, 239, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.support.class { font-style: italic; color: rgba(102, 217, 239, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.support.other.variable {  }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.invalid { color: rgba(248, 248, 240, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.invalid.deprecated { color: rgba(248, 248, 240, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.meta.structure.dictionary.json.string.quoted.double.json { color: rgba(207, 207, 194, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.meta.diff { color: rgba(117, 113, 94, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.meta.diff.header { color: rgba(117, 113, 94, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.markup.deleted { color: rgba(249, 38, 114, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.markup.inserted { color: rgba(166, 226, 46, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.markup.changed { color: rgba(230, 219, 116, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.constant.numeric.line-number.find-in-files.-.match { color: rgba(174, 129, 255, 0.63); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.entity.name.filename.find-in-files { color: rgba(230, 219, 116, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.markup.quote { color: rgba(249, 38, 114, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.markup.list { color: rgba(230, 219, 116, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.markup.bold { color: rgba(102, 217, 239, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.markup.italic { color: rgba(102, 217, 239, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.markup.inline.raw { color: rgba(253, 151, 31, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.markup.heading { color: rgba(166, 226, 46, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.markup.heading.setext { color: rgba(166, 226, 46, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .monaco-editor-background { background-color: rgba(39, 40, 34, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .glyph-margin { background-color: rgba(39, 40, 34, 1); }
.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .monaco-workbench .monaco-editor-background { background-color: rgba(39, 40, 34, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token { color: rgba(248, 248, 242, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .cursor { background-color: rgba(248, 248, 240, 1); border-color: rgba(248, 248, 240, 1); color: rgba(7, 7, 15, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .token.whitespace { color: rgba(59, 58, 50, 1) !important; }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .lines-content .cigr { background: rgba(72, 71, 62, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .current-line { background-color: rgba(62, 61, 50, 1); border: none; }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .focused .selected-text { background-color: rgba(73, 72, 62, 1); }
.monaco-editor.vs-dark.vscode-theme-monokai-themes-Monokai-tmTheme .selected-text { background-color: rgba(73, 72, 62, 0.5); }

3. Deixe o navegador fazer sua mágica :)

image

Discussão

Isso é altamente ineficiente:

  • precisamos armazenar todos esses escopos por token (alto uso de memória - de forma que rolar para cima / para baixo será uma operação de pesquisa de memória em vez de uma chamada para tokenizar com TM)
  • precisamos pintar todos esses escopos (basta olhar para o tamanho enorme do HTML para renderizar uma linha)
  • colocamos pressão no navegador para corresponder a todo esse CSS

Isso foi implementado em um momento em que não usávamos TM e era a melhor maneira de ter um mundo onde alguns tokenizadores ainda eram escritos manualmente, enquanto outros eram feitos com TM. Agora que terminamos de mover json, css, less, scss, html, razor e guiador para extensões, podemos começar a otimizar novamente :).

Eu quero mudar para um modelo onde:

  • nós imediatamente (perto de onde ocorre a tokenização) resolvemos estilos por token
  • armazene apenas esses estilos (isso significa que alterar o tema eliminará todos os tokens em cache)
  • renderizar usando apenas esses estilos (por exemplo, não há necessidade de renderizar o nome da classe block se nenhuma regra no tema irá selecioná-lo), podemos tanto embuti-los (ou seja, style="..." ) ou gerar personalizados nomes de classe (com nomes curtos e exclusivos que, com sorte, ajudarão o navegador a fazer sua mágica mais rápido).

Por fim, isso nos permitirá saber rapidamente qual é a cor / ousadia / ênfase de um determinado token. Podemos então usar essas informações para pintar (usando <canvas> ) retângulos que se aproximam da forma do texto. Os retângulos podem ser pintados apenas para texto garantido como da esquerda para a direita (que agora rastreamos há alguns dias). O texto Bi-Di / RTL não terá um minimapa, pois nosso layout de texto é feito pelo navegador e ficaria completamente desligado. Também é questionável o que devemos fazer com fontes proporcionais.

Desculpe pela longa postagem, só queria que você soubesse que isso está no nosso radar e pode ser priorizado ainda mais devido às possíveis vitórias de perf.

+1

+1

+1

O Github tem uma maneira de ter contagens positivas. Por favor, use isso. + 1s são
realmente bagunçando o fio.

Em quinta, 3 de novembro de 2016 às 10:46, Filiphe Vilar Figueiredo <
notificaçõ[email protected]> escreveu:

+1

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Microsoft/vscode/issues/4865#issuecomment -258219634,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AA-JVK1A3zeRm0CUCePdrkPdqtRdbtMfks5q6h3ZgaJpZM4H93xs
.

Algum progresso nisso, pessoal? A comunidade pode ajudar?

Por favor, pare de enviar spam para o tópico com + 1s, FFS. Quando acompanharmos esse problema, queremos obter informações pertinentes sobre o progresso desse recurso, e não receber spam de + 1s. Use a reação positiva no comentário original ou vote a favor no UserVoice.

Eu estava pensando que seria ótimo se pudéssemos clicar no botão do meio do mouse e navegar pelo editor como fazemos em um navegador como o Microsoft Edge ou Visual Studio. Rolar para cima e para baixo é ótimo, mas de um lado para o outro seria melhor! Adoraria poder clicar com o botão do meio do mouse para abrir a roda de rolagem para cima, para baixo, para a esquerda e para a direita e mover o mouse pela tela. Experimente no Edge e veja exatamente do que estou falando!

Devo postar isso em algo novo?

Eu não farei +1, para obter votos negativos, por favor, tente resolver este problema após a construção de novembro próximo para que possamos ver isso em janeiro, sinto muita falta disso.
Atualização: e também recebo muitos votos negativos LOL

Todos @jschraub está dizendo que precisamos de uma opinião de olho pássaro

Estou usando o Sublime em conjunto com o VSCode apenas por esse motivo que não tenho como espiar meu código de mil linhas.

Estou confuso. a equipe parece ter usado reações para julgar o interesse e priorizar as solicitações de recursos ... eles até mencionaram isso para "saída quente" no último blog que obteve ~ 332. No entanto, a "barra de rolagem aprimorada" atualmente em primeiro lugar (eu acredito) com mais de 600 ainda não se mudou para um marco ainda? então e aí, por que a equipe de desenvolvimento não compartilha nossa visão disso?

pelo que vale a pena ... esta é uma das principais razões pelas quais eu continuo com o Atom ... O minimapa do Atom e os plug-ins de terceiros para ele são simplesmente fantásticos ... ele sem dúvida tem a melhor implementação (uma vez que existe um API completa para isso)

Uma atualização sobre isso

Estamos trabalhando para poder implementar este recurso:

  • parte do trabalho é concluída em vscode-textmate no ramo next - https://github.com/Microsoft/vscode-textmate/tree/next
  • lá, agora podemos obter (em um formato codificado em binário) o resultado da tokenização + correspondência de tema. ou seja, estamos obtendo cores diretas, estilo de fonte, etc., do tokenizer que agora pode obter as informações do tema (ou seja, a aplicação do tema pode ser feita em código em vez de CSS)
  • precisamos adotar esse novo formato em vscode .

    • isso significa que precisamos adotar esse novo formato também para os outros provedores de tokenização (há 3 no total: textmate, monarch e manual). Os dois últimos entram em jogo no monaco-editor .

    • estamos limpando os tokens de editor autônomo .css que possam ser transformados em uma estrutura de dados JS (consulte https://github.com/Microsoft/vscode/commits/master/src/vs/editor/browser/ standalone / media / standalone-tokens.css)

    • já terminamos de alinhar os tokens monaco-languages forma que todos eles emitam tokens de estilo clássico.

deixou de fazer:

  • [x] transformar tokenizers monarca / manuais para usar a correspondência de tema em JS (não em CSS) e para gerar o mesmo formato binário que vscode-textmate .
  • [x] adotar novo formato binário de tokenização no modelo do editor
  • [x] adotar novo formato de tokenização na visualização do editor
  • [x] começar a implementar este recurso

TL; DR Estamos trabalhando nisso, mas às vezes dá muito trabalho nos bastidores antes de chegarmos às coisas chamativas.

Gostaria apenas que você considerasse a exibição de seleções e resultados de pesquisa destacados no minimapa como um recurso.

+1

qual é o status dele agora, alguém resumir plz.

Isso é realmente o que está faltando no Visual Studio Code.

@charlesmilette : "Por favor, pare de enviar spam para o tópico com + 1s, FFS. Quando acompanharmos este problema, queremos obter informações pertinentes sobre o progresso deste recurso, para não receber spam de + 1s. Use a reação de polegar para cima no comentário original ou em vez disso, vote no UserVoice. "

Por favor, use 👍 reação, por favor. Não comente +1.

+1

Completamente fora do assunto, mas depois de ser spam com respostas +1, não posso culpar os usuários por vários motivos:

  • A versão móvel do Github não tem uma IU para reações, tive que mudar para a IU do desktop para vê-las.
  • A IU de comentários está na parte inferior da página e a de reação está anexada na primeira postagem na parte superior. Um atalho de reação deve ser anexado à IU do comentário e automaticamente vinculado à primeira postagem.
  • As postagens "+1" devem ser detectadas automaticamente com uma análise simples e convertidas em reação ou, pelo menos, sugerir que o usuário o faça.
  • O Github deve propor o recebimento de notificações para postagem com no mínimo n contagem de caracteres.

Foi bom saber que a função de minimapa está em desenvolvimento, o que me deu a quem transferiu de texto sublime mais confiança para permanecer com o código vs.

Existe alguma razão para que isso não seja implementado como uma extensão? Se estiver disponível, parece uma coisa perfeita para uma extensão.

extensão seria uma solução temporária, não uma boa solução. Você realmente deseja instalar recursos básicos individualmente por meio de extensões? Primeiro baixe o VScode, então aqui está a lista de 30 extensões que podem não funcionar juntas, mas serão necessárias para fornecer a maioria das funcionalidades básicas. (1. copiar / colar v3.0, 2. tabs, 3. recuo automático, 4. tabstospace, 5. autosave, 6. realce de cor, ...... 28. birdeyeview_by_dx3ee_v1.0.1 ...)

Aguardando a implementação desta função de minimapa para alternar do Atom.

@techsin Não é realmente um recurso básico .. é mais uma preferência pessoal.
Pelo que eu vi, no entanto, a partir de agora a API não permite renderizar elementos personalizados nessa extensão, portanto, não é tão viável até mesmo tentar criar tal extensão.

@sapiraz : Concordo com você, não é essencial para um editor de texto, mas também acho que é uma das razões pelas quais Sublime Text (ou Atom) é tão popular. É uma característica 'chave' que deixa as pessoas viciadas! Como exemplo, digamos que cada editor tenha texto preto e fundo branco, e um novo editor de texto oferece a opção de alterar isso de acordo com sua vontade. Claro que não é realmente crucial para o propósito de um editor de texto, mas melhora tanto a experiência que as pessoas estão prontas para deixar seu bom editor com este. E acho que é isso que está acontecendo aqui. UX também é essencial;)

UX é essencial, faz a diferença entre uma boa experiência e um sentimento super irritante que você tem quando sente "isso não está certo" ou "sinto muita falta disso".

Isso não é diferente de ter bons atalhos e pesquisas. Isso é essencial para o código? Na verdade, não, mas posso codificar com o editor de texto ...

Preciso concordar com @sapiraz aqui, pode ser um recurso legal ou até importante para muitas pessoas, mas não vamos chamá-lo de básico. Até agora, Sublime é o único editor que tem isso como padrão (no Atom é uma extensão de abe33), e Sublime não tem a funcionalidade estendida na barra de rolagem que o Code fornece.

Para mim, velocidade e estabilidade são recursos muito melhores e verdadeiramente "básicos", e se a equipe estiver trabalhando para implementar isso da melhor maneira possível, darei a eles todo o tempo de que precisam.

@jfcartier , @JonnyBGod Bem, é claro que UX é importante.
Eu também gosto do recurso de minimapa em outros editores e espero vê-lo no VSCode em breve ... mas não vamos chamá-lo do que não é - um recurso básico.

Você realmente não pode compará-lo com atalhos, pesquisa, copiar / colar ou até mesmo suporte a esquemas de cores porque esses recursos são tão essenciais e agregam um valor óbvio ao ambiente de trabalho (Sim, até os esquemas de cores são importantes - eu sofro de cansaço visual e sentar 9 horas por dia em frente a uma tela branca brilhante não faz nenhum bem aos meus olhos), enquanto o minimapa simplesmente não fornece uma usabilidade tão importante sem a qual você não pode viver.

Se alguém perguntar a você qual valor o minimapa adiciona, você poderia apresentar um bom argumento além de "parece bom"? Eu não pude.
Mais uma vez, adorei o recurso, depois de trabalhar com Sublime text & Atom gostei muito de tê-lo ao lado apenas para ter uma pequena perspectiva de onde estou. mas é necessário? não.
Você pode rolar, você pode ver o conteúdo do seu arquivo, você vê algumas dicas na barra de rolagem atual , por que ver seu código em uma versão pequena ilegível é útil para você?

Estou trabalhando com VSCode agora em vários projetos, e escolhi-o devido à falta de recursos básicos reais de outros editores modernos .. entre eles estão desempenho e estabilidade (ehem, Brackets), suporte multilíngue (Sublime), suporte nativo de linguagens da web e Intellisense (desculpe Atom) ou até mesmo instalador de extensão nativo e fácil de usar (novamente, Sublime)

Se alguém perguntar a você qual valor o minimapa adiciona, você poderia inventar um bom argumento além de "parece bom"?

sim. Isso ajuda substancialmente a navegar em um arquivo grande. Pelo menos é por isso que sinto tanta falta.

@fredrikaverpil Bem, "substancialmente" na minha opinião é um pouco exagerado, mas com certeza.
Ainda não consigo comparar com pesquisar ou copiar / colar.

@fredrikaverpil Existem outras maneiras úteis de navegar em um arquivo grande. @sapiraz está certo em que este não é um recurso básico, e compará-lo com recursos verdadeiramente básicos (como auto-indentação ao colar .. vamos lá!) é um pouco forçado.

Dito isso, acho que podemos _todos_ concordar que realmente queremos que isso esteja disponível de uma forma ou de outra.

Este tópico deu uma guinada ónima, olha, é um recurso que sinto falta no VSCode no momento. Se pudesse ser implementado em uma versão futura ótimo, senão, seria uma pena, mas tentarei lidar com isso.

@sapiraz Concordo totalmente com seus argumentos e não os refutaria apenas para refutar, porque acho que qualquer pessoa com os

você poderia apresentar um bom argumento diferente de "parece bom"? Eu não pude.
...
por que ver seu código em uma pequena versão ilegível é útil para você?

Não vamos dizer que não seja útil, porque você não vê dessa forma. Normalmente, para saber se algo é útil, a estatística ajuda muito, mas eu não tenho nenhuma, então só posso contar com todas essas pessoas (inclusive eu) que não vão usar o VS só por causa disso! Não é nada. Claro, acho que todos concordaríamos que é claramente uma resistência à mudança, mas ainda dizemos que é útil para nós e não é muito científico diminuir sua importância por meio de um julgamento pessoal.

Se eu puder fornecer um argumento. Aqui está um :
default
(Precisão) Como conheço meu código, sei que alterei as consultas de Db pelo formato dele.
(Velocidade) Com um clique, posso chegar lá. Sem pergaminho.
(UX) Se você trabalha com arquivos grandes, ajuda muito. Dá a sensação de controlar tudo, para que você não precise pesquisar.

Estou muito feliz em ver esse recurso no Plano de Iteração # 20021 de fevereiro

Encontraremos esse recurso no início de março
Obrigado pelo seu trabalho @all

Depois de enviado, os usuários poderão desativar isso completamente?

Não me interessa que isso mova qualquer peça da performance de um lugar para outro apenas para renderizar outra visão menor.

Vou ficar com a pesquisa de / , ? porque tenho tudo o que preciso com eles.

1 para o Minimapa. Rly w8ing

Parece já estar disponível na versão de iniciados,
No entanto, deve ser habilitado nas configurações, defina "editor.minimap.enabled" como true :)

Eu tentei o minimapa na versão interna, e está parecendo ótimo, pessoal!

Algumas sugestões:

  • Gostaria de poder clicar e arrastar a região da janela de forma semelhante a clicar e arrastar a barra de rolagem.
  • Eu gostaria de uma configuração de editor.minimap.width para brincar, o minimapa é um pouco largo demais para mim.

PS: O desempenho é fantástico, parabéns para vocês!

Certifique-se de que os realces estejam realmente visíveis no minimapa (como executar uma função localizar), pois no Sublime, mesmo que estejam realçados, o realce é tão mínimo que você praticamente tem que percorrer todo o arquivo de qualquer maneira ...

Obrigado por ouvir 😄

Ser capaz de rolar para cima e para baixo seria bom ... (como Sublime)
No momento, parece que está clicando apenas nele :-(

Ótimo trabalho - muito apreciado!

Em 19 de fevereiro de 2017 às 21:20, Mladen Mihajlović [email protected]
escreveu:

Certifique-se de que os destaques são realmente visíveis no minimapa (como
executando uma função find) desde em Sublime, mesmo que eles sejam
destacado, o destaque é tão mínimo que você praticamente tem que ir
através de todo o arquivo de qualquer maneira ...

Obrigado por ouvir 😄

-
Você está recebendo isto porque está inscrito neste tópico.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Microsoft/vscode/issues/4865#issuecomment-280949966 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AATV7DaFs9W2PNnpIYzmSIQQqaIDv60Sks5reLIJgaJpZM4H93xs
.

Ser capaz de rolar clicando / arrastando a máscara de sobreposição. O mesmo que átomo, texto sublime, colchetes, geany etc.

Seria possível ajustar o nível de ampliação? Às vezes, gostaria de aumentar ou diminuir os tamanhos de fonte, dependendo do que estou trabalhando.

Obrigado por sua paciência com esta solicitação de recurso.

Fundamentos

  • Optamos por uma geometria de minimapa diferente da do Visual Studio.
  • Enviamos duas "fontes" em tons de cinza, uma em que um caractere tem 4x2 (4px de altura e 2px de largura - abrevia como x2 ) e outra em que um caractere tem 2x1 (2px de altura e 1px de largura - abreviado como x1 ).
  • Com base em devicePixelRatio ou no nível de zoom, escolheremos a fonte de minimapa x2 ou x1 . Isso significa que em dispositivos retina ou em outros dispositivos de alta proporção de pixels (por exemplo, Surface Books) a fonte x2 será escolhida em zoomLevel 0, enquanto em outros dispositivos a fonte x2 será ser escolhido apenas ao usar zoomLevel 4 e superior.
  • Isso significa que uma linha obtém uma quantidade fixa de propriedade de tela vertical no minimapa, 4px ou 2px.
  • Se um arquivo tiver mais linhas do que cabem no minimapa, o minimapa irá rolar :

minimap-geometry


Uma nota sobre as fontes

  • Cada caractere no minimapa é pintado de acordo com estas fontes x2 ou x1
  • Aqui está a fonte x2 com zoom de 800%. Você pode ler o que está lá:

image

  • Se você for apaixonado por ela, adoraria obter sua ajuda para fazer o ajuste fino dessas fontes. Eles moram aqui

Experimentando

"editor.minimap.enabled": true no canal de insiders


O que está feito

O código de renderização de caractere / tokens está em uma forma boa o suficiente (em termos de desempenho) para enviá-lo: pixels do quadro anterior são copiados para o próximo quadro conforme necessário, fazendo com que uma renderização de minimapa demore menos de 1 ms. Sob certas condições (por exemplo, arquivo embrulhado por palavra reduzido, pulando para uma posição vertical diferente) pode levar até algumas dezenas de ms, mas no geral, estou um tanto feliz com o código de renderização de char.

O que falta fazer

Ainda há muitas coisas a serem feitas. Para citar apenas alguns:

  • Minimapa: Implemente arrastar o controle deslizante do minimapa. # 20935
  • Minimapa: fonte 2x1 com muitas irregularidades # 20929
  • Minimapa: Limita sua largura a no máximo 150 px # 20931
  • Minimapa: renderize mais do que caracteres dentro do minimapa # 20934
  • Minimapa: Adicionar opção para renderizar blocos em vez de caracteres # 20947

Alguns são uma questão de gastar mais tempo, enquanto outros são mais desafiadores (por exemplo, se os erros fora do minimapa forem pintados em algum lugar, podemos fazer com que o minimapa assuma a necessidade de uma régua de visão geral, etc.)

Rastrearemos todos os problemas relacionados ao minimapa com o rótulo editor-minimap e gostaria de encerrar esse problema agora.

Vamos continuar as discussões em questões específicas cobrindo diferentes aspectos, alguns deles chegarão em fevereiro, enquanto trataremos de alguns outros mais tarde.

@alexandrudima

Que tal este comentário? https://github.com/Microsoft/vscode/issues/4865#issuecomment -255368352

Eu prefiro isso em vez de um pequeno texto ilegível e fornece as informações de que preciso. Não tenho certeza de como seria difícil, mas pelo que parecia, você poderia simplesmente criar uma nova fonte em que cada caractere fosse apenas um quadrado sólido, sem os espaços em branco.

@ sprinkle131313 Extraí seu comentário para uma edição separada - # 20947.

Vamos continuar as discussões em questões específicas separadas. Sinta-se à vontade para criar novas questões se você não encontrar uma existente. Continuarei atualizando meu comentário acima com links para que todos possamos participar das discussões específicas.

Obrigado! Desejando vê-lo estável!

Questão: é possível que o minimapa também seja um cursor? Este é o comportamento padrão do VS, e é isso que vejo como as principais diferenças entre os 2 aplicativos. Observe também que instalei a versão insiders para testá-la

_EDITAR_
Esqueça, acabei de perceber que há um problema aberto # 20935 para isso

@alexandrudima Obrigado por # 20947. É possível ter "editor.minimap.renderCharacters": false como o padrão para processar bloco em vez de texto? IMO parece muito mais agradável e tem melhor usabilidade.

image

Gostaria de poder dar zoom quando estiver sobre o texto ou bloco (depende da abordagem final). Atualmente, não consigo ler nada ou saber em que parte do código estou, isso é útil se você estiver trabalhando em uma grande parte do código.
Além disso, descobri que, se mantenho o clique e tento rolar ou mover sobre o minimapa, nada acontece, preciso parar para clicar e escolher outra seção do código.

@FANMixco Eu estava pensando em sua petição, mas atualmente não tenho certeza sobre por que você precisa de tal recurso, já que se você clicar no minimapa, o código é rolado até aquele ponto sem mover o cursor, então é efetivamente a mesma coisa como um foco / zoom. Talvez pairar seja mais eficiente do que clicar?

@druellan , acredito que @FANMixco está falando sobre um recurso de zoom de minimapa que já está no Visual Studio normal, conforme mostrado abaixo
minimap_zoom

EDITAR
Esqueci de mencionar que o zoom só aparece depois de ficar 2 segundos sobre o minimapa. Se você passar por cima do minimapa e começar a rolar, o zoom não aparecerá, você realmente precisa parar de rolar e esperar 2 segundos para vê-lo.

Se @ghiscoding estiver certo sobre o recurso @FANMixco , então definitivamente deveria ser opcional, já que acho que muitas pessoas (como eu) não gostam de pop-ups.

Obrigado @ghiscoding , agora está mais claro. Eu ainda meio que acredito que isso não é uma grande melhoria em relação ao mecanismo click + slide, na verdade, parece mais útil SEM o minimapa, na própria barra de rolagem aprimorada. Uma espécie de recurso autônomo e não parte do recurso de minimapa.

Sobre a sugestão de @pohmelie , concordo totalmente, mas acredito que isso também pode ser anexado a um modificador de atalho, como ctrl + hover na barra de rolagem / minimapa para acionar a função.

@druellan Este também é o mesmo que a extensão https://atom.io/packages/minimap-codeglance no Atom. 11.000 downloads parecem sugerir que muitas pessoas gostam / precisam.

Pessoalmente, não o faço, portanto, se você o implementar, torne-o opcional. Um mecanismo de gatilho / tecla de atalho soa bem, especialmente se for implementado na barra de rolagem, bem como no minimapa.

Existe uma maneira de alternar como alternar a barra lateral (ctrl-b) alternar o painel (ctrl-j)?

Gosto do novo minimapa. Uma coisa que estou perdendo é o destaque do texto encontrado com pesquisa ou localizar duplicatas. Anexei duas imagens para visualizar esse assunto.

image
image

Bom recurso, pessoal!

💃

@sixenvi Eu sugiro que você adicione a uma solicitação de recurso separada

Não tenho certeza se a equipe VSCode leu comentários ou solicitações sobre problemas que estão fechados, como este aqui.

Olá, @druellan ! Sim, o que @ghiscoding é o que eu quis dizer, talvez pudéssemos configurar sobre o tempo porque é um pouco confuso.

Olá a todos! Se o VS Code perdeu um recurso, foi esse e agora está completo! Uma implementação tão boa e um ótimo desempenho. ( @alexandrudima como sempre você me fascina!)

Apenas uma coisa simples que percebi:

out-of-screen-scroll

Bom achado. Acho que você deve registrar um novo bug, pois isso está fechado. Equipe Vscode
pode não ver isso.

Na sexta-feira, 3 de março de 2017 às 7h51, Pouya Kary [email protected] escreveu:

Olá a todos! Se o VS Code perdeu um recurso, foi este e nenhum
nada que eu pudesse desejar! Uma implementação tão boa e excelente
atuação. (Como sempre você me fascina!)

Apenas uma coisa simples que percebi:

[imagem: rolagem fora da tela]
https://cloud.githubusercontent.com/assets/2157285/23557582/c264e420-0045-11e7-9ea6-8789f30db9de.gif

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/Microsoft/vscode/issues/4865#issuecomment-283990000 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AA-JVANXdhu57m4hlAODRcV6qhsNGzgrks5riDb3gaJpZM4H93xs
.

@nojvek ah não percebi isso! ok mais um problema ...

Mais uma coisa seria ótimo, eu acho - não esconda a posição atual no minimapa (atualmente é visível apenas ao passar o mouse).
image
Provavelmente, ter mais uma chave nas configurações para isso seria o melhor.

@Andrfas, isso é rastreado sob # 21404 e # 21784.

Como sugestão, vocês devem parar de escrever em um fascículo fechado que não é mais rastreado e pesquisar / abrir um novo fascículo.

Eu quero os botões da barra de rolagem.

Podemos fazer com que o mapa ou a barra de rolagem apareçam apenas ao passar o mouse sobre as bordas

@gauravsaini este é um assunto encerrado

existe uma maneira de usar a versão mais antiga? em um dos meus fontes online, o professor usou o mapa e categorizou blocos de código, com tantos códigos que não é legível na barra lateral, então é muito melhor ignorar ver o código, mas ter o código categorizado por seu código blocos.

@deadmann se você quiser desligar o minimapa, basta acessar suas configurações e encontrar:

// Controls if the minimap is shown
  "editor.minimap.enabled": true,

E defina-o como falso. Não há necessidade de voltar para uma versão anterior.

@deadmann se você quiser desligar o minimapa, basta acessar suas configurações e encontrar:

// Controla se o minimapa é mostrado
"editor.minimap.enabled": verdadeiro,
E defina-o como falso. Não há necessidade de voltar para uma versão anterior.

Eu quero o minimapa, na verdade fui eu que o ativei, mas eu quero de uma forma mais simples, quando meu código crescer, e com linhas longas, não é simples olhar para o minimapa, quer dizer, você pode realmente leu isso?

x

Achei um outro sistema, onde tínhamos um grande projeto, só queria dizer que pode ser ilegível nesses casos, onde apareceu, pode ser devido ao uso de versão diferente do VS naquela plataforma, ou porque o arquivo ficou muito longo. mas é o que mostro na imagem.

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

Questões relacionadas

VitorLuizC picture VitorLuizC  ·  3Comentários

trstringer picture trstringer  ·  3Comentários

shanalikhan picture shanalikhan  ·  3Comentários

chrisdias picture chrisdias  ·  3Comentários

lukehoban picture lukehoban  ·  3Comentários